encaminhar tráfego para fora de gateway diferente por rede de destino
9
Eu tenho vários gateways e gostaria de direcionar algum tráfego para diferentes gateways com base em seu destino. Acho que precisaria usar uma combinação de regras iproute2 e iptables, mas não sei por onde começar.
Alguém pode dar um exemplo?
Você provavelmente pode fazer o que quiser com ip route:
ip route add 8.8.8.8 via 10.0.0.1 dev enp3s8
ip route add 10.0.0.0/24 dev eth0
O primeiro ip route addmostra um único endereço IP, enviado uma determinada interface Ethernet (ep3s8) para o roteador do próximo salto, 10.0.0.1
A segunda rota é para uma rede inteira, 10.xyz, enviada uma determinada placa Ethernet, eth0. Essa é a "rede local", que não possui um roteador de próximo salto, está tudo no mesmo fio lógico.
Você quer ler man ip-routeantes de fazer qualquer coisa. Além disso, esteja preparado para ter que reiniciar e não faça isso remotamente. Você pode facilmente criar rotas incorretas que encerram seu acesso remoto. Eu sou a voz da experiência nesta última recomendação.
Observe que você também pode especificar gateways para blocos inteiros, `` ip route add 10.1.0.0/16 via 192.168.0.1` '
jthill
Obrigado pela sua resposta, isso ajudará a me indicar a direção certa. Vou tentar e informar você.
Walter
5
O que você está perguntando é policy-based routingou source-based routing. Há uma excelente introdução de David Schwartz neste mesmo site.
Gostaria de salientar que também existe um pequeno programa interessante, que pode ser encontrado aqui , que permite vincular aplicativos específicos a uma determinada interface. É claro que isso é fácil com aplicativos como o openssh, que tem opções para vincular ao endereço de escuta desejado. Mas essa biblioteca permite vincular até aplicativos sem essas opções (como o Firefox) a um determinado endereço IP.
Dessa forma, você pode escolher se deseja fornecer tabelas de roteamento separadas para todos os aplicativos ou substituir essas mesmas especificações por aplicativo.
Você não precisa de roteamento de política se deseja rotear por destino.
Diego Woitasen
Olá, esse também é um bom argumento, hmm, que permitirá maior flexibilidade, provavelmente mais avançada do que eu gostaria de estar neste momento. Definitivamente algo para aprender.
Em geral, você deve adicionar a regra (eu adicionei a interface eth1 apenas para fins de demonstração, ela pode ser omitida)
#ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000
aqui estão: dev eth1 - dispositivo que será usado para enviar pacotes para 170.10.0.10 - a tabela de destino 2 - tabela em que você deve atribuir prioridade às suas rotas 20000 - prioridade da regra
você pode ver sua regra
#ip ru sh
0: from all lookup local
20000: from all to 170.10.0.10 iif eth1 lookup 2
32766: from all lookup main
32767: from all lookup default
Em seguida, você deve adicionar as rotas da maneira usual, mas você deve especificar a tabela (tabela 2), onde você colocaria a rota
O que você está perguntando é
policy-based routing
ousource-based routing
. Há uma excelente introdução de David Schwartz neste mesmo site.Gostaria de salientar que também existe um pequeno programa interessante, que pode ser encontrado aqui , que permite vincular aplicativos específicos a uma determinada interface. É claro que isso é fácil com aplicativos como o openssh, que tem opções para vincular ao endereço de escuta desejado. Mas essa biblioteca permite vincular até aplicativos sem essas opções (como o Firefox) a um determinado endereço IP.
Dessa forma, você pode escolher se deseja fornecer tabelas de roteamento separadas para todos os aplicativos ou substituir essas mesmas especificações por aplicativo.
fonte
um bom lugar para ler sobre o roteamento da base de origem é o Linux Advanced Routing & Traffic Control,
você também pode ler manuais
Em geral, você deve adicionar a regra (eu adicionei a interface eth1 apenas para fins de demonstração, ela pode ser omitida)
aqui estão:
dev eth1 - dispositivo que será usado para enviar pacotes
para 170.10.0.10 - a
tabela de destino 2 - tabela em que você deve atribuir
prioridade às suas rotas 20000 - prioridade da regra
você pode ver sua regra
Em seguida, você deve adicionar as rotas da maneira usual, mas você deve especificar a tabela (tabela 2), onde você colocaria a rota
para ver suas rotas, você deve executar
fonte