IPv6(인터넷 프로토콜 버전 6) 개요

IPv6(인터넷 프로토콜 버전 6)은 인터넷 네트워크 계층에 대한 표준 프로토콜 도구 모음입니다. IPv6은 주소 고갈, 보안, 자동 구성, 확장성 등에 관련된 현재 버전 인터넷 프로토콜 도구 모음(IPv4라고 함)의 많은 문제를 해결하도록 설계되었습니다. IPv6은 피어 투 피어 및 모바일 애플리케이션을 포함한 새로운 종류의 애플리케이션을 구현하기 위해 인터넷 기능을 확장합니다. 현재 IPv4 프로토콜의 주요 문제는 다음과 같습니다.

  • 주소 공간의 빠른 고갈.

    이 문제로 인해 여러 개인 주소를 단일 공용 IP 주소에 매핑하는 NAT(Network Address Translator)를 사용하게 됩니다. 이 메커니즘에서 발생하는 주요 문제는 처리 오버헤드 및 엔드투엔드 연결 부족입니다.

  • 계층 구조 지원 없음.

    고유의 미리 정의된 클래스 조직으로 인해 IPv4에는 실제 계층 구조 지원이 없습니다. 실제로 네트워크 토폴로지를 매핑하는 방식으로 IP 주소를 구조화할 수는 없습니다. 이 중대한 설계 결함으로 인해 IPv4 패킷을 인터넷의 임의 위치에 전달하기 위해 큰 라우팅 테이블이 필요하게 되었습니다.

  • 복잡한 네트워크 구성.

    IPv4를 사용할 경우 주소를 정적으로 할당하거나 주소에 DHCP 등의 구성 프로토콜을 사용 중이어야 합니다. 이상적인 상황에서는 호스트가 DHCP 인프라의 관리에 의존할 필요가 없습니다. 대신에 호스트는 배치되어 있는 네트워크 세그먼트를 기반으로 구성될 수 있습니다.

  • 기본 제공 인증 및 기밀성 없음.

    IPv4의 경우 교환된 데이터에 대한 인증이나 암호화를 제공하는 메커니즘을 지원할 필요가 없습니다. 이 내용은 IPv6에서 변경됩니다. IPSec(인터넷 프로토콜 보안)는 IPv6 지원 요구 사항입니다.

새로운 프로토콜 도구 모음은 다음 기본 요구 사항을 충족해야 합니다.

  • 낮은 오버헤드가 발생하는 대규모 라우팅 및 주소 지정.
  • 다양한 연결 상황에 대한 자동 구성.
  • 기본 제공 인증 및 기밀성.

IPv6 주소 지정

IPv6에서는 주소 길이가 128비트입니다. 주소 공간이 이렇게 큰 하나의 이유는 사용 가능한 주소를 인터넷 토폴로지를 반영하는 라우팅 도메인 계층 구조로 세분화하기 위한 것입니다. 또 다른 이유는 디바이스를 네트워크에 연결하는 네트워크 어댑터(또는 인터페이스)의 주소를 매핑하기 위한 것입니다. IPv6은 최하위 수준인 네트워크 인터페이스 수준에서 주소를 확인하는 고유한 기능과 자동 구성 기능을 제공합니다.

텍스트 표현

IPv6 주소를 텍스트 문자열로 표현하는 데 사용되는 세 가지 기존 형식은 다음과 같습니다.

  • 콜론-16진수 형식:

    기본 형식 n:n:n:n:n:n:n:n입니다. 각 n은 주소를 구성하는 8개의 16비트 요소 중 하나에 대한 16진수 값을 나타냅니다. 예: 3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562

  • 압축된 형식:

    주소 길이 때문에 일반적으로 0으로 구성된 긴 문자열이 있는 주소를 포함합니다. 이러한 주소 작성을 간소화하려면 0 블록의 단일 연속 시퀀스를 이중 콜론 기호(::)로 표현하는 압축된 형식을 사용합니다. 이 기호는 주소에서 한 번만 표시될 수 있습니다. 예를 들어 압축된 형식의 멀티캐스트 주소 FFED:0:0:0:0:BA98:3210:4562FFED::BA98:3210:4562입니다. 압축된 형식의 유니캐스트 주소 3FFE:FFFF:0:0:8:800:20C4:03FFE:FFFF::8:800:20C4:0입니다. 압축된 형식의 루프백 주소 0:0:0:0:0:0:0:1::1입니다. 압축된 형식의 지정되지 않은 주소 0:0:0:0:0:0:0:0::입니다.

  • 혼합된 형식:

    이 형식은 IPv4 주소와 IPv6 주소를 결합합니다. 이 경우 주소 형식은 n:n:n:n:n:n:d.d.d.d입니다. 여기서 각 n은 6개의 IPv6 높은 순서 16비트 주소 요소의 16진수 값을 나타내고 각 d는 IPv4 주소의 10진수 값을 나타냅니다.

주소 유형

