NAT 방식의 구분
위키백과에서 사진을 가져왔는데 조금 이해하기 힘든 부분이 있어서 나만의 설명을 조금 덧붙여보았다.
Full Cone
기본적으로 NAT(NAPT)는 패킷이 NAT 장비를 거쳐 Outbound될 때 포트를 매핑한다. 그리고 매핑 정보는 테이블에 기록되어 다시 Inbound될 때 이를 참조하고 패킷을 포워딩하게 된다. Full Cone은 가장 느슨한 정책으로 한번 포트가 매핑되면 누구든지 접근할 수 있는데, 이는 상대방의 정보까지는 매핑하지 않기 때문이다.
Restricted Cone
Full Cone과는 달리 상대방의 IP를 함께 매핑하므로 패킷의 송수신에 제한이 있다. 좌측 그림을 보면 클라이언트는 Server 1에게 송신한 기록이 있으므로 Server 1으로부터 패킷을 수신할 수 있다. 하지만 Server 2에게는 송신한 적이 없으므로 패킷을 수신할 수 없다. 해당 포트는 Server 1의 IP만을 허용하므로 Server 2는 허용되지 않는 것이다.
Port Restricted Cone
Restricted Cone에 추가로 Port를 제한한 개념이다. 개인적으로 이 그림이 조금 헷갈리는데, 사각형을 하나의 포트로 본다면 Server 1과 통신이 불가능한 이유를 설명하기가 어렵다. 다만 클라이언트-서버 모델을 생각해보면 Listen 소켓과 통신 소켓이 다르므로 그럴 수도 있겠다 싶다... 어쨌든 어려운 개념은 아니다. Restrict Cone에 Port만 추가했을 뿐이다.
Symmetric
얼핏 보면 Port Restricted Cone과 비슷하지만 근본적인 차이가 있다. Cone 계열은 매핑된 포트를 가능한 한 유지하려고 하지만 Symmetric은 그렇지 않다. 상대방의 IP나 Port가 바뀌면 포트 또한 새롭게 매핑되어 포트 번호가 계속해서 바뀌게 된다. 따라서 Symmetric은 보안이 보다 강화되었다고 할 수 있다.