我刚刚发现了许多不同的方法来进行KVM网络连接。但是我一直坚持正确的方法。我发现openstack使用macvtap进行中子联网。而且看起来不错。
但是有什么区别以及为什么要使用每种方式。
方式1 [旧?TUN / TAP]
http://www.shakthimaan.com/installs/debian-tun-tap-setup.html
/--------\ /----\ /----\ /----\ /--------\
|Internet|---|eth0|---|br0 |---|tap0|---|Guest NIC
\--------/ \----/ \----/ \----/ \--------/
不赞成使用,对吧?
方式2 [Bridge + Vnet] <-这就是virt-manager的工作
http://www.linux-kvm.com/content/using-bridged-networking-virt-manager
基本上,您使用内部物理接口创建桥接口,并且
auto br0
#iface br0 inet dhcp
iface br0 inet static
address 172.16.0.100
network 172.16.0.0
netmask 255.255.0.0
broadcast 172.16.255.255
gateway 172.16.0.1
bridge_ports eth2
bridge_stp off
bridge_fd 0
bridge_maxwait 0
当您从virt-manager启动虚拟机时,会创建一个vnet接口并将其添加到网桥。至少直到我知道的地方。不需要tun / tap接口。
长期以来,它运行良好,但现在看来我发现了问题。
https://bugs.launchpad.net/ubuntu/+source/core-network/+bug/1255516
为什么可以在没有TAP接口的情况下向桥添加新的vnet接口?
方式3 [MACVTAP]
最后是macvtap界面。
http://virt.kernelnewbies.org/MacVTap
它复制了TUN / TAP软件界面,但效果更好。不知道用什么方式,但这似乎更好。
与第二种方式相比,macvtap有什么优势?
有什么更好的?
有什么帮助吗?