라이브러리
프로그래밍언어, 각종코드, 관련동향, 논문 등의 저장소
IPv6 도입의 필수 요소, IPv4/IPv6 변환 기술 ①
[특집] IPv6 도입의 필수 요소, IPv4/IPv6 변환 기술 ①

 

출처 : 온더넷 7월호

 

 이제 IPv6로의 전환의 필요성에 대해서는 두말할 필요가 없는 상황이다. 하지만 기존의 IPv4 네트워크를 한순간에 모두 IPv6로 전환한다는 것은 불가능한 일이다. 이에 따라 IPv4와 IPv6 네트워크 간에 통신할 수 있도록하는 변환 기술에 대한 요구가 늘고 있다. 주소 변환과 터널링 등 다양한 기술을 통해 IPv4와 IPv6 간의 네트워킹을 가능케하는 IPv4/IPv6 변환 기술에 대해 알아보자.

김진규 | 한국전산원 차세대인터넷팀

 IPv6는 IPv4에 비해 비교할 수 없을 만큼 커다란 주소공간을 가지고 있기 때문에, 유비쿼터스 네트워크를 구축하는 데 있어 필수라 할 수 있다. 그러나 기존의 인터넷을 IPv6 주소로 한순간에 바꿀 수는 없다. 전세계적으로 복잡하고 광대하게 퍼져있는 IPv4 인터넷을 한순간에 바꾸는 것은 거의 불가능하며, 커다란 혼란을 야기할 수 있을 것이다. 2005년 현재를 포함해 향후 4~5년 간은 IPv4 주소와 IPv6 주소가 공존할 것이기 때문에 두가지 주소를 변환해주는 기술이 필요할 것은 자명하다. 이에 많은 인터넷 전문가들이 IPv4/IPv6 변환 기술(Transition mechanism) 개발과 표준화를 상당부분 진행해 왔다. 변환 기술은 애플리케이션과 네트워크 차원으로 나눌 수 있다. 애플리케이션 차원의 변환 기술은 BIS, BIA 등이 있고, 네트워크 변환 기술은 다시 터널(Tunnel)과 주소 변환으로 나눌 수 있다. (표 1)은 변환 기술의 개요를 보여준다.

 

사용자 삽입 이미지

 

전환에 앞서

 

지금까지 IPv4에서 IPv6로의 자연스러운 이전을 지원해주는 IPv6 전환 메커니즘에 대한 많은 연구가 이뤄졌다. 그러나 IPv6 네트워크로의 이전을 위해서는 다음과 같은 제약사항을 고려해야 한다.

 

· IPv6가 IPv4와 자연스럽게 호환(변환)되지는 않는다.
· 현재 수천만 개의 호스트가 IPv4 방식으로만 동작중이다.
· 상당기간 IPv4와 IPv6는 상호 공존할 것이다.

 

이런 제약사항을 고려할 때, 당분간은 IPv4와 IPv6가 공존할 것이라는 데는 모두가 공감하고 있다. 때문에 이 시기에 IPv4와 IPv6를 전환하는 기술은 네트워크 운영시 아주 중요한 요소가 될 것이다. 현재, IPv4/IPv6 전환 기술은 다양하게 소개되고 있으며, 네트워크의 형태에 따라 적용방법은 서로 다르다.

 

향후 구축될 IPv6 네트워크는 IPv4/IPv6 듀얼(dual) 네트워크, 혹은 IPv6 전용(native) 네트워크 형태로 구성될 것이다. 이때 내부의 IPv6 네트워크와 외부의 다른 IPv6 네트워크, 혹은 IPv4 네트워크와의 통신을 위해서는 IPv4와 IPv6가 혼재한 시나리오가 가능하며, 이같은 IPv4/IPv6의 공존 상황에서 두 네트워크 간의 통신이 자연스럽게 이뤄지도록 하는 기술이 바로 IPv6 전환 메커니즘이다. 전환 메커니즘은 기본 IPv6 전환 메커니즘, IPv4/IPv6 변환 메커니즘, 향상된 터널링 메커니즘으로 구분되며 각각의 메커니즘 아래에 (표 2)와 같이 여러 변환 기술이 있다.

 

사용자 삽입 이미지



기본 IPv6 전환 메커니즘

 

기본적인 전환 메커니즘으로는 IPv4/IPv6 듀얼스택(Dual-Stack)과 IPv6-in-IPv4 터널링 기술이 있는데, 이 중 IPv4/IPv6 듀얼스택에 대해 먼저 알아보겠다.

 

