2010-12-10 2 views
1

방화벽이있는 NAT 뒤에있는 두 명의 클라이언트가 성공하지 못한 채 'hello'btw 클라이언트를 보내려고합니다. UDP 또는 TCP 펀칭은 현재로서는 괜찮습니다. '안녕하세요 P'를받을 것으로 예상2 nats 뒤에 p2p 수행 방법?

클라이언트 A :

set -- $(wget -qO- http://www.pschmidt.it/screenshooter/ss3.php | awk '{print $1, $2}'); echo $1 $2 $3 $4; `nc -l -v $2 ` & sudo hping3 -2 -c 30 -s $2 -p $4 $3 

클라이언트 B 보내는 안녕하세요 P :

set -- $(wget -qO- http://www.pschmidt.it/screenshooter/ss3.php | awk '{print $1, $2}'); echo $1 $2 $3 $4; sudo hping3 -2 -c 30 -s $2 -p $4 $3; echo "hello p" | nc -p $2 -u $3 $4 

불행하게도 아무것도 수신되지 않습니다.

구현은 모두 NAT를 제한 콘 NAT를은, http://www.brynosaurus.com/pub/net/p2pnat/ 그래서

답변

1

에서 영감을? 이전에 요청 출처에 아무것도 나오지 않았을 때 포트 액세스를 거부합니까?

올바른 주소와 포트를 사용하여 한 호스트에서 다른 호스트로 패킷을 보내야하므로 NAT는 요청이 아니라 응답 일지라도 들어오는 요청을 수락합니다. 일례로서

- NAT1 - 네트워크 - NAT2 -

PC1

PC1은 PC2 소스 포트 (10) (PC1)에 요청을 전송 (10)

포트 PC2 액세스하려고 PC2 (어느 NAT1에 의해 차단됨). PC1은 PC2에 포트 10으로 요청을 보냅니다.이 포트는 차단되지 않고 응답됩니다.

+0

> 그렇다면 두 NAT가 모두 제한된 원뿔 NAT입니까? NAT를 분류하는 방법을 잘 모르겠지만 Skype 및 P2P 응용 프로그램과 마찬가지로 가장 제한적이라고 생각합니다. 하지만 내 경우에는 외부 IP가 변경되지 않기 때문에 제한된 콘으로 보이지만 포트만 보입니다. – simpatico

+0

그래서 포트가 두 가지 방법으로 동일해야합니다. 당신의 설명에 랑데부 서버가 보이지 않습니다. – simpatico

+0

그들은 서로의 포트를 알아야하거나 액세스 할 수있는 (NAT 뒤에 있지 않은) 랑데뷰 서버가 필요하며 각각 다른 포트를 제공합니다. 내 예에서는 PC2 포트 10이 알려져 있습니다. 이를 알 필요가 있으며 PC2는 올바른 순간에 패키지를 보내야합니다. 랑데부 서버가 가장 쉽고, 가장 쉬운 솔루션입니다. 동기화 및 관리 용. – Kissaki

0

처리중인 NAT 유형을 조사해야합니다. '대칭'용어는 더 이상 사용되지 않습니다. scribd에서 온라인으로 제공되는 Practical JXTA II 서적에서 해당 장을 읽을 수 있습니다.

동료의 공개 주소가없는 경우 질문에 기술하는 기술은 작동하지 않습니다. 이 문제를 해결하는 것은 더 정교하며 항상 가능한 것은 아닙니다.