Você precisa de roteamento avançado, roteamento de origem neste caso. Você precisa de duas tabelas de roteamento (uma para cada ISP) e pelo menos uma regra para a seleção de tabelas.
- Adicione duas linhas a
/etc/iproute2/rt_tables
. Os números não importam; isto é apenas para usar nomes em vez disso. Vamos chamar as tabelas isp_100 e isp_200. -
Defina as tabelas de roteamento:
ip route add default via 10.100.36.1 table isp_100 ip route add 10.100.36.0/29 dev eth0 src 10.100.36.2 table isp_100 ip route add default via 10.200.36.1 table isp_200 ip route add 10.200.36.0/29 dev eth3 src 10.200.36.2 table isp_200
-
Defina as regras para a seleção de tabelas
ip rule add type unicast iif eth1 priority 100 table isp_100 ip rule add type unicast iif eth2 priority 101 table isp_200
Você pode usar from 10.45.13.0/27
em vez de iif eth1
. Não faz diferença se nada além de 10.45.13.0/27 estiver atrás de eth1. Os nomes das interfaces podem mudar. Mas se mais tarde uma sub-rede por trás de 10.45.13.0/27 for criada, então from 10.45.13.0/27
não funcionará mais. Por outro lado: Nesse caso, o roteamento neste sistema teria que ser adaptado de qualquer maneira. Então faça sua escolha. O mais importante é que você se lembra do que precisa adaptar em caso de alterações na rede (ou no hardware do sistema).
Sua tabela de roteamento principal define como o próprio sistema (pacotes gerados localmente) se conecta à Internet.
Você pode precisar de um script que execute os comandos ip route
toda vez que o subsistema de rede for reiniciado. Minha experiência com o openSUSE é que a reinicialização do subsistema não afeta as configurações ip rule
. Então, provavelmente, isso precisa ser feito apenas uma vez após a inicialização do sistema.
Você pode verificar as regras atuais por ip rule
e as tabelas por ip route table isp_100
.