OPNsense 및 GRE 터널을 사용한 1:1 NAT, 일부 패킷만 변환됩니다.

OPNsense 및 GRE 터널을 사용한 1:1 NAT, 일부 패킷만 변환됩니다.

내 홈 라우터는 OPNsense를 실행하는 가상 머신입니다. IPv4 서브넷이 라우팅된 전용 서버가 있고 집에서 IP 주소를 사용할 수 있도록 전용 서버에서 홈 라우터까지 GRE 터널을 설정했습니다.

전용 서버에서는 GRE 터널을 통해 라우팅되도록 서브넷을 설정했습니다.

OPNsense에서 GRE 터널을 설정하고 가상 IP를 추가했습니다.

문제는 1:1 NAT를 설정할 때 일부 패킷만 소스 주소가 변환된다는 것입니다. 1:1 NAT가 설정된 클라이언트에서는 내부 IP 192.168.254.106와 외부 IP가 (예를 들어)176.9.x.x

ping 8.8.8.8클라이언트에서 실행할 때 마다 첫 번째 핑만 반환됩니다.

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

tcpdump -i gre0 icmpOPNsense 라우터를 실행할 때 표시되는 내용입니다 . ( gre0GRE 터널임)

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

버그가 있는 걸까요, 아니면 제가 뭔가 잘못한 걸까요? 모든 패킷의 소스 IP를 변환해야 하지만 일부에만 수행됩니다. (핑을 잠시 동안 실행시키면 한 패킷이 다시 변환되고 그 이후에는 패킷 변환이 중지됩니다.)

답변1

불행히도 제가 성공적으로 사용할 수 있었던 해결 방법은 단 하나뿐입니다.

질문이 제기된 당시에도 여전히 ISP의 모뎀에는 GRE 또는 IPIP를 처리할 때 작동이 중단되는 버그가 있습니다. 해결책은 GRE가 포함된 Foo over UDP이며 잘 작동합니다. 그러나 내가 아는 한 OPNsense는 이를 사용할 수 없으므로 전용 Ubuntu VM으로 전환했습니다. 이제 모든 것이 잘 작동합니다.

관련 정보