The Cable GuyDHCPv6 프로토콜

Joseph Davies

DHCP(동적 호스트 구성 프로토콜)는 IP 주소와 기타 네트워킹 정보를 컴퓨터에 할당하여 컴퓨터가 네트워크에서 자동으로 통신할 수 있도록 지원하기 위해 설계되었습니다. IPv6 네트워크에서는 DHCP를 사용하여 주소를 구성하지 않아도 되지만 DHCP를 사용하면 몇 가지 이점이 있습니다. DHCPv6(IPv6용 DHCP)에서는

상태 저장 주소 구성 또는 상태 비저장 구성 설정을 IPv6 호스트에 제공할 수 있습니다. IPv6 호스트에서는 여러 가지 방법으로 주소를 구성할 수 있습니다.

상태 비저장 주소 자동 구성 은 인접 라우터 간에 라우터 요청 및 라우터 알림 메시지를 교환하여 링크 로컬 주소와 추가 비링크 로컬 주소를 구성하는 데 사용됩니다.

상태 저장 주소 자동 구성 은 DHCP와 같은 구성 프로토콜을 사용하여 비링크 로컬 주소를 구성하는 데 사용됩니다.

IPv6 호스트는 상태 비저장 주소 자동 구성을 자동으로 수행하고 인접 라우터에서 보낸 라우터 알림 메시지의 다음 플래그에 따라 DHCPv6와 같은 구성 프로토콜을 사용합니다.

M 플래그라고도 하는 관리되는 주소 구성 플래그. 이 플래그를 1로 설정하면 호스트에서는 구성 프로토콜을 사용하여 상태 저장 주소를 가져옵니다.

O 플래그라고도 하는 기타 상태 저장 구성 플래그 . 이 플래그를 1로 설정하면 호스트에서는 구성 프로토콜을 사용하여 기타 구성 설정을 가져옵니다.

M 및 O 플래그의 값을 조합하여 다음과 같은 결과를 얻을 수 있습니다.

M 및 O 플래그가 모두 0으로 설정된 경우. 이 조합은 DHCPv6 인프라가 없는 네트워크에 해당합니다. 호스트에서는 비링크 로컬 주소에 대한 라우터 알림 및 다른 방법(예: 수동 구성)을 사용하여 기타 설정을 구성합니다.

M 및 O 플래그가 모두 1로 설정된 경우. DHCPv6를 사용하여 주소 및 기타 구성을 설정합니다. 이 조합에서는 DHCPv6가 IPv6 호스트에 상태 저장 주소를 할당하기 때문에 DHCPv6 상태 저장이라고도 합니다.

M 플래그는 0으로 설정되고 O 플래그는 1로 설정된 경우. DHCPv6가 주소 할당에는 사용되지 않고 기타 구성 설정을 할당하는 데만 사용됩니다. 인접 라우터는 IPv6 호스트에서 상태 저장 주소를 파생하는 데 사용되는 비링크 로컬 주소 접두사를 알리도록 구성됩니다. 이 조합에서는 DHCPv6가 IPv6 호스트에 상태 저장 주소를 할당하지 않고 상태 비저장 구성 설정을 수행하므로 DHCPv6 상태 비저장이라고도 합니다.

M 플래그는 1로 설정되고 O 플래그는 0으로 설정된 경우. 이 조합에서는 DHCPv6가 주소 구성에 사용되고 기타 설정에는 사용되지 않습니다. 일반적으로 IPv6 호스트에서는 DNS(Domain Name System) 서버의 IPv6 주소와 같은 기타 설정을 구성해야 하므로 이 조합은 자주 사용되지 않습니다.

IPv4용 DHCP와 마찬가지로 DHCPv6 인프라의 구성 요소는 구성을 요청하는 DHCPv6 클라이언트, 구성을 제공하는 DHCPv6 서버 및 DHCPv6 서버가 없는 서브넷에 클라이언트가 있을 때 클라이언트와 서버 사이에서 메시지를 전달해 주는 DHCPv6 릴레이 에이전트로 구성됩니다.

