2010년 7월 30일 금요일

IPv6란 무엇인가?



[ 2009년 09월 09일 현재 IPv4 고갈시점과 IPv6 주소 보유갯수 ]

 IPv6  주소체계



IPv6주소란


  • IPv6주소는 무한대의 개수에 가까운 주소를 활용할 수 있고 전 세계의 모든 사람들뿐만 아니라 사물과 사물과의 통신 등 다양한 분야에 IP주소를 부여하여 인터넷과 접속할 수 있는 차세대 인터넷 주소입니다.
    IPv4의 한계
       약 43억개의 한정된 주소자원
보안기능 고려 없이 설계

IPv6주소 구성

  • IPv6주소는 16bit 4자리를 콜론(:)으로 구분하여 16진수로 표기합니다.
  • 128bit중 앞의 64bit를 네트워크 주소로, 뒤의 64bit를 네트워크 인터페이스 주소로 활용합니다.



 

1. IPv6 개요

 

 1-1. IPv4의 한계
  - IP 주소에 대한 수요 증가로 주소 고갈 문제 발생
  - 클래스 단위 주소 할당 방식으로 인한 주소의 낭비
  - 다양한 서비스 제공, 보안기술 등 새로운 요구 사항 등장 

 

 1-2. IPv6의 등장
  - 1996년 IETF에서 IPv6(IP version 6, RFC 2460)를 표준화
  - 기존 IPv4의 32비트 주소길이를 4배 확장한 128비트 주소 길이를 사용(약 3.4×1038(2128)개)
  - 보안, 라우팅 효율성 문제, QoS(Quality of Service) 보장, 무선인터넷 지원 등 다양한 기능들을 제공

 

  1-3. IPv6 도입배경

 

2. IPv6 특징

 

 

   - 확장된 주소 공간
   - 128 비트의 주소 공간
   - IPv4 주소 부족 문제를 해결할 수 있을 만큼의 주소 공간
   - NAT(Network Address Translation)와 같은 주소 변환 기술도불필요
   - 유니캐스트(unicast), 애니캐스트(anycast), 멀티캐스트(multicast) 주소 형태 주소 자동 생성 기능을 지원

 

  2-1. 새로운 헤더 포멧

   - IPv4의 일부 헤더 필드를 삭제하고 확장 헤더를 도입
   - 패킷을 중계하는 라우터들의 부하를 줄임
헤더를 고정 길이로 변경 - IPv4의 가변길이 패킷과의 호환을

     위해 확장헤더 사용 

 

  2-2. 패킷 단편화 관련 필드가 삭제

   - 라우터의 부담을 줄이고, 네트워크의 효율적인 이용
   - 경로 MTU(Maximum Transmission Unit) 탐색 기능 사용
 

 

  2-3. 체크섬(checksum) 필드 삭제
  2-4. 향상된 서비스의 지원

   - 응용 프로그램의 특정 서비스 품질(QoS) 요구 : 실시간 트래픽 및 비실시간 트래픽 구분
- IPv6 헤더 내에 플로우 레이블(Flow Label)필드 정의 : 트래픽 플로우에 대한 구분을 수행

 


 

3. 보안 기술


   - IPv6는 프로토콜 내에 보안관련 기능을 탑재 IPSec(Internet Protocol Security)
   - 보안과 관련된 인증 절차, 데이터 무결성 보호, 메시지의 발신지 확인 등의 기능 제공
   - 확장 헤더를 이용하여 네트워크 계층에서의 종단간 암호화를제공 


3-1. 주소 자동설정
   -  LAN상의 MAC(Medium Access Control)주소와 라우터가 제공하는 네트워크 프리픽스(prefix)를 결합하여

   -  IP주소 자동설정 시스템 관리나 설정에 필요한 비용과 시간을 줄여줌 :사용자에게 편리함 제공
    예) 이동형 컴퓨터에서 어느 곳에서든 네트워크와 연결을 하면 자동으로 포워딩 주소 설정

 

  3-2. 상태 보존형 자동설정(Stateful auto-configuration)

  - DHCP(Dynamic Host Configuration Protocol) 서버로부터 주소를 비롯한 모든 네트워크 정보를 얻음

 

장점

 단점

 주소의 이용 효율성 향상

 서버의 설치 및 구성과 관리가 복잡

 호스트의 인증과정 등을 이용하여 보안성 유지

 대규모의 데이터베이스를 구축

 

  3-3. 비상태형 자동설정(Stateless auto-configuration)
   - 호스트 측에서 스스로 주소를 생성
   - 호스트가 자신의 인터페이스 정보와 라우터로부터 얻은 네트워크 프리픽스 정보

    또는 well-known 프리픽스 정보를 이용하여 자체적으로 IPv6 주소생성

 

 장점

 단점

 특별한 서버가 필요 없음

 이용 권한 없는 호스트의 접근 등으로 인한 보안 관련 문제

 

 

