dhcpcd dhcpv6 se agota después de la publicidad del enrutador, nunca envía una solicitud DHCPv6

dhcpcd dhcpv6 se agota después de la publicidad del enrutador, nunca envía una solicitud DHCPv6

Utilizo un host Linux como enrutador IPv4 y busqué habilitar IPv6 (es el futuro, me dijeron). Ya lo uso dhcpcdcomo cliente dhcpv4 para obtener una dirección de mi ISP, así que pensé en usarlo también para dhcpv6.

Desafortunadamente, aunque puedo ver dhcpcdenviar un mensaje de solicitud y ver que el servidor dhcpv6 responde con 2 mensajes publicitarios de dhcpv6, no veo dhcpcdenviar una solicitud de dhcpv6.

Veo la siguiente secuencia de tres mensajes que se repiten 3 veces y luego dhcpcdse 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 forwardingestá configurado 0por ahora. Después de que este host funcione como cliente IPv6, abordaré el enrutamiento.

Intenté configurarlo accept_ra, 2pero dhcpcdlo vuelvo a configurar 0.

Estoy invocando dhcpcd vía netctlcon 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 dhcpcdcon la -dopció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). dhcpcdestá 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 dhcpcdno me gustó un ID de cliente de tipo 4 que era demasiado corto, pero dhcpcdaún así no lo usé.

información relacionada