DHCPv6 메시지

IPv4용 DHCP와 마찬가지로 DHCPv6에서도 UDP(User Datagram Protocol) 메시지를 사용합니다. DHCPv6 클라이언트는 UDP 포트 546을 통해 DHCP 메시지를 수신합니다. DHCPv6 서버 및 릴레이 에이전트는 UDP 포트 547을 통해 DHCPv6 메시지를 수신합니다. DHCPv6 메시지의 구조는 디스크 없는 워크스테이션을 지원하는 BOOTP 프로토콜을 기반으로 만들어졌기 때문에 IPv4용 DHCP보다 훨씬 간단합니다. 그림 1은 클라이언트와 서버 간에 전송되는 DHCPv6 메시지의 구조를 보여 줍니다.

Figure 1 DHCPv6 messages between client and server

Figure 1** DHCPv6 messages between client and server **(더 크게 보려면 이미지를 클릭하십시오.)

1바이트 Msg-Type 필드는 DHCPv6 메시지의 형식을 나타냅니다. 3바이트 Transaction-ID 필드는 클라이언트에 의해 결정되며 DHCPv6 메시지 교환 메시지를 그룹화하는 데 사용됩니다. Transaction-ID 필드 다음에 있는 DHCPv6 옵션은 클라이언트 및 서버 ID, 주소 및 기타 구성 설정을 나타내는 데 사용됩니다. 정의된 DHCPv6 옵션 목록은 "DHCPv6 RFC 리소스" 추가 기사에 나와 있는 RFC 3315를 참조하십시오.

DHCPv6 옵션의 형식은 TLV(형식, 길이, 값) 형식으로 지정됩니다. 그림 2는 DHCPv6 옵션의 구조를 보여 줍니다.

2바이트 Option-Code 필드는 특정 옵션을 나타냅니다. 2바이트 Option-Len 필드는 Option-Data 필드의 길이를 바이트 단위로 나타냅니다. Option-Data 필드에는 옵션에 대한 데이터가 포함됩니다.

릴레이 에이전트 간에 교환된 메시지의 경우 추가 정보를 기록하기 위해 별도의 메시지 구조를 사용합니다. 그림 3은 이러한 메시지 유형의 구조를 보여 줍니다.

Figure 2 Structure of DHCPv6 options

Figure 2** Structure of DHCPv6 options **(더 크게 보려면 이미지를 클릭하십시오.)

1바이트 홉 수 필드는 메시지를 수신한 릴레이 에이전트의 수를 나타냅니다. 수신한 릴레이 에이전트는 이 필드의 값이 구성된 최대 홉 수를 초과하는 경우 메시지를 버릴 수 있습니다. 16바이트 링크 주소 필드에는 클라이언트가 있는 서브넷에 연결된 인터페이스에 할당된 비링크 로컬 주소가 들어 있습니다. 링크 주소 필드를 통해 서버는 주소를 할당할 올바른 주소 범위를 결정할 수 있습니다. 16바이트 피어 주소 필드에는 처음에 메시지를 보낸 클라이언트 또는 메시지를 릴레이한 이전 릴레이 에이전트의 IPv6 주소가 들어 있습니다. 피어 주소 필드 다음에는 릴레이되고 있는 메시지 및 기타 옵션이 포함된 릴레이 메시지 옵션을 비롯한 DHCPv6 옵션이 있습니다. 릴레이 메시지 옵션은 클라이언트와 서버 사이에서 교환되는 메시지에 대한 캡슐화 기능을 제공합니다.

IPv6에는 정의된 브로드캐스트 주소가 없습니다. 따라서 일부 DHCPv4 메시지에서 제한된 브로드캐스트 주소를 사용했었지만 DHCPv6에서는 FF02::1:2라는 All_DHCP_Relay_Agents_and_Servers 주소를 사용합니다. 예를 들어, 네트워크에 있는 DHCPv6 서버의 위치를 찾으려는 DHCPv6 클라이언트가 해당 링크 로컬 주소부터 FF02::1:2까지 간청 메시지를 보냅니다. 호스트의 서브넷에 DHCPv6 서버가 있으면 해당 서버에서 간청 메시지를 수신한 후 적합한 응답을 보냅니다. 일반적으로는 호스트의 서브넷에 있는 DHCPv6 릴레이 에이전트에서 간청 메시지를 수신한 후 DHCPv6 서버에 전달합니다.

