Linux路由器問題
我有一個基於 Linux 的路由器,它有四個介面(每個介面都有自己的私有子網)。
當我直接將一個設備*(即沒有交換機,只是一根跳線)直接連接到一個介面,將另一台設備直接連接*到另一個介面時,如下所示,那麼路由器就可以正常工作了。
DEVICE1 192.168.8.11 ------- 192.168.8.254 ROUTER 10.58.129.254 ------- DEVICE2 10.58.129.1
當我將路由器與我們之間的交換機連接時,如下所示,路由器不工作。
DEVICE1 192.168.8.11 ----------- switch1 | switch2 | switch3 | 192.168.8.254 ROUTER 10.58.129.254 -------- switch3 | DEVICE2 10.58.129.1
所有交換機都是第 3 層,Switch1 (Dell PowerConnect 3548P) 與 Switch2 (Dell PowerConnect 6224F) 有光纖連接,這是我們處理大多數 VLAN 之間路由的核心交換機。它通過光纖連接到 Switch3 (Dell PowerConnect 6224)。
兩個 VLAN(192.168.8.11 或 10.58.129.254)中的任何一個都未啟用核心交換機上的路由。這是因為我們的核心交換機不支持基於策略的路由,因此這個 Linux 機器背後的原因是在這些 VLAN 上執行路由。
通過交換機連接路由器,從 Device1,我可以 ping Linux 路由器上的介面 192.168.8.254,但無法 ping 另一個介面(10.58.129.254)。
Switch2 配置/診斷
switch2#show ip route Route Codes: R - RIP Derived, O - OSPF Derived, C - Connected, S - Static B - BGP Derived, IA - OSPF Inter Area E1 - OSPF External Type 1, E2 - OSPF External Type 2 N1 - OSPF NSSA External Type 1, N2 - OSPF NSSA External Type 2 S 0.0.0.0/0 [50/0] via 10.58.3.16, vlan 3 C 10.58.3.0/24 [0/0] directly connected, vlan 3 C 10.58.4.0/24 [0/0] directly connected, vlan 4 C 10.58.5.0/24 [0/0] directly connected, vlan 5 C 10.58.9.0/24 [0/0] directly connected, vlan 9 C 10.58.10.0/24 [0/0] directly connected, vlan 10 C 10.58.11.0/24 [0/0] directly connected, vlan 11 C 10.58.12.0/24 [0/0] directly connected, vlan 12 S 10.58.64.0/24 [40/0] via 10.58.3.17, vlan 3 S 10.58.128.0/24 [40/0] via 10.58.3.254, vlan 3 S 10.58.129.0/24 [1/0] via 10.58.3.254, vlan 3 S 192.168.8.0/24 [1/0] via 10.58.3.254, vlan 3 switch2#ping 10.58.129.254 Pinging 10.58.129.254 with 64 bytes of data: ----10.58.129.254 PING Statistics---- 4 packets transmitted,0 packets received,100% packet loss round-trip (ms) min/avg/max = 0/NaN/0 switch2#ping 192.168.8.254 Pinging 192.168.8.254 with 64 bytes of data: ----192.168.8.254 PING Statistics---- 4 packets transmitted,0 packets received,100% packet loss round-trip (ms) min/avg/max = 0/NaN/0
路由器診斷
router# traceroute -d 192.168.8.11 traceroute to 192.168.8.11 (192.168.8.11), 30 hops max, 60 byte packets 1 192.168.8.11 (192.168.8.11) 0.237 ms 0.222 ms 0.211 ms router# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.58.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.58.128.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3 10.58.129.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth4 router# ping 192.168.8.11 PING 192.168.8.11 (192.168.8.11) 56(84) bytes of data. 64 bytes from 192.168.8.11: icmp_seq=1 ttl=128 time=2.23 ms 64 bytes from 192.168.8.11: icmp_seq=2 ttl=128 time=0.237 ms
設備 1 診斷
(device1)c:\>route print =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...bc 30 5b d8 41 c3 ...... Broadcom NetXtreme 57xx Gigabit Controller - Pac ket Scheduler Miniport =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.8.254 192.168.8.11 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.8.0 255.255.255.0 192.168.8.11 192.168.8.11 20 192.168.8.11 255.255.255.255 127.0.0.1 127.0.0.1 20 192.168.8.255 255.255.255.255 192.168.8.11 192.168.8.11 20 224.0.0.0 240.0.0.0 192.168.8.11 192.168.8.11 20 255.255.255.255 255.255.255.255 192.168.8.11 192.168.8.11 1 Default Gateway: 192.168.8.254 =========================================================================== Persistent Routes: None (device1)c:\>tracert -d 10.58.129.254 Tracing route to 10.58.129.254 over a maximum of 30 hops 1 * * * Request timed out. 2 * * * Request timed out. 3 * * * Request timed out. 4 * * * Request timed out. (etc. until 30 hops).
所以從 device1, running
ping 10.58.129.254
和 withtcpdump
running 在 Linux 路由器的 192.168.8.254 介面上,我可以看到 ICMP 回應要求和回复router# tcpdump -i eth4 17:08:08.326221 IP 192.168.8.11 > 10.58.129.254: ICMP echo request, id 512, seq 63746, length 40 17:08:08.326240 IP 10.58.129.254 > 192.168.8.11: ICMP echo reply, id 512, seq 63746, length 40
但回复永遠不會返回到 device1。
有誰知道問題可能是什麼?eth2,3 & 4 上的 tcpdump 還顯示以下輸出(我在 eth0 上沒有看到它,它是上面的一個由核心交換機路由的 VLAN):
19:49:16.246286 STP 802.1w, Rapid STP, Flags [Learn, Forward], bridge-id 8000.a4:ba:db:69:74:91.8014, length 43 19:49:18.257007 STP 802.1w, Rapid STP, Flags [Learn, Forward], bridge-id 8000.a4:ba:db:69:74:91.8014, length 43
我知道這是生成樹,但我不知道這是否是一件壞事。這是否提供任何線索?請注意,上述 STP 消息中的硬體地址是 switch3 的硬體地址。
在您的第二個拓撲中,您似乎有一個拆分子網。192.168.8.0/24 跨越多個交換機,您聲明它們是第 3 層。在交換機 2 的輸出中,您有一個指向單個介面的 /24 靜態路由:
S 192.168.8.0/24 [1/0] via 10.58.3.254, vlan 3
這意味著命中交換機 2 的發往 192.168.8.254 或 192.168.8.11 的流量將被轉發到相同的下一跳。至少其中一個目的地
為了使其按您的意願工作,您有幾個選擇:
- 配置交換機$$ 123 $$作為第 2 層交換機,因此 192.168.8.0/24 再次成為單個廣播域。
- 在每個鏈路上配置單獨的網路:{device1 -> switch1, switch1 -> switch2, etc}