· IPv4/IPv6 듀얼스택(Dual-Stack)

 

IPv6 단말이 IPv4 단말과 호환성을 유지하는 가장 쉬운 방법은 IPv4/IPv6 듀얼스택을 제공하는 것이다. IPv4/IPv6 듀얼스택 단말은 IPv4와 IPv6 패킷을 모두 주고받을 수 있는 능력이 있다. IPv4 패킷을 사용해 IPv4 노드와 직접 호환되고, IPv6 패킷을 사용해 IPv6 노드와도 직접 호환된다. 노드에서 서로 프로토콜에 적합한 패킷의 변화를 수행하는 방안이다. (그림 1)은 듀얼스택의 개념을 보여준다.

 

사용자 삽입 이미지

 

IPv4/IPv6 듀얼스택 노드는 두 프로토콜을 모두 지원하기 때문에 IPv4 주소와 IPv6 주소로 모두 설정할 수 있다. IPv4/IPv6 듀얼스택 노드는 IPv4 메커니즘(예 : DHCP)을 사용해 그 IPv4 주소를 얻고, IPv6 프로토콜 메커니즘(예 : 상태 비보존형 주소 자동설정)을 사용해 IPv6 주소를 얻을 수 있다.

 

듀얼스택 노드의 DNS는 호스트 이름과 IP 주소간 매핑을 위해 IPv4와 IPv6에 모두 사용된다. AAAA라는 DNS 자원 레코드 유형이 IPv6 주소를 위해 사용된다. IPv4/IPv6 듀얼스택 노드는 IPv4, IPv6 노드와 직접 호환될 수 있어야 하므로 IPv4 A 레코드는 물론이고, IPv6 AAAA 레코드도 처리할 수 있는 주소 해석기 라이브러리(DNS Resolver Library)를 제공해야 한다. IPv4/IPv6 듀얼스택 노드의 DNS 주소해석기 라이브러리는 AAAA와 A레코드를 모두 처리할 수 있어야 한다. 주소해석기 라이브러리는 IPv6 주소를 가진 AAAA 레코드와 IPv4 주소를 가진 A 레코드를 모두 조회해 그 노드와의 통신에 사용된 IP 패킷 버전에 영향을 미치기 위해 응용에 반환되는 결과를 필터링하거나 순서를 정할 수 있다.

 

· IPv6-in-IPv4 터널링

 

IPv6/IPv4 단말과 라우터는 IPv6 데이터그램을 IPv4 패킷에 캡슐화해 IPv4 네트워크를 통해 터널링할 수 있다. 즉, 터널링은 기존의 IPv4 인프라를 활용해 IPv6 트래픽을 전송하는 방법을 제공하며 (그림 2)와 같이 동작한다.

 

사용자 삽입 이미지

 

IPv6-in-IPv4 터널링 방법은 크게 설정 터널링(Configured Tunneling) 방식과 자동 터널링(Automatic Tunneling) 방식으로 구분된다. (그림 3)은 설정 터널링 방식과 자동 터널링 방식을 나타내는 그림이다.

 

설정 터널링 : 6Bone에서 주로 사용하는 방법으로 두 라우터간(혹은 호스트간)의 IPv4 주소를 통해 수동으로 정적 터널을 설정하는 방식

 

자동 터널링 : IPv4-호환(IPv4-Compatible) 주소를 이용해 매뉴얼한 설정없이 IPv4 구간을 통과할 때면 IPv4 호환 주소에 내포돼 있는 IPv4 주소를 통해 자동으로 터널링을 설정하는 방식이다.

 

사용자 삽입 이미지

 

IPv4/IPv6 변환 메커니즘

 

IPv4/IPv6 변환 메커니즘은 헤더 변환 방식(Header Conversion)과 전송 릴레이 방식(Transport Relay), 애플리케이션 계층 게이트웨이 방식(ALG, Application Level Gateway)으로 크게 구분할 수 있다.

 

· 헤더 변환 방식

 

헤더 변환은 IPv6 패킷 헤더를 IPv4 패킷 헤더로 변환하는 것이며, 또는 그 역순으로 변환하는 것이다. 이때 만일 필요하다면 패킷 무결성을 유지하기 위해 체크섬(check sum)을 조정(또는 재계산)하는 것을 가리킨다.

 

