[Computer network] Chapter 3 - Network layer : IPv6

이한량·2024년 11월 14일

Computer Network

목록 보기
6/11

1. IPv6

  • IPv6 : IPv4은 32비트의 주소 공간을 갖는다. 과거에는 충분한 크기였지만, 최근 인터넷이 급격하게 발달함에 따라 주소 공간이 부족한 문제가 발생하였다. 이를 해결하기 위해 더 큰 주소 공간을 갖는 IPv6에 대해 알아보자.

    • IPv4의 주소 공간 : 32bits,23232bits, 2^{32}

      • IPv4 : 주소 부족 문제를 해결하기 위해 NAT 라우터를 통한 사설 IP와 공인 IP 사이의 주소 변환과 같은 방식이 활용됨
    • IPv6의 주소 공간 : 128bits,2128128bits, 2^{128}

      • IPv6 : 주소 공간이 매우 방대하기 때문에, 주소 공간 부족을 해결하기 위한 여러 메커니즘을 생략할 수 있음
    • IPv6의 주소 표현 : IPv6 주소의 길이는 128비트이다. 이를 2진수로 표현하면 가독성이 매우 떨어진다. 때문에 주로 16진수로 주소를 표현한다.

      • 하나의 16진수는 4비트를 표현할 수 있다.

      • 4개의 16진수로 16비트를 표현할 수 있다.

      • 따라서 IPv6 주소는 :으로 구분되는 8개 그룹으로 표현된다.

      • 0을 생략하여 나타내기도 한다. (ex, 000110001 \rarr 1)

  • Prefixes in IPv6 : IPv6의 주소 공간은 prefix에 따라 나누어진 여러 블록이 존재한다. 각 블록들은 활용되는 용도가 정해져있다. IPv6는 미래에 사용될 예정이므로, 대부분의 블록은 아직 미할당 상태이다.

    • Global Unicast Address : IPv4에서 사용되는 인터넷(WAN)과 유사한 역할을 하는 주소 블록

      • Global routing prefix : 네트워크를 정의하는 부분

      • Subnet identifier : 각 네트워크의 subnet을 정의하는 부분

      • Interface identifier : subnet 내부에 존재하는 호스트의 주소를 정의하는 부분. 이는 장치의 고유한 주소이므로, MAC 주소를 매핑하는 방식으로 인터페이스 주소를 생성한다.

      • MAC 주소 (48 bits)의 앞 24비트 + 추가 비트 (16bits) + MAC 주소 (48 bits)의 뒷 24비트 = 인터페이스 주소

      • 이때, MAC 주소의 맨 앞 8비트 중 7번째 비트를 반전시킨다.

    • Special addresses : 특정한 목적으로 사용되기 위해 예약된 주소 블록

1-1. 주요 특징

  • Autoconfiguration : IPv6 프로토콜은 네트워크 관리자의 설정 없이도 호스트 스스로가 IPv6 주소를 생성하고 구성할 수 있도록 설계되었다.

    • IPv4 환경에서 네트워크에 접근하는 호스트는 서버로부터 IP 주소를 할당(DHCP) 받았다.

    • IPv6 환경에서도 DHCP가 존재하지만, 호스트 스스로도 IP 주소를 할당할 수 있다.

  • IPv6 Datagram

    • Base Header : IPv6 패킷의 헤더는 크기가 40bytes로 고정적이다.

      • Next header : Base 헤더 뒤에 또 다른 헤더(확장 헤더)가 존재할 경우, 확장 헤더를 가르킨다. 확장 헤더가 더이상 없을 경우, Payload를 가르킨다.
    • Extension Header : 데이터그램에 추가적인 기능을 포함시키기 위해 기본 헤더(Base Header)뒤에 추가적으로 붙이는 확장 헤더이다. IPv4의 Option과 비슷한 개념으로 이해해보자.

      • 확장 헤더는 최대 6개까지 포함될 수 있다.

2. ICMPv6

  • ICMPv6 : IPv4의 개선 버전이 ICMPv4인 것과 마찬가지로, IPv6의 개선 버전인 ICMPv6가 존재한다.

    • ICMPv4 vs ICMPv6

      • IPv4에서 독립적으로 동작하던 프로토콜들이 ICMPv6에서 통합되었다.

      • ICMPv6는 ICMPv4보다 다양한 종류의 메시지를 사용한다.

2-1. ICMPv6 Message

  • Error messages : 다음과 같은 네 가지 오류를 처리하기 위해 ICMPv6에서 사용하는 오류 메시지이다.

    • Destination unreachable (목적지 도달 불가)

    • Packet Too Big (패킷 크기 초과)

    • Time Exceeded (시간 초과)

    • Parameter Problem (매개변수 문제)

  • Informational messages : 네트워크 상에 존재하는 두 장치 간의 통신 가능 여부를 확인하기 위한 메시지이다.

    • Echo Request : 한 장치가 다른 장치에게 연결 상태를 확인하기 위해 메시지 전송

    • Echo Reply : Echo Request를 수신한 장치가 응답 메시지를 전송

  • Neighbor discovery messages (ND) : IPv4, ICMPv4의 여러 기능(ex, ARP)을 통합하여 활용하기 위한 메시지이다.

    • Neighbor-Discovery (ND) Protocol

    • Inverse-Neighbor-Discovery (IND) Protocol

3. Transition from IPv4 to IPv6

  • Transition Issue : 우리는 위에서 IPv6가 IPv4에 비해 여러가지 이점이 있다는 것을 확인했다. 하지만 IPv4와 IPv6는 서로 호환되는 시스템이 아니다. IPv6로의 전환은 인터넷 인프라 전역에 걸쳐 점진적으로 이루이질 것이므로, 완전한 전환이 이루어지기 전까지는 두 프로토콜에서 모두 작동할 수 있는 환경이 필요하다.

    • Dual Stack

      • 두 프로토콜에서 모두 동작하는 라우터를 사용
    • Tunneling

      • IPv4 패킷의 페이로드에 IPv6 패킷을 캡슐화하여 IPv4 네트워크를 통해 IPv6 패킷 전달

      • 목적지에 도달한 후 역캡슐화를 통해 원래 IPv6 패킷으로 복원

    • Header translation

      • 각 네트워크 환경에 맞도록 헤더를 변환하여 패킷을 전달
profile
한량 극복 프로젝트

0개의 댓글