Ir al contenido

Fundamentos de IPv6: verifica ULA, RA/SLAAC, PD y DNS

Nombre Ejemplo/función Error común
link-local fe80::/10 toda NIC tiene una; no es pública
ULA dentro de fd00::/8 no es enrutable directamente en internet
GUA dirección pública 2000::/3 requiere PD/asignación del upstream
RA el router anuncia prefijo/puerta de enlace/DNS sin RA no hay SLAAC
SLAAC el cliente genera una dirección a partir del prefijo RA no es DHCPv6
DHCPv6 el servidor asigna dirección/prefijo/DNS distinto del DHCP de IPv4
PD el upstream delega un prefijo al router sin PD no hay GUA en la LAN
Shell del routerRevisa direcciones, rutas y UCI
Ventana de terminal
ip -6 addr show
ip -6 route
uci show network.lan
uci show dhcp.lan
uci show network.globals
logread -e odhcpd | tail -30

En este laboratorio: br-lan tenía la ULA fd2f:385b:7d0a::1/60 y la link-local; sin ruta IPv6 por defecto ni GUA.

EsperadoSabes si tienes solo link-local, ULA o GUA.

Shell del routerConfirma el prefijo de la LAN y el servicio RA
Ventana de terminal
uci show network.globals.ula_prefix
uci show network.lan.ip6assign
uci show dhcp.lan.ra
uci show dhcp.lan.ra_slaac
uci show dhcp.lan.dhcpv6
ps | grep [o]dhcpd

En este laboratorio:

network.globals.ula_prefix='fd2f:385b:7d0a::/48'
network.lan.ip6assign='60'
dhcp.lan.ra='server'
dhcp.lan.ra_slaac='1'
dhcp.lan.dhcpv6='server'

ip6assign='60' toma un /60 para la LAN del /48 de la ULA; los clientes suelen recibir un /64.

EsperadoLa LAN tiene un prefijo ULA y odhcpd envía RA.

OrdenadorHaz que un cliente obtenga una dirección por RA

Ejemplo en Linux (accept_ra=2 solo en este netns; los clientes normales suelen mantener los valores por defecto):

Ventana de terminal
sysctl -w net.ipv6.conf.eth0.accept_ra=2
ip -6 addr show eth0
ip -6 route
ping -6 -c 2 <router-ULA>

El cliente netns de este laboratorio obtuvo:

fd2f:385b:7d0a:0:5088:71ff:fed4:32d2/64 scope global dynamic
fe80::5088:71ff:fed4:32d2/64 scope link

e hizo ping a fd2f:385b:7d0a::1. El cliente solo tenía fd2f:385b:7d0a::/64, sin ruta IPv6 por defecto (sin upstream).

EsperadoEl cliente obtiene una ULA y puede hacer ping al IPv6 del router.

Shell del routerComprueba si WAN6/el upstream proporciona un prefijo
Ventana de terminal
uci show network.wan6 2>/dev/null
ubus call network.interface.wan6 status 2>/dev/null
ip -6 route
ip -6 addr show eth1
logread | grep -Ei 'odhcp6c|dhcpv6|pd' | tail -30

Router principal típico:

Ventana de terminal
uci set network.wan6=interface
uci set network.wan6.device='eth1'
uci set network.wan6.proto='dhcpv6'
uci commit network
/etc/init.d/network reload
  • El upstream debe admitir IPv6/PD; algunos ONT/ISP dan solo un /64 o nada;
  • Sin PD, no inventes un «prefijo público» en la LAN;
  • Este laboratorio no tenía IPv6 upstream, así que no se verificaron GUA/PD; solo ULA/RA/SLAAC.

EsperadoUna GUA y una ruta por defecto, o un «sin IPv6» claro del upstream.

Shell del routerPrueba por separado AAAA y el DNS por IPv6
Ventana de terminal
nslookup -type=AAAA openwrt.org 127.0.0.1
nslookup -type=AAAA openwrt.org <router-ULA>
cat /tmp/resolv.conf.d/resolv.conf.auto
  • AAAA puede resolverse aunque el DNS use IPv4;
  • el DNS del cliente puede venir de RA/DHCPv6 o de configuración manual;
  • No cambies todo el DNS a IPv6 para que «IPv6 funcione»; mantén el respaldo IPv4/IPv6.

Cortafuegos:

Ventana de terminal
uci show firewall
nft list ruleset 2>/dev/null | head -80
  • Permite ICMPv6/ND/RA (de lo contrario IPv6 se rompe);
  • Permite el reenvío IPv6 LAN→WAN;
  • No desactives el cortafuegos IPv6 «para probar la conectividad»; eso expone la LAN.

EsperadoSabes si es «no hay AAAA» o «el DNS no usó IPv6».

  • la LAN no tiene prefijo ULA/ip6assign;
  • odhcpd no está en ejecución / RA bloqueado;
  • el cliente tiene accept_ra=0;
  • el switch/AP bloquea multicast/ICMPv6.
  • el upstream no tiene IPv6/PD;
  • wan6 no está configurado / no se recibió el prefijo;
  • el ISP da solo un /64, que no se puede dividir para la LAN;
  • los escenarios de relay/ND proxy son distintos; no los fuerces.
  • no hay ruta IPv6 por defecto;
  • reenvío del cortafuegos/ICMPv6;
  • el DNS solo en IPv4;
  • ruta/prefijo upstream no válidos.

IPv4 se vuelve lento o se rompe al activar IPv6

Sección titulada «IPv4 se vuelve lento o se rompe al activar IPv6»
  • preferencia de DNS/respaldo de doble pila;
  • direcciones de privacidad del cliente/parámetros RA;
  • Mantén IPv4 funcionando; añade IPv6 paso a paso.
  • Entorno: VM x86 200 con OpenWrt 25.12.6; LAN 192.168.1.2/24 + ULA fd2f:385b:7d0a::1/60.
  • Prefijo ULA fd2f:385b:7d0a::/48; ip6assign=60; ra=server, ra_slaac=1, dhcpv6=server; odhcpd en ejecución.
  • Cliente: SLAAC obtuvo fd2f:385b:7d0a:0:5088:71ff:fed4:32d2/64; hizo ping a la ULA del router.
  • Sin IPv6/GUA/PD upstream; WAN6, ISP real, cliente DHCPv6 y cortafuegos/NAT IPv6 sin probar.
  • Receta: tests/recipes/ipv6-25.12.md.
  • Es un E2 parcial: se probaron ULA/RA/SLAAC de la LAN; no se probaron GUA/PD de WAN ni un ISP real.
  • Sin revisor independiente; las conclusiones se limitan a este entorno de VM/netns.
  • No conviertas «la LAN tiene una ULA» en «el internet IPv6 funciona»; la ULA es solo interna.

Fuentes

Router.Homes

Notas independientes sobre OpenWrt. Cada página indica el firmware, el dispositivo, el gestor de paquetes y la vía de retorno.

Iconos: Solar by 480 Design, CC BY 4.0