Rota pacotes encaminhados de forma diferente da saída

2

Estou usando o iptables para encaminhar pacotes SRCNAT (especificamente MASQUERADE) de uma fonte específica. Eu quero rotear pacotes de saída (iniciados por este computador) de forma diferente daqueles que estão sendo encaminhados (rota padrão diferente). Como faço isso?

    
por Duncan X Simpson 10.07.2017 / 05:37

2 respostas

1

Uma maneira é marcar o tráfego no iptables e corresponder a uma rota de saída com o roteamento de políticas:

digamos que você tenha gateway1 e gateway2 na mesma LAN ...

ip route flush table 3
ip route add table 3 <lan net>
ip route add default via <gateway1>

ip route flush table 4
ip route add table 4 <lan net>
ip route add default via <gateway2>

Marque o tráfego no iptables:

iptables -t mangle -A PREROUTING   -s 10.0.0.0/24 -j MARK --set-mark 3
iptables -t mangle -A PREROUTING   -s 10.1.0.0/24 -j MARK --set-mark 4

Você pode combinar o que quiser, endereço de origem, endereço de destino ou porta, etc ...

Como você está reescrevendo explicitamente o IP de origem no iptables em vez de confiar em um IP de gateway dinâmico, provavelmente desejará usar o SNAT em vez do MASQUERADE. Veja Diferenças entre SNAT e MASQUERADE

    
por 26.07.2017 / 00:03
1

Edite o arquivo /etc/sysctl.conf e adicione / edite a opção "net.ipv4.ip_forward".

net.ipv4.ip_forward=1

Para alterações imediatas, execute:

sysctl net.ipv4.ip_forward=1

Regras do iptables:

iptables -A FORWARD -i input_dev -j ACCEPT
iptables -t nat -A POSTROUTING -o output_dev --src src_ip -j MASQUERADE
    
por 19.07.2017 / 17:04