Tentando usar o roteamento de origem em duas interfaces diferentes

1

Eu defini as seguintes regras:

-A POSTROUTING -j SNAT --to-source [publicip]
-A POSTROUTING -j SNAT -d 192.168.0.0/24 --to-source 192.168.0.6

Basicamente, quero apenas que a rede privada passe por 192.168.0.6. No entanto, apenas uma rede funciona. Com essa configuração, apenas a rede pública funciona. Existe uma maneira de conseguir o que eu quero?

    
por Devon 03.02.2015 / 05:41

2 respostas

1

As regras do iptables precisam ser configuradas na ordem de regras mais específicas antes de menos específico.

A ordem certa deve ser:

-A POSTROUTING -j SNAT -d 192.168.0.0/24 --to-source 192.168.0.6
-A POSTROUTING -j SNAT --to-source [publicip]

O artigo da Wikipédia sobre iptables explica bem isso e o fluxo de pacotes através de correntes e tabelas.

The packet continues to traverse the chain until either: 1. a rule matches the packet and decides the ultimate fate of the packet, for example by calling one of the ACCEPT or DROP, or a module returning such an ultimate fate [...]

    
por 03.02.2015 / 23:05
0

Resolvido este problema. A ordem importa aparentemente. Definir a rede privada aparece primeiro para corrigir o problema. Eu também adicionei 0.0.0.0/0, tenho certeza que esse é o padrão, então eu não acho que tenha mudado nada, mas eu não estou testando para descobrir.

-A POSTROUTING -j SNAT -d 192.168.0.0/24 --to-source 192.168.0.6
-A POSTROUTING -j SNAT -d 0.0.0.0/0 --to-source [publicip]
    
por 03.02.2015 / 06:08