模式
- 隔离模式(类似vmare中仅主机模式):虚拟机之间组建网络,该模式无法与宿主机通信,无法与其他网络通信,相当于虚拟机只是连接到一台交换机上,所有的虚拟机能够相互通信。
- 路由模式:相当于虚拟机连接到一台路由器上,由路由器(物理网卡),统一转发,但是不会改变源地址。
- NAT模式(类似vmare中的NAT模式):在路由模式中,会出现虚拟机可以访问其他主机,但是其他主机的报文无法到达虚拟机,而NAT模式则将源地址转换为路由器(物理网卡)地址,这样其他主机也知道报文来自那个主机,在docker环境中经常被使用。
- 桥接模式(类似vmare中的bridge桥接模式):在宿主机中创建一张虚拟网卡作为宿主机的网卡,而物理网卡则作为交换机。
资料来源:kvm的4中网络模型(qemu-kvm)
例子
kvm的默认模式
<network>
<name>default</name>
<uuid>348ba80a-e655-4e67-84e2-731705f7ab96</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virtbr0' stp='on' delay='0'/>
<mac address='52:54:00:e3:70:2a'/>
<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>
桥接模式,配置网桥br0,使用br0创建虚拟机
[root@node1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.8.73
PREFIX=24
GATEWAY=192.168.8.1
[root@node1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens1f0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens1f0"
UUID="exxxxx-xx4-xx-90a4-xxxx3"
DEVICE="ens1f0"
ONBOOT="yes"
IPADDR="192.168.8.73"
PREFIX="24"
GATEWAY="192.168.8.1"
DNS1="114.114.114.114"
BRIDGE=br0