Este tutorial intenta resolver dudas y preguntas de porqué nuestro interfaz de red tiene asignada la dirección IP 169.254/16 que se produce cuando no es capaz de configurase automáticamente por DHCP.
El protocolo APIPA
(Automatic Private Internet Protocol Addressing) [RFC3927] permite a un Host configurar automáticamente su interfaz de red con una dirección IPv4 169.254/16 cuando no consigue encontrar un Servidor DHCP. Estas configuración IP tan sólo es válida en:
- En entornos y comunicaciones locales.
- Entornos donde otra configuración no ha sido posible.
El prefijo IPv4 169.254/16 ha sido registrado por IANA para este propósito, siendo reservadas las 256 primeras y últimas direcciones IP (169.254.0.x – 169.254.255.x) para un posible uso futuro por lo que no deberían ser seleccionadas por el Host, cuando este configura automáticamente su interfaz utilizando el método de asignación dinámica.
Para saber que IP asignar, el Sistema utiliza un algoritmo de generación que impide que la misma IP pueda ser utilizada por otro host. Gracias a ello el Host mantiene la misma dirección IP aunque se reinicie. Para asignación automática de direcciones IPv6 se utiliza otro protocolo llamado IPv6 Stateless Address Autoconfiguration [RFC2462].
Cómo funciona APIPA
Cuando una interfaz de red está configurada para utilizar DHCP y su servidor no está disponible, esta podrá utilizar el método APIPA para asignarse automáticamente una dirección IP, dentro del rango reservado (169.254.1.0 – 169.254.254.255) siendo 169.254.255.255 la dirección de Broadcast.
- Inicialmente el servidor DHCP del cliente envía 4 DHCPDISCOVERs en intervalos de 6 segundos y en caso de no recibir respuesta se configura automáticamente siguiendo la especificación del protocolo APIPA.
- El sistema intenta configurar automáticamente su interfaz de red hasta 10 veces y en caso de no poder asignarse una IP por el método APIPA (porque esta esté ocupada u otro problema) se reiniciará sin ninguna dirección IP.
APIPA no configura las DNS de la interfaz de red y tenemos que tener en cuenta que cualquier paquete IPv4 cuya dirección de origen y/o destino esté en el rango de 169.254/16 no será enviado ni reenviado por ningún enrutador fuera de la red.
Sistemas Operativos Windows
Existen muchas versiones del Sistema Operativo Windows y debemos tener claro que el funcionamiento de APIPA es el mismo en todos ellos salvo excepciones.
El Sistema Operativo Windows comprueba la presencia de un Servidor DHCP cada 5 minutos y en caso de no poder recibir una dirección IP, mantendrá la dirección APIPA que se le tenga asignada.
- Los Sistemas Operativos de Windows 98 no tienen implementado la detección de medios (media sense), que provoca en caso de perdida de conectividad, que nuestra interfaz de red no pueda conectar con el servidor DHCP evitando que se pueda configurar automáticamente. Cuando se soluciona el problema de conectividad, la interfaz de red no puede reconectar inmediatamente.
- Windows 10, Windows 7, Windows XP y Windows 2000> ya tienen implementada la Detección de medios, además de otras características como ICMP Router Discovery y Silent RIP. Tan pronto como se detecta conectividad en la red un DHCPREQUEST/DHCPDISCOVER son enviados a la interfaz, lo que permite al sistema volver a configurarse automáticamente tan pronto como la conectividad se ha recuperado.
El protocolo ICMP Router discovery permite a nuestra interfaz buscar Routers dentro de nuestra red/subred, lo que facilita poder descubrir una puerta de enlace mientras están en el modo de configuración automática.
El servicio RIP Listener (Escucha RIP) es una característica de Windows y se basa en el protocolo RIP (Routing Information Protocol) [RFC1058], para poder intercambiar información dentro de una red y poder actualizar las tablas de enrutamiento.
El algoritmo de generación de IP que utiliza Windows se basa en un Hash aleatorio generado utilizando la dirección MAC de la interfaz de red del sistema, asegurando que en caso reinicio, la interfaz de red siempre reciba la misma dirección IP (evitando la duplicidad).
A tener en cuenta …
Sólo aquellos equipos que estén configurados para APIPA podrán comunicarse entre ellos, siendo imposible su conexión y comunicación con equipos de otras redes.
No se debería asignar una dirección IP APIPA manualmente o por un servidor DHCP, ya que no cumple las reglas por las que ha sido creado el protocolo AIPIPA. Aquellos administradores que deseen hacerlo deben recurrir a los rangos privados IP definidos por Address Allocation for Private Internets [RFC1918].
- 10.0.0.0 – 10.255.255.255 (Prefijo 10/8)
- 172.16.0.0 – 172.31.255.255 (Prefijo 172.16/12)
- 192.168.0.0 – 192.168.255.255 (Prefijo 192.168/16)
APIPA está habilitado por defecto pero puede ser deshabilitado y en caso de ser deshabilitado, la interfaz utilizará una dirección por defecto.
Soluciones
- Utiliza los métodos para liberar (release) y renovar (renew) la dirección IP de la interfaz utilizando Ipconfig y netsh.
- Comprueba las conexiones de red desde el Host hasta el Servidor/Router.
- Realiza una asignación de IP manual a la interfaz de red para comprobar si se establece una conexión.
- Deshabilita otras interfaces de red que puedan utilizar DHCP.
Bibliografía
- Dynamic Configuration of IPv4 Link-Local Addresses [RFC3927]
- Automatic Private Internet Protocol Addressing
- Uso del direccionamiento automático de TCP/IP sin un servidor DHCP