이 게시물을 기반으로 Python 홀 펀칭 패키지를 테스트하려고 합니다.https://bford.info/pub/net/p2pnat/
홀 펀칭 프로세스는 여러 네트워크 설정에서 작동하지만 최종 사용 사례(다중 레벨 NAT 뒤의 3.5개 피어)에서만 어려움을 겪었습니다.
다음과 같은 네트워크가 있다고 가정해 보겠습니다.
|
| 11.0.0.1
___[eth0]___
**NAT0**
___[eth1]___
| 192.168.0.1
|
(switch)
/ \
/ \
192.168.0.2 / \ 192.168.0.3
__[eth0]__ __[eth0]__
**NATA** **NATB**
__[eth1]__ __[eth1]__
192.168.10.1| |192.168.11.1
| |
192.168.10.2| |192.168.11.2
__[eth0]__ __[eth0]__
**NodeA** **NodeB**
머리핀 추가하고싶다NAT0왜냐하면 이것이 문제를 일으킬 것이라고 생각하기 때문입니다. 그런데 PAT(=NAT)의 Public Port를 모르기 때문에 PREROUTING
어떻게 구성해야 하는지 모르겠습니다 . POSTROUTING
따라서 어떤 패킷이 해당 시스템에 속해 있는지 알 수 없습니다.노스 타워또는NATB-d 11.0.0.1
이제 어느 공용 포트가 속하는지 알고 싶다면 대상 IP를 확인하면 됩니다.노스 타워그리고NATB패키지를 올바른 로컬 컴퓨터로 보낼 수 있습니다.
흥미롭게도 단일 NAT 레이어만 사용하도록 할 수 있었습니다(헤어핀을 전혀 구성하지 않은 상태에서).
아마도 관련 질문
그러나 이 경우 공용 IP로 향하는 모든 (로컬) 트래픽은 단일 시스템으로 라우팅됩니다. 제 경우에는 공용 포트를 기반으로 다른 컴퓨터로 패킷을 라우팅하고 싶습니다.