Figure 3 Structure of messages between relay and server

Figure 3** Structure of messages between relay and server **(더 크게 보려면 이미지를 클릭하십시오.)

상태 저장 메시지 교환

수신된 라우터 알림의 M 및 O 플래그가 1로 설정되어 있는 경우 IPv6 주소 및 구성 설정을 가져오는 DHCPv6 상태 저장 메시지 교환은 일반적으로 다음과 같은 메시지로 구성됩니다.

  • 서버를 찾기 위해 클라이언트에서 보낸 간청 메시지
  • 주소와 구성 설정을 보낼 수 있음을 알리기 위해 서버에서 보낸 알림 메시지
  • 특정 서버의 주소와 구성 설정을 요청하기 위해 클라이언트에서 보낸 요청 메시지
  • 요청을 받은 서버에서 주소와 구성 설정을 담아 보낸 응답 메시지

클라이언트와 서버 사이에 릴레이 에이전트가 있는 경우 릴레이 에이전트는 클라이언트의 캡슐화된 간청 및 요청 메시지가 포함된 릴레이 전달 메시지를 서버에 보냅니다. 서버는 클라이언트에 대한 캡슐화된 알림 및 응답 메시지가 포함된 릴레이 응답 메시지를 릴레이 에이전트에 보냅니다. 전체 DHCPv6 메시지 목록은 그림 4를 참조하십시오.

Figure 4 DHCPv6 메시지

DHCPv6 메시지 설명 해당하는 IPv4용 DHCP 메시지
간청 서버를 찾기 위해 클라이언트에서 보내는 메시지 DHCPDiscover
알림 간청 메시지에 대한 응답으로 가용성을 알리기 위해 서버에서 보내는 메시지 DHCPOffer
요청 특정 서버의 주소나 구성 설정을 요청하기 위해 클라이언트에서 보내는 메시지 DHCPRequest
확인 클라이언트의 구성이 연결된 링크에 유효한지 확인하기 위해 클라이언트에서 모든 서버에 보내는 메시지 DHCPRequest
갱신 할당된 주소의 유효 기간을 연장하고 업데이트된 구성 설정을 가져오기 위해 클라이언트에서 특정 서버에 보내는 메시지 DHCPRequest
다시 바인딩 갱신 메시지에 대한 응답을 받지 못했을 때 클라이언트에서 임의의 서버에 보내는 메시지 DHCPRequest
응답 간청, 요청, 갱신, 다시 바인딩, 정보 요청, 확인, 해제 또는 거부 메시지에 대한 응답으로 서버에서 특정 클라이언트에 보내는 메시지 DHCPAck
해제 할당된 주소를 더 이상 사용하지 않고 있음을 알리기 위해 클라이언트에서 보내는 메시지 DHCPRelease
거부 할당된 주소가 이미 사용되고 있음을 알리기 위해 클라이언트에서 특정 서버에 보내는 메시지 DHCPDecline
다시 구성 서버에 업데이트되거나 새로운 구성 설정이 있음을 알리기 위해 서버에서 클라이언트에 보내는 메시지. 이 메시지를 받은 클라이언트는 갱신 또는 정보 요청 메시지를 보냅니다. 해당 사항 없음
정보 요청 구성 설정(주소 제외)을 요청하기 위해 클라이언트에서 보내는 메시지 DHCPInform
릴레이 전달 메시지를 서버에 전달하기 위해 릴레이 에이전트에서 보내는 메시지. 릴레이 전달 메시지에는 DHCPv6 릴레이 메시지 옵션과 마찬가지로 캡슐화된 클라이언트 메시지가 있습니다. 해당 사항 없음
릴레이 응답 릴레이 에이전트를 통해 클라이언트에게 메시지를 보내려는 서버에서 보내는 메시지. 릴레이 응답 메시지에는 DHCPv6 릴레이 메시지 옵션과 마찬가지로 캡슐화된 서버 메시지가 있습니다. 해당 사항 없음