4. IPv6 Address 표현법

 

 - 2진수 -> 16진수로 표현한다.
 - 16bit 씩 Fild ( : )  으로 구분하다.

 

     64bit Network ID가 할당되는 구조

       Network ID                 Host ID
|------------------|-------------------|
 2030:0000:130F:0000:0000:09C0:876A:130B

|2030|  /16 까지는 TLA (미국ISP업체)들이 받는다.
             Network 2^48=281,474,976,710,656
             Network 당 Host수 = 2^64=18,446,744,073,709,551,616

 

|2030:0000| /32 까지 TLA에서 할당 받는다. (NLA=국가별)
                Network 2^32= 4,294,967,296
                Network 당 Host수 = 2^64=18,446,744,073,709,551,616

 

| 2030:0000:130F| /48  까지 NLA (국내 ISP업체에서 할당 받는다.) (SLA) -일반 네트워크 기업들...

  Network 2^16=65,536           
  Network 당 Host수 = 2^64=18,446,744,073,709,551,616

 

>> 아래 네트워크 ID를 사용하는 네트워크에 있는 호스트에 IPv6 Address가 형성되는 방법

 

2030:0000:130F:0000::/64

 

> Host ID는 IPv6 기반 NIC는 EUI-64bit MAC Address가 매핑되어 형성된다
> EUI-48bit MAC을 가진 NIC는 다음 규칙에 의해 Non-EUI-64bit가 만들어 진다.

   00-40-CA-C4-40-ED

 

1. 7번째 bit를 0 <->1로 변경한다.
    2진수변환
   |-----------|
   0000 00x0-40-CA-C4-40-ED
   02-40-CA-C4-40-ED

 

2. 24bit 제조회사 정보와 24bit 제조번호사이에 FFFE를 삽입한다.
    24bit에 제조회사와 40bit에 제조번호가 되도록 변경한다. (Non-EUI-64bit가 된다.)

       제조회사   제조번호
     |----------|----------|
       02-40-CA-C4-40-ED

       제조회사      제조번호 (40bit)
     |----------|------------------|
      02-40-CA-   FF-FE-   C4-40-ED    Non-EUI-64bit

 

   IPv6에 호스트 Address로 사용하기 위해 16bit씩 :으로 구분하여 표기한다.
   -> 0240:CAFF:FEC4:40ED  (64bit에 Host ID가 된다.)

   마지막으로 Network ID + Host ID를 결합하여 IPv6 Address가 된다.

   2030:0000:130F:0000   :  0240:CAFF:FEC4:40ED  (128bit IPv6 Address)


5. IPv6 Packet Header 구조

   5-1. IPv4 Header vs IPv6 Header


 IPv4 IPv6  변경 내용
 VERSION  VERSION
 HLEN  X (삭제)  IPv6 기본 헤더의 사이즈는 fixed 40 bytes
 TOS  CLASS  
 Total Length  Payload Length  IPv6 기본 헤더 40 bytes를 제외한 length (8 bytes = 1로 표현)
 Identification  Fragment Header  IPv6 Fragment Extension 헤더로 대체
 Flags  Fragment Header  IPv6 Fragment Extension 헤더로 대체
 Fragment Offset  Fragment Header  IPv6 Fragment Extension 헤더로 대체
 TTL  Hop Limit  
 Protocol  Next Header (N.H)  IPv6 기본 헤더 다음에 올 extension 헤더 또는 upper Layer (TCP/UDP/ICMPv6) 헤더 종류를 명시
 Checksum  X (삭제)  hop을 거칠 때마다 TTL값을 감소시키고 checksum이 재계산 되는
 비효율성을 없애고 layer2를 신뢰함.
 upper layer에서 checksum 필드를 사용하도록 권장함
 SRC Address  SRC Address  IPv6 에서 128 bits 주소 체계로 확장
 DST Address  DST Address  IPv6 에서 128 bits 주소 체계로 확장


  

  5-2. IPv6 패킷의 구성


: IPv6 헤더는 여러 확장 헤더와 upper layer들이 Next Header 필드 값을 통해 연결될 수 있다.
  Next Header 필드는 다음에 올 헤더의 종류를 명시한다.

 5-3. IPv6 확장 헤더
: 확장 헤더에는 다음에 올 헤더 또는 upper layer를 명시하는 next header(8 bits) 필드와 hdr length(8 bits)
  필드가 일반적으로 존재한다. (fragment extension header는 고정 크기 이므로 예외)
  hdr length는 Next Header, hdr length 필드를 제외한 확장 헤더의 사이즈를 나타낸다.
  (8 bytes = 1로 사이즈 표현)
  fragment extension 헤더는 고정된 사이즈인 (64 bits)의 크기를 갖는다.


  5-4. IPv6 확장 헤더의 종류

