더북(TheBook)

위와 같은 설정에서, 공인 IP 12.5.3.2의 호스트엔 게임 서버가 200번 포트에 바인딩되어 있고, 사설 IP 192.168.1.2의 게임기엔 100번 포트에 바인딩되어 있다고 치자. 게임기는 UDP로 서버에 메시지를 보내야 하는데, 그림 2-18에 나온 것처럼 발신지는 192.168.1.2:100으로 목적지는 12.5.3.2:200으로 하여 데이터그램을 만든다.

먼저 공유기의 NAT를 꺼 두었다고 가정해 보자. 게임기가 보낸 데이터그램이 공유기의 랜 포트에 전달되면, 공유기는 WAN 포트를 거쳐 인터넷으로 보낸다. 패킷은 여차여차하여 서버에 도착할 것이다. 이제 서버가 응답할 차례인데, 여기서 문제가 생긴다. IP 패킷의 발신처가 192.168.1.2이므로, 서버는 응답 패킷을 보낼 수 없다. 192.168.1.2는 사설 IP 대역인데, 인터넷의 어떤 공개 라우터도 사설 IP에는 접근할 수 없다. 억지스러운 방법으로 라우터가 해당 IP에 접근하게 만들어 놔도, 전 세계 인터넷에 사설 IP 192.168.1.2를 쓰는 호스트는 무수히 많을 터이므로, 응답 패킷이 우리 게임기에 전달될 가능성은 거의 없다.

 

▲ 그림 2-18 NAT 해제 상태의 라우팅

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.