-------------------------------만들어진 계기 및 역사--------------------------
IPv6(Internet Protocol version 6)는 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 version 6 Internet Protocol로 제정된 차세대 인터넷 프로토콜을 말한다. 인터넷(Internet)은 IPv4 프로토콜로 구축되어 왔다. IPv4는 Internet protocol version 4의 약어로, 인터넷 프로토콜의 4번째 버전이다. 전 세계적으로 사용된 첫 번째 인터넷 프로토콜로, IETF RFC 791에 문서화되어 있다. 또한 IPv6를 제외하고, 현재 인터넷에서 사용되는 유일한 프로토콜이다. 한편 인터넷 프로토콜(IP : Internet protocol)은 인터넷상의 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는 데 사용되는 프로토콜을 일컫는다. 인터넷상의 각 컴퓨터, 즉 호스트들은 다른 컴퓨터와 구별될 수 있도록 적어도 한 개 이상의 고유한 주소를 갖는다. IPv4의 주소체계는 네 개로 나눠진 최대 12자리의 번호로 이뤄져 있다. 예를 들면, ‘210.113.39.224’이다. 32비트로 이뤄진 IPv4는 최대 약 40억 개의 서로 다른 주소를 부여할 수 있다. 그러나 기하급수적으로 늘어나는 사용자 수요를 감안할 때, 현재 사용되고 있는 IPv4 체계로는 계속해서 요구되는 인터넷 어드레스 수요를 충족시킬 수 없다.
2012년 1월 30일 현재 IPv4의 4,294,967,296개의 주소 중 3,410,303,904개가 할당 588,514,560개가 특수용도 296,148,832개가 미할당이다. 그리고 IANA에서의 할당은 더이상 없는 상태이다. 그리고 APNIC에서는 1회에 한정하여 1024개만을 할당하고 있다, 2012년 1월 30일자로, 대한민국에 IPv4는 112,231,936개가 할당 되어있다. IPv4 주소는 빠른 속도로 고갈되었으며, 인터넷에 접속된 컴퓨터는 기하급수적인 속도로 증가하고 있다. 또한 모자라는 주소를 더많은 네트워크에 할당하기 위해 네트워크 프래그멘테이션(Network Fragmentation)은 지속적으로 증가하여 라우터에 많은 부담을 주고 있다.
이에 따라 인터넷의 주소 고갈과 네트워크 프래그멘테이션 문제를 해결하며 인터넷에 확장성과 데이터 보안을 강화하기 위하여 128비트 주소체계를 갖는 IPv6가 등장하였으며, IPv6를 연동 및 실험시킬 수 있는 실험망으로 1996년 Bob Fink 등이 주축이 되어 6Bone이라는 가상망을 만든 바 있다
IPv6는 팰로앨토 연구소에서 개발하고, 1994년 IETF(국제 인터넷 표준화 기구)가 채택하였다. 처음에는 IP Next Generation (IPng)라고 불렀다.
현재 IPv6의 사용량은 매우 적은 편이며, 인터넷의 나머지 부분은 아직도 IPv4 프로토콜로 작동하고 있다.
2012년 1월 30일 현재 IPv6의 2128인 3.4x1038개의 IPv6주소 가운데 21,131,922개의 주소만 전 세계에서 할당되어 사용중이고 이 중에 20,971,520개의 주소는 특수목적용으로 할당되어 있으므로 실제 160,402개의 주소만 실제 사용되고 있다. 대한민국에서는 현재 5,219개의 IPv6 주소를 할당 받아 사용 중이다.
---------------------------------------------특징---------------------------
IPv6와 기존의 IPv4 사이에서 가장 큰 차이점은 역시 IP주소의 길이가 128비트로 늘어났다는 점이다. 이는 폭발적으로 늘어나는 인터넷 사용에 대비하기 위한 것이다. 또한 IPv6는 여러가지 새로운 기능을 제공하는 동시에 기존 IPv4와의 호환성을 최대로 하는 방향으로 설계되었다. 때문에 몇몇 예외(FTP, NTPv3 등)를 제외하고 대부분의 네트워크 수준 상위 프로토콜들은 큰 수정 없이 IPv6 상에서 동작할 수 있다. IPv6 프로토콜은 다음과 같은 특성을 지니는 프로토콜로 개발되었다.
IP 주소의 확장 : IPv4의 기존 32 비트 주소공간에서 벗어나, IPv6는 128 비트 주소공간을 제공한다. 그러므로 340,282,366,920,938,463,463,374,607,431,768,211,456개 즉 거의 무한대의 주소를 할당 가능하다.
호스트 주소 자동 설정 : IPv6 호스트는 IPv6 네트워크에 접속하는 순간 자동적으로 네트워크 주소를 부여받는다. 이는 네트워크 관리자로부터 IP 주소를 부여받아 수동으로 설정해야 했던 IPv4에 비해 중요한 이점이다.
패킷 크기 확장 : IPv4에서 패킷 크기는 64킬로바이트로 제한되어 있었다. IPv6의 점보그램 옵션을 사용하면 특정 호스트 사이에는 임의로 큰 크기의 패킷을 주고받을 수 있도록 제한이 없어지게 된다. 따라서 대역폭이 넓은 네트워크를 더 효율적으로 사용할 수 있다.
효율적인 라우팅 : IP 패킷의 처리를 신속하게 할 수 있도록 고정크기의 단순한 헤더를 사용하는 동시에, 확장헤더를 통해 네트워크 기능에 대한 확장 및 옵션기능의 확장이 용이한 구조로 정의하였다.
플로 레이블링(Flow Labeling) : 플로 레이블(flow label) 개념을 도입, 특정 트래픽은 별도의 특별한 처리(실시간 통신 등)를 통해 높은 품질의 서비스를 제공할 수 있도록 한다.
인증 및 보안 기능 : 패킷 출처 인증과 데이터 무결성 및 비밀 보장 기능을 IP 프로토콜 체계에 반영하였다. IPv6 확장헤더를 통해 적용할 수 있다.
이동성 : IPv6 호스트는 네트워크의 물리적 위치에 제한받지 않고 같은 주소를 유지하면서도 자유롭게 이동할 수 있다. 이와 같은 모바일 IPv6는 RFC 3775와 RFC 3776에 기술되어 있다. (IPv4에도 모바일 IP가 정의되어 있지만 아직 많이 사용되지 않는다.)
---------------------------------모바일IPv6-----------------------------------
모바일에서도 IPv6시대가 열린다. 기존 IPv4 기반 모바일 체계에서는 인터넷 주소 부족으로 사설 IP네트워크 환경을 사용함으로써 모바일 IP·P2P·영상전화 등 각종 멀티미디어 콘텐츠나 데이터통신 서비스를 제공하는 데 어려움을 겪어 왔다. 하지만 모바일 IPv6 체계를 도입하면 무한대의 인터넷주소 자원을 활용해 벨소리·메시지·영화·만화·어학강좌 등 다양한 사용자 맞춤형 서비스가 가능해진다.
------------------------------IPv6의 주소공간---------------------------------
IPv4는 32비트의 주소공간을 제공함에 반해, IPv6는 128비트의 주소공간을 제공한다.
32비트 주소공간이란, 32 비트로 표현할 수 있는 주소영역을 지칭한다. 32 비트에 의해 생성할 수 있는 모든 IPv4 주소는 232인 4,294,967,296개이다.
IPv6의 128비트 주소공간은 128 비트로 표현할 수 있는 2128개인 약 3.4x1038개(340,282,366,920,938,463,463,374,607,431,768,211,456개)의 주소를 갖고 있어 거의 무한대로 쓸 수 있다.
IPv4 주소에 비해 IPv6 주소는 그 표현 비트 수가 128비트로 IPv4의 32비트에 비해 4배가 되었지만, 생성되는 IPv6 주소공간 영역은 IPv4 주소공간에 비해 296배의 크기를 갖는다.
IPv6 주소공간은 향후 인터넷에 등장할 대량의 유비쿼터스 통신 장치들이 상호 통신을 할 수 있는 주소공간을 제공할 수 있다. 냉장고, TV, AV 스피커, DVD 플레이어, 홈 보안장치, 전화기 등 각 요소 장비들이 지능화하면서 동시에 무선 인터넷 등을 통해 상호 통신할 수 있도록 각 장치(device)에 IPv6 주소를 제공할 수 있다.
128비트의 주소공간은 지표면의 모든 공간에 10m2당 1개씩의 IPv6/48 네트워크를 제공할 수 있을 만큼의 많은 개수를 갖는다. 어떤 사람들은 이 주소가 지나치게 많고, 그렇게 많은 네트워크가 필요하게 될 일은 영원히 없을 거라고 주장하지만, IPv6의 128비트 주소공간은 주소가 바닥나는 것을 막는 것 외에도 네트워크가 여러 개의 작은 단위로 조각나는 것을 막아 라우팅을 빠르게 만들기 위한 목적도 갖는다.
주소 표현 방법
32자리의 16진수는 사람이 읽고 쓰기에 불편하고, 대부분의 자리가 0의 숫자를 갖게 되므로, 4자리가 모두 0의 숫자를 가질 경우 하나의 0으로 축약하거나, 혹은 아예 연속되는 0의 그룹을 없애고 ':' 만을 남길 수 있다. 아래의 규칙과 예시를 보자.
IPv4는 . 으로 구분하는 반면 IPv6는 : 으로 구분한다.
IPv6의 128비트 주소공간은 다음과 같이 32자리의 16진수를 4자리씩 끊어 나타낸다.
x:x:x:x:x:x:x:x 형식으로 x가 16진수 4자리로 이루어진 16bit 필드이다.
(16진수 A,B,C,D,E,F 는 대소문자를 인식하지 않는다.)
필드에서 처음부분의 제로는 선택사항이다.
제로가 연속적인 필드들은 주소 당 오직 딱 한번 “::” 으로 표현이 가능하다.
그 이유는 만약 두 번 이상 적용하는 것이 허용되어 2001::25de::cade와 같은 표현이 가능하다면, 이 표현은 다음의 네 가지 주소 가운데 어떤 것을 가리키는지 의미가 불분명해질 것이다.
2001:0000:0000:0000:0000:25de:0000:cade
2001:0000:0000:0000:25de:0000:0000:cade
2001:0000:0000:25de:0000:0000:0000:cade
2001:0000:25de:0000:0000:0000:0000:cade
그러므로 한번만 사용이 가능하다.
2031:0000:130F:0000:0000:09C0:876A:130B 를
2031:0:130f::9c0:876a:130b로 표현이 가능하다.
2031::130f::9c0:876a:130b는 불가능하다. 그 이유는 위와 같다.
딱 한번만 ::를 사용할 수 있기 때문이다.
*::활용법*
FF01:0:0:0:0:0:0:1 -> FF01::1
0:0:0:0:0:0:0:1 -> ::1
0:0:0:0:0:0:0:0 -> ::
이 그림은 주소 2031:0000:130F:0000:0000:09C0:876A:130B를 보여준다.
IPv6는 연속된 주소 표현이 분명하게 요구되지 않으므로 이그림은 아래의 방법을 적용하여 주소를 짧게 만드는 방법을 보여준다.
필드에서 선두의 제로는 선택적이다. 예를들어 필드 09C0은 9C0과 같으며, 필드 0000은 0과같다.그리하여2031:0000:130F:0000:0000:09C0:876A:130B는 2031:0:130F:0000:0000:9C0:876A:130B와 같이 표기할 수 있다.
제로들이 연속적인 필드들을 두 개의 콜론 “::”으로 표현이 가능하다. 그러나 이 속기 방식은 오직 하나의 주소에서 한번만 사용할 수 있다. 예를 들어서 2031:0:130F:0000:0000:9C0:876A:130B는 2013:0:130F::9C0:876A:130B와 같이 표기할 수 있다.
명시되지 않은 주소는 오로지 제로만 포함되어있기 때문에 “::”와 같이 표기할수 있다.
이 방법과 그림을 보면 “::”의 표현 방법은 대부분의 주소 사이즈를 현저히 감소 시킨다.
---------------------------네트워크 표현--------------------------------------
IPv6 네트워크(혹은 서브넷)는 2의 제곱수를 크기로 갖는 IPv6 주소들의 집합이다. 네트워크 주소는 네트워크 프리픽스 뒤에 프리픽스의 '/' 기호와 함께 비트 수를 붙여서 나타낸다. 2001:1234:5678:9ABC::/64는2001:1234:5678:9ABC::부터 2001:1234:5678:9ABC:FFFF:FFFF:FFFF:FFFF 까지의 주소를 갖는 네트워크를 나타낸다.
--------------------------------IPv4 주소의 IPv6 형태--------------------------
기존 네트워크와의 호환성을 위해, IPv4 주소는 다음과 같은 세 가지 방법을 통해 IPv6 주소로 나타낼 수 있다.
표준 IPv6 표기 : IPv4 주소 192.0.2.52는 16진수로 표시하면 0xC0000234가 된다. 이를 그대로 IPv6 주소로 변경하면 0000:0000:0000:0000:0000:0000:C000:0234가 되고, 줄이면 ::C000:234가 된다.
IPv4 호환 주소 : IPv4와의 호환성과 가독성을 위해 기존 표기에 '::' 만을 붙여 ::192.0.2.52와 같이 쓸 수 있다. 그러나 이 방법은 더 이상 사용되지 않아 폐기될 예정이다.
IPv4 매핑 주소 : IPv6 프로그램에게 IPv4와의 호환성을 유지하기 위해 사용하는 다른 방법으로, 처음 80비트를 0으로 설정하고 다음 16비트를 1로 설정한 후, 나머지 32비트에 IPv4 주소를 기록하는 IPv4 매핑 주소가 존재한다. 이 주소공간에서는 마지막 32비트를 10진수로 표기할 수 있다. 따라서 192.0.2.52는 ::ffff:192.0.2.52와 같이 쓸 수 있다.
----------------------------------특수 주소 공간------------------------------
::/128 - 이 주소는 모든 값을 0으로 설정한 특수한 주소이다. 가상적으로만 사용된다. IP 미설정 상태의 발신 주소이다.
::1/128 - 자기 자신의 주소를 가리키는 루프백 주소이다. 프로그램에서 이 주소로 패킷을 전송하면 네트워크는 전송자에게로 패킷을 반송한다. IPv4의 127.0.0.1과 동일하다.
::/96 - IPv4 호환 주소를 위해 사용되는 주소공간이다.
::ffff:0:0/96 - IPv4 매핑 주소를 위해 사용되는 주소공간이다.
fc00::/7 - IPv6 유니캐스트를 위한 주소공간이다.
fe80::/10 - link-local address를 위한 주소공간이다. IPv4의 자동 설정 IP 주소인
169.254.x.x 에 해당한다.
fec0::/10 - site-local address를 위한 주소공간이다. 네트워크 내부에서만 유효한 주소이며, 2004년 10월 RFC3879에서 폐기되어 더 이상 사용되지 않는다.
ff00::/8 - IPv6 멀티캐스트를 위한 주소공간이다. IPv4의 브로드캐스트는 더 이상 지원되지 않으며, IPv6에서는 대신 멀티캐스트를 사용해야 한다.
--------------------------------IPv6 전환 기술--------------------------------
IPv6 전호나 기술에는 여러 가지가있다.
듀얼스택
IPv4/IPv6 듀얼스택은 IPv6 노드가 IPv4 전용 노드와 호환성을 유지하는 가장 쉬운 방법이다. IPv6/IPv4 듀얼스택 노드는 IPv4와 IPv6 패킷을 모두 주고 받을 수 있는 능력이 있어, IPv4 패킷을 사용하여 IPv4 노드와 직접 호환된다. 또한, IPv6 패킷을 사용하여 IPv6 노드와 직접 호환된다.
듀얼스택 노드의 주소 설정
IPv4/IPv6 듀얼스택 노드는 두 프로토콜을 모두 지원하므로 IPv4 주소와 IPv6 주소로 모두 설정할 수 있다. IPv4/IPv6 듀얼스택 노드는 IPv4 메커니즘(예; DHCP)을 사용하여 그 IPv4 주소를 얻고, IPv6 프로토콜 메커니즘을 사용하여 해당 IPv6 전용 주소를 얻을 수 있다.
듀얼스택 노드의 DNS 이름 해석
IPv4/IPv6 듀얼스택 노드는 IPv4 및 IPv6 노드와 직접 호환될 수 있어야 하므로 IPv4 A 레코드는 물론이고, IPv6 AAAA 레코드도 처리할 수 있는 주소 해석기 라이브러리(DNS Resolver Library)를 제공해야 한다. 하지만 IPv6 주소를 가진 AAAA 레코드와 IPv4 주소를 가진 A 레코드를 조회할 경우 주소 해석기 라이브러리는 그 노드와의 통신에 사용되는 IP 패킷 버전에 영향을 미치기 위해 응용에 반환된 결과를 필터링하거나 순서를 정할 수 있다.
터널링
터널링은 IPv6/IPv4 호스트와 라우터에서 IPv6 데이터그램을 IPv4 패킷에 캡슐화하여 IPv4 라우팅 토폴로지 영역을 통해 전송하는 방법이다. 터널링은 기존의 IPv4 라우팅 인프라를 활용하여 IPv6 트래픽을 전송하는 방법을 제공한다.
IPv6-in-IPv4 터널링 방법은 크게 설정 터널링(configured tunneling) 방식과 자동 터널링(automatic tunneling) 방식으로 구분된다.
설정 터널링
6Bone에서 주로 사용하는 방법으로 두 라우터 간(혹은 호스트 간)의 IPv4 주소를 통해 수동으로 정적인 터널을 설정하는 방식이다.
자동 터널링
IPv4-호환 주소를 이용하여 수동 설정 없이 IPv4 구간을 통과할 때면 IPv4 호환 주소에 내포되어 있는 IPv4 주소를 통해 자동으로 터널링을 하여주는 방식이다.
Tunneling 기술의 문제
1. Tunnel의 양단간의 장비는 반드시 두 개의 프로토콜을 지원하는 장비(Dual Stack)이어야 한다.
2. Tunnel의 양단간의 장비에서는 반드시 변환 프로토콜 번호를 허용해야 하기 때문에 보안상 문제가 발생한다.
IPv6의 프로토콜이 41번이므로, Tunnel 양단 장비에서 41번 프로토콜을 허용해야 터널링 구성 가능
3. Tunneling에 의한 패킷 크기 증가로 패킷의 분할될 수 있으며 이는 장비의 부하량을 증가 시킨다.
주소변환
IPv6와 IPv4 간의 주소 전환 장비를 이용하여, 기존의 IPv4에서 사용되던 NAT 기술과 마찬가지로 IPv6와 IPv4 간의 Address Table을 생성하여 양단간의 통신이 가능하도록 한다.
이러한 기술은 IPv4 패킷과 IPv6의 패킷에서 IPv4 헤더와 IPv6 헤더를 제외한 상위 계층은 동일한 구조로 생성되어 있기 때문에 IPv4, IPv6 헤더 부분을 전환하며 그대로 데이터를 전송할 수 있게 한다. 다만, 상위 계층의 패킷에 IP정보가 포함된 프로토콜이 포함된 경우에는 동작 과정이 더 복잡하고 제한적으로 동작할 수 있다. (DNS, FTP 등)
┌────────────────┐ ┌───────────────┐ ┌────────────────┐
│ IPv6 Network │<────>│ Translater │<────>│ IPv4 Network │
└────────────────┘ └───────────────┘ └────────────────┘
주소 전환 프로토콜 계층에 따라서 다음의 3가지로 분류할 수 있다.
1. SIIT(Stateless Ip/Icmp Translation)
2. TRT(Transport relay Translator)
3. ALG(Application Level Gateway)
댓글 없음:
댓글 쓰기