1) Hop by Hop Extension Header
2) Destination Extension Header

* MLD : Multicat Listener Discovery

3) Routing Extension Header

- path segments : 남아있는 거쳐가야 할 router의 개수
- strict/loose bit mask
  * strict bit : 정해진 router 경로 이외에 다른 router가 중간에 끼어 있을 경우 packet forwarding을 포기하고
                  ICMP 메시지를 되돌려 줌
  * loose bit : 중간에 다른 router가 존재해도 packet forwarding을 수행

4) Fragment Extension Header
: IPv6의 Fragment Extension Header의 사이즈는 8 bytes로 고정되어 있음
- Fragment Offset : Original 데이터의 offset, N x 8 bytes 로 표현됨. N 이 offset 값을 가짐.
- Mark (1 bit) : 0 이면 Unfragmented 패킷 또는 fragmented 마지막 패킷, 1 이면 중간의 fragmented 패킷을 의미
- Identification : fragmented 패킷에 대해 동일한 ID를 가짐

5) Authentication Extension Header (AH)
- Security Parameters Index : Source와 Destination 간의 Security Association (단방향)
- Sequence Number : replayed packet 공격을 방지하기 위한 counter
- Authentication Data : packet의 위/변조에 대한 integrity를 검사하기 위한 hash (MD5 & SHA-1)
                                중간에 packet이 router에 의해 변하기 쉬운 필드를 제외하고는 모두 hash되어진다.                                (아래 그림에서 노란색 부분이 authentication 대상 데이터이다.)


6) Encapsulating Security Payload Header (ESP)
: ESP 확장 헤더는 payload를 암호화 하는데 사용되며 AH 확장 헤더와는 독립적이다.
  즉 AH 확장 헤더와 ESP 확장 헤더가 함께 사용될 수 있다.
- Security Parameters Index : Source와 Destination 간의 Security Association (단방향)
- Sequence Number : replayed packet 공격을 방지하기 위한 counter
- Next Header : 일반적으로 암호화되는 payload의 프로토콜 타입을 명시한다. (TCP/UDP...)

ESP 확장 헤더를 포함한 패킷은 다음과 같이 구성될 수 있다.


6. IPv6 전환기술

 

   6-1. 듀얼스택

듀얼스택이란 하나의 시스템에서 IPv6와 IPv6 프로토콜을 동시에 처리하는 기술입니다.

 

듀얼스택은 하나의 시스템(호스트 또는 라우터)에서 IPv4와 IPv6 프로토콜을 모두 처리하는 기술입니다. 따라서 듀얼스택을 지원하는 시스템은 물리적으로 하나이지만 논리적으로 IPv4와 IPv6를 둘 다 지원합니다. 다음은 듀얼스택 호스트의 구조입니다.





즉, IPv4/IPv6듀얼스택 S/W는 일반적으로 운영체제 커널단에 S/W 형태로 구현됩니다.

다양한 표준의 네트워크 카드(이더넷, ATM, 와이파이, 와이브로, WCDMA등)와 독립적으로 동작합니다.

 

 

듀얼스택 노드의 DNS 이름해석

DNS는 호스트 이름과 IP 주소를 매핑 하기 위해 사용됩니다. A라는 DNS리소스 레코드는 IPv4주소를 위해 사용하고 AAAA라는 DNS 리소스 레코드는 IPv6 주소를 위해 사용됩니다.

IPv4/IPv6 듀얼스택 노드는 IPv4 및 IPv6 노드와 직접 통신할 수 있어야 하므로 IPv4 A 레코드는 물론이고, IPv6 AAAA레코드도 처리할 수 있어야 합니다.

 

   

6-2. IPv4 / IPv6 변환

게이트웨이를 통하여 IPV4와 IPv6주소체계를 호환하는 기술입니다.

 

변환 기술은 IPv4 망과 IPv6 망 사이에 주소변환기를 사용하여 상호 연동 시키는 기술입니다. IPv6 클라이언트가 IPv4 서버에 접속하거나 반대로 IPv4 클라이언트가 IPv6 서버에 접속할 때 사용되는 기술입니다.

 



이 변환기술은 변환방법에 따라서 헤더변환방식, 전송계층 릴레이 방식, 응용계층 게이트웨이 방식으로 구분하며, NAT-PT/SIIT, TRT, SOCKS 게이트웨이, BIS, BIA 등의 기술이 있습니다.


헤더변환방식

헤더변환방식은 IP계층에서 IPv6 패킷 헤더를 IPv4 패킷 헤더로 또는 그 반대로 변환하는 방식입니다. 세부내용은 SIIT (Stateless IP/ICMP Translation)에서 정의하고 있습니다.


수송 계층 게이트웨이방식

