A rota padrão não está na LAN

2

Eu tenho uma rede que, em princípio, é assim:

H1---\           /----Inet1
H2---->---GW1---<
H3---/           \----GW2-----Inet2
  • H1 e H2 = Hosts que precisam acessar a Internet com o GW1
  • Inet1 = ligação à Internet através de ligação 3G
  • Inet2 = link de 5 GHz para a Internet (nem sempre para cima)
  • GW1 = Funciona como um roteador, escolhendo automaticamente a "melhor" conexão entre Inet1 e Inet2 (o último via GW2).
  • GW2 = roteador wifi de 5 GHz

E aqui está o problema: O H3 só precisa de acesso à Internet quando o Inet2 está ativo. O que eu estava pensando em fazer era uma tabela de roteamento que se parece com isso:

  • rota para o GW2 via GW1
  • a rota padrão é via GW2

Eu primeiro configurei a rota para o GW2 via GW1 sem nenhum problema. Mas quando eu tento

route add default gw 1.2.3.4

(1.2.3.4 sendo o IP do GW2), ele reclama "SIOCADDRT: Nenhum desses dispositivos" É o problema que o padrão gw que eu estou tentando definir não é alcançável diretamente? Existe uma abordagem diferente que me permita alcançar isso?

Uma abordagem alternativa (e hipotética): Como o H3 estará usando um IP estático, é possível fazer alguma mágica com o iptables no GW1 para encaminhar qualquer pacote do H3 para o GW3, "enganando" "H3 usando o GW2 como seu roteador padrão?

PS: Esta questão é uma questão de acompanhamento para esta.

    
por Jarmund 08.10.2012 / 00:48

2 respostas

5

Sua abordagem alternativa pode ser obtida usando o roteamento baseado em políticas. Algo ao longo das linhas de (comandos devem ser executados no GW1):

# Create rule for matching the source address in route table 999
ip rule add from 1.2.3.4/32 table 999
# Add default router to the table
ip route add default via <GW2> table 999

Eu não tenho a possibilidade de testar os comandos, mas eles devem estar corretos. As regras de roteamento na tabela 999 não são visíveis no% normal$ ip route show - é necessário anexar o ID da tabela: $ ip route show table 999 .

    
por 08.10.2012 / 04:40
3

Como sua pergunta é simples, a resposta também será clara em detalhes:

  1. Defina o gateway padrão do H3 para o GW1.
  2. O GW1 sempre roteia o tráfego de H3 para GW2.

A "inteligência" de como rotear pacotes deve residir nos roteadores, não nas caixas finais. Portanto, seu gateway padrão deve ser um diretamente acessível na mesma sub-rede; esse gateway deve descobrir o que fazer com os pacotes para levá-los aonde quer que eles devam ir.

    
por 08.10.2012 / 01:02