Eu tenho um Windows Server 2012 que fornece DHCPv4 e DHCPv6.
A NIC no servidor tem 2 endereços IPv6. Eu descobri que o segundo IPv6 vem de
o "Serviço de Cliente IPv6" que (somente o serviço - não o IPv6) eu preciso para outro Serviço, mas não preciso do endereço IPv6 fornecido - na verdade, o IP da v6 gera alguns erros.
Eu sei que há um comando netsh que exclui esse endereço, mas infelizmente o serviço cria outro depois de um tempo. Existe uma maneira de desabilitar a geração de outro IPv6 do "Serviço de Cliente IPv6" sem desabilitar todo o serviço?
/ edit:
Beschreibung. . . . . . . . . . . : Gigabit-Netzwerkverbindung Intel(R) 82574L<br/>
Physische Adresse . . . . . . . . : ??-??-??-??-??-??<br/>
DHCP aktiviert. . . . . . . . . . : Nein<br/>
Autokonfiguration aktiviert . . . : Ja<br/>
IPv6-Adresse. . . . . . . . . . . : 2a02:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(Bevorzugt)<br/>
IPv6-Adresse. . . . . . . . . . . : 2a02:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(Bevorzugt)<br/>
Lease erhalten. . . . . . . . . . : Montag, 10. November 2014 17:17:42<br/>
Minha saída mostra que recebi 2 endereços IPv6. Um vem do servidor DHCP, que o servidor deu sozinho, e o outro é o endereço satic.
Por que o servidor usa um endereço IPv6 de seu próprio pool, mesmo eu desabilitei o sinalizador m e a descoberta do roteador?
/ edit 2:
Acabei de encontrar uma solução. Embora o Server 2008 R2 não mostre essas características com o IPv6, o Server2012 R2 faz isso. Isso definitivamente não é desejado.
Embora você possa excluir o segundo IPv6 (IPv6 aleatório do pool IPv6) com um comando netshell
Netsh int ipv6 excluir endereço NIC ADDRESS
o próprio servidor pede outro IPv6 depois de um tempo. Mesmo se todos os sinalizadores necessários forem 0.
A solução para esse bug é usar dois cmdlets para ativar os sinalizadores e desativá-los diretamente após ele. Eles são ainda mais poderosos que os comandos netshell - mesmo que eles façam o mesmo na superfície.
Aqui estão os comandos:
$a = "INTERFACENAME"
Set-NetIPInterface "$a" -AddressFamily ipv6 -RouterDiscovery Enabled
Set-NetIPInterface "$a" -AddressFamily ipv6 -ManagedAddress Enabled
Set-NetIPInterface "$a" -AddressFamily ipv6 -RouterDiscovery Disabled
Set-NetIPInterface "$a" -AddressFamily ipv6 -ManagedAddress Disabled
Agora, você precisa salvá-lo como um script powershell e adicioná-lo ao agendador de tarefas. Você só precisa executá-lo depois de uma reinicialização.
Abra o agendador de tarefas, crie uma nova tarefa, defina o acionador para "reinicializar" e a ação para isso:
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
-command "C:\Scripts\PATH_TO_THE_SCRIPT.ps1"
O primeiro é o caminho para o powershell e o segundo é o caminho para o script. Agora você só precisa especificar para executar o script na reinicialização com privilégios de administrador. Eu recomendo usar o usuário do sistema para executar este script.
Agora é hora de reiniciar. Execute-o e abra um shell, digite ipconfig /all
e dê uma olhada no seu IPv6 estático e no IPv6 não existente do pool DHCPv6.
/ edit 3 (última edição e a solução):
Depois disso, o servidor ainda envia solicitações DHCPv6 para o endereço multicast ff02 :: 1: 2.
Use o Wireshark para exibi-lo.
Esse comportamento ocorre no Windows 8, no Windows 8.1, no Windows 7 e no Windows Server 2012.
No Windows 8, Windows 8.1 e Server 2012, você pode desativar a solicitação DHCPv6 executando simplesmente este pequeno CMDLet (ele não precisa de direitos de administrador):
Set-NetIPInterface INTERFACENAME -AddressFamily IPv6 -DHCP Disabled