ICMPv6에는 IPv4의 ICMP에서 존재했던 기능 외 PMTUD, MLD, NDP, 주소 자동설정과 같은 기능들이 추가되었다.
PMTUD란 목적지로 가는 경로상에 존재하는 링크들 중 MTU 값이 가장 적은 링크의 MTU 값을 확인하는 과정을 말한다.IPv6에서는 오직 출발지 장비만이 IPv6 패킷을 분할할 수 있도록 규정해 놓았다. 그 이유는 IPv4에서 목적지로 가는 경로상의 중간 라우터들이 무분별한 분할을 수행함으로 인해 발생했던 라우팅 속도 저하를 막기 위해서다.
IPv6 네트워크 환경에서의 출발지 장비는 목적지로 가는 경로 상의 링크들 중 MTU 값이 가장 작은 링크의 MTU 값을 확인한 다음 자신이 전송하려는 패킷을 분할시켜 전송하게 된다.
IPv6 네트워크 환경에서 출발지 장비는 목적지로 가는 경로 상의 링크 중 MTU 값이 가장 작은 링크의 MTU 값으로 패킷을 분할하여 전송한다.
MLD는 IPv4에서의 IGMP(internet group management)와 유사한 기능을 수행하는 프로토콜로서, 연결된 링크 상에 멀티캐스트 그룹에 소속되어 있는 호스트가 존재하는 지의 여부를 확인하거나, 멀티캐스트 그룹에 소속되어 있는 호스트들의 관리를 목적으로 사용한다.MLD는 MLQ, MLR, MLD라는 3개의 메시지 타입을 사용한다.
분류 | 메시지 종류 | Type값 | Code | 기능 |
---|---|---|---|---|
Information Message | Multicast Listener Query | 130 | 0 | Multicast Listener Query |
Multicast Listener Report | 131 | 0 | Multicast Listener Report | |
Multicast Listener Done | 132 | 0 | Multicast Listener Done |
NDP는 IPv4에서의 ARP와 유사한 역할을 수행한다. 즉 이더넷 환경에서 상대방의 IPv6를 통해 MAC 주소를 알아내고 또한, 이를 바탕으로 상대방과의 통신을 가능하게 해준다.ICMPv6 메시지 중에서 NS(Neighbor Solicitation)와 NA (Neighbor advertisement)를 사용한다.
분류 | 메시지 종류 | Type값 | Code | 기능 |
---|---|---|---|---|
Information Message | Neighbor Solicitation | 135 | 0 | Neighbor Solicitation |
Neighbor Advertisement | 136 | 0 | Neighbor Advertisement |
A는 B와 통신하기 위하여 상대방의 MAC 및 링크 로컬 주소를 알아야 하기 때문에 A는 B에게 자신의 링크 로컬 주소를 기반으로 Solicited node multicast 그룹으로 NS 메시지를 전송한다.
B는 NS 메시지를 전송 받은 후 A에서 요청한 MAC, 링크 로컬 주소를 NA 메시지를 통하여 응답해준다. 이때 B는 A의 링크 로컬 주소를 알고 있기 때문에 출발지를 자신으로, 목적지를 A의 주소로 설정하여 메시지를 전송한다.
A와 B가 서로의 정보를 모두 주고 받으면 IPv6 neighbor 정보에 MAC과 링크 로컬 주소가 등록되어 서로 통신이 가능하게 된다.
A는 B와 통신하기 위하여 상대방의 MAC 및 링크 로컬 주소를 알아야 하기 때문에 A는 B에게 자신의 링크 로컬 주소를 기반으로 Solicited node multicast 그룹으로 NS 메시지를 전송한다.B는 NS 메시지를 전송 받은 후 A에서 요청한 MAC 및 링크 로컬 주소를 NA 메시지를 통하여 응답해준다. 이때 B는 A의 링크 로컬 주소를 알고 있기 때문에 출발지를 자신으로, 목적지를 A의 주소로 설정하여 메시지를 전송한다.A와 B가 서로의 정보를 모두 주고 받으면 IPv6 neighbor 정보에 MAC과 링크 로컬 주소가 등록되어 서로 통신이 가능하게 된다.
처음 인터페이스가 활성화된 호스트는 자신과 인접한 라우터의 존재 유무를 확인하고 해당 라우터와 통신하기 위해 스스로 링크 로컬주소를 생성한다. 이때 호스트는 링크상에 자신이 사용할 주소와 동일한 주소를 사용하는 장비가 존재하는지 확인하는 과정을 DAD 과정이라고 한다.
호스트 A는 EUI-64포맷을 바탕으로 링크 로컬 주소를 생성하고 이 주소에 대한 DAD과정을 수행하기 위해 NS 메시지를 전송한다.
이때 NS 메시지의 출발지 IPv6는‘::’(미 확정 주소)를 사용하며, 목적지 주소는 자신이 부여할 FE80::2:260:8FF:FE52:F9D8를 기반으로 한 FF02::1:FF52:F9D8 solicited node multicast 주소를 보낸다.
링크 상에 동일한 주소를 사용하고 있는 장비가 없을 경우 응답 메시지가 전송되지 않으며, 동일 주소가 존재하는 장비가 있다면 NS 메시지에 대한 응답으로 NA 메시지를 전송한다.
호스트 A는 EUI-64포맷을 바탕으로 링크 로컬 주소를 생성하고 이 주소에 대한 DAD과정을 수행하기 위해 NS 메시지를 전송한다. 이때 NS 메시지의 출발지 IPv6는‘::’(미 확정 주소)를 사용하며, 목적지 주소는 자신이 부여할 FE80::2:260:8FF:FE52:F9D8를 기반으로 한 FF02::1:FF52:F9D8 solicited node multicast 주소를 보낸다.링크 상에 동일한 주소를 사용하고 있는 장비가 없을 경우 응답 메시지가 전송되지 않으며, 동일 주소가 존재하는 장비가 있다면 NS 메시지에 대한 응답으로 NA 메시지를 전송한다.
Stateless Auto Configuration은 DHCP와 같이 별도의 설정이 없더라도 라우터와의 상호 작용으로 자동으로 글로벌 주소를 획득할 수 있는 기능이다.이 기능은 RS, RA의메시지로 이루어지며 EUI-64 포맷을 기반으로 형성된다.
분류 | 메시지 종류 | Type값 | Code | 기능 |
---|---|---|---|---|
Information Message | Router Solicitation | 133 | 0 | Router Solicitation |
Router Advertisement | 134 | 0 | Router Advertisement |
RS는 글로벌 주소를 생성하기 위하여 현재 라우터가 사용하고 있는 글로벌 prefix를 요청하는 메시지로 출발지 주소는 자신의 링크 로컬 주소 혹은 미 확정 주소(::)를 이용하며 목적지 주소는 all router multicast 주소를 사용한다.
RA는 RS 메시지에 대한 응답메시지로 라우터 인터페이스에 설정된 글로벌 /64의 prefix 정보를 포함한 정보들을 제공하며 출발지 주소는 자신의 링크 로컬 주소를 이용하며, 목적지 주소는 all node multicast 주소를 사용한다.
EUI-64 방식은 MAC 주소 48비트를 기반으로 ‘FFFE’를 결합하여 전체 IPv6 크기 중 하위 64비트 부분인 인터페이스 ID정보를 생성하는 방식으로 RS, RA 메시지를 이용한 /64의 프리픽스와 EUI-64 방식의 인터페이스 ID부분이 결합하여 IPv6 주소를 설정한다.