전송 릴레이 방식은 각 세션이 IPv4와 IPv6에 각각 밀폐되어 있기 때문에 헤더변환방식처럼 Fragments 나 ICMP 변환의 문제가 없으며, 헤더 변환 방식에 비하여 상대적으로 빠르다는 장점이 있습니다. 그러나 응용 프로토콜에 내장된 IP주소변환이 안되는 문제가 있습니다. 전송계층 릴레이 방식의 기술로는 TRT (Transport Relay Translator)와 SOCKS 게이트웨이 기술이 있습니다


응용계층 게이트웨이 방식(Application Layer)



응용 계층 게이트웨이 방식은 트랜잭션 서비스를 위한 응용 수준 게이트웨이(ALG)로 사이트 정보를 숨기고 캐시 매커니즘으로 서비스의 성능을 향상시키기 위해 사용합니다.


응용 수준 게이트웨이(ALG)가 IPv4 및 IPv6 두 프로토콜을 동시에 지원하는 경우에 두 프로토콜간에 변환 메커니즘으로 사용될 수 있습니다.


이 방법은 응용 계층에서 변환하는 방식으로, 각 서비스가 IPv4와 IPv6에 밀폐되어 있기 때문에 헤더 변환에서 나타나는 단점은 없지만, ALG가 IPv4와 IPv6 상에서 모두 실행 될 수 있어야 합니다.

 

   

6-3. 터널링

서로다른망을 지나 이동할시 터널을 만들어 패킷이 지나갈 수 있도록 합니다.


터널링 기술은 트래픽이 IPv6망에서 인접한 IPv4망을 거쳐서 건너편 IPv6 망으로 통신할 때 IPv4 망에 터널을 만들어 IPv6 패킷을 통과시키는 개념을 의미합니다.




IPv6 도입 초기에는 소규모 섬 형태의 IPv6 망들이 구축될 것이기 때문에 터널링 기술이 많이 활용될 것 입니다. 전환기술 중에서도 터널링 기술에 대한 표준화 활동이 가장 활발히 진행됐으며, 그 결과 지금까지 다양한 터널링 기술이 표준으로 제안되었습니다.


설정 터널링



설정 터널링은 6Bone에서 주로 사용되는 방식으로 IPv4네트워크를 경유하여 IPv6네트워크간 통신할 때 종단 라우터에 터널을 사전에 수동으로 설정하여 사용하는 방식입니다.


자동 터널링


자동 터널링은 설정 터널링과 달리 실제 통신이 일어나면 자동으로 종단간 터널을 설정하는 방식입니다.


IPv4/IPv6 터널링기술의 종류

 
6to4

사전에 명시적인 터널의 설정 없이 2개 이상의 IPv6 네트워크 간에 IPv4 네트워크를 경유하여 상호간에 통신하기 위한 방법입니다.

Tunnel Broker

2개 이상의 IPv6네트워크간에 IPv4네트워크를 경유하여 통신할 때 '터널브로커'서버가 터널링을 설정하는 방식입니다.

ISATAP

ISATAP는 IPv4네트워크 상에서 IPv4/IPv6 듀얼스택 호스트들간에 통신하는 기능입니다.

Teredo

IPv4 NAT서비스 지역 내에 있는 IPv6호스트들이 외부에 또 다른 IPv6호스트와 통신시 UDP프로토콜을 사용하여 연결하는 기술입니다.

DSTM

임시의 글로벌 IPv4 주소를 IPv6 노드에 제공하고 동적 터널링을 통해 IPv4트래픽을 전송하는 방법을 정의 하고 있는 기술입니다. IPv6 전환 초기에 IPv6 네트워크 내에서 IPv4 주소를 사용할 수 있습니다.

 



 

이번 IPv6관련 내용은 아래 사이트를 참고해서 재편집하였으며, 첨부된 자료는 더욱더 전문적이고 상세한 내용으로 구성된 자료입니다.  

포스팅된 IPv6 프로토콜에 대해  많은 도움 되셨으면 합니다. 

 

 

 

 

▶  차세대 인터넷 IPv6 관련  동영상


 




▶   내용 출처 : http://blog.naver.com/cafca23?Redirect=Log&logNo=90065809916

   *  한국 인터넷 진흥원 : http://www.ngix.ne.kr/

   *  IPv6 Header 구조 : http://ryujeen.tistory.com/132

 

▶   자료 출처 :  htttp://blue.wonkwang.ac.kr/

   *  한국 인터넷 진흥원 : http://www.ngix.ne.kr/

 

 


댓글 2개:

  1. 와우~ 정말 대단합니다.

    그런데 후니's ?.. 혹시 시스코 네트워크 책으로 유명하신 그분이신가요?

    답글삭제
  2. ㅎㅎ 전 그 후니는 아니네요~지송 ㅋ



    암튼 좋은 정보 얻으셨길 바래요~~^^*

    답글삭제