NAT 1:1 con OPNsense y un túnel GRE, solo se traducen algunos paquetes

NAT 1:1 con OPNsense y un túnel GRE, solo se traducen algunos paquetes

El enrutador de mi casa es una máquina virtual que ejecuta OPNsense. Tengo un servidor dedicado con una subred IPv4 enrutada a él y configuré un túnel GRE desde mi servidor dedicado hasta el enrutador de mi hogar para poder usar las direcciones IP en casa.

En el servidor dedicado, configuré la subred para que se enrute a través del túnel GRE.

En OPNsense, configuré el túnel GRE y agregué las IP virtuales.

El problema es que, cuando configuro NAT 1:1, solo se traduce la dirección de origen de algunos paquetes. En el cliente que está configurado como NAT 1:1, la IP interna es 192.168.254.106y la IP externa es (por ejemplo),176.9.x.x

Cada vez que ejecuto ping 8.8.8.8el cliente, solo regresa el primer ping.

ubuntu@ubuntu:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=32.8 ms
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 1 received, 83% packet loss, time 5081ms
rtt min/avg/max/mdev = 32.875/32.875/32.875/0.000 ms

Esto es lo que veo cuando ejecuto tcpdump -i gre0 icmpel enrutador OPNsense. ( gre0siendo el túnel GRE)

root@core1:~ # tcpdump -i gre0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gre0, link-type NULL (BSD loopback), capture size 262144 bytes
12:26:35.361531 IP 176.9.x.x > google-public-dns-a.google.com: ICMP echo request, id 1784, seq 1, length 64
12:26:35.393693 IP google-public-dns-a.google.com > 176.9.x.x: ICMP echo reply, id 1784, seq 1, length 64
12:26:36.362530 IP 192.168.254.106 > google-public-dns-a.google.com: ICMP echo request, id 1784, seq 2, length 64
12:26:37.371299 IP 192.168.254.106 > google-public-dns-a.google.com: ICMP echo request, id 1784, seq 3, length 64
12:26:38.395302 IP 192.168.254.106 > google-public-dns-a.google.com: ICMP echo request, id 1784, seq 4, length 64
12:26:39.419105 IP 192.168.254.106 > google-public-dns-a.google.com: ICMP echo request, id 1784, seq 5, length 64
12:26:40.443423 IP 192.168.254.106 > google-public-dns-a.google.com: ICMP echo request, id 1784, seq 6, length 64

¿Hay algún error o hice algo mal? Se supone que debe traducir la IP de origen de todos los paquetes, pero solo lo hace para algunos. (Si deja que el ping se ejecute durante un tiempo, un paquete se traducirá nuevamente y luego dejará de traducir los paquetes).

Respuesta1

Lamentablemente, sólo existe una solución alternativa que pude utilizar con éxito.

En el momento en que se hizo la pregunta -y todavía hoy-, hay un error en los módems de mi ISP que hace que se rompan al tratar con GRE o IPIP. La solución es Foo sobre UDP con GRE, que funciona bien. Sin embargo, hasta donde yo sé, OPNsense no puede funcionar con eso, así que cambié a una máquina virtual Ubuntu dedicada para ello. Ahora todo funciona bien.

información relacionada