Eu tenho duas redes NAT conectadas por meio de um túnel ponto-a-ponto da seguinte forma:
| Machine A | | Machine B |
| 1.2.3.4 |<-10.101.3.2-------tun------10.101.3.1-> | 4.5.6.7 |
| 10.110.0.1 | | 10.100.1.1 |
-----+-------- --------+-----
| |
[ 10.110.1.0/24 net ] [ 10.100.0.0/16 net]
A máquina A tem um IP público em eth0
e um IP privado 10.110.1.1
em vmbr0
e está conectado pela Internet através de uma VPN ptp com a Máquina B, que tem um IP público em en0
e IP privado em en1
(e várias outras redes privadas)
Existem clientes em ambas as LANs usando o NAT com dois IPs públicos. Isso funciona bem. (É feito usando iptables na máquina A e pfSense na máquina B)
O roteamento é configurado de tal forma que a Máquina A pode efetuar o ping do IP privado da máquina B 10.100.1.1
e pode acessar todos os hosts na rede B 10.100.0.0/16
. Da mesma forma, a Máquina B (e todos os hosts na rede B) pode acessar a Máquina A e todos os hosts na Rede A 10.110.1.0/16
No entanto, os hosts na Rede A não podem estabelecer conexões com hosts na rede B (E.G. 10.110.1.2
não pode fazer ping nem SSH para 10.100.10.50
)
Eu suspeito isso tem algo a ver com a configuração do iptables em A, porque o SSH de 10.100.10.50
to 10.110.1.2
funciona, mas não consigo SSH em a direção inversa. Isso me diz que minha regra FILTER iptables para RELATED,ESTABLISHED
funciona, mas de alguma forma eu suspeito que a máquina A está tentando NAT e use eth0
para novas conexões.
Eu adicionei ACCEPT destination 10.100.0.0/16
iptables regras em todos os lugares que eu achei que precisavam, e então, mesmo em lugares que eu não achei que eles eram necessários quando as coisas não funcionavam, e ainda não consegui conexões de saída da rede A para a rede B em funcionamento.
Como posso conectar corretamente duas redes privadas NAT através de um túnel ponto-a-ponto usando o iptables?
Informação adicional:
iptables na máquina A:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 10.100.0.0/16
DNAT tcp -- anywhere anywhere tcp dpt:http to:10.110.1.3:80
DNAT tcp -- anywhere anywhere tcp dpt:https to:10.110.1.3:443
DNAT tcp -- anywhere anywhere tcp dpt:xmpp-client to:10.110.1.4:5222
DNAT tcp -- anywhere anywhere tcp dpt:5281 to:10.110.1.4:5281
DNAT tcp -- anywhere anywhere tcp dpt:64738 to:10.110.1.4:64738
DNAT udp -- anywhere anywhere udp dpt:64738 to:10.110.1.4:64738
DNAT udp -- anywhere anywhere udp multiport dports isakmp,ipsec-nat-t to:10.110.1.10:1194
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 10.100.0.0/16
ACCEPT all -- anywhere 10.101.0.0/16
MASQUERADE all -- 10.110.1.0/24 anywhere
MASQUERADE all -- 10.110.1.0/24 anywhere
MASQUERADE all -- 10.110.1.0/24 anywhere