Windows 10에서 건너뛴 DHCPv6 IPv6 주소를 되돌리는 것을 방지하는 방법은 무엇입니까? 아니면 DHCPv6을 비활성화하는 방법은 무엇입니까?

Windows 10에서 건너뛴 DHCPv6 IPv6 주소를 되돌리는 것을 방지하는 방법은 무엇입니까? 아니면 DHCPv6을 비활성화하는 방법은 무엇입니까?

우리 학교는 모든 학교 친구에게 /64 접두사 IPv6 블록을 할당했으며 Windows 10 22H2 PC의 64비트 접미사를 수정하고 싶어서 다음 PowerShell 스크립트를 실행하여 사용자 지정 IPv6 주소를 $ip실제로 사용되는 유일한 IP로 설정했습니다. 나가는 패키지에 대해 성공했습니다.

사용자 정의 IPv6 주소를 추가합니다.

New-NetIPAddress -InterfaceAlias Wi-Fi -IPAddress $ip -PolicyStore ActiveStore -PrefixLength 64
Set-NetIPAddress -IPAddress $ip -SkipAsSource $False

다른 모든 공용 IPv6 주소가 나가는 패키지에 사용되는 것을 방지하려면 다음과 같이 SkipAsSource설정 하십시오.$True

Get-NetIPAddress -InterfaceAlias Wi-Fi | ForEach-Object {
    if( ($_.AddressFamily.ToString() -eq "IPv6") -And ($_.IPAddress -ne $ip) -And ($_.PrefixOrigin.ToString() -ne "WellKnown") ){
        Set-NetIPAddress -IPAddress $_.IPAddress -SkipAsSource $True
    }
}

그러나 몇 분 후에 IPv6 주소가 가 PrefixOrigin되어 "Dhcp"내 PC가 나가는 패키지에 DHCP IPv6 주소를 사용하게 되었습니다 SkipAsSource. $False이유를 찾기 위해 다음 PowerShell 스크립트를 실행하여 DHCP IPv6 주소가 SkipAsSource된 정확한 시간을 찾았습니다 $False.

$isChanged = $false
while( !$isChanged ){
    Start-Sleep 10
    Get-Date
    Get-NetIPAddress -InterfaceAlias "Wi-Fi" -AddressFamily IPv6 | ForEach-Object{
        if($_.PrefixOrigin -eq "Dhcp"){
            if($_.SkipAsSource -eq $False){
                $global:isChanged = $True
                Write-Host -ForegroundColor Red "Found it"
                break
            }else{
                Write-Host "Nothing wrong"
            }
        }
    }
}

내가 찾은 시간 범위는 ~ 사이 2023-07-12 02:20:00 UTC+8이고 타임스탬프가 관련되었을 수 있는 2023-07-12 02:20:10 UTC+8다음 시스템 로그를 찾았습니다 .2023-07-12 02:20:01 UTC+8

이벤트 7003에 대한 시스템 로그 - 로밍 완료

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Netwtw04" />
    <EventID Qualifiers="16384">7003</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2023-07-11T18:20:01.5397220Z" />
    <EventRecordID>122318</EventRecordID>
    <Correlation />
    <Execution ProcessID="4" ThreadID="9152" />
    <Channel>System</Channel>
    <Computer>ComputerName</Computer>
    <Security />
  </System>
  <EventData>
    <Data>\Device\NDMP5</Data>
    <Data>Intel(R) Dual Band Wireless-AC 3165</Data>
    <Binary>0000080002003800000000005B1B00400000000000000000000000000000000000000000000000000000000000000000</Binary>
  </EventData>
</Event>

그리고 다음 두 로그의 Applications and Services Logs\Microsoft\Windows\Dhcp-Client\Microsoft-Windows-DHCP Client Events/Admin타임스탬프가 동일합니다. 다음의 타임스탬프가 동일하거나 인접한 로그가 없습니다 Applications and Services Logs\Microsoft\Windows\Dhcp-Client\Microsoft-Windows-DHCPv6 Client Events/Admin.

이벤트 50067에 대한 DHCP 클라이언트 이벤트/관리 이벤트 로그

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Dhcp-Client" Guid="{15a7a4f8-0072-4eab-abad-f98a4d666aed}" />
    <EventID>50067</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>3</Task>
    <Opcode>57</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="2023-07-11T18:20:01.5559344Z" />
    <EventRecordID>6641</EventRecordID>
    <Correlation />
    <Execution ProcessID="2044" ThreadID="6392" />
    <Channel>Microsoft-Windows-Dhcp-Client/Admin</Channel>
    <Computer>sanfrancisco</Computer>
    <Security UserID="S-1-5-19" />
  </System>
  <EventData>
    <Data Name="NetworkHintString">SSID</Data>
    <Data Name="NetworkHint">SSID hex</Data>
    <Data Name="HWLength">6</Data>
    <Data Name="HWAddress">MAC address</Data>
  </EventData>
</Event>

이벤트 50065에 대한 DHCP 클라이언트 이벤트/관리 이벤트 로그

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Dhcp-Client" Guid="{15a7a4f8-0072-4eab-abad-f98a4d666aed}" />
    <EventID>50065</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>3</Task>
    <Opcode>55</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="2023-07-11T18:20:01.5559369Z" />
    <EventRecordID>6642</EventRecordID>
    <Correlation />
    <Execution ProcessID="2044" ThreadID="6392" />
    <Channel>Microsoft-Windows-Dhcp-Client/Admin</Channel>
    <Computer>sanfrancisco</Computer>
    <Security UserID="S-1-5-19" />
  </System>
  <EventData>
    <Data Name="NetworkHintString">SSID</Data>
    <Data Name="NetworkHint">SSID hex</Data>
    <Data Name="HWLength">6</Data>
    <Data Name="HWAddress">MAC address</Data>
  </EventData>
</Event>

그렇다면 DHCP IPv6 주소가 되돌려지는 것을 방지하는 방법은 무엇입니까? 아니면 DHCPv6을 비활성화하는 방법은 무엇입니까?

답변1

.net 카드에 대해 DHCPv6을 비활성화할 수 있음을 발견했습니다 Set-NetIPInterface -Dhcp Disable -InterfaceAlias Wi-Fi -AddressFamily IPv6. 이를 실행한 후 내 넷 카드에는 mannally와 SLAAC가 각각 설정한 공개 IPv6 주소가 2개만 있었습니다. 그러나 SLAAC IPv6를 SkipAsSource으로 설정한 후에도 $True여전히 몇 시간 후로 되돌아갔습니다 $False. 이제 SLAAC를 비활성화했고 netsh interface ipv6 set interface Wi-Fi routerdiscovery=disabledWindows에는 공용 IPv6 주소가 하나만 있으므로 문제가 완전히 해결되었습니다.

관련 정보