dhcpcd dhcpv6 はルータのアドバタイズ後にタイムアウトし、DHCPv6 要求を送信しません。

dhcpcd dhcpv6 はルータのアドバタイズ後にタイムアウトし、DHCPv6 要求を送信しません。

私は Linux ホストを IPv4 ルーターとして使用しており、IPv6 を有効にすることを検討しました (これは未来だと聞きました)。私はすでに をdhcpcddhcpv4 クライアントとして使用して ISP からアドレスを取得しているので、それを dhcpv6 でも使用しようと考えました。

残念ながら、要請メッセージが送信され、dhcpv6 サーバーが 2 つの dhcpv6 アドバタイズ メッセージで応答することは確認できますが、 dhcpv6 要求が送信されていることdhcpcdは確認できません。dhcpcd

次の 3 つのメッセージのシーケンスが 3 回繰り返され、その後dhcpcdタイムアウトします。

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

私の当面の目標は、プレフィックス委任や実際の IPv6 ルーティングを行わずに、この「ルーター」ホストで IPv6 を動作させることです。そのため、現時点でforwardingは設定されています0。このホストが IPv6 クライアントとして動作するようになったら、ルーティングに取り組む予定です。

accept_raに設定しようとしました2が、dhcpcdに戻ってしまいました0

netctl私は次の非常に基本的なプロファイルを使用してdhcpcd を呼び出しています。正確な呼び出しは次のとおりです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

答え1

どうやら Comcast がアドバタイズ メッセージで送信しているクライアント ID を誤って切り捨てているようです。私は手動でオプションを指定しdhcpcdて呼び出しました-d:

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

そして、Wireshark を使用してクライアント ID を観察しました。

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 

タイプ4クライアントIDUUID ベースの DUID であり、長さは 128 ビット (16 バイト) である必要があります。dhcpcd正しい長さを送信していますが、Comcast の応答が短すぎます (8 バイト)。

dhcpcd -I 00:04:03:00:02:00:04:00:05:00 ...Comcast が切り捨てたものと一致するように、明示的なクライアント ID を送信しようとしましたが、tcpdump はこのオプションが有効になっていないことを示しています。また、念のためdhcpcd、短すぎるタイプ 4 クライアント ID が気に入らない場合に備えて、タイプ 4 (RFC で指定されている) からタイプ 9 (指定されていない) に変更してみましたが、dhcpcdそれでも使用しませんでした。

関連情報