Linux
libvirt/KVM 中帶有兩個 NIC 適配器的路由表
我在我的 libvirt 和帶有兩個介面的新來賓中創建了一個虛擬 NAT 網路(192.168.100.0/24 網路)——一個在這個網路中,一個作為橋接(10.34.1.0/24 網路)到本地 LAN。原因是我需要有自己的虛擬網路來進行 DHCP/TFTP/DNS 測試**,並且仍然想**從 LAN 外部訪問我的訪客。在這兩個網路上,我都有工作 DHCP,都給他們 IP 地址。
當我設置 NAT 埠轉發(例如 ssh)時,我可以連接到 eth0(虛擬網路),一切都很好。
但是當我嘗試通過橋接介面訪問 eth1 時,我沒有任何反應。我想我的路由表有問題 - 傳出數據包被路由到虛擬 NAT 網路(它可以訪問我連接的機器 - 我可以 ping 它)。但我不確定這個設置是否正確。我想我需要在我的路由表中添加一些東西。
# ifconfig eth0 Link encap:Ethernet HWaddr 52:54:00:B4:A7:5F inet addr:192.168.100.14 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: fe80::5054:ff:feb4:a75f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:16468 errors:0 dropped:27 overruns:0 frame:0 TX packets:6081 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:22066140 (21.0 MiB) TX bytes:483249 (471.9 KiB) Interrupt:11 Base address:0x2000 eth1 Link encap:Ethernet HWaddr 52:54:00:DE:16:21 inet addr:10.34.1.111 Bcast:10.34.1.255 Mask:255.255.255.0 inet6 addr: fe80::5054:ff:fede:1621/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:34 errors:0 dropped:0 overruns:0 frame:0 TX packets:189 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4911 (4.7 KiB) TX bytes:9 # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.34.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 eth0
我嘗試連接的網路不同於管理程序連接到的網路:10.36.0.0。但它可以從該網路訪問。所以我嘗試添加新的路由規則:
route add -net 10.36.0.0 netmask 255.255.0.0 dev eth1
它不工作。我認為設置正確的界面就足夠了。讓我的數據包通過需要什麼?
所以問題出在 NAT 上。我將我的預設路由更改為在第二個(橋接)介面上並且它有效。順便說一句,如果你真的需要兩條預設路由,這是可能的:
http://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/