dhcpcd dhcpv6 expira após anúncio do roteador, nunca envia uma solicitação DHCPv6

dhcpcd dhcpv6 expira após anúncio do roteador, nunca envia uma solicitação DHCPv6

Eu uso um host Linux como roteador IPv4 e procurei habilitar o IPv6 (é o futuro, me disseram). Eu já uso dhcpcdcomo cliente dhcpv4 para obter um endereço do meu ISP, então decidi usá-lo para dhcpv6 também.

Infelizmente, embora eu possa ver dhcpcdo envio de uma mensagem de solicitação e o servidor dhcpv6 responder com 2x mensagens de anúncio dhcpv6, não vejo dhcpcdo envio de uma solicitação dhcpv6.

Vejo a seguinte sequência de três mensagens repetidas 3 vezes e depois dhcpcdexpira:

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

Meu objetivo imediato é fazer com que o IPv6 funcione neste host "roteador" sem fazer delegação de prefixo ou qualquer roteamento IPv6 real, como forwardingestá definido 0por enquanto. Depois que esse host estiver funcionando como um cliente IPv6, abordarei o roteamento.

Eu tentei configurar accept_rapara 2, mas dhcpcdconfigurei de volta para 0.

Estou invocando o dhcpcd netctlcom o seguinte perfil básico. A invocação exata é 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

Responder1

Parece que a Comcast está truncando incorretamente o ID do cliente que está enviando em suas mensagens publicitárias. Invoquei manualmente dhcpcdcom a -dopção:

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

E usando o wireshark observei os IDs dos 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 do cliente tipo 4é um DUID baseado em UUID, que deve ter 128 bits (16 bytes) de comprimento. dhcpcdestá enviando o comprimento correto, mas a resposta da Comcast é muito curta (8 bytes).

Tentei enviar um ID de cliente explícito dhcpcd -I 00:04:03:00:02:00:04:00:05:00 ...para corresponder ao que a Comcast está truncando, mas o tcpdump sugere que esta opção não está tendo efeito. Também tentei alterá-lo do tipo 4 (que é especificado pela RFC) para o tipo 9 (que não é), apenas para o caso dhcpcdde não gostar de um ID de cliente tipo 4 que era muito curto, mas dhcpcdainda assim não o usei.

informação relacionada