Linux

Linux路由器問題

  • May 10, 2011

我有一個基於 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, runningping 10.58.129.254和 with tcpdumprunning 在 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 的流量將被轉發到相同的下一跳。至少其中一個目的地

為了使其按您的意願工作,您有幾個選擇:

  1. 配置交換機$$ 123 $$作為第 2 層交換機,因此 192.168.8.0/24 再次成為單個廣播域。
  2. 在每個鏈路上配置單獨的網路:{device1 -> switch1, switch1 -> switch2, etc}

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