Linux

libvirt/KVM 中帶有兩個 NIC 適配器的路由表

  • April 10, 2012

我在我的 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/

引用自:https://serverfault.com/questions/377346