2 intervalos de ip / 1 nic OU por que um intervalo de ip segue a rota padrão antes das rotas locais

1

Atualizado na parte inferior

Estou usando o Centos como roteador e acabei de substituir o sistema de roteamento no trabalho. Eu tenho dois roteadores para enviar dados. Na maioria das vezes, está funcionando. Em um roteador eu tenho 2 intervalos de rede que estão no mesmo nic (eth1). Temos um servidor em um intervalo, e qualquer um no outro não pode SSH para ele. Mas, pode ser pingado.

Aqui está um layout rápido:

Link da Internet:

eth0 - 192.168.144.50 (link between routers)
eth1 - 10.10.10.254 - 255.255.254.0 (10.10.10.x and 10.10.11.x ranges)
eth2 - internet

Roteador 2:

eth0 - 192.168.144.24 (link between routers)
eth1 - 98.0.0.1 & 10.98.0.1 ranges (yes, I know 98.0.0.0 is not for private use, this is a legacy setup that we haven't been able to remove yet)

Aqui está a impressão do ip route :

98.0.0.0/24 dev eth1  proto kernel  scope link  src 98.0.0.1
192.168.144.0/24 dev eth0  proto kernel  scope link  src 192.168.144.24
10.98.0.0/24 dev eth1  proto kernel  scope link  src 10.98.0.1
default via 192.168.144.50 dev eth0

O servidor está no 98.0.0.6. Eu tenho um laptop rodando em 10.98.0.165. Eu recebo uma resposta do comando: ping 98.0.0.6. Mas, quando eu tento ssh, eu não recebo nada. Ao fazer alguns comandos tcpdump em meus roteadores, estou vendo que os pacotes para o comando ssh estão indo do laptop para o roteador da internet (192.168.144.50) e de volta para o roteador correto.

Minha lista de iptables está vazia. Você pode ver minha saída de rota ip acima. Alguma ideia? Eu estive encarando isso o dia todo. A maneira que eu entendo, é que o roteador deve enviar o pacote de volta através de eth1 para 98.0.0.6 para pegar. Obrigado.

Edit: Arranhou a parte de salto. Percebi que estava vendo o tráfego ssh da minha sessão ssh no roteador e o atribuí ao meu pedido ssh.

Atualizar Eu separei minha configuração. Agora 98.0.0.x está em eth1 e 10.98.0.x está em eth2. O que estou vendo não faz muito sentido.

Quando faço ping no servidor 98.0.0.6 do meu laptop 10.98.0.165, recebo uma resposta. A rota que está tomando é estranha. Ele passa pela rota padrão para 192.168.144.50 (roteador de internet) e volta para 98.0.0.6. (o tcpdump na eth0 do roteador da internet achou isso)

Um petisco. Quando eu comecei o projeto, eu estava tentando fazer o roteamento de políticas para fazer funcionar 2 provedores de internet. Existe algo relacionado que poderia estar fazendo isso?

Aqui está meu layout atualizado para o segundo roteador

eth0 - 192.168.144.24 (router link)
eth1 - 98.0.0.1 / 24
eth2 - 10.98.0.1 /24

e ip route show

98.0.0.0/24 dev eth1  proto kernel  scope link  src 98.0.0.1
192.168.144.0/24 dev eth0  proto kernel  scope link  src 192.168.144.24
10.98.0.0/24 dev eth2  proto kernel  scope link  src 10.98.0.1
default via 192.168.144.50 dev eth0
    
por B Ronk 18.02.2013 / 21:28

2 respostas

0

Eu encontrei a resposta. Eu adicionei NAT a cada nic:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

Depois que fiz isso, tudo começou a funcionar corretamente. Obrigado a todos!

    
por 22.02.2013 / 17:10
0

Como você está dizendo que está recebendo respostas de ping do servidor, pode ser possível que as regras do iptables sejam aplicadas em seu servidor, para que o servidor deixe cair a conexão ssh.

Se você estiver autorizado a ver a regra de iptables do servidor, verifique-a. Haveria uma regra para soltar a conexão ssh.

    
por 19.02.2013 / 05:43