주소의 선행 비트는 특정 IPv6 주소 형식을 정의합니다. 이러한 선행 비트가 포함된 가변 길이 필드를 FP(Format Prefix)라고 합니다.

IPv6 유니캐스트 주소는 두 부분으로 구분됩니다. 첫 번째 부분에는 주소 접두사가 포함되고 두 번째 부분에는 인터페이스 식별자가 포함됩니다. IPv6 주소/접두사 조합을 표시하는 간결한 방법은 다음과 같습니다. ipv6-address/prefix-length.

64비트 접두사가 포함된 주소의 예는 다음과 같습니다.

3FFE:FFFF:0:CD30:0:0:0:0/64.

이 예의 접두사는 3FFE:FFFF:0:CD30입니다. 주소는 압축된 형식으로 기록될 수도 있습니다(예: 3FFE:FFFF:0:CD30::/64).

IPv6은 다음 주소 형식을 정의합니다.

  • 유니캐스트 주소:

    단일 인터페이스의 식별자입니다. 이 주소에 전송된 패킷은 식별된 인터페이스에 전달됩니다. 유니캐스트 주소는 높은 순서 8진수 값으로 멀티캐스트 주소와 구별됩니다. 멀티캐스트 주소의 높은 순서 8진수에는 16진수 값 FF가 포함됩니다. 이 8진수 식별자의 다른 값은 유니캐스트 주소를 식별합니다. 다양한 형식의 유니캐스트 주소는 다음과 같습니다.

    • 링크-로컬 주소:

      이러한 주소는 단일 링크에서 사용되고 FE80::*InterfaceID* 형식을 사용합니다. 링크-로컬 주소는 자동 주소 구성, 네트워크 환경 검색을 위해 또는 라우터가 없는 경우 링크에서 노드 간에 사용됩니다. 링크-로컬 주소는 주로 시작 시 사용되고 시스템이 더 큰 범위의 주소를 아직 획득하지 못한 경우 사용됩니다.

    • 사이트-로컬 주소:

    이러한 주소는 단일 사이트에서 사용되고 FEC0::*SubnetID*:*InterfaceID* 형식을 사용합니다. 사이트-로컬 주소는 전역 접두사를 사용할 필요 없이 사이트 내에서 주소 지정에 사용됩니다.

    • 전역 IPv6 유니캐스트 주소:

    이러한 주소는 인터넷을 통해 사용할 수 있으며 *GlobalRoutingPrefix*::*SubnetID*:*InterfaceID* 형식을 사용합니다.

  • 멀티캐스트 주소:

    인터페이스 집합의 식별자입니다(일반적으로 서로 다른 노드에 속함). 이 주소에 전송된 패킷은 주소로 식별되는 모든 인터페이스에 전달됩니다. 멀티캐스트 주소 형식이 IPv4 브로드캐스트 주소보다 우선합니다.

  • 애니캐스트 주소:

    인터페이스 집합의 식별자입니다(일반적으로 서로 다른 노드에 속함). 이 주소에 전송된 패킷은 주소로 식별되는 하나의 인터페이스에만 전달됩니다. 이 주소는 라우팅 메트릭으로 식별되는 가장 가까운 인터페이스입니다. 애니캐스트 주소는 유니캐스트 주소 공간에서 가져오고 구문상 구별할 수 없습니다. 주소 지정된 인터페이스는 유니캐스트 주소와 애니캐스트 주소를 구성 함수로 구별합니다.

일반적으로 노드에는 항상 링크-로컬 주소가 포함됩니다. 사이트-로컬 주소 및 하나 이상의 전역 주소가 포함될 수 있습니다.

IPv6 라우팅

유연한 라우팅 메커니즘은 IPv6의 장점입니다. IPv4 네트워크 ID가 할당된 방식으로 인해 인터넷 백본에 있는 라우터에서 대규모 라우팅 테이블을 유지해야 합니다. 이러한 라우터는 인터넷의 모든 노드로 방향이 지정되는 패킷을 전달하기 위해 모든 경로를 알고 있어야 합니다. 주소를 집계하는 기능을 통해 IPv6에서는 유연하게 주소를 지정할 수 있고 라우팅 테이블의 크기가 대폭 감소됩니다. 이 새로운 주소 지정 아키텍처에서는 적절하게 메시지를 전달하기 위해 중간 라우터를 통해 네트워크의 로컬 부분만 계속 추적해야 합니다.

네트워크 환경 검색

“네트워크 환경 검색”에서 제공하는 일부 기능은 다음과 같습니다.

  • 라우터 검색: 이 기능을 통해 로컬 라우터를 식별할 수 있습니다.
  • 주소 확인: 이 기능을 사용하면 노드에서 올바른 다음 홉 주의 링크-계층 주소를 확인할 수 있습니다(주소 확인 프로토콜 [ARP] 대체).
  • 주소 자동 구성: 이 기능을 사용하면 호스트에서 사이트-로컬 및 글로벌 주소를 자동으로 구성할 수 있습니다.

