
Eu tenho a seguinte tabela de roteamento
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.151
10.0.10.0/24 dev eth1 proto kernel scope link src 10.0.10.151
default via 10.0.1.1 dev eth0
Tenho dois links, um passa por uma LAN e, pelo 10.0.1.1 sai para a Internet. O outro é um roteador ADSL (10.0.10.1) conectado diretamente à eth1.
Se eu conectar de fora ao endereço IP externo 10.0.10.1, recebo um tempo limite. Se eu alterar a rota padrão para 10.0.10.1, a conexão externa ao endereço IP externo 10.0.10.1 funcionará. Então isso parece um problema de roteamento (os pacotes vêm de 10.0.10.1, mas saem de 10.0.1.1, sendo a rota padrão), mas não tenho certeza de como resolver isso.
Na verdade, quero que a rota padrão seja 10.0.1.1, só quero responder às solicitações para o IP externo de 10.0.10.1 através da mesma interface.
Responder1
você precisa usar tabelas de roteamento avançadas oferecidas pelo iproute2. Você configura 2 tabelas e envia todo o tráfego vindo de um ip para uma tabela específica, nesta tabela você pode definir um gateway padrão. Para definir a rota padrão global, basta preferir uma interface à outra por meio de métricas.
um exemplo:
- adicionando os gateways padrão às tabelas:
ip route add default via 10.0.1.1 tabela 101
ip route add default via 10.0.10.1 tabela 102
- adicione uma regra para que todo tráfego proveniente de um IP específico seja enviado para a tabela:
adição de regra de ip de 10.0.1.151 pesquisa 101
adição de regra de ip de 10.0.10.151 pesquisa 102
- adicione a métrica qual gateway preferir:
rota ip adicionar padrão via 10.0.1.151 métrica 1000
rota ip adicionar padrão via 10.0.10.151 métrica 2000
espero que isso ajude você a começar :)