Windows에서 DHCPv6 클라이언트 비활성화

Windows에서 DHCPv6 클라이언트 비활성화

netsh int ipv6 set interfaceWindows의 명령 컨텍스트 에서 사용되는 IPv6 상태 저장 및 상태 비저장 자동 구성과 관련된 4개 매개 변수 간의 링크를 잘 이해하지 못합니다 .

  • advertise
  • routerdescovery
  • managedaddress
  • otherstateful

지금까지 내가 찾아본 바로는 다음과 같은 사실을 알 수 있습니다.

  • advertiseRA가 해당 특정 인터페이스에 대해 구성된 MO플래그를 포함하는 OS에 의해 방출/응답되어야 함을 나타내는 데 사용됩니다 . 이는 서버와 관련이 있습니다.managedaddressotherstateful
  • routerdescoveryOS가 해당 인터페이스에서 RA를 요청/처리해야 함을 나타내고 이를 사용하여 RA에 있는 플래그에 따라 자체 구성을 수행하는 데 사용됩니다. if routerdescovery가 활성화되고 managedaddressRA otherstateful의 플래그에 의해 무시됩니다. 이것은 클라이언트와 관련이 있습니다

내 질문은 언제 무슨 일이 일어나고 advertise비활성화 routerdescovery됩니까?

이 경우라고 생각하고 managedaddress해당 otherstateful인터페이스에서 DHCPv6 클라이언트가 활성화되어 있는지 여부를 결정합니다. 그러나 그렇지 않은 것 같습니다. 4 개의 매개변수가 모두 비활성화된 경우( advertise, 및 ) Windows 클라이언트는 계속해서 DHCPv6 서버에 연결을 시도합니다.routerdescoverymanagedaddressotherstateful

답변1

많은 실험과 많은 모호한 문서와 기사 후에 나는 그것을 공제했으며 managedaddress( 즉, Windows 서버에서 RA를 활성화하는 경우) otherstateful에만 관련이 있으며 RA 패킷에서 및 플래그를 설정하는 데 도움이 됩니다.advertiseMO

routerdescovery활성화 및 비활성화된 경우 더 이상 netsh를 통해 및 매개 변수를 advertise구성할 수 없지만 RA가 인터페이스에 도착하자마자 이 두 매개 변수는 도착한 RA 패킷의 및 플래그를 반영하도록 자동으로 구성됩니다.managedaddressotherstatefulMO

어떤 구성이 사용되는지에 관계없이 M플래그가 설정되지 않은 RA 패킷을 수신하는 경우에도 DHCPv6 Solicit 메시지는 항상 IPv6 지원 인터페이스에서 전송됩니다. Windows에서 DHCPv6을 비활성화하는 방법을 찾을 수 없습니다(Vista 이상이라고 가정하고 8.1에서 테스트했습니다). 네트워크에 DHCPv6 서버가 있는 경우 해당 서버에서 IPv6 주소를 가져옵니다.

운 좋게도 대부분의 네트워크는 IPv6 주소가 DHCPv6 서버와 협상되는 상태 저장 자동 구성 대신 상태 비저장 자동 구성(각 노드가 RA에 알려진 접두사를 기반으로 자체 구성)을 사용합니다. 대부분의 네트워크는 상태 비저장(Stateless)이기 때문에 많은 사람들은 비활성화하면 routerdiscovery추가 IPv6 주소를 얻을 수 없게 될 것이라고 생각했습니다. 그러나 네트워크에 DHCPv6 서버가 있는 경우에는 유효하지 않습니다.

답변2

나는 이것이 오래된 질문이라는 것을 알고 있지만 이것이 유용할 경우를 대비해 추가하고 싶었습니다. 시스템의 모든 네트워크 인터페이스에서 DHCPv6 및 IPv6에 대한 라우터 검색을 비활성화하는 데 사용하는 명령은 다음과 같습니다.

Set-NetIPInterface `
  -AddressFamily IPv6 `
  -InterfaceIndex $(Get-NetIpInterface -AddressFamily IPv6 | Select-Object -ExpandProperty InterfaceIndex) `
  -RouterDiscovery disabled `
  -Dhcp Disabled

그 외에도 IPv6보다 IPv4를 선호하는 시스템도 설정했습니다. 이 변경 사항을 적용하려면 재부팅이 필요합니다.

New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name "DisabledComponents" -Value 0x20 -PropertyType "DWORD"
#If DisabledComponents exists, use the set cmdlet
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\" -Name "DisabledComponents" -Value 0x20
#You need to reboot the computer in order for the changes to take effect
Restart-Computer

관련 정보