네트워크 환경 검색에서는 다음을 포함하는 ICMPv6(Internet Control Message Protocol for IPv6) 메시지를 사용합니다.

  • 라우터 보급: 의사(pseudo) 주기적으로 또는 라우터 요청에 대한 응답으로 라우터에서 전송합니다. IPv6 라우터에서는 라우터 알림을 사용하여 가용성, 주소 접두사 및 다른 매개 변수를 알립니다.
  • 라우터 요청: 링크의 라우터에서 라우터 알림을 즉시 보내도록 요청하기 위해 호스트에서 전송합니다.
  • 네트워크 환경 요청: 주소 확인, 중복 주소 검색 또는 네트워크 환경이 여전히 연결할 수 있는지 확인하기 위해 노드에서 전송합니다.
  • 네트워크 환경 보급: 네트워크 환경 요청에 응답하거나 링크 계층 주소 변경을 네트워크 환경에 알리기 위해 노드에서 전송합니다.
  • 리디렉션: 전송 노드의 특정 대상으로 더 유용한 다음 홉 주소를 알리기 위해 라우터에서 전송합니다.

IPv6 자동 구성

IPv6의 중요한 목표 중 하나는 노드 플러그 앤 플레이를 지원하는 것입니다. 즉, 노드를 IPv6 네트워크에 플러그하여 사용자가 개입하지 않고 자동으로 구성되도록 해야 합니다.

자동 구성 유형

IPv6에서는 다음과 같은 형식의 자동 구성을 지원합니다.

  • 상태 저장 자동 구성:

    노드 설치 및 관리를 위해 DHCPv6(Dynamic Host Configuration Protocol for IPv6) 서버가 필요하므로 이러한 형식의 구성에는 일정 수준의 사용자 개입이 필요합니다. DHCPv6 서버에서는 구성 정보를 제공하는 노드 목록을 유지합니다. 또한 각 주소를 사용하는 기간 및 재할당이 가능한 시기를 서버에서 알 수 있도록 상태 정보도 유지합니다.

  • 상태 비저장 자동 구성:

    이 구성 형식은 소규모 조직 및 개인이 사용하기에 적합합니다. 이 경우 각 호스트에서는 수신된 라우터 알림의 콘텐츠를 통해 해당 주소를 판별합니다. IEEE EUI-64 표준을 사용하여 주소의 네트워크 ID 부분을 정의하면 링크에서 호스트 주소가 고유하다고 가정할 수 있습니다.

주소를 결정하는 방법에 관계없이 노드에서 잠재적인 주소가 로컬 링크에 고유한지 확인해야 합니다. 이 작업은 잠재적 주소에 네트워크 환경 요청 메시지를 전송하여 수행합니다. 노드에서 응답을 받으면 주소가 이미 사용 중이므로 다른 주소를 판별해야 합니다.

IPv6 이동성

모바일 디바이스의 확산에 따라 새로운 요구 사항이 도입되었습니다. 디바이스에서 IPv6 인터넷의 위치를 임의로 변경하고 기존 연결은 여전히 유지할 수 있어야 합니다. 이 기능을 제공하기 위해 모바일 노드에 언제나 도달할 수 있는 홈 주소가 할당됩니다. 모바일 노드가 홈에 있으면 홈 링크에 연결하고 홈 주소를 사용합니다. 모바일 노드가 항상 홈 외부에 있으면 일반적으로 라우터인 홈 에이전트에서 모바일 노드 및 이 노드와 통신하는 노드 간에 메시지를 릴레이합니다.

IPv6 사용 안 함 또는 사용

IPv6 프로토콜을 사용하려면 IPv6을 지원하는 운영 체제 버전을 실행 중인지 확인하고 운영 체제와 네트워킹 클래스가 제대로 구성되어 있는지 확인합니다.

구성 단계

다음 표에는 다양한 구성이 나와 있습니다.

OS IPv6를 사용하도록 설정했나요? 코드 IPv6를 사용하도록 설정했나요? 설명
❌ 아니요 ❌ 아니요 IPv6 주소를 구문 분석할 수 있습니다.
❌ 아니요 ✔️ 예 IPv6 주소를 구문 분석할 수 있습니다.
✔️ 예 ❌ 아니요 IPv6 주소를 구문 분석하고 사용되지 않음으로 표시된 이름 확인 메서드로 IPv6 주소를 확인할 수 있습니다.
✔️ 예 ✔️ 예 사용되지 않음으로 표시된 항목이 포함된 모든 메서드를 사용하여 IPv6 주소를 구문 분석 및 확인할 수 있습니다.

IPv6가 기본적으로 사용하도록 설정됩니다. 환경 변수에서 이 스위치를 구성하려면 DOTNET_SYSTEM_NET_DISABLEIPV6 환경 변수를 사용합니다. 자세한 내용은 .NET 환경 변수: DOTNET_SYSTEM_NET_DISABLEIPV6를 참조하세요.

추가 정보