IPv6
IPv6는 IPv4의 부족한 주소 공간 문제를 해결하기 위해 주소 길이를 128비트 길이로 IPv4 주소 길이의 4배로 늘린 주소이다.
표현법

축약
주소 이름이 워낙 길어 많은 수의 0을 포함하고 있다. 이런 경우 주소를 축약할 수 있다.
- 이런 경우 섹션(두개의 콜론 사이에 있는 4개의 0이 아닌 숫자)앞의 0은 생략할 수 있다.
- 0000은 0으로표현할수있고 연속되는 섹션이 0으로만 구성되어 있을 경우 0을 모두 제거하고 더블 콜론으로 대치할 수 있다. zero compression
- 이는 주소당 한 부분만 가능
주소 공간
IPv6는 2^128개의 주소 공간을 갖는다.
주소 공간 할당
주소를 다양한 크기의 여러 공간으로 나누고 각 블록은 특수한 목적에 사용된다. 대부분은 차후를 위해 아직 할당되지 않았다.

특별 주소
- DHCP에서 사용 > 호스트가 자신의 주소를 모를 때 :
0000::/128
- 자기 자신을 나타내는 특수 주소 :
0000::1/128
- IPv6 호스트간에 IPv4네트워크를 거쳐 통신하는 경우 :
0000::/96
뒤에 IPv4 - IPv6 호스트가 IPv4 호스트에게 메시지를 보낼 경우 :
0000::FFFF/96
뒤에 IPv4
다른 할당된 블록
사설 주소지정과 멀티캐스팅에 큰 2개의 블록을 사용한다.
-
Unique local unicast block :
FC00::/7
몇 개의 서브넷을 가진 독립된 사이트에서 사용
-
Link local block :
FE80::/10
독립된 서브넷에서 사용
-
멀티캐스트 :
F000::/8
자동 구성
IPv4는 관리자에 의한 수동 모드/DHCP 등으로 주소를 할당할 수 있다. IPv6는 DHCP 또는 호스트 스스로 자동 구성을 할 수 있다.
- 링크 로컬 주소 생성 : 로컬 접두사(1111 1110 10) + 54개의 0비 트 + 64비트 인터페이스 식별자
- 중복 확인 : Neighbor-Solicitation Message, Neighbor-Advertisement Message를 확인하여 다른 호스트에 의해 사용되지 않는지 확인
- 글로벌 주소 요청: Router-Solicitation Message를 통해 라우터에게 글 로벌 유니캐스트 접두사 및 서브넷 접두사 요청
- 글로벌 주소 획득 : Router-Advertisement Message를 통해 라우터로 부터 글로벌 유니캐스트 접두사 및 서브넷 접두사 획득
필요한 이유
- 확장된주소공간
- 개선된헤더형식 : 선택사항이기본헤더에서분리
- 새로운 선택사항(Option)
- 확장허용
- 자원 할당에 대한 지원 : Traffic Class, Flow Label 지원
- 향상된 보안성 제공 : 기밀성과 무결성 지원
지연 이유
IPv6로의 변환이 느려지는 이유는 주소 부족 문제가 다음 정책으로 어느정도 해결되기 때문이다.
- 클래스없는주소지정방식
- 동적 주소할당을 위한 DHCP 활용 (사설 주소)
- NAT기능
ICMPv6 프로토콜
TCP/IP 프토토콜 그룹에서 수정된 또 다른 프로토콜 ICMP이다. 버전 4의 목적과 방법이 비슷하나 IPv6를 위한 유용성을 위해 새로운 메시지들이 추가되어 복잡해졌다.
ICMPv6 메시지
- Error message : 오류 보고 메시지
- Information message : 에코 요청/응답, 통신 가능여부 판단
- Neighbor discovery messages : 라우터 찾기, 이웃의 링크계층 및 IPv6 주소 찾기
- Group membership messages : 멀티캐스트를 위한 그룹 관리 메시지
오류 보고 메시지(Error message)
4가지 유형의 오류가 처리된다.
- 목적지 도달 불가 메시지
- 패킷이 너무 큰 오류 메시지
- 시간 초과 메시지
- 파라미터 문제 메시지
정보 메시지(Information message)
서로 통신할 수 있는지 여부를 검사하기 위한 메시지
- 에고 요청 메시지
- 에코 응답 메시지
이웃 발견 메시지(Neighbor discovery messages)
이웃 발견 관련 메세지가 여러가지 변경되었다.
- 2개의 프로토콜 정의
- Neighbor-Discovery (ND) protocol
- Inverse-Neighbor-Discovery (IND) protocol.
- 주요 목적
- 호스트들은 패킷을 전송하려는 이웃 라우터를 찾기 위해 ND프로토콜 이용
- 노드들은 같은 네트워크상에 있는 이웃들의 링크 계층 주소를 찾기 위해 ND 프로토콜 이용 (Autoconfiguration)
- 노드들은 이웃의 IPv6 주소를 찾기 위해 IND 프로토콜을 사용
- outer solicitation Message(라우터 모집 메시지) : 호스트가 IPv6 데이타그램을 전송할 수 있는 네트워크의 라우터를 찾기 위해 사용
- Router-advertisement Message(라우터 광고 메시지) : 라우터 모집 메시지에 대한 응답
- Neighbor-solicitationMessage(이웃모집메시지)
- 발신자가 수신자의 IP 주소를 통해 링크 계층 주소를 요청할 경우 사용 (IPv4의 ARP 요청 기능, 브로드캐스팅)
- 주변 노드에 접근 가능한 지를 결정할 때 사용
- Neighbor-advertisement Message(이웃 광고 메시지 )
- 이웃 모집 메시지에 대한 응답 (유니캐스트 응답)
- option 필드: 데이타링크 계층 주소
- Redirection Message (재지정 메시지)
- IPv4의 redirection 기능과 동일
- 호스트가 타겟 라우터의 물리적 주소를 알 수 있는 옵션 추가
- Inverse-neighbor solicitation/advertisement Message (역이웃 모집/광고 메시지)
- 링크 계층 주소가 주어졌을 때 호스트나 라우터의 IPv6 주소를 검색
그룹 멤버십 메시지(Group membership messages)
- Membership query message(멤버십 질의 메시지) : 네트워크에서 동적인 그룹 멤버를 찾기 위해 라우터에 의해 전송
- Membership report message(멤버십 보고 메시지) : 멤버십 질의 메시지에 대한 응답
IPv4에서 IPv6로 변환
새 버전의 IP프로토콜이 있지만 IPv4에서 갑자기 모두 IPv6로 변환하기는 힘들다. IPv4와 IPv6 시스템 사이에 문제가 없도록 프로토콜 버전의 변경이 자연스럽게 진행되어야 한다. 그러기 위한 여러 방안이 IETF에서 제시되었다.
이중스택(dual stack)
- IPv4 와 IPv6를 통시에 지원 하는 것
- DNS가 반환하는 IP 버전에 따라서 동작한다.
터널링(tunneling)
- 일부 구간이 IPv4 네트워크로 구성된 경우
- 캡슐화/역캡슐화를 통해 변경
헤더 변환(Header translation)
- 송/수신자 중 한쪽이 IPv4 를 사용하는 경우.
- 전체 네트워크 중 일부만이 IPv4 를 활용하는 경우
- 헤더를 변환함.