IPv4 vs IPv6 prioridade no Windows 7

29

Tenho conectividade IPv6 através do túnel Hurricane Electric. Desde o dia do IPv6 deste ano, muitos serviços (google.com, facebook.com, etc.) ativaram o IPv6 em seus domínios principais. Na minha máquina Windows, o IPv6 é preferido em relação ao IPv4. Isso significa que sempre que visito o Google, todo o tráfego passa pelo meu túnel até o furacão elétrico, o que aumenta a latência em mais de 100%:

C:\> ping www.google.com

Pinging www.l.google.com [2001:4860:8005::68] with 32 bytes of data:
Reply from 2001:4860:8005::68: time=85ms
Reply from 2001:4860:8005::68: time=84ms
Reply from 2001:4860:8005::68: time=112ms
Reply from 2001:4860:8005::68: time=86ms

Ping statistics for 2001:4860:8005::68:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 84ms, Maximum = 112ms, Average = 91ms


C:\> ping -4 www.google.com

Pinging www.l.google.com [173.194.79.103] with 32 bytes of data:
Reply from 173.194.79.103: bytes=32 time=28ms TTL=48
Reply from 173.194.79.103: bytes=32 time=28ms TTL=48
Reply from 173.194.79.103: bytes=32 time=55ms TTL=46
Reply from 173.194.79.103: bytes=32 time=29ms TTL=46

Ping statistics for 173.194.79.103:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 28ms, Maximum = 55ms, Average = 35ms

Pergunta: Como posso fazer com que o Windows 7 prefira sempre o IPv4, quando os registros IPv4 e IPv6 estão disponíveis para um nome de domínio específico?

    
por haimg 14.06.2012 / 01:34

4 respostas

35

Solução # 1: Adicione uma política de prefixo para preferir endereços IPv4 sobre IPv6

A tabela de políticas de prefixo é semelhante a uma tabela de roteamento; ela determina quais endereços IP são preferidos ao fazer uma conexão. Observe que a precedência mais alta nas políticas de prefixo é representada por um valor de "precedência" lager, exatamente oposto ao valor de "custo" da tabela de roteamento.

Tabela de políticas de prefixo padrão do Windows:

C:\>netsh interface ipv6 show prefixpolicies
Querying active state...

Precedence  Label  Prefix
----------  -----  --------------------------------
        50      0  ::1/128
        40      1  ::/0
        30      2  2002::/16
        20      3  ::/96
        10      4  ::ffff:0:0/96
         5      5  2001::/32

Observe que os endereços IPv6 (:: / 0) são preferidos em endereços IPv4 (:: / 96, :: ffff: 0: 0/96).

Podemos criar uma política que torne o túnel IPv6 do Hurricane Electric menos favorável do que qualquer endereço IPv4 :

netsh interface ipv6 add prefixpolicy 2001:470::/32 3 6

2001: 470 :: / 32 é o prefixo da Hurricane Electric, 3 é uma Precedência (muito baixa) e 6 é uma etiqueta.

Eu poderia ter usado um prefixo mais genérico, mas queria ter certeza de que, se e quando obtiver uma conectividade IPv6 direta de um ISP, ele terá precedência sobre o IPv4.

Se você adaptar esta solução, precisará substituir um prefixo IPv6 apropriado em vez do prefixo Hurricane Electric.

Solução 2: Ajuste o registro para que o Windows sempre prefira o IPv4 no IPv6

Esta solução é mais genérica, mas mais invasiva e menos compatível com os padrões. No final, o Windows ainda modificará a tabela de diretivas de prefixo para você.

  • Abra o RegEdit, navegue para HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters
  • Crie o valor do registro DisabledComponents DWORD, defina seu valor como 20 (hexadecimal). Consulte Microsoft KB 929852 para obter mais informações sobre essa chave do Registro, especialmente se DisabledComponents já existir no seu sistema.
  • Reinicialize.
por 14.06.2012 / 20:15
19

Se textos e tabelas monoespaçadas com números e símbolos estranhos assustam você, você pode fazer isso com o Microsoft Fix-its, instaladores simples da Microsoft que fazem as alterações de configuração para você.

Essas correções vêm de KB 2533454 , o que explica que você faria isso se a conectividade IPv6 estivesse quebrada . Você precisa ser um administrador para executar a correção; Após o download, clique com o botão direito e selecione Executar como administrador.

por 15.05.2014 / 14:13
6

