Today Keys : NAT, PAT, NAPT, 나트, network, address, translation, 주소, 변환, 공인, 사설, ipv4
본 포스팅은 'IT 엔지니어를 위한 네트워크 입문' [길벗] 서적에 포함된 '7.1 NAT/PAT'장의 내용 중 서론과 7.1.1장의 내용입니다.
7.1 NAT/PAT
NAT(Network Address Translation, 네트워크 주소 변환)는 사용자 모르게 실생활에서 많이 사용하는 기술입니다. 가정에서 사용하는 노트북과 PC는 공유기를 통해서, 통신사에 LTE나 5G로 연결된 스마트폰은 통신사 장비 어디선가 NAT를 수행해 외부와 통신하게 됩니다. 회사 네트워크에서도 NAT와 PAT를 매우 많이 사용합니다. 라우터나 L3 스위치와 같은 L3 장비에서도 쓰이고 특히 방화벽과 로드 밸런서와 같이 세션을 다루는 L4 이상의 장비에서는 매우 빈번히 사용되는 기술입니다. NAT 동작을 이해하면 이런 장비의 동작 방식을 더 쉽게 이해할 수 있습니다.
NAT(Network Address Translation)는 이름 그대로 네트워크 주소를 변환하는 기술입니다. NAT는 기본적으로 하나의 네트워크 주소에 다른 하나의 네트워크 주소로 변환하는 1:1 변환이 기본이지만 IP 주소가 고갈되는 문제를 해결하기 위해 1:1 변환이 아닌 여러 개의 IP를 하나의 IP로 변환하기도 합니다. 여러 개의 IP를 하나의 IP로 변환하는 기술도 NAT 기술 중 하나이고 NAT로 통칭하여 불리기도 하지만, 실제 공식 용어는 NAPT(Network Address Port Translation-RFC2663)입니다. NAPT의 경우 실무에서는 PAT(Port Address Translation)라는 용어로 더 많이 사용되기 때문에 본 서에도 PAT라는 용어로 설명하겠습니다.
“NAT는 IP 주소를 다른 IP 주소로 변환해 라우팅을 원활히 해주는 기술”이라고 인터넷 표준 문서에서 정의하고 있습니다. 사설 IP에서 공인 IP로 전환하는 것뿐만 아니라 공인 IP에서 사설 IP로 주소를 전환할 수 있고 사설 IP에서 또 다른 사설 IP나 공인 IP에서 또 다른 공인 IP로의 전환도 NAT로 정의될 수 있습니다. 이 개념을 좀 더 확장하면 IPv4 주소를 IPv6 주소로 변환하거나 그 반대로 IP 주소를 변환하는 기술인 AFT(Address Family Translation)도 NAT 기술의 일종입니다. 이렇듯 다양한 NAT 기술과 방법이 존재하지만 NAT가 가장 많이 사용되는 경우는 사설 IP 주소에서 공인 IP 주소로 전환하는 경우입니다.
NAT는 서비스의 전체 흐름을 파악하는 데 매우 중요한 요소입니다. 이번 장에서는 NAT와 PAT가 어떤 기술인지, 어떻게 동작하는지, 어떤 NAT 방식이 있는지 자세히 알아보겠습니다.
7.1.1 NAT/PAT의 용도와 필요성
NAT와 PAT는 우리가 인식하지 못하는 사이 다양한 곳에서 사용되고 있습니다.
첫째, IPv4 주소 고갈문제의 솔루션으로 NAT가 사용됩니다.
인터넷 대중화로 갑자기 폭증한 IP 주소 요구를 극복하기 위해 단기, 중기, 장기의 3단계 IP 주소 보존과 전환전략을 수립했습니다. 이 전략이 매우 잘 만들어졌고 실제 환경에서도 유용하게 쓰이면서 IPv4 주소 부족 문제가 많이 해소되었습니다. 물론 현재는 IPv4 주소 할당이 끝나면서 신규로 할당 가능한 IPv4 주소가 없는 상태이고 IPv6 주소 체계 전환을 일부 분야에서는 매우 많이 진
행하고 있습니다. IPv4 주소 보존전략 중 단기 전략은 서브네팅, 중기 전략은 NAT와 사설 IP 체계, 장기 전략은 IPv6 전환이었습니다. 그 중 NAT를 이용한 중기 전략이 IPv4 주소 보존에 큰 기여를 했는데 외부에 공개해야 하는 서비스에 대해서는 공인 IP를 사용하고 외부에 공개할 필요가 없는 일반 사용자의 PC나 기타 종단 장비에 대해서는 사설 IP를 사용해 꼭 필요한 곳에만 효율적
으로 IP를 사용할 수 있게 되었습니다.
둘째, 보안을 강화하는 데 NAT 기술을 사용합니다.
IP 주소는 네트워크에서 유일해야 하고 이 정보가 식별자로 사용되어 외부와 통신하게 해줍니다. 외부와 통신할 때 내부 IP를 다른 IP로 변환해 통신하면 외부에 사내 IP 주소 체계를 숨길 수 있습니다.
NAT는 주소 변환 후 역변환이 정상적으로 다시 수행되어야만 통신이 가능합니다. 이 성질을 이용해 복잡한 룰 설정 없이 방향성을 통제할 수 있습니다. 내부 네트워크에서 외부 네트워크로 나가는 방향 통신은 허용하지만 외부에서 시작해 내부로 들어오는 통신은 방어할 수 있습니다. NAT/PAT의 이런 성질을 이용해 보안을 쉽게 강화할 수 있습니다.
셋째, IP 주소 체계가 같은 두 개의 네트워크 간 통신을 가능하게 해줍니다.
IP 네트워크에서 서로 통신하려면 식별 가능한 유일한 IP 주소가 있어야 합니다. 공인 IP는 인터넷에서 유일한 주소로 IP 주소가 중복되면 안 되지만 사설 IP는 외부와 통신할 때 공인 IP로 변환되어 통신하므로 서로 다른 회사에서 중복해 사용할 수 있습니다. 회사 내부에서 사설 IP를 독립적으로 사용한다면 상관없지만 사설 IP를 이용해 다른 회사와 직접 연결해야 하거나 회사 간 합병
으로 서로 통신해야 한다면 사설 IP 주소가 충돌할 수 있습니다.
특히 대외계라고 부르는 회사 간 통신에서 이런 상황이 많이 발생합니다. 카드사나 은행 간 연결이 대표적인 대외계 네트워크입니다. 최근 이런 카드, 금융 대외사와 서비스를 연동할 때 인터넷 구간을 이용해 통신하기도 하지만 개인정보 보호와 각종 법규 준수(Compliance)로 아직도 별도 전용 회선이나 암호화된 별도 네트워크를 이용해 통신합니다. IP 대역이 같은 네트워크와 통신할 가능성이 높은 대외계 네트워크를 연결하기 위해 출발지와 도착지를 한꺼번에 변환하는 “더블 나트(Double NAT)” 기술을 사용합니다.
넷째, 불필요한 설정 변경을 줄일 수 있습니다.
KISA를 통해 인터넷 독립기관으로 직접 등록하고 소유한 IP 주소를 직접 운영하는 경우가 아니라면 통신사업자나 IDC 쪽에서 IP를 할당받아 사용하게 됩니다(앞의 5장 라우팅에서 설명한 AS가 이것에 해당합니다). 이 IP들은 자신이 소유한 것이 아니라 임시로 빌려 사용하는 것이므로 회선 사업자를 바꾸거나 IDC를 이전하면 그동안 빌려 써왔던 공인 IP를 더 이상 사용할 수 없고 신규 사업자가 빌려주는 IP로 변경해야 합니다. 만약 사용자가 NAT/PAT를 이용해 내부 네트워크를 구성하고 있었다면 서버와 PC의 IP 주소 변경 없이 회선과 IDC 사업자 이전이 가능합니다. 물론 외부에 서비스하던 공인 IP 주소가 변경되므로 DNS 서비스나 NAT를 수행하는 네트워크 장비 설정은 변경해야 하지만 내부 서버나 PC 설정 변경을 최소화할 수 있어 NAT/PAT 기술을 적용하
면 복잡한 작업을 많이 줄일 수 있습니다. 이런 설계는 특정 사업자에 종속되지 않는 유연한 인프라스트럭처의 기본 요소로 비즈니스 유연성을 높이는 데 매우 중요한 기술로 활용됩니다.
사실 NAT 기술은 장점만 있는 것은 아닙니다. 네트워크 운영자 입장에서는 IP가 변환되면 장애가 발생했을 때 문제 해결이 힘듭니다. 애플리케이션 개발자는 NAT 환경이 대중화되면서 애플리케이션을 개발할 때 더 많은 고려사항이 생겼습니다. IPv6 전환은 IPv4 주소 부족 해결이라는 중요한 목표가 있지만 이런 어려움을 주는 NAT를 인터넷에서 없애는 목표도 있습니다. NAT로 인해 주소가 변환되면서 단말 간 직접적인 연결성이 무너졌고 이로 인해 개발자들이 애플리케이션을 제작할 때 NAT 환경을 항상 고려해야 하는 상황이 되었습니다. 또한, NAT의 이런 한계를 극복하기 위해 NAT 밑에 있는 단말도 직접 연결하게 도와주는 홀 펀칭(Hole Punching) 기술이 나오고 이 기술을 이용하기 위해 애플리케이션이 더 복잡해지는 악순환이 계속되었습니다. 지난 20년
동안 NAT는 일상생활 속에 많이 적용되었고 그 과정에서 NAT로 인한 오버헤드나 다양한 문제를 신기술로 해결해왔습니다.
다음 장에서는 NAT/PAT의 동작 방식과 사용법에 대해 알아보겠습니다.