Problema do roteador Linux

7

Eu tenho um roteador baseado em Linux com quatro interfaces (cada com sua própria sub-rede privada).

Quando conecto diretamente um dispositivo diretamente (ou seja, nenhum switch, apenas um patch cable) a uma interface e outro dispositivo diretamente a outro, como abaixo, o roteador funciona perfeitamente.

   DEVICE1
192.168.8.11 ------- 192.168.8.254 
                         ROUTER
                     10.58.129.254 ------- DEVICE2
                                         10.58.129.1

Quando conecto o roteador aos nossos switches, como abaixo, o roteador não funciona.

   DEVICE1
192.168.8.11 ----------- switch1
                            |
                         switch2
                            |
                         switch3
                            |
                      192.168.8.254 
                         ROUTER
                      10.58.129.254 -------- switch3
                                                |
                                             DEVICE2
                                           10.58.129.1 

Todos os switches são Camada 3, o Switch1 (Dell PowerConnect 3548P) tem uma conexão de fibra com o Switch2 (Dell PowerConnect 6224F), que é o nosso principal switch que lida com o roteamento entre a maioria das VLANs. Isso está conectado via fibra ao Switch3 (Dell PowerConnect 6224).

O roteamento no comutador central não está habilitado nas duas VLANs (192.168.8.11 ou 10.58.129.254). A razão para isso é que o nosso switch principal não suporta roteamento baseado em políticas, daí a razão por trás dessa caixa do Linux para executar o roteamento nessas VLANs.

Com o roteador conectado por meio dos switches, do Device1, posso fazer o ping da interface 192.168.8.254 no roteador Linux, mas não posso fazer ping na outra interface (10.58.129.254).

Configuração / diagnóstico do 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

Diagnóstico do roteador

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

Diagnósticos do Device1

(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).

Assim, a partir do dispositivo1, executando ping 10.58.129.254 e com tcpdump em execução na interface 192.168.8.254 do roteador Linux, posso ver solicitações e respostas de eco 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

Mas a resposta nunca retorna ao dispositivo1.

Alguém sabe qual é o problema? tcpdump em eth2,3 & 4 também revela a seguinte saída (eu não a vi na eth0, que é a única VLAN da acima que é roteada pelo switch do core):

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

Eu entendo que essa é uma árvore de abrangência, mas não sei se isso é ruim ou não. Isso oferece alguma pista? Para informações, o endereço de hardware na mensagem STP acima é o do switch3.

    
por Bryan 09.05.2011 / 18:10

2 respostas

3

Na sua segunda topologia, você parece ter uma sub-rede dividida. 192.168.8.0/24 abrange vários switches que você declara como camada 3. Em sua saída do switch2, você tem uma rota estática para este / 24 apontando para uma única interface:

S      192.168.8.0/24 [1/0] via 10.58.3.254,   vlan 3

Isso significa que o comutador de acionamento de tráfego2 destinado a 192.168.8.254 ou 192.168.8.11 será encaminhado para o mesmo próximo salto. Pelo menos um desses destinos

Para que isso funcione como você pretende, você tem algumas opções:

  1. Configure o switch [123] como switches da camada 2, de modo que o 192.168.8.0/24 seja novamente um único domínio de broadcast.
  2. Configure redes separadas em cada um dos links: {device1 - > switch1, switch1 - > switch2, etc}
por 10.05.2011 / 22:50
0

Devido a não conseguir resolver este problema, está a ser utilizada uma abordagem diferente que simplificará enormemente a configuração. Em vez de rotear algumas VLANs pelo comutador central e outras por uma caixa Linux, agora estou permitindo que o comutador central execute todo o roteamento entre VLANs, com as ACLs executando a segregação que dois roteadores teriam fornecido.

Vou mover a caixa do Linux para o gateway padrão para o mundo externo para toda a rede, com a ajuda do iproute2, para executar roteamento baseado em IP de origem, para que os sistemas corretos usem os gateways corretos.

    
por 10.05.2011 / 20:42