A maneira mais simples, e estas são sempre tão simples que as ignoramos ...

  1. Abra o Centro de Rede e Compartilhamento.

  2. Clique em Alterar configurações do adaptador

  3. Na "Barra de Menus" Clique em Avançado. ** Nota ... Se você vê apenas "Organizar", clique nele e, em seguida, no menu suspenso, escolha "Layout - Barra de Menus"

  4. Após clicar em avançado na etapa anterior, clique em "Configurações avançadas" nesta etapa (uma caixa será aberta na tela)

  5. O que é exibido são adaptadores e configurações e o adaptador que você está usando já estará destacado na metade superior e sua divisão representativa abaixo (você deverá ver as ligações para esse adaptador). Destaque qualquer uma das ligações da lista e você deverá notar as setas à direita acenderem, use essas setas para alterar a ordem de ligação de acordo com sua preferência e, em seguida, escolha ok na parte inferior.

  6. Observe que, exatamente como quando você instala um protocolo, serviço ou cliente nas propriedades do adaptador. O mesmo se aplica aqui. que é que você muda um adaptador, e o resto segue o exemplo. Assim, por exemplo, se você escolher IPV6 preferir mais de 4 em seu adaptador sem fio, seu adaptador de LAN também muda.

É a maneira mais fácil de pensar em fazer essa tarefa em particular sem ter que pensar muito ou ter muito conhecimento sobre o roteamento de pacotes em uma rede inter.

    
por 15.05.2014 / 10:58
0
O

RFC6724 definiu uma mudança em como os endereços devem ser preferidos. Com essa mudança, o IPv6 não é mais o endereço preferido em muitos casos: (

Esta pergunta, feita em junho de 2012, foi "corrigida" por um RFC de setembro de 2012. Dependendo da sua versão do Windows, você teve essa nova política pronta para uso (Windows 8.1 ), ou provavelmente já entregue através de uma atualização (Windows 8, Windows 7, Windows Vista).

Estamos aqui porque queremos usar o IPv6; queremos que a mudança seja desfeita.

Como colocar de volta

Se você tiver vários endereços IP para um único host, sua máquina precisará decidir qual endereço usará. Um exemplo de classificação pode ser:

  • loopback IPv6
  • IPv6 nativo
  • Endereços locais únicos (ULAs), por ex. fdxx ::
  • Site-local, por exemplo fec0
  • 6bone
  • 6to4
  • IPv4compat
  • IPv4
  • Teredo, por ex. 2001

Na sua máquina Windows, essa classificação é chamada de política de prefixo .

Política de prefixo

Você pode ver a política de prefixo do seu computador executando:

>netsh int ipv6 show prefixpolicies

Nos tempos antigos (originalmente definidos por RFC 3484 ), a política de prefixo era:

Precedence  Prefix         
----------  -------------
        50  ::1/128        IPv6 loopback
        40  ::/0           Native IPv6
        40  fc00::/7       ULAs
        40  fec0::/10      site-local
        40  3ffe::/16      6bone
        30  2002::/16      6to4
        20  ::/96          IPv4compat
        10  ::ffff:0:0/96  IPv4
         5  2001::/32      Teredo

Então você verá que praticamente sempre usa o IPv6 (yay!):

  1. loopback IPv6
  2. IPv6 nativo, ULAs, site-local, 6one
  3. 6to4
  4. IPv4compat
  5. IPv4
  6. Teredo

Se você passou pelo esforço de implantar o IPv6: acabou de funcionar.

Nova política de prefixo

Em 2012, uma nova ordem de preferência foi definida por RFC6724 . Hoje em dia, a política de prefixo garante que você nunca usará o IPv6:

Precedence  Prefix         
----------  -------------
        50  ::1/128        
        40  ::/0           Native IPv6
        35  ::ffff:0:0/96  IPv4
        30  2002::/16      
         5  2001::/32      
         3  fc00::/7       ULAs
         1  fec0::/10      site-local
         1  3ffe::/16      
         1  ::/96          

Você verá que nunca poderá usar seus Endereços locais exclusivos ou o endereço local do site; está perpetuamente quebrado:

  1. loopback IPv6
  2. IPv6 nativo
  3. IPv4
  4. 6to4
  5. Teredo
  6. ULAs
  7. site-local
  8. 6bone
  9. IPv6compat

Como consertar isso?

O que queremos é corrigir o IPv6 para que os ULAs sejam preferidos em relação ao IPv4. No mínimo, queremos forçar o uso de ULAs ( fc00::/7 ) acima do uso do IPv4:

Precedence  Prefix         
----------  -------------
        50  ::1/128        
        40  ::/0           Native IPv6
        37  fc00::/7       ULAs <---------- from 3 up to 37
        35  ::ffff:0:0/96  IPv4
        30  2002::/16      
         5  2001::/32      
         1  fec0::/10      site-local
         1  3ffe::/16      
         1  ::/96          

O que é feito por:

>netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=37 label=13 store=active

Isso só vai mantê-lo ativo até a próxima reinicialização. Para tornar a mudança permanente:

>netsh interface ipv6 set prefixpolicy fc00::/7 37 13

Se eu:

  • passou pelo esforço de gerar um prefixo global do ULA para meu / 48
  • e escolha um ID de sub-rede para meu / 64
  • e implantar ULAs em todas as máquinas da empresa
  • e atualize os servidores DNS para retornar endereços ULA IPv6, além de endereços IPv4

O mínimo que o computador pode fazer é ter a cortesia de usar o endereço.

Leitura de bônus

por 31.10.2018 / 03:38