기술(IT)

네트워크 주소 변환 기술 NAT(Network Address Translation)

2019. 11. 20.
728x90

NAT(Network Address Translation)은 패킷이 트래픽 라우팅 장치를 통해 전송되는 동안 패킷의 IP 헤더에 있는 네트워크 주소 정보를 수정하여 하나의 IP 주소 공간을 다른 IP 주소 공간으로 다시 매핑하는 방법이다. 이 기술은 원래 네트워크를 이동할 때 모든 호스트를 리딩할 필요가 없도록 하는 지름길로 사용되었다. 그것은 IPv4 주소 고갈에 직면하여 글로벌 주소 공간을 보존하는 데 인기 있고 필수적인 도구가 되었다. 전체 사설 네트워크에 대해 NAT 게이트웨이의 인터넷 라우팅 IP 주소 하나를 사용할 수 있다. IP 위장 기술은 보통 개인 IP 주소로 구성된 전체 IP 주소 공간을 다른 공용 주소 공간에서 단일 IP 주소 뒤에 숨기는 기술이다. 숨겨진 주소는 송신 IP 패킷의 소스 주소로서 단일 IP 주소로 변경되어 은닉 호스트가 아니라 라우팅 장치 자체에서 발신된 것으로 나타난다. IPv4 주소 공간을 보존하기 위한 이 기술의 인기 때문에 NAT이라는 용어는 사실상 IP 가장과 동의어가 되었다. 네트워크 주소 변환은 패킷의 IP 주소 정보를 수정하므로, NAT 구현은 다양한 주소 지정 사례에서 특정 동작과 네트워크 트래픽에 미치는 영향에 따라 달라질 수 있다. NAT의 구체적인 행동 사항은 NAT 구현을 포함하는 장비 공급업체에 의해 일반적으로 문서화되지 않는다.

NAT의 대다수는 여러 개인 호스트를 공개적으로 노출된 하나의 IP 주소에 매핑한다. 일반적인 구성에서 로컬 네트워크는 지정된 개인 IP 주소 서브넷중 하나를 사용한다. 그 네트워크의 라우터는 그 주소 공간에 개인 주소를 가지고 있다. 라우터는 또한 인터넷 서비스 제공자에 의해 할당된 공공 주소로 인터넷에 연결되어 있다. 트래픽이 로컬 네트워크에서 인터넷으로 전달됨에 따라, 각 패킷의 소스 주소는 즉시 개인 주소에서 공용 주소로 변환된다. 라우터는 각 활성 연결에 대한 기본 데이터를 추적한다. 회신이 라우터로 돌아오면, 아웃바운드 단계에서 저장한 연결 추적 데이터를 사용하여 회신을 전달할 내부 네트워크의 개인 주소를 결정한다. 모든 IP 패킷에는 소스 IP 주소와 대상 IP 주소가 있다. 일반적으로, 전용 네트워크에서 공용 네트워크로 전달되는 패킷은 소스 주소를 수정하는 반면, 공용 네트워크에서 사설 네트워크로 다시 전송되는 패킷은 목적지 주소를 수정한다. 회신을 번역하는 방법의 모호성을 피하기 위해, 패킷에 대한 추가 수정이 필요하다. 방대한 인터넷 트래픽은 전송 제어 프로토콜(TCP) 또는 사용자 데이터그램 프로토콜(UDP)을 사용한다. 이러한 프로토콜의 경우, 포트 번호가 변경되어 반환된 패킷의 IP 주소와 포트 정보의 조합이 해당 사설 네트워크 대상에 명확하게 매핑될 수 있다. RFC 2663은 이러한 유형의 NAT에 대해 NAPT라는 용어를 사용한다. 다른 이름으로는 PAT(포트 주소 변환), IP 가장, NAT 오버로드 및 다대일 NAT이 있다. 이는 NAT의 가장 일반적인 유형이며 공통 사용에서 NAT이라는 용어와 동의어가 되었다. 이 방법은 초기 발신 전송이 변환표에서 필요한 정보를 설정하는 것이기 때문에 대화가 사설 네트워크에서 시작될 때만 라우터를 통한 통신을 가능하게 한다. 예를 들어, 위장된 네트워크의 웹 브라우저는 외부 웹사이트를 검색할 수 있지만, 외부의 웹 브라우저는 가장된 네트워크 내에서 호스트되는 웹사이트를 검색할 수 없다. TCP와 UDP에 기반하지 않는 프로토콜은 다른 번역 기법을 필요로 한다. 일대다 NAT의 추가적인 이점 중 하나는 IPv4 주소 소진에 대한 실질적인 솔루션이라는 것이다. 하나의 공공 IP 주소를 사용하여 큰 네트워크도 인터넷에 연결할 수 있다.

네트워크 주소와 포트 번역을 구현하는 방법에는 여러 가지가 있다. IP 주소 정보를 사용하는 일부 애플리케이션 프로토콜에서, 가장된 네트워크의 노드에서 실행되는 애플리케이션은 NAT의 외부 주소, 즉 통신 동료가 탐지하는 주소를 결정해야 하며, 더 나아가 사용 중인 매핑의 유형을 검토하고 분류해야 하는 경우가 많다. 일반적으로 이 작업은 별도의 NAT 뒤에 있는 두 클라이언트 간에 직접 통신 경로를 설정하기 위해 수행된다. 그러나 그 이후 이러한 절차는 표준 상태에서 감가상각 되었으며, 그 방법은 많은 기기를 올바르게 평가하기에 불충분하기 때문이다. 새로운 방법은 RFC 5389에서 표준화되었다. 이 용어는 실제 NAT의 행동을 설명하는 데 부적합한 것으로 입증되었기 때문에 많은 혼란의 원인이 되어 왔다. 많은 NAT 구현이 이러한 유형을 결합하므로, 코네/대칭 용어를 사용하는 대신 특정 개별 NAT 동작을 참조하는 것이 좋다. RFC 4787은 관찰된 행동에 대해 표준화된 용어를 도입하여 이 문제를 완화하려고 시도한다. 특히 대부분의 NAT은 나가는 연결을 위해 대칭적인 NAT을 정적 포트 매핑과 결합하며, 여기서 외부 주소와 포트로 어드레스되는 수신 패킷은 특정 내부 주소와 포트로 리디렉션된다. 일부 제품은 패킷을 여러 내부 호스트로 리디렉션할 수 있다. 예를 들어, 몇 개의 서버 간에 로드를 분할할 수 있다. 그러나, 이것은 상호 연결된 패킷이 많은 보다 정교한 통신에 문제를 일으켜, 거의 사용되지 않는다.

LIST

댓글

추천 글