7.5 IPv6
- 주소공간이 부족했기에 IPv6가 만들어졌다.
- IPv6의 주소는 128비트로 IPv4의 4배이다
- 크기가 너무 크기 때문에 인간이 다루기 힘들다.
- 아래 사진처럼 두 가지의 표기 방식이 있다.
7.5.1 IPv6 주소공간할당
앞 부분이 할당하는 주소. interface identifier은 컴퓨터 자체적으로 만들어지는 주소이다.
Global routing prefix : 큰 네트워크 구분 주소, Subnet identifier : 큰 네트워크 내의 작은 네트워크 구분 주소
7.5.3 IPv6 특징
- 더 좋은 헤더 형식
- 선택사항이 기본 헫에서 분리되어 필요할 경우에는 기본 헤더와 상의 계층 데이터 사이에 삽입되는 새로운 헤더 형식을 사용한다
- 새로운 선택사항
- IPv6은 추가적인 기능성을 허용하는 새로운 선택사항을 가지고 있다
- 확장허용
- IPv6은 새로운 기술이나 응용에서 요구된다면 프로토콜의 확장을 허용하도록 설계되었다
- 자원 할당을 위한 지원
- IPv6에서 서비스 유형 필드는 제외되었으나 발신지가 패킷의 특별한 처리를 요청 가능하게 만드는 다른 방식이 추가되었다. 이 방식은 실시간 오디오나 비디오와 같은 트래픽을 지원하는 데 사용될 수 있다.
- 더 높은 보안을 위한 지원
- IPv6의 암호화 인증 선택사항은 패킷의 기밀성과 무결성을 제공한다.
7.5.4 IPv6 프로토콜 : 패킷 형식
-
각 패킷은 필수적인 기본 헤더와 페이로드로 구성된다
-
기본 헤더는 40바이트를 차지하며, 유료부하 (payload) (= 확장헤더 + 상위 계층 데이터)는 65535바이트까지의 정보를 포함할 수 있다.
- version : 6 (4 bits), traffic Class : 8 bits, ****label**** : 24 bits, payload length : 16 bits
- Next header : 8 bits, Hop Limit : 8bits, Source addres : 128 bits
- Destination address : 128 bits
- IPv6 패킷은 기본 헤더와 일부 확장 헤더로 구성된다. 기본 헤더의 길이는 40바이트로 고정되어있다
- 그러나 IP 데이터그램에 더 큰 기능을 제공하기 위해 기본 헤더 뒤에 6개까지 확장 헤더들을 둘 수 있다.
- 이 헤더들은 많은 경우 IPv4의 옵션이다,
- 여러 가지 유형의 확장 헤더가 정의되어 있다.
- 이것들은 매 홉 선택사항, 발신지 경로 지정, 단편화, 인증, 암호화된 보안 페이로드, 그리고 목적지 선택사항이 있다.
- Hop-by-hop
hop은 각 서버를 의미한다. 홉은 특정 두 서버 간에만 영향을 미치고 다른 서버간에는 영향을 미치지 않는다.
라우터를 거칠때마다 처리하는 내용
- Destination
목적지를 알려주는 헤더
- Source routing
라우팅을 하는 특수한 방식
- Fragmentation
데이터의 메시지가 길 땐 fragment 단위로 잘라야하는데 몇 번째 fragment인지 설명해주는 헤더
- Authentication
보안
- ESP
보안
7.5.6 ICMPv6
- ICMPv6은 ICMPv4보다 복잡하다. ARP, IGMP의 기능을 흡수한 것이다.
- 새로운 메시지가 추가된 것이다
-
ICMPv6 메시지 범주
전체적으론 ICMP 프로토콜에서 사용하는 메시지들이지만, neighbor discovery message를 통해서 주고받는 메시지와 프로토콜을 따로 ND 프로토콜로 분류하기도 하고,
group 프로토콜을 따로 MLD 프로토콜이라고 분류하기도 한다.
- Error-Reporting Messages (4가지)
- destination unreachable
- packet too big
- time exceeded
- parameter problems
- Source-quenched 메시지는 제외 됨
- IPv4에서 혼잡 제어 용도
- IPv6에서는 헤더의 priority, flow label 필드를 활용하여 혼잡제어
- InformationalMessages
- echo request 메시지
- echo reply 메시지
- request를 보내서 reply가 오면 목적지가 잘 동작하고 있고, 목적지까지 가는 데에 문제가 없다는 것을 알 수 있다
- 인터넷에서 통신가능 상태 체크
- Neighbor-Discovery 메시지
- 새로운 2개의 프로토콜 지원
- Neighbor-Discovery (ND) 프로토콜
- Inverse-Neighbor-Discovery (IND) 프로토콜
- Goup Membership Message
- 해당 네트워크 안에 그룹 멤버가 있나 없나 체크하는 프로토콜이다.
- IPv4에서 그룹 통신을 다루는 프로토콜은 IGMPv3 프로토콜
- IPv6에서는 Multicast Listener Delivery 프로토콜이 담당한다.
- MLDv1이 IGMPv2의 IPv6 버전
- MLDv2가 IGMPv3의 IPv6 버전
- MLDv2의 두 메시지 유형
- membership-query 메시지 (router가 보냄)
- membership-report 메시지 (host가 보냄)
7.6 IPv4에서 IPv6으로의 전환
-
IPv4와 IPv6 시스템 사이에 문제가 없도록 프로토콜 버전의 변경은 매끄럽게 진행되어야 한다.
-
3가지의 전환 전략이 있다
- Dual stack
컴퓨터에서 두 버전의 프로토콜을 모두 사용한다. 그래서 v4 시스템을 사용하는 경우에는 v4, v6을 사용하는 경우에는 v6을 사용해 통신한다.
-
Tunneling strategy
v6간의 통신 중 중간에 v4를 이용하는 구간이 있는 경우 v6데이터에 v4헤더를 씌워서 터널처럼 통과시킨다.
-
헤더 변환 전략
라우터를 기준으로 왼쪽이 v6이고 오른쪽이 v4이면,
왼쪽에서 오른쪽으로 메시지를 전달할 때 중간에 라우터가 v4로 변환해주고, 반대일 경우 v4에서 v6으로 변환시켜서 보내준다.
-
IP 주소의 사용
- 전환기간 동안에는 IPv4, IPv6 두 방식의 주소 모두 사용한다
- 전환 완료 시 IPv4 주소는 없어질 것이다
- DNS 서버가 호스트 이름으로부터 두 방식의 주소를 모두 매핑해줄 것이고, 전세계의 모든 호스트가 IPv6으로 전환되면 IPv4의 디렉토리는 없어질 것이다.