No entiendo muy bien el vínculo entre 4 parámetros relacionados con la configuración automática con y sin estado de IPv6 utilizada en el netsh int ipv6 set interface
contexto de comando en Windows:
advertise
routerdescovery
managedaddress
otherstateful
Por lo que pude encontrar hasta ahora, entiendo que:
advertise
M
se utiliza para indicar que el sistema operativo que contiene el indicador yO
configurado comomanagedaddress
yotherstateful
para esa interfaz en particular debe emitir/responder RA ; esto es relevante para un servidor.routerdescovery
se usa para indicar que el sistema operativo debe solicitar/procesar RA en esa interfaz y usarlo para configurarse en función de los indicadores que tiene RA; ifrouterdescovery
está habilitadomanagedaddress
yotherstateful
son anulados por las banderas de RA; esto es relevante para un cliente
Mi pregunta es ¿qué pasa cuando advertise
y routerdescovery
están discapacitados?
Se podría pensar que en este caso, managedaddress
y otherstateful
determina si el cliente DHCPv6 está habilitado o no en esa interfaz. Sin embargo, no parece ser así. Si los 4 parámetros están deshabilitados ( advertise
, y ) routerdescovery
, el cliente de Windows seguirá intentando comunicarse con un servidor DHCPv6.managedaddress
otherstateful
Respuesta1
Después de muchos experimentos y muchos documentos y artículos ambiguos, he deducido eso managedaddress
y otherstateful
son relevantes solo en conjunto con advertise
(es decir, cuando habilita RA en su servidor Windows) y ayudan a configurar los indicadores M
y O
en los paquetes RA.
Si routerdescovery
está habilitado y advertise
deshabilitado, ya no puede configurar managedaddress
los otherstateful
parámetros a través de netsh, pero tan pronto como llega un RA a la interfaz, estos dos parámetros se configuran automáticamente para que reflejen las banderas M
y O
del paquete RA llegado.
Independientemente de la configuración que se utilice, los mensajes de solicitud DHCPv6 siempre se envían en interfaces habilitadas para IPv6, incluso cuando se reciben paquetes RA con M
el indicador NO configurado. No pude encontrar una manera de desactivar DHCPv6 en Windows (supongo que Vista y superior; probé en 8.1). Si hay un servidor DHCPv6 en la red, obtendrá una dirección IPv6.
Afortunadamente, la mayoría de las redes utilizan una configuración automática sin estado (cada nodo se configura a sí mismo según el prefijo anunciado en el RA) en lugar de una configuración automática con estado en la que se negocia una dirección IPv6 con un servidor DHCPv6. Debido a que la mayoría de las redes no tienen estado, muchas personas pensaron que deshabilitarlas routerdiscovery
les impediría obtener direcciones IPv6 adicionales. Pero esto no es válido si hay un servidor DHCPv6 en la red.
Respuesta2
Sé que esta es una pregunta antigua, pero quería agregarla en caso de que fuera útil. El comando que uso para deshabilitar DHCPv6 y la detección de enrutadores para IPv6 en todas las interfaces de red de un sistema es el siguiente:
Set-NetIPInterface `
-AddressFamily IPv6 `
-InterfaceIndex $(Get-NetIpInterface -AddressFamily IPv6 | Select-Object -ExpandProperty InterfaceIndex) `
-RouterDiscovery disabled `
-Dhcp Disabled
Además de eso, también configuré un sistema para que prefiera IPv4 a IPv6. Es necesario reiniciar para que este cambio surta efecto.
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name "DisabledComponents" -Value 0x20 -PropertyType "DWORD"
#If DisabledComponents exists, use the set cmdlet
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\" -Name "DisabledComponents" -Value 0x20
#You need to reboot the computer in order for the changes to take effect
Restart-Computer