반응형
[인터넷] IPv6 in IPv4 터널링 기술 현황
주소 고갈문제가 논의되면서 1995년 IETF에서 IPv6 주소가 표준화된 이후 많은 연구와 표준화를 추진하였고, 이제 세계 각국은 IPv4 주소에서 IPv6 주소로의 전환을 신중하게 고려하고 있다. 과거 110V 전압에서 220V 전압으로 전환할 때에도 상당기간 변압기를 사용하여 기존의 110V 전자제품을 220V 환경에서 사용하였듯이 한순간에 IPv6로 전환되기 보다는 과도기에 다양한 전환기술이 사용될 것으로 보인다. 전환기술은 크게 Dual Stack, 터널, 주소변환(NAT-PT 등)으로 나뉘어 표준화되고 있다. 이중 터널 기술이 저렴한 비용, 안정성 등의 이유로 가장 널리 사용될 것으로 보이며 IETF에서도 다양한 터널에 대한 표준화가 진행되고 있다. 본 고에서는 다양한 터널 기술 정의 및 용도 등에 대해서 설명하고자 한다. 여기서 다루고자하는 터널은 IPv4 주소 해더로 IPv6 패킷을 감싸는 IPv6 in IPv4로 한정할 것이며 IPv6 in MPLS(6PE)와 같이 IPv4 라우팅에 의해 형성된 MPLS LABEL로 IPv6 패킷을 감싸 전달하는 방식이나 IPv4 패킷을 IPv6 헤더로 감싸는 IPv4 in IPv6 터널은 제외한다.
터널의 종류
IPv6 in IPv4 터널은 설정터널(configured tunnel) 및 자동터널로 구분된다. 설정터널은 터널링된 패킷의 IPv4 주소와 IPv6 주소 사이에 연관이 없다. 따라서 터널에 사용될 IPv6 주소를 임의로 지정하여 입력해야 하는 등 설정시 많은 작업이 필요하다. 이 방법은 수많은 일반 이용자들이 사용하는 단말과 단말 사이나 망과 단말 사이에는 사용하기 어렵고 망과 망간에 주로 사용된다. 반면에 자동터널의 IPv6 주소는 TEP(Tunnel End Point)의 IPv4주소와 연계되어 자동 생성된다. 따라서 단말과 단말간 및 망과 단말간에 많이 사용된다.
자동터널에는 automatic tunnel using compatible IPv6 address, 6to4, ISATAP, teredo 등이 있다. IPv6 compatible 주소를 사용한 automatic tunnel은 터널 IPv6 주소가 [::IPv4]와 같은 compatible IPv6 주소 형식으로 만들어진다. 즉 TEP의 IPv4 주소가 202.30.89.1이면 TEP의 IPv6 주소는 [::202.30.89.1]이 된다. 여기서 global IPv6 인터넷과 연계하여 사용하기 위해서는 ::/96에 대한 라우팅 테이블을 광고(advertisement)해야 하는데 이는 기존 IPv6 라우팅 테이블이 최대 5배까지 커지는 문제가 있다.
6to4 터널은 IANA에서 정의한 2002::/16 프리픽스와 TEP의 IPv4 주소가 연계되어 TEP IPv6 주소를 형성한다. 즉 2002:IPv4 address::/48이 이용자에 할당되는 프리픽스이다. 이 방식은 IPv6 라우팅 테이블에 2002::/16만 추가되므로 테이블 크기에 영향을 주지 않는다. 6to4는 이용자 사이트에 /48 프리픽스를 할당해 주므로 이용자는 이를 나누어 여러 개의 서브넷을 구성할 수 있다.
ISATAP은 여타 자동터널 방식과 달리 정해진 프리픽스가 없고 ISP에서 보유한 /64 크기의 global IPv6 프리픽스를 사용하여 주소를 생성한다. 예를 들면, ISP에서 2001:2b8:1:1::/64 프리픽스를 이용자에게 할당하였고 이용자 단말(TEP)의 IPv4 주소가 202.30.89.1이면 ISATAP의 IPv6 주소는 2001:2b8:1:1:0:5efe:202.30.89.1가 된다.
지금까지 설명한 자동 터널은 NAT 내부의 사설 IPv4 환경이거나 방화벽을 사용하고 있다면 사용하기 어렵니다. 터널 형성을 위해서는 방화벽에 Protocol ID=41인 패킷에 대해서 전송을 허용하도록 하는 등의 추가 작업이 필요하다. TEREDO는 이러한 번거로운 작업을 해결하여 준다. 이 방법은 IPv4 헤더-UDP 헤더-IPv6 패킷 순으로 인캡슐래이션(encapsulation)시켜 방화벽이 IPv6 패킷인지 알 수 없게 하며 또한 서버를 통하여 IPv4 사설 주소 및 Port 번호에 대한 정보를 유지하여 NAT 내부에서도 터널을 사용할 수 있도록 한다. 3ffe:831f ::/32라는 지정된 프리픽스(표준화 단계로 아직 IANA에서 정의한 프리픽스는 아님)와 포트번호, NAT IPv4 공인 주소, 서버의 IPv4 주소 등의 조합으로 IPv6 주소를 형성한다. 단, 방화벽 및 NAT의 종류에 따라 TEREDO를 사용하더라도 터널 형성이 안 될 수 있다.
이외에도 IPv4 TEP주소와 관계없는 global IPv6 주소를 할당하지만 자동터널처럼 관리의 부하(overhead)는 줄인 방법으로 터널브로커 메커니즘이 있다. 터널 브로커는 IPv4 주소가 변하면 IPv6 주소가 동시에 변하는 자동터널과 달리 고정된 global 주소할당이 가능하며 추가로 사용자 인증 등을 추가하여 자원관리를 강화하였다.
표준화 및 구현 현황
현재 설정터널, automatic tunnel using compatible IPv6 address, 6to4, Tunnel Broker에 대한 IETF 표준화는 완료된 상태이다. 그러나 ISATAP, TEREDO은 v6ops(NGTRANS WG에서 논의되던 것을 이어받음)에서 표준화를 진행하고 있다.
구현 현황을 살펴보면 설정터널은 시스코, 주니퍼, 히다찌, 6wind 등 거의 모든 라우터 제조회사에서 구현하고 있고 추가로 MS의 윈도우즈, Sun의 Solaris, FreeBSD, Linux 등 OS에서도 구현이 가능하다. 6to4는 주니퍼를 제외한 대부분의 제조회사에서 구현중이며 Sun의 Solaris를 제외한 OS에서 구현 가능하다. ISATAP은 시스코, 6WIND 라우터와 MS 윈도우즈, FreeBSD, Linux에서, TEREDO는 FreeBSD(client, server, relay), MS 윈도우즈(client)에서 사용 가능하다. Tunnel Broker 서비스는 Freenet6, Cernet, IIJ, UK 등 회사에서 윈도우즈, FREEBSD, LINUX 등 기반으로 사용할 수 있도록 제공되고 있다. 아래 표는 각 터널링 기술을 비교한 표이다.
<참고 IPv6 주소 표기>
IPv6는 128 bit 주소를 16bit 단위로 나누고 16bit를 다시 16진수 4자리로 표시한다. 16진수 단위로 나누어진 것은 콜론(:)으로 구분한다.
예) 2001:2b8:13aa:1211:0000:0000:0000:abaa
또한 표기할 때 0으로 채워진 부분은 콜론 두개(::)로 표시할 수 있다.
예) 2001:2b8:13aa:1211::abaa
주소는 네트워크를 표시하는 프리픽스(prefix)와 기타 부분으로 나뉘는데 표기된 주소 중 prefix 길이는 주소 뒤에 /숫자로 표기한다. 즉 2001:2b8:13aa:1211::abaa/48 에서 prefix는 2001:2b8:13aa 이 된다.
IPv6 주소 중에서 IPv4 주소로부터 자동으로 생성하는 주소 양식이 여러 가지가 있는데 이중 하나가 IPv4 Compatible Address이다. 이 IPv6 주소는 ::/96(0으로 96bit가 채워진 프리픽스)와 IPv4 주소 32bit가 조합이 되어서 만들어 진다. 예를 들면, 202.30.89.5라는 IPv4 주소에 대한 compatible address는 ::202.30.89.5 가 된다.
염창열 ( 한국전산원 인터넷기반.인증팀, yumcy@nca.or.kr)
(출처 : http://www.tta.or.kr)
주소 고갈문제가 논의되면서 1995년 IETF에서 IPv6 주소가 표준화된 이후 많은 연구와 표준화를 추진하였고, 이제 세계 각국은 IPv4 주소에서 IPv6 주소로의 전환을 신중하게 고려하고 있다. 과거 110V 전압에서 220V 전압으로 전환할 때에도 상당기간 변압기를 사용하여 기존의 110V 전자제품을 220V 환경에서 사용하였듯이 한순간에 IPv6로 전환되기 보다는 과도기에 다양한 전환기술이 사용될 것으로 보인다. 전환기술은 크게 Dual Stack, 터널, 주소변환(NAT-PT 등)으로 나뉘어 표준화되고 있다. 이중 터널 기술이 저렴한 비용, 안정성 등의 이유로 가장 널리 사용될 것으로 보이며 IETF에서도 다양한 터널에 대한 표준화가 진행되고 있다. 본 고에서는 다양한 터널 기술 정의 및 용도 등에 대해서 설명하고자 한다. 여기서 다루고자하는 터널은 IPv4 주소 해더로 IPv6 패킷을 감싸는 IPv6 in IPv4로 한정할 것이며 IPv6 in MPLS(6PE)와 같이 IPv4 라우팅에 의해 형성된 MPLS LABEL로 IPv6 패킷을 감싸 전달하는 방식이나 IPv4 패킷을 IPv6 헤더로 감싸는 IPv4 in IPv6 터널은 제외한다.
터널의 종류
IPv6 in IPv4 터널은 설정터널(configured tunnel) 및 자동터널로 구분된다. 설정터널은 터널링된 패킷의 IPv4 주소와 IPv6 주소 사이에 연관이 없다. 따라서 터널에 사용될 IPv6 주소를 임의로 지정하여 입력해야 하는 등 설정시 많은 작업이 필요하다. 이 방법은 수많은 일반 이용자들이 사용하는 단말과 단말 사이나 망과 단말 사이에는 사용하기 어렵고 망과 망간에 주로 사용된다. 반면에 자동터널의 IPv6 주소는 TEP(Tunnel End Point)의 IPv4주소와 연계되어 자동 생성된다. 따라서 단말과 단말간 및 망과 단말간에 많이 사용된다.
자동터널에는 automatic tunnel using compatible IPv6 address, 6to4, ISATAP, teredo 등이 있다. IPv6 compatible 주소를 사용한 automatic tunnel은 터널 IPv6 주소가 [::IPv4]와 같은 compatible IPv6 주소 형식으로 만들어진다. 즉 TEP의 IPv4 주소가 202.30.89.1이면 TEP의 IPv6 주소는 [::202.30.89.1]이 된다. 여기서 global IPv6 인터넷과 연계하여 사용하기 위해서는 ::/96에 대한 라우팅 테이블을 광고(advertisement)해야 하는데 이는 기존 IPv6 라우팅 테이블이 최대 5배까지 커지는 문제가 있다.
6to4 터널은 IANA에서 정의한 2002::/16 프리픽스와 TEP의 IPv4 주소가 연계되어 TEP IPv6 주소를 형성한다. 즉 2002:IPv4 address::/48이 이용자에 할당되는 프리픽스이다. 이 방식은 IPv6 라우팅 테이블에 2002::/16만 추가되므로 테이블 크기에 영향을 주지 않는다. 6to4는 이용자 사이트에 /48 프리픽스를 할당해 주므로 이용자는 이를 나누어 여러 개의 서브넷을 구성할 수 있다.
ISATAP은 여타 자동터널 방식과 달리 정해진 프리픽스가 없고 ISP에서 보유한 /64 크기의 global IPv6 프리픽스를 사용하여 주소를 생성한다. 예를 들면, ISP에서 2001:2b8:1:1::/64 프리픽스를 이용자에게 할당하였고 이용자 단말(TEP)의 IPv4 주소가 202.30.89.1이면 ISATAP의 IPv6 주소는 2001:2b8:1:1:0:5efe:202.30.89.1가 된다.
지금까지 설명한 자동 터널은 NAT 내부의 사설 IPv4 환경이거나 방화벽을 사용하고 있다면 사용하기 어렵니다. 터널 형성을 위해서는 방화벽에 Protocol ID=41인 패킷에 대해서 전송을 허용하도록 하는 등의 추가 작업이 필요하다. TEREDO는 이러한 번거로운 작업을 해결하여 준다. 이 방법은 IPv4 헤더-UDP 헤더-IPv6 패킷 순으로 인캡슐래이션(encapsulation)시켜 방화벽이 IPv6 패킷인지 알 수 없게 하며 또한 서버를 통하여 IPv4 사설 주소 및 Port 번호에 대한 정보를 유지하여 NAT 내부에서도 터널을 사용할 수 있도록 한다. 3ffe:831f ::/32라는 지정된 프리픽스(표준화 단계로 아직 IANA에서 정의한 프리픽스는 아님)와 포트번호, NAT IPv4 공인 주소, 서버의 IPv4 주소 등의 조합으로 IPv6 주소를 형성한다. 단, 방화벽 및 NAT의 종류에 따라 TEREDO를 사용하더라도 터널 형성이 안 될 수 있다.
이외에도 IPv4 TEP주소와 관계없는 global IPv6 주소를 할당하지만 자동터널처럼 관리의 부하(overhead)는 줄인 방법으로 터널브로커 메커니즘이 있다. 터널 브로커는 IPv4 주소가 변하면 IPv6 주소가 동시에 변하는 자동터널과 달리 고정된 global 주소할당이 가능하며 추가로 사용자 인증 등을 추가하여 자원관리를 강화하였다.
표준화 및 구현 현황
현재 설정터널, automatic tunnel using compatible IPv6 address, 6to4, Tunnel Broker에 대한 IETF 표준화는 완료된 상태이다. 그러나 ISATAP, TEREDO은 v6ops(NGTRANS WG에서 논의되던 것을 이어받음)에서 표준화를 진행하고 있다.
구현 현황을 살펴보면 설정터널은 시스코, 주니퍼, 히다찌, 6wind 등 거의 모든 라우터 제조회사에서 구현하고 있고 추가로 MS의 윈도우즈, Sun의 Solaris, FreeBSD, Linux 등 OS에서도 구현이 가능하다. 6to4는 주니퍼를 제외한 대부분의 제조회사에서 구현중이며 Sun의 Solaris를 제외한 OS에서 구현 가능하다. ISATAP은 시스코, 6WIND 라우터와 MS 윈도우즈, FreeBSD, Linux에서, TEREDO는 FreeBSD(client, server, relay), MS 윈도우즈(client)에서 사용 가능하다. Tunnel Broker 서비스는 Freenet6, Cernet, IIJ, UK 등 회사에서 윈도우즈, FREEBSD, LINUX 등 기반으로 사용할 수 있도록 제공되고 있다. 아래 표는 각 터널링 기술을 비교한 표이다.
<참고 IPv6 주소 표기>
IPv6는 128 bit 주소를 16bit 단위로 나누고 16bit를 다시 16진수 4자리로 표시한다. 16진수 단위로 나누어진 것은 콜론(:)으로 구분한다.
예) 2001:2b8:13aa:1211:0000:0000:0000:abaa
또한 표기할 때 0으로 채워진 부분은 콜론 두개(::)로 표시할 수 있다.
예) 2001:2b8:13aa:1211::abaa
주소는 네트워크를 표시하는 프리픽스(prefix)와 기타 부분으로 나뉘는데 표기된 주소 중 prefix 길이는 주소 뒤에 /숫자로 표기한다. 즉 2001:2b8:13aa:1211::abaa/48 에서 prefix는 2001:2b8:13aa 이 된다.
IPv6 주소 중에서 IPv4 주소로부터 자동으로 생성하는 주소 양식이 여러 가지가 있는데 이중 하나가 IPv4 Compatible Address이다. 이 IPv6 주소는 ::/96(0으로 96bit가 채워진 프리픽스)와 IPv4 주소 32bit가 조합이 되어서 만들어 진다. 예를 들면, 202.30.89.5라는 IPv4 주소에 대한 compatible address는 ::202.30.89.5 가 된다.
염창열 ( 한국전산원 인터넷기반.인증팀, yumcy@nca.or.kr)
(출처 : http://www.tta.or.kr)
반응형