헤더 변환은 IP 계층에서의 변환으로, IPv4 패킷을 IPv6 패킷, 또는 그 반대로 변환하는 것으로써 규칙은 SIIT(Stateless IP/ICMP Translation : IP 네트워크에서 IPv6 패킷과 IPv4 패킷을 상호 변환하는 기술)에서 정의하고 있다. 헤더 변환방식은 주로 NAT-PT(Network Address Translation - Protocol Translation) 방식으로 구현되며, NAT-PT는 SIIT에 기반을 둔 헤더 변환 방식의 전형적인 예다(그림 4).

 

사용자 삽입 이미지

 

헤더 변환은 다른 방식에 비해 속도가 빠르다는 장점이 있는 반면, NAT(Network Address Translation)와 마찬가지로 IP계층 변환에 따른 제약점을 가지고 있다. 대표적인 제약점으로 DNS, ALG, FTP와 같이 응용 프로토콜에 내장된 IP계층 주소 변환의 어려움을 들 수 있으며, 이를 위해 DNS, FTP, ALG와 같은 별도의 응용 게이트웨이를 추가로 구현해야 한다.


더욱이 IPv4-IPv6 헤더 변환시, IPv4 패킷은 여러 개의 IPv6 패킷으로 쪼개져 전송되는데, 이는 IPv6의 헤더 길이가 IPv4의 헤더보다 일반적으로 20바이트 더 크기 때문이다. 또한 IPv4에서의 ICMP 내용을 ICMPv6로 상호 교환할 수 없다. 애플리케이션 계층에서 발생하는 문제를 근본적으로 해결하기 위해서는 해당 프로토콜의 애플리케이션을 새롭게 개발해야 한다.

 

· 전송 릴레이 방식

 

전송 릴레이는 TCP, UDP/IPv4 세션과 TCP, UDP/IPv6 세션을 중간에서 릴레이하는 것을 가리킨다. 이 방법은 전송 계층에서 변환하는 방식으로, 예를 들어 전형적인 TCP 릴레이 서버는 다음과 같이 작동한다.

 

TCP 요청이 릴레이 서버에 도착하면, 네트워크 계층은 목적지가 서버의 주소가 아닐지라도 TCP 요청을 TCP 계층으로 전달한다. 서버는 이 TCP 패킷을 받아 발신 호스트와 TCP 연결을 한다. 그 다음 서버는 실제 목적지로 TCP 연결을 하나 더 만든다. 두 연결이 구축되면 서버는 두 연결 중 하나에서 데이터를 읽어 데이터를 나머지 하나의 연결에 기록한다. 전송 릴레이에는 각 세션이 IPv4와 IPv6에 각각 밀폐돼있기 때문에 프래그먼트나 ICMP 변환과 같은 문제는 없지만 응용 프로토콜에 내장된 IP 주소의 변환과 같은 문제는 여전히 남아있다. 전송 릴레이 방식으로는 TRT와 SOCKS 게이트웨이 방식이 있으며, 애플리케이션 계층으로는 BIS, BIA가 있으나 실제 네트워크 구축 시 활용 빈도가 적기 때문에 자세한 설명은 생략한다.

 

· 애플리케이션 계층 게이트웨이 방식

 

애플리케이션이 IPv4와 IPv6 두 프로토콜을 모두 지원하는 경우에는 두 프로토콜 간에 변환 메커니즘이 사용될 수 있다. 트랜잭션 서비스를 위한 ALG는 사이트 정보를 숨기고 캐시 메커니즘으로 서비스의 성능을 향상시키기 위해 사용된다. 이 방법은 애플리케이션 계층에서 변환하는 방식으로, 각 서비스는 IPv4/IPv6 별로 각각 독립적이기 때문에 헤더 변환에서 나타나는 단점은 없지만, 각 서비스를 위한 ALG는 IPv4와 IPv6 모두에서 실행될 수 있어야 한다. 대표적인 ALG 방식의 예는 IPv4/IPv6 웹 프록시인 SQUID 등을 들 수 있다. 이 방식은 ALG의 성능에 따라서 서비스의 품질이 결정된다.

 

향상된 터널링 메커니즘

 

IPv4/IPv6 변환을 위한 향상된 터널링 메커니즘에는 DSTM(Dual Stack Transition Mechanism), 6to4, 터널 브로커, ISATAP(Intra-Site Automatic Tunnel Addressing Protocol) 등이 있다.

 

· DSTM

 