상태 비저장 메시지 교환

수신된 라우터 알림의 M 플래그가 0으로 설정되어 있고 O 플래그가 1로 설정되어 있는 경우 구성 설정만을 가져오는 DHCPv6 상태 비저장 메시지 교환은 일반적으로 서버의 구성 설정을 요청하기 위해 DHCPv6 클라이언트에서 보낸 정보 요청 메시지와 서버에서 요청된 구성 설정을 담아 보낸 응답 메시지로 구성됩니다.

라우터가 상태 비저장 주소 접두사를 IPv6 호스트에 할당하도록 구성되어 있는 IPv6 네트워크의 경우 두 가지 메시지로 이루어지는 DHCPv6 교환을 사용하여 DNS 서버, DNS 도메인 이름 및 라우터 알림 메시지에 없는 기타 구성 설정을 할당할 수 있습니다.

Windows에서 DHCPv6 지원

Windows Vista™와 Windows Server®의 다음 버전(코드명 "Longhorn")에는 DHCPv6 클라이언트가 포함되어 있습니다. DHCPv6 클라이언트는 수신된 라우터 알림 메시지의 M 및 O 플래그의 값에 따라 DHCPv6 기반 구성을 설정합니다. 따라서 DHCPv6를 사용하려면 각 IPv6 서브넷을 지원하도록 DHCPv6 서버와 릴레이 에이전트를 구성한 후 IPv6 라우터를 구성하여 이러한 두 플래그를 적합한 값으로 설정해야 합니다. 특정 서브넷에 대한 알림 라우터가 여러 개인 경우 동일한 상태 비저장 주소 접두사와 M 및 O 플래그 값을 알리도록 해당 라우터를 구성해야 합니다. Windows® XP 또는 Windows Server 2003을 실행하는 IPv6 호스트에는 DHCPv6 클라이언트가 없기 때문에 수신된 라우터 알림에 있는 M 및 O 플래그의 값은 무시됩니다.

Windows Vista 또는 Windows Server "Longhorn"을 실행하고 있는 IPv6 라우터에서 "netsh interface ipv6 set interface InterfaceName managedaddress=enabled" 명령을 사용하여 라우터 알림의 M 플래그를 1로 설정하도록 구성할 수 있습니다. 이와 비슷하게 "netsh interface ipv6 set interface InterfaceName otherstateful=enabled" 명령을 사용하여 라우터 알림의 O 플래그를 1로 설정할 수 있습니다.

Windows Server "Longhorn" 베타 2는 DHCP 서버 서비스를 통해 DHCPv6 릴레이 에이전트와 DHCPv6 상태 비저장 구성을 지원합니다. DHCPv6 옵션이 앞에서 설명한 두 가지 메시지로 이루어지는 DHCPv6 메시지 교환을 통해 모든 DHCPv6 클라이언트에 배포되도록 DHCP 서버 서비스를 구성할 수 있습니다. Microsoft에서는 DHCP 스냅인에서 IPv6 주소 범위를 만드는 기능을 포함한 DHCPv6 상태 저장 작업에 대한 지원을 Windows Server "Longhorn" 베타 3 릴리스에 포함할 계획입니다.

DHCPv6 RFC 리소스

엄선된 DHCPv6 관련 RFC:

Joseph Davies는 Microsoft의 기술 전문 저술가로 1992년부터 Windows 네트워킹을 주제로 글을 쓰고 가르치는 일을 하고 있습니다. Microsoft Press에서 5권의 책을 저술한 그는 월간 온라인 TechNet Cable Guy 칼럼의 저자이기도 합니다.

© 2008 Microsoft Corporation 및 CMP Media, LLC. All rights reserved. 이 문서의 전부 또는 일부를 무단으로 복제하는 행위는 금지됩니다..