Problema com iproute

1. Problema com iproute

Antônio Carlos
carlosac

(usa Ubuntu)

Enviado em 22/08/2012 - 08:35h

Olá pessoal, bom dia.

Estou precizando muito da ajuda de vocês!!!

Estou tentando resolver um problema que não estou conseguindo obter uma solução, possuo dois links e não pretendo fazer um balanceamento de carga, pretendo usar um como redundância, em em caso do primeiro cair o segunda entra em ação até o primeiro voltar.

O motivo desse processo seria pq a empresa em que trabalho possui dois links um de 30 Mbs e outro de 4Mbs. O link de 30 Mbs seria o link principal da empresa o de 4 Mbs é dedicado para FTP, mas em caso de queda do link de 30Mbs pretendo usado temporariamente não deixando a empresa sem internet para os funcionários.

Após o processo de criação das tabelas etc, aparentemente tudo funcionando quando acontece a troco da rota default, porem criei um script para fazer uma verificação do link através do ping.


ping -I eth2 www.google.com.br -c 10 (eth2 link de 30 Mbs, meu script pega o resultado do ping e caso ele seja diferente de zero não faz nada caso ele seja igual a zero ele altera a rota padrão redirecionando todo trafego para o segundo link).

Meu maior problema é que quando ele está com rota default para o link de 30 Mbs tudo funciona quando está no link de 4 Mbs o ping sempre acusa "destination host unreachable".

Segue minha regras para tabela.
# Definindo de rotas dos Link:
# link1 #1
ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2 table link1
ip route add default via 192.168.1.1 table link1

# link2 #2
ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2 table link2

#ip route add 192.168.0.0/24 via 192.168.0.1 table link2
ip route add default via 192.168.2.1 table link2

# setando link na tabela principal de roteamento
ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2
ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2

# setando a rota preferencial
ip route add default via 192.168.1.1

# regras das tabelas
ip rule add from 192.168.1.2 table link1
ip rule add from 192.168.2.2 table link2

Peço desculpas pelo posta muito grande, mas acho que foi a melhor forma de explicar.


  


2. Re: Problema com iproute

Phillip Vieira
phrich

(usa Slackware)

Enviado em 22/08/2012 - 09:28h

O certo não seria, se o resultado fosse diferente de zero para alterar a rota padrão?


Pois se o resultado de $? for igual a "0", comando foi executado com sucesso...

Se o resultado de $? for diferente de "0", houve algum erro, no caso do ping a não resposta do mesmo...


3. Re: Problema com iproute

Antônio Carlos
carlosac

(usa Ubuntu)

Enviado em 22/08/2012 - 10:25h

Olá, em relação a isso não estou tendo problemas na verdade o 0 seria em relação ao sucesso obtido, digamos que realizou 10 ping então ele obteve 9 sucessos, um pode ter sido perdido por timeout etc, mas o link está ativo.

Mas o problemas real não seria esse, seria quando eu tendo pingar pela outra interface ele sempre retorna um destino inalcançáve.
Isso quando eu seto minha rota padrão para o link2, mas minha rede fica funcionando normalmente pelo link2, porem quando tento pingar pela interface do link1 aparente mente o da destino inalcançáve. Já ao contrario funciona perfeitamente.

Não sei se ficou muito claro realmente é confuso.


4. Re: Problema com iproute

Phillip Vieira
phrich

(usa Slackware)

Enviado em 22/08/2012 - 10:29h

é, ficou um pouco complicado...


5. Re: Problema com iproute

Antônio Carlos
carlosac

(usa Ubuntu)

Enviado em 22/08/2012 - 10:48h

vamos lá.

tenho dois links.

Um de 30Mbs e outro de 4 Mbs.


minha duvida é quando estou no link1 consigo realizar um ping -I tanto pela eth1 quando pela eth2, com isso quando o link1 cai automaticamente passa para o link2 isso é feito pelo cron de 5 em 5 minutos realiza um ping pela interface eth2 se o resultado de sucesso for diferente de 0 ele não faz nada se for igual a 0 ai ele muda para o segundo link2.
Até ai tudo perfeito 100 % do jeito que eu preciso.

Depois disso que começa minha agonia.
se eu tentar realizar o mesmo processo quando a rota default está no link2 para se o link1 voltar a funcionar ele alterar a rota default para o link1 ele fica dando como como Dstination Host unreachable. Com isso eu não consigo saber quando o link1 voltou a funcionar para trocar a rota padrão para ele novamente.


acho que agora focou um pouco mais claro, o problema não está no resultado do ping, está na saída pela interface.






6. Re: Problema com iproute

Phillip Vieira
phrich

(usa Slackware)

Enviado em 22/08/2012 - 10:54h

Em suma seria isso?

Ao utilizar o link1 blz, mas quando vc alterara a rota padrão para o link2 vc não consegue voltar para o link1?


7. Re: Problema com iproute

Antônio Carlos
carlosac

(usa Ubuntu)

Enviado em 22/08/2012 - 10:58h

Mais ou menos isso, eu não consigo saber quando o link1 está ativo, com isso conseqüentemente não consigo retornar para ele.

Acho que agora foi.

o mais estranho é que quando estou no link 1 eu consigo realizar pings por ambas interfaces, já ao contrario não.


8. Re: Problema com iproute

Phillip Vieira
phrich

(usa Slackware)

Enviado em 22/08/2012 - 11:01h

Se se ao invés de você alterar a rota padrão, apenas acrescentar uma rota para o link2?


9. Re: Problema com iproute

Antônio Carlos
carlosac

(usa Ubuntu)

Enviado em 22/08/2012 - 11:05h

Saquei ideia mmuito boa, no momento que o link 1 cair eu ficaria com duas rotas?
uma pelo link 1 e outra pelo link 2.
Quando o link 1 voltar eu tiro a do link 2.

Seria isso?

Se for ai vem a duvida como colocar duas rotas defaults?


10. Re: Problema com iproute

Phillip Vieira
phrich

(usa Slackware)

Enviado em 22/08/2012 - 11:13h

mais ou menos isso, vamos entender melhor:

link1 ip 200.200.200.202 - GW 200.200.200.201

link2 ip 200.200.201.202 - GW 200.200.202.201

Vamos supor que sua rota padrão para a rede interna 10.0.0.0/24 seja o link1 ou seja:

rede 10.0.0.0/24 saindo pelo gw 200.200.200.201

vc iria adicionar uma rota (não padrão) para o segundo link:

route add net 10.0.0.0/24 gw 200.200.202.201

Acredito que assim se a rede não conseguir sair pela rota padrão, sairá pela outra rota, claro, não esqueça da regra no iptables...


11. Re: Problema com iproute

Antônio Carlos
carlosac

(usa Ubuntu)

Enviado em 22/08/2012 - 11:42h

Falou, vou dar uma testada e depois posto o resultado aqui muito obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts