두 개의 서로 다른 Google Cloud VPN 게이트웨이 GW_IP_1
와 GW_IP_2
두 개의 NAT 포스트 라우터를 사용하여 R1
두 개의 IPSec 터널을 설정하고 싶습니다 R2
. 이 같은:
GW_IP_1 ---\ /--- R1
|-- my_main_router_NAT_firewall ---|
GW_IP_2 ---/ \--- R2
문제: 게이트웨이(and)의 소스 IP 주소를 기반으로 특정 라우터(and) 로 UDP
포트를 전달합니다 500
.R1
R2
GW_IP_1
GW_IP_2
이상한 상황이 발생했습니다. 터널이 작동하고 패킷이 올바르게 일치하고 전달되었지만 패킷이 작동하지 않았습니다.두 번째 라우터 R2의 경우일치하는 항목이 없습니다. 어딘가에서 사라진 것 같습니다.
기본 NATting 라우터에서 DNAT 규칙을 만들었습니다.
-t nat -A PREROUTING -p udp -s GW_IP_1 --dport 500 -j DNAT --to R1:500
-t nat -A PREROUTING -p udp -s GW_IP_2 --dport 500 -j DNAT --to R2:500
나는 tcpdump
계속 달리고 있습니다. 패킷이 수신되고 터널이 열립니다.R1
R2
R1
그러나 R2는 500개의 패킷을 보지 못했습니다.. 그런 다음 두 패킷 모두 tcpdump
에서 main_router
패킷을 실행하여 예상 GW_IP_1
대로 GW_IP_2
도착했습니다 .
나는 며칠 동안 라우터(Ubiquiti ER-X) 등과 씨름했습니다. 이것이 펌웨어 버그이거나 이 유형의 라우터에 특정한 문제라고 생각했습니다. 그러나 처음부터 두 개의 인터페이스, 전달 및 모든 규칙을 사용하여 간단한 Linux 라우터를 설정했으며 결과는 동일했습니다. 하나의 터널은 작동했지만(패킷은 올바르게 전달됨) 두 번째 라우터는 작동하지 않았습니다. 패킷 없음 수신됩니다.
iptables
따라서 이것은 아마도 /kernel에 대한 좀 더 기본적인 것일 것입니다. 누군가 이것을 설명할 수 있나요?