1.5K
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 un host de 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
Como puede ver, el comando ping devolvió una dirección de host IPv6 en lugar de una IPv4.
Ping que devuelve una dirección IPv6 en lugar de IPv4
El hecho es que el protocolo IPv6 es el protocolo preferido sobre IPv4 en las ediciones modernas de Windows (e incluso en Linux).
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 global IPv6 son preferibles a las direcciones IPv4 (según RFC 3484). Windows normalmente prefiere usar IPv6 sobre IPv4 si IPv6 está habilitado en el sistema local.
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 prefijo 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.
Nota. Aprenda a solucionar el problema de que no se pudo contactar con el controlador de dominio de Active Directory.
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/11 y Windows Server 2019/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 remota. Windows usa esta tabla de prefijos para determinar qué dirección usar, luego hay varias direcciones disponibles para el nombre de host (IPv4 e IPv6 en este caso).
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. De forma predeterminada, el prefijo ::ffff:0:0/96 tiene una prioridad más baja que ::0, lo que significa que se prefiere IPv6 sobre IPv4 en este host de Windows.
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 un host limpio de Windows Server 2016 y vuelva a ejecutar 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.
Para que este cambio sea permanente, puede cambiar o crear el parámetro de registro DisabledComponents con un valor 0x20, lo que le indicará a Windows que siempre prefiera IPv4 sobre IPv6 (consulte a continuación).
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.
Consejo. Falta el cuadro de diálogo «Adaptadores y enlaces» en las versiones más recientes de Windows 10/11 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. La funcionalidad IPv6 se puede configurar en Windows modificando el Componentes deshabilitados parámetro de registro HKLMSISTEMACurrentControlSetServiciosTcpip6Parámetros.
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. Reinicie su computadora para que los cambios surtan efecto.
Puede usar las Preferencias de directiva de grupo para implementar esta clave de registro en varias computadoras en un dominio de Active Directory usando un GPO.
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.
Pista. Para volver al comportamiento predeterminado de Windows (preferir IPv6 sobre IPv4), ejecute el comando:
reg add hklmsystemcurrentcontrolsetservicestcpip6parameters /v DisabledComponents /t REG_DWORD /d 0x0
Otros valores posibles para el parámetro DisabledComponents:
Funcionalidad IPv6 | Valor de registro de DisabledComponents |
Deshabilitar el protocolo IPv6 | 0xFF |
Preferir IPv4 sobre IPv6 | 0x20 |
Deshabilite IPv6 en todas las interfaces que no sean de túnel | 0x10 |
Deshabilite IPv6 en todas las interfaces de túnel | 0x01 |
Deshabilite IPv6 en todas las interfaces que no sean de túnel (excepto el loopback) y en la interfaz de túnel IPv6 | 0x11 |
Valor por defecto | 0x00 |
Tenga en cuenta que el valor de este parámetro de registro no afecta la casilla de verificación IPv6 en las propiedades del adaptador de red. Este es el comportamiento esperado.