728x90

IPv4 의 주소 체계가 더이상 새로운 주소를 사용자들에게 주지 못할거라는 이야기가 나온지 참 오래된 것 같습니다. 마르지 않는 샘처럼 끊임없이 나오는 IPv4 주소 덕분에(?) 생명연장의 꿈을 꾸고 있습니다만 근래 애플(Apple)의 앱 검수 기준 변화는 IPv6 로의 트랜지션이 본격적으로 시작된 것이라는 느낌을 주기에 충분합니다.


IPv4 네트워크가 워낙에 광범위하게 사용되고 있기 때문에 어느날 갑자기 "오늘부터 IPv6 를 써야해!" 하기는 쉽지 않습니다. 때문에 많은 기술 표준과 이를 준수하는 어플라이언스를 통해 점진적인 트랜지션이 일어나고 있습니다. 개발을 하는 사람들은 사실 이걸 신경쓰지 않아도 됩니다만 이왕 세상이 변하고 있는것, 이해가 가는 부분까지 파보기로 했습니다.


NAT 라는 이야기는 많이 들어보셨을 겁니다. Network Address Translation 의 약자로 이 역할을 하는 장비들은 내부 주소(Private IP)를 외부 주소(Public IP)로 바꿔주는 역할을합니다. 당연한 이야기지만 내부 주소는 사적인 네트워크에서만 동작하기 때문입니다. 외부의 다른 인터넷 자원과의 통신을 위해서 주소 체계를 바꾸어 주는 것이지요. 이것을 IPv6 에 대응하여 IPv4 네트워크와 자연스러운 연결을 위해 만든 것이 바로 NAT64 입니다.


IPv6 체계가 퍼블릭 네트워크에 완전히 보급되는 것은 시간도 오래걸리고 어쩌면 불가능 할지도 모릅니다. 떄문에 IPv4, IPv6 는 한동안 혼용될 것입니다. 상대적으로 내부 네트워크는 IPv6 로의 전이가 쉬운 편이라 사내망에서는 이미 IPv6 를 쓰는 곳들이 꽤 많습니다. 내부에서 사용되는 IPv6 만 사용하는 기기들이 외부의 IPv4 로 구성된 기기에 접근하기 위해서 NAT64 를 활용한다고 보시면 되겠습니다. 시스코에서 게시해 둔 아래의 그림을 보면 이해가 빠를겁니다.


출처 : 시스코



IETF 에서는 NAT64 를 위해서 특정한 IPv6 주소를 활용할 수 있도록 규약을 정의해두었습니다. 이 주소를 활용하게 되면 패킷의 헤더 일부분에 실제 접근해야 하는 IPv4 주소를 포함시킬 수 있게 됩니다. NAT64 어플라이언스는 이 주소체계를 식별하여 IPv4 네트워크로 패킷을 전달할 때 목적지 주소로 활용할 수 있게 되는 것이죠. 실제 패킷의 응답을 다시 받아주기 위해서 NAT64 장비는 이 과정에 원본 주소로 활용할 IPv4 Pool 을 유지하면서 응답을 적절한 사용자에게로 리턴해 줄 수 있게 됩니다.


이러한 과정을 소화하기 위해서는 DNS 역시 AAAA 리소스 레코드로 IPv4 주소를 포함한 데이터를 가지고 있어야 하며 이는 다음글에서 DNS64 라는 주제로 살펴보도록 하겠습니다. NAT64 에 대해서 관심이 더 있으시다면 시스코의 아래 링크와 IETF 문서를 읽어보시면 ㄷ움이 되시겠습니다. 


시스코의 NAT64 관련 글 살펴보기 [바로가기]

IETF 의 RFC6146 (Stateful NAT64) 규약 살펴보기 [바로가기]



728x90

+ Recent posts