로그인 유지
지난번 글(link)에서 NAT의 종류에 대해서 살펴봤습니다. 이번에는 좀 더 프로그래머에 친숙하게 규칙이 있는 구분을 해보도록 하겠습니다.
규칙에는 크게 Mapping과 Filtering이 있습니다.
설명에 필요한 용어들을 정의하겠습니다.
그리고 설명에 표기되는 예제 주소는 [ip address]:[port]로 표시하도록 하겠습니다.
각각의 과정들에 대해서 자세히 살펴보겠습니다.
NAT가 mapping하는 규칙은 크게 3가지로 구분 됩니다.
여기서 Endpoint는 NAT 외부에 있는 목적지를 의미합니다. 즉, 목적지에 무관한 mapping 규칙을 말합니다.
내부 주소가 1.1.1.1:5000일 경우에는 어디로 내보내더라도 모두 2.2.2.2:1000으로 mapping합니다.
여기서 Address는 NAT 외부에 있는 목적지 주소를 의미합니다. 즉, 목적지 주소에 따라서 mapping하는 규칙을 말합니다.
목적지 주소가 5.5.5.5일 경우에만 내부 주소가 1.1.1.1:5000는 목적지 포트와 무관하게 2.2.2.2:1000으로 mapping하고, 목적지 주소가 달라지면 다른 port를 mapping합니다.
여기서 Address와 Port는 NAT 외부에 있는 목적지 주소 및 포트를 의미합니다. 즉, 목적지의 주소와 포트에 따라서 mapping하는 규칙을 말합니다.
목적지 주소가 5.5.5.5이고, 목적지 포트가 80일 경우에만 1.1.1.1:5000을 2.2.2.2:1000으로 mapping하고, 목적지 주소 혹은 목적지 포트가 달라지면 다른 port를 mapping합니다.
Mapping과 마찬가지로 NAT가 filtering하는 규칙은 크게 3가지로 구분 됩니다. Filtering 규칙은 mapping 규칙과 매우 유사하므로 이해하기 쉽습니다.
먼저 내부 주소 1.1.1.1:5000에서 NAT 외부에 있는 서버 5.5.5.5:80으로 request를 보냈을 때, NAT가 2.2.2.2:1000으로 mapping했다고 가정합니다.
Mapping에서와는 다르게 출발지 주소는 NAT 외부에 있는 서버의 주소이고, 목적지 주소는 NAT의 외부 주소 및 포트를 의미합니다. NAT 변환 주소는 NAT가 inbound 패킷에 대해서 내부의 endpoint로 전달하기 위해서 변환된 주소입니다.
여기서 Endpoint는 NAT 외부에 있는 목적지를 의미합니다. 즉, 목적지에 무관한 filtering 규칙을 말합니다.
출발지의 주소, 포트와 무관하게 최초에 mapping된 2.2.2.2:1000으로 들어온 패킷은 1.1.1.1:5000으로 filtering합니다.
여기서 Address는 NAT 외부에 있는 목적지 주소를 의미합니다. 즉, 목적지 주소에 따라서 filtering 규칙을 말합니다.
최초 mapping됐을 때 서버의 주소인 5.5.5.5에서 2.2.2.2:1000으로 들어온 패킷만 1.1.1.1:5000으로 filtering합니다.
여기서 Address와 Port는 NAT 외부에 있는 목적지 주소 및 포트를 의미합니다. 즉, 목적지의 주소와 포트에 따라서 filtering 하는 규칙을 말합니다.
최초 mapping됐을 때 서버 주소 및 포트인 5.5.5.5:80에서 2.2.2.2:1000으로 들어온 패킷은 1.1.1.1:5000으로 filtering합니다.
지난 글에서 다루었던 NAT 종류와 이번에 다루었던 NAT 규칙을 정리하면 아래의 표와 같이 됩니다.