DSTM은 IPv6가 널리 확산되었을 때 사용될 수 있는 방식이다. IPv6 단말은 IPv6 네트워크뿐만 아니라 IPv4 단말과도 통신할 필요가 있다. 듀얼스택 전환 메커니즘(Dual Stack Transition Mechanism, DSTM)은 임시의 IPv4 주소를 IPv6 노드에 제공하는 방법과, IPv6 네트워크 내에서 동적 터널을 사용한 IPv4 트래픽 전송, 그리고 이 전환 메커니즘에 필수적인 지원 인프라에 대해 정의된 일련의 프로세스와 아키텍처를 제공한다.

 

DSTM은 필요한 경우 IPv4 주소를 듀얼 IP 계층 호스트에 지정한다. 그러면 IPv6 호스트가 IPv4 전용 호스트와 통신할 수 있게 되거나 IPv4 전용 애플리케이션이 IPv6 호스트에서 수정되지 않고 실행될 수 있다. 이같은 할당 메커니즘은 IPv6 패킷 내부에서 IPv4 패킷의 동적 터널링을 수행하고, IPv6 네트워크의 DSTM 도메인 내에서 순수 IPv4 패킷의 노출을 억제하는 능력과 연관돼 있다. 그리고 IPv6 라우팅 테이블만 있으면 라우터가 IPv6 네트워크를 통해 IPv4 패킷을 이동할 수 있으므로 IPv6 네트워크 관리가 간단하다. (그림 5)는 DSTM의 개념을 설명하는 그림이다.

 

사용자 삽입 이미지

 

· 6to4


6to4는 하나 이상의 유일한 IPv4 주소를 갖고 있는 IPv6 전용 사이트에 ‘2002:IPv4 주소::/48 단일 IPv6 프리픽스’를 할당해 외부 IPv6 네트워크와 자동 터널링을 가능하도록 하는 메커니즘을 가리킨다. 6to4의 목적은 순수 IPv6를 지원하지 않는 광역 네트워크에 연결된 고립된 IPv6 사이트나 호스트가 자동 터널링 방식을 통해 다른 IPv6 도메인이나 호스트와 통신하도록 하는 것이다. 이 방식을 사용해 연결된 IPv6 사이트나 호스트는 IPv4 호환 주소 또는 설정 터널링을 필요로 하지 않는다.

 

· 터널 브로커

 

아직까지 대부분의 6Bone 네트워크는 수동으로 설정된 터널을 사용해 구축된다. 이 방법의 단점은 네트워크 관리자의 관리 부담이 많다는 점이다. 관리자는 각 터널마다 광범위한 설정을 수동으로 수행해야 한다. 이 관리 오버헤드를 줄이는 방법 중의 하나가 바로 터널 브로커 메커니즘이다. 터널 브로커(Tunnel Broker) 개념은 터널 브로커라는 전용 서버를 구축, 사용자의 터널 요청을 자동으로 관리하는 방법이다. 이 방법은 IPv6로 연결된 호스트의 증가를 활성화시키고 초기 IPv6 네트워크 제공자들이 그들의 IPv6 네트워크에 쉽게 접근할 수 있도록 해주는 데 유용할 것으로 예상된다.

 

· ISATAP

 

ISATAP은 주로 IPv4 기반의 인트라넷에서 IPv6 노드를 점증적으로 배치할 수 있는 간단하고 확장성 있는 방법을 제공한다. 6to4와 큰 차이점은 6to4가 /48 주소를 할당해, 할당 받은 노드가 서브네트워크를 구성할 수 있으나 ISATAP은 /64 단위로 하나의 단말에 IPv6 주소를 부여해 통신하도록 설계된 방법이라는 것이다. ISATAP은 64비트 EUI-64 인터페이스 식별자와 표준 64비트 IPv6 주소 프리픽스(Prefix)를 이용한 글로벌 유니캐스트 주소 포맷을 기반으로 한다. 이 접근법은 IPv6 게이트웨이와 공통 데이터링크를 공유하지 않는 듀얼스택 노드가 사이트 내에서 IPv4 라우팅 인프라를 통해 IPv6 메시지를 자동 터널링 함으로써, 글로벌 IPv6 네트워크에 결합할 수 있도록 한다. ISATAP 주소 자동 설정을 위해 두 가지 오프링크 IPv6 게이트웨이의 자동 탐색방법이 제공된다. 이 접근법에서는 경계 게이트웨이에서 하나의 동일한 프리픽스 주소를 사용하므로 전체 사이트 통합시 확장 문제없이 사이트 내에 대규모 배치가 가능하다.

  Comments,     Trackbacks