Utilizo un host Linux como enrutador IPv4 y busqué habilitar IPv6 (es el futuro, me dijeron). Ya lo uso dhcpcd
como cliente dhcpv4 para obtener una dirección de mi ISP, así que pensé en usarlo también para dhcpv6.
Desafortunadamente, aunque puedo ver dhcpcd
enviar un mensaje de solicitud y ver que el servidor dhcpv6 responde con 2 mensajes publicitarios de dhcpv6, no veo dhcpcd
enviar una solicitud de dhcpv6.
Veo la siguiente secuencia de tres mensajes que se repiten 3 veces y luego dhcpcd
se agota el tiempo de espera:
15:41:06.457440 IP6 (flowlabel 0x1e0d7, hlim 1, next-header UDP (17) payload length: 152) fe80::aaaa:aaaa:aaaa:aaaa.dhcpv6-client > ff02::1:2.dhcpv6-server: [udp sum ok] dhcp6 solicit (xid=bc3d12 (client-ID type 4) (elapsed-time 0) (vendor-class) (rapid-commit) (IA_NA IAID:403318227 T1:0 T2:0) (Client-FQDN) (reconfigure-accept) (option-request DNS-server DNS-search-list Client-FQDN opt_82 opt_83))
15:41:07.168805 IP6 (class 0x48, hlim 56, next-header UDP (17) payload length: 140) 2001:558:4082:7f::1.dhcpv6-server > fe80::aaaa:aaaa:aaaa:aaaa.dhcpv6-client: [udp sum ok] dhcp6 advertise (xid=bc3d12 (client-ID type 4) (server-ID hwaddr/time type 1 time 493924036 40a8f0347664) (IA_NA IAID:403318227 T1:1800 T2:2880 (IA_ADDR 2001:558:600a:7f:bbbb:bbbb:bbbb:bbbb pltime:3600 vltime:3600)) (reconfigure-accept) (DNS-server cdns01.comcast.net cdns02.comcast.net) (Client-FQDN))
15:41:07.168912 IP6 (class 0x48, hlim 56, next-header UDP (17) payload length: 140) 2001:558:4082:7f::1.dhcpv6-server > fe80::aaaa:aaaa:aaaa:aaaa.dhcpv6-client: [udp sum ok] dhcp6 advertise (xid=bc3d12 (client-ID type 4) (server-ID hwaddr/time type 1 time 493924036 40a8f0347664) (IA_NA IAID:403318227 T1:1800 T2:2880 (IA_ADDR 2001:558:600a:7f:bbbb:bbbb:bbbb:bbbb pltime:3600 vltime:3600)) (reconfigure-accept) (DNS-server cdns01.comcast.net cdns02.comcast.net) (Client-FQDN))
Mar 14 15:41:05 router dhcpcd[126860]: DUID ...
Mar 14 15:41:05 router dhcpcd[126860]: enp8s0: IAID 18:0a:25:d3
Mar 14 15:41:05 router dhcpcd[126860]: enp8s0: adding address fe80::aaaa:aaaa:aaaa:aaaa
Mar 14 15:41:05 router dhcpcd[126860]: enp8s0: soliciting an IPv6 router
Mar 14 15:41:06 router dhcpcd[126860]: enp8s0: Router Advertisement from fe80::2aa:bbff:fecc:102
Mar 14 15:41:06 router dhcpcd[126860]: enp8s0: no global addresses for default route
Mar 14 15:41:06 router dhcpcd[126860]: enp8s0: soliciting a DHCPv6 lease
Mar 14 15:41:35 router dhcpcd[126860]: timed out
Mar 14 15:41:35 router dhcpcd[126860]: dhcpcd exited
$ cat /proc/sys/net/ipv6/conf/enp8s0/autoconf
1
$ cat /proc/sys/net/ipv6/conf/enp8s0/accept_ra_pinfo
1
$ cat /proc/sys/net/ipv6/conf/enp8s0/forwarding
0
$ cat /proc/sys/net/ipv6/conf/enp8s0/accept_ra
0
Mi objetivo inmediato es lograr que IPv6 funcione en este host "enrutador" sin realizar delegación de prefijos ni ningún enrutamiento IPv6 real, por lo que forwarding
está configurado 0
por ahora. Después de que este host funcione como cliente IPv6, abordaré el enrutamiento.
Intenté configurarlo accept_ra
, 2
pero dhcpcd
lo vuelvo a configurar 0
.
Estoy invocando dhcpcd vía netctl
con el siguiente perfil muy básico. La invocación exacta es dhcpcd -6 -q -t 30 enp8s0
:
$ cat /etc/netctl/enp8s0
Interface=enp8s0
Connection=ethernet
IP=dhcp
DHCPClient=dhcpcd
IP6=dhcp
DHCP6Client=dhcpcd
$ dhcpcd --version
dhcpcd 8.1.6
Copyright (c) 2006-2019 Roy Marples
Compiled in features: INET ARP ARPing IPv4LL INET6 DHCPv6 AUTH
$ cat /etc/dhcpcd.conf | egrep -v '^#'
hostname
duid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option interface_mtu
require dhcp_server_identifier
slaac private
noipv4ll
Respuesta1
Parece que Comcast está truncando incorrectamente el ID de cliente que envía en sus mensajes publicitarios. Invoqué manualmente dhcpcd
con la -d
opción:
Mar 14 16:22:35 router dhcpcd[127923]: enp8s0: broadcasting SOLICIT6 (xid 0xc32482), next in 0.9 seconds
Mar 14 16:22:35 router dhcpcd[127923]: enp8s0: incorrect client ID from 2001:558:4082:7f::1
Mar 14 16:22:35 router dhcpcd[127923]: enp8s0: incorrect client ID from 2001:558:4082:7f::1
Y usando Wireshark observé los ID de los clientes:
11 5.308301 fe80::aaaa:aaaa:aaaa:aaaa ff02::1:2 DHCPv6 208 Solicit XID: 0xc32482 CID: 000403000200040005000006000700080009
12 5.360355 2001:558:4082:7f::1 fe80::aaaa:aaaa:aaaa:aaaa DHCPv6 196 Advertise XID: 0xc32482 CID: 00040300020004000500 IAA: 2001:558:600a:7f:bbbb:bbbb:bbbb:bbbb
AID de cliente tipo 4es un DUID basado en UUID, que debe tener una longitud de 128 bits (16 bytes). dhcpcd
está enviando la longitud correcta, pero la respuesta de Comcast es demasiado corta (8 bytes).
Intenté enviar una identificación de cliente explícita dhcpcd -I 00:04:03:00:02:00:04:00:05:00 ...
para que coincida con lo que Comcast lo está truncando, pero tcpdump sugiere que esta opción no está surtiendo efecto. También intenté cambiarlo del tipo 4 (que está especificado por RFC) al tipo 9 (que no lo es), por si acaso dhcpcd
no me gustó un ID de cliente de tipo 4 que era demasiado corto, pero dhcpcd
aún así no lo usé.