我刚刚发现了很多不同的方法来进行KVM网络设置。但是我困惑于哪种方法才是正确的。我发现OpenStack使用macvtap来进行neutron网络设置,看起来不错。
但是每种方法有什么区别,为什么要使用每种方法呢?
方法1 [旧的?TUN/TAP]
废弃了,对吧?
方式2 [桥接+虚拟网络] <- 这就是virt-manager所做的。
第三种方式是MACVTAP。
最后是macvtap接口。
macvtap相比第二种方式有什么优势?
哪个更好?
对此有何帮助?
但是每种方法有什么区别,为什么要使用每种方法呢?
方法1 [旧的?TUN/TAP]
http://www.shakthimaan.com/installs/debian-tun-tap-setup.html
/--------\ /----\ /----\ /----\ /--------\
|Internet|---|eth0|---|br0 |---|tap0|---|Guest NIC
\--------/ \----/ \----/ \----/ \--------/
废弃了,对吧?
方式2 [桥接+虚拟网络] <- 这就是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接口。
这个方法在很长一段时间内都运行得很好,但是现在在saucy版本中我发现了一些问题。
https://bugs.launchpad.net/ubuntu/+source/core-network/+bug/1255516
为什么可以在桥接器上添加新的虚拟网络接口而不需要TAP接口?第三种方式是MACVTAP。
最后是macvtap接口。
http://virt.kernelnewbies.org/MacVTap
它复制了TUN/TAP软件接口,但以更好的方式实现。虽然不知道具体是什么方式,但似乎更好。macvtap相比第二种方式有什么优势?
哪个更好?
对此有何帮助?