Si su computadora y un dispositivo remoto están ubicados en la misma red IP, VLAN o subred, probablemente notará que si hace ping a dicho dispositivo por su nombre de host, devolverá una dirección IPv6. Por ejemplo, intentaremos hacer ping a Windows Server en nuestra red con el comando:
Ping srv01 Pinging srv01.contoso.com [fe80::c09::d4e6::189f::f661%3] with 32 bytes of data Reply from fe80::c09::d4e6:189f:f661%3: time<1ms Reply from fe80::c09::d4e6:189f:f661%3: time<1ms
Ping que devuelve una dirección IPv6 en lugar de IPv4
El hecho es que el protocolo IPv6 en Windows Vista y posteriores es el protocolo preferido sobre IPv4.
Si aún desea ver una dirección IPv4 de un dispositivo remoto en el resultado del comando ping, simplemente use el siguiente comando:
ping hostname -4
Simplemente agregue un parámetro «-4» después de su comando de ping habitual:
Ping srv01 -4 Pinging srv01.contoso.com [192.168.10.21] with 32 bytes of data Reply from 192.168.10.21: bytes=32 time<1ms TTL=128 Reply from 192.168.10.21: bytes=32 time<1ms TTL=128
Como puede ver, el comando ping devolvió la dirección IPv4 estándar.
¿Cómo forzar a Windows a usar IPv4 sobre IPv6?
En todas las versiones de Windows a partir de Vista, las direcciones de unidifusión IPv6 son preferibles a las direcciones IPv4 (según RFC 3484). El Protocolo de Internet versión 6 (IPv6) es una parte obligatoria de Windows. Si lo desactiva, es posible que algunos componentes de Windows no funcionen correctamente. Microsoft recomienda usar la opción «Preferiblemente usar IPv4 en lugar de IPv6» en las políticas de prefijos de Windows en lugar de deshabilitar completamente IPv6.
Si el cliente intenta acceder a un servidor remoto utilizando un protocolo ICMP (comandos ping, telnet o pathping) y devuelve la dirección IPv6 (o hay algunos problemas con el funcionamiento de algunas aplicaciones heredadas), existe una solución más avanzada.
La solución es aumentar la prioridad del protocolo IPv4 sobre el IPv6. Puede utilizar una solución de este tipo sin necesidad de desactivar por completo el IPv6 en un host de origen y de destino.
Para mostrar la tabla de políticas actual en Windows, ejecute el siguiente comando:
netsh interface ipv6 show prefixpolicies

La siguiente configuración de directiva de prefijo se usa de forma predeterminada en Windows 10 y Windows Server 2016.
Prefijo de etiqueta de precedencia
———- —– ——————————–
50 0 ::1/128
40 1 ::/0
35 4 ::ffff:0:0/96
30 2 2002::/16
5 5 2001::/32
3 13 fc00::/7
1 11 fec0::/10
1 12 3ffe::/16
1 3 ::/96
La tabla de políticas de prefijos es similar a la tabla de enrutamiento, determina qué direcciones IP se prefieren al establecer una conexión.
En esta tabla, la póliza “1 ::/0” (IPv6 nativo) tiene prioridad sobre “::ffff:0:0/96” (IPv4). Un protocolo con un valor de Precedencia más alto en esta tabla tiene una prioridad más alta.
Preferir IPv4 sobre IPv6 en Windows
La solución no requiere un reinicio, surte efecto inmediatamente. Debe abrir un símbolo del sistema elevado y ejecutar 2 comandos:
netsh interface ipv6 set prefix ::/96 60 3 netsh interface ipv6 set prefix ::ffff:0:0/96 55 4
Estos comandos aumentaron la prioridad de la política de prefijos de IPv4 y redujeron la prioridad de IPv6. De forma predeterminada, este cambio se hace persistente en todos los reinicios.
Por ejemplo, ejecute estos dos comandos en una instancia limpia de Windows Server 2016 y vuelva a realizar una solicitud de ping:
Pinging srv01.contoso.com [192.168.10.21] with 32 bytes of data Reply from 192.168.10.21: bytes=32 time<1ms TTL=128 Reply from 192.168.10.21: bytes=32 time<1ms TTL=128

Como puede ver, el resultado cambió drásticamente en la dirección que necesitábamos. El servidor remoto comenzó a devolver una dirección IPv4 (192.168.10.21) en lugar de una dirección IPv6. Ahora comprobaremos que el servidor sigue haciendo ping por su dirección IPv6 y que no rompimos nada:
ping fe80::c09::d4e6:189f:f661%3

Todo funciona como debe ser.
Imprima la tabla de prioridad de prefijos actual:
netsh interface ipv6 show prefixpolicies
Como puede ver, IPv4 ahora se usa de forma predeterminada al enviar los paquetes de red.

También puede cambiar el protocolo IP preferido desde la GUI. Para hacerlo, abra Panel de control > Red e Internet > Conexiones de red > Avanzado > Configuración avanzada.

Seleccione su conexión de red y configure el protocolo IPv4 por encima de IPv6 con el botón verde. Debe realizar esta operación para todos los enlaces disponibles.

Propina. Falta el cuadro de diálogo «Adaptadores y enlaces» en los últimos Windows 10 y Windows Server 2016/2019. Otra forma de cambiar la pila TCP/IP predeterminada de IPv6 a IPv4 en estos sistemas operativos es a través del registro. Abra el símbolo del sistema elevado y ejecute el comando:
reg.exe add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters /v DisabledComponents /t REG_DWORD /d 0x20 /f

O puede cambiar el valor de DisabledComponents a 0x20 a través de la GUI de Regedit.exe. Este valor le permite preferir un protocolo IPv4 sobre IPv6 cambiando las entradas en la tabla de políticas de prefijos.
Después de eso, la funcionalidad de IPv6 cambiará a las políticas «Preferir IPv4 sobre IPv6». Microsoft recomienda usar esta política en lugar de deshabilitar IPv6 en el host.





