Rotas para dois links - resolvido

Iniciado por jefer_duarte, 30 de Julho de 2012, 23:45

tópico anterior - próximo tópico

jefer_duarte

Ola amigos,
estou com uma dificuldade com dois links de internet que estao ligados no meu servidor.
o meu link1 é da Oi e serve apenas para conexão com o servidor, por ssh;
o meu link2 é da GVT usado para a rede interna e este possui uma rota default;

meu problema esta com o link1, se eu não habilitar uma rota default nele, eu não consigo pingar e nem conectar via ssh, só apenas pelo
link2 que ja possui esta rota padrão. Como que eu poderia habilitar duas rotas para isso ? pois só achei tutoriais para balancear links e não é o que procuro... Me desculpem com essa dúvida fraca, mas ainda estou aprendendo. Obrigado

zekkerj

Os links chegam diretamente no servidor, ou passam por outra máquina antes disso? Talvez em um switch?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

jefer_duarte

Ola Zekkerj,
eles chegam diretamente ao servidor, tentei diversas formas com ip rule mas não tem jeito de funcionar. só funciona se definir uma rota padrão pro link da oi

zekkerj

Há alguma regra de NAT nesse servidor?

Os links chegam no servidor com IP público, ou de rede privada?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zekkerj

Fiquei pensando aqui... eu imagino que o problema que acontece é o seguinte: mesmo chegando pelo segundo link, seu servidor não tem rota específica pro endereço de origem das requisições de conexão SSH. Assim, a reação normal dele é encaminhar estes pacotes para a rota default.

Eu vejo duas formas de resolver esse problema: por NAT ou por Policy Routing.

Por NAT, você configuraria o modem da conexão da Oi para o modo router. Configuraria também esse roteador para repassar as conexões SSH para o endereço da sua máquina, no esquema de "servidor virtual". Normalmente nesse esquema, o roteador substitui o endereço de origem do pacote pelo próprio endereço; isso faz com que as respostas retornem forçosamente para o roteador, que as encaminhará de volta pela mesma conexão.

Na solução por Policy Routing, você vai usar uma regra redirecionando todo tráfego que saia de sua máquina com o endereço de origem da conexão Oi, forçando-o a sair pela própria conexão Oi. Esclarecendo, normalmente o roteamento é feito levando em conta apenas o endereço de destino dos pacotes, e você vai fazer com que seja levado em conta apenas o endereço de origem.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

jefer_duarte

Eu apliquei esta regra no começo do meu script, mas não funcionou.
iptables -t nat -A OUTPUT -s 200.135.119.22 -j DNAT --to 200.135.119.22

É este tipo de regra mesmo ?

A Oi me liberou um bloco de ips com 6 ips.

zekkerj

Não, não é essa regra. Você vai precisar de regras de policy routing, isso não é feito com o iptables, mas sim com o comando "ip".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zekkerj

Eu acho que é algo parecido com isto:

sudo ip rule add from 189.189.189.189 table 200
sudo ip route add table 200 dev eth9

Onde "189.189.189.189" seria o endereço da conexão Oi; "200" seria um número de tabela de roteamento à sua escolha, entre 1 e 250; e "eth9" seria a interface onde a conexão Oi estaria ligada.

Como eu nunca fiz essa configuração, não posso ajudar muito além disso.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

cpaynes

#8
Ola,
o Zekkerj tem razão,

porem tem um pequeno detalhe nas regras citadas:

adiciona uma rota para a rede do teu link da oi:

ip rule add from 189.189.189.189/29 table 200
onde o 189.189.189.189 é a rede do teu bloco de IP e o 29 a mascara.

e na outra regra altera para esta:
ip route add default via 189.189.189.1 dev eth9 table 200
onde 189.189.189.1 é o GW do link da oi.

E a rota default do link GVT não precisa alterar nada, deixa como default, pois acabamos de dizer que apenas a rede do link da oi vai seguir pelo GW especificado ..

Assim creio que vai funcionar pois já passei por isso em um cliente e lá esta ok.
Abraço!


jefer_duarte

Citaradiciona uma rota para a rede do teu link da oi:

ip rule add from 189.189.189.189/29 table 200
onde o 189.189.189.189 é a rede do teu bloco de IP e o 29 a mascara.

e na outra regra altera para esta:
ip route add default via 189.189.189.1 dev eth9 table 200
onde 189.189.189.1 é o GW do link da oi.

Boa tarde pessoal,

depois de muito quebrar a cabeça consegui resolver,
é bem o que o cpaynes disse!
Obrigado Zekkerj e cpaynes.