KVM简介,安装及常见使用详解 (5)

其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。几个虚拟机管理模块产生的接口关系如下图:

┌───────────────────────┐ │ HOST │ │ ┌──────┐ │ ┌─────────────────┐ │ │ br0 │─┬──────┐ │ │Virtual Machine 1│ │ └──────┘ │ │ │ │ ┌──────┐ │ │ │ │ ┌───────┐ │ ─ │ │ br0 │ │ │ │ │ │ vnet0 │─│┘ │ └──────┘ │ │ ┌──────┐ │ └───────┘ │ └─────────────────┘ │ │virbr0│ │ ┌───────┐ │ ┌─────────────────┐ │ │ -nic │ └──│ vnet1 │─│┐ │Virtual Machine 2│ │ └──────┘ └───────┘ │ │ │ │ ┌──────┐ │└ ─│ ┌──────┐ │ │ │ eno0 │ │ │ │ br0 │ │ │ └──────┘ │ │ └──────┘ │ │ ┌──────┐ │ └─────────────────┘ │ │ eno1 │ │ │ └──────┘ │ └───────────────────────┘

从图上可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。virbr0是一个桥接器,接收所有到网络192.168.122.*的内容。从下面命令可以验证:

brctl show # 输出结果 # --------------------- # bridge name bridge id STP enabled interfaces # br0 8000.3863bb44cf6c no eno1 # vnet0 # virbr0 8000.525400193f0f yes virbr0-nic ip route # default via 192.168.188.1 dev br0 # 169.254.0.0/16 dev br0 scope link metric 1012 # 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 # 192.168.188.0/24 dev br0 proto kernel scope link src 192.168.188.132

同时,虚拟机支持模块会修改iptables规则,通过命令可以查看:

iptables -t nat -L -nv iptables -t filter -L -nv

如果没有default的话,或者需要扩展自己的虚拟网络,可以使用命令重新安装NAT。

virsh net-define /usr/share/libvirt/networks/default.xml

此命令定义一个虚拟网络,default.xml的内容:

<network> <name>default</name> <bridge /> <forward/> <ip address="192.168.122.1" netmask="255.255.255.0"> <dhcp> <range start="192.168.122.2" end="192.168.122.254" /> </dhcp> </ip> </network>

也可以修改xml,创建自己的虚拟网络。

重新加载和激活配置:

virsh net-define /etc/libvirt/qemu/networks/default.xml

标记为自动启动:

virsh net-autostart default # Network default marked as autostarted virsh net-start default

启动网络

virsh net-start default # Network default started

网络启动后可以用命令brctl show 查看和验证。

修改vi /etc/sysctl.conf中参数,允许ip转发,CentOS7是在vi /usr/lib/sysctl.d/00-system.conf 这里面修改

net.ipv4.ip_forward=1

通过 sysctl -p 查看修改结果

自定义NAT网络

创建名为management的NAT网络,vi /usr/share/libvirt/networks/management.xml

<network> <name>management</name> <bridge/> <forward/> <ip address="192.168.123.1" netmask="255.255.255.0"> <dhcp> <range start="192.168.123.2" end="192.168.123.254"/> </dhcp> </ip> </network>

启用新建的NAT网络

virsh net-define /usr/share/libvirt/networks/management.xml virsh net-start management virsh net-autostart management

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwgxj.html