Networking
kvm上的路由網路
Kvm-networking 有很多配置。但我無法從主人或外面找到客人。我正在開發 Ubuntu 11.04。在來賓上,我有一個帶有 dhcp 的 WindowsXp。
我希望來賓與主機位於同一網路中。我嘗試使用 ip 別名
我已經在 /etc/network/interfaces 中設置了橋接網路
auto eth0 iface eth0 inet manual auto eth0:1 iface eth0:1 inet static address 192.168.0.11 netmask 255.255.255.0 auto br0 iface br0 inet static address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
然後更改 /etc/libvirtd/qemu/network/default.xml 中的預設網路
<network> <name>default</name> <uuid>831a93e1-0b84-0b0e-9ca2-23c407983968</uuid> <forward mode='route'/> <bridge name='virbr0' stp='on' delay='0' /> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.100' end='192.168.122.254' /> <host mac='52:54:00:7c:df:88' name='vm' ip='192.168.122.99' /> </dhcp> </ip> </network>
/etc/libvirt/qemu/vm.xml 中的網路
<interface type='network'> <mac address='52:54:00:7c:df:88'/> <source network='default'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>
來自 dhcp 的訪客獲得正確的 IP。最終將流量從外部介面引導到內部並返回
sudo iptables -t nat -A PREROUTING -d 192.168.0.11 -j DNAT --to-destination 192.168.122.99 sudo iptables -t nat -A POSTROUTING -d 192.168.122.99 -j SNAT --to-source 192.168.0.11
所以最後的配置是這樣的:
$> brctl show bridge name bridge id STP enabled interfaces br0 8000.0026b902076d no eth0 virbr0 8000.fe54007cdf88 yes vnet0 $> route Tabella di routing IP del kernel Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 br0 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0 link-local * 255.255.0.0 U 1000 0 0 br0 default 192.168.0.1 0.0.0.0 UG 100 0 0 br0 $> ifconfig br0 Link encap:Ethernet HWaddr 00:26:b9:02:07:6d indirizzo inet:192.168.0.10 Bcast:192.168.0.255 Maschera:255.255.255.0 eth0 Link encap:Ethernet HWaddr 00:26:b9:02:07:6d indirizzo inet6: fe80::226:b9ff:fe02:76d/64 Scope:Link eth0:1 Link encap:Ethernet HWaddr 00:26:b9:02:07:6d indirizzo inet:192.168.0.11 Bcast:192.168.0.255 Maschera:255.255.255.0 virbr0 Link encap:Ethernet HWaddr fe:54:00:7c:df:88 indirizzo inet:192.168.122.1 Bcast:192.168.122.255 Maschera:255.255.255.0 vnet0 Link encap:Ethernet HWaddr fe:54:00:7c:df:88 indirizzo inet6: fe80::fc54:ff:fe7c:df88/64 Scope:Link
怎麼了?或者我如何設置在主機之外可見的客人?
前段時間我碰到過這個。但是似乎沒有辦法在別名介面上設置網橋,比如
eth0:1
. 使用真實界面eth0
。auto eth0 iface eth0 inet static auto br0 iface br0 inet static bridge_ports eth0 address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.1 broadcast 192.168.0.255 bridge_stp off bridge_fd 0 bridge_maxwait 0
此外,地址、網路遮罩、網關和廣播值是介面應具有的最低配置。它可能使用較少的值,但可能會導致奇怪的網路行為。
我還記得,您根本不必編輯 default.xml。您只需要確保每個 KVM Guest 都根據您的需要設置網路介面。
<interface type='bridge'> <mac address='00:01:b4:02:00:db'/> # change per guest <source bridge='br0'/> # the name of your source bridge <target dev='vnet0'/> # the name, the network interface has for the guest </interface>
設置很複雜,無法涵蓋此處的所有類型,例如 DHCP 與靜態設置。你查看過 KVM 上的 Ubuntu 文件嗎?幫助我很多。