DHCPv6 PD működéshez a következőkre jöttünk rá:
- RFC3315 Type 3 DUID kell (DUID-LL), ahol is az iftype értéke '1'.
- A DUID-ban link-layer addressként a kimenő, pppoe-t kezelő ethernet IF mac-jét kell megadni. Hogy miért az kell, azt nem tudom, mert elvileg nem is látszódik a ppp kapcsolaton belül ez, de mindegy.
- 64-es prefixet kell kérni, az IAID értéke látszólag mindegy.
A pppoe-t termináló HP desktopon a 21-es VLAN subineterfészt használom:
# ip link sh dev eth0.21
7: eth0.21@eth0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default
link/ether 00:11:85:75:4b:07 brd ff:ff:ff:ff:ff:ff
A DUID nálam így a következő: 00:03:00:01:00:11:85:75:4b:07
TCPdumpban kb ez fog látszódni:
10:06:21.660688 Out ethertype IPv6 (0x86dd), length 206: (hlim 1, next-header UDP (17) payload length: 150) fe80::c1a:473b:74a3:c6.546 > ff02::1:2.547: [udp sum ok] dhcp6 solicit (xid=c89ef6 (client-ID hwaddr type 1 001185754b07) (elapsed-time 0) (vendor-class) (IA_PD IAID:0 T1:0 T2:0 (IA_PD-prefix ::/64 pltime:0 vltime:0)) (reconfigure-accept) (option-request opt_82 opt_83))
10:06:21.665344 In ethertype IPv6 (0x86dd), length 181: (hlim 64, next-header UDP (17) payload length: 125) fe80::cd99:e689:7b3b:776e.54081 > fe80::c1a:473b:74a3:c6.546: [udp sum ok] dhcp6 advertise (xid=c89ef6 (client-ID hwaddr type 1 001185754b07) (server-ID hwaddr/time type 1 time 478104455 000000000000) (DNS-server 2a01:368:a::2 2a01:368:a::1) (IA_PD IAID:0 T1:302400 T2:483840 (IA_PD-prefix 2a01:36d:115:4446::/64 pltime:604800 vltime:604800)))
10:06:21.665731 Out ethertype IPv6 (0x86dd), length 253: (hlim 1, next-header UDP (17) payload length: 197) fe80::c1a:473b:74a3:c6.546 > ff02::1:2.547: [udp sum ok] dhcp6 request (xid=4654ef (client-ID hwaddr type 1 001185754b07) (server-ID hwaddr/time type 1 time 478104455 000000000000) (elapsed-time 0) (vendor-class) (IA_PD IAID:0 T1:0 T2:0 (IA_PD-prefix ::/64 pltime:0 vltime:0) (IA_PD-prefix 2a01:36d:115:4446::/64 pltime:604800 vltime:604800)) (reconfigure-accept) (option-request opt_82 opt_83))
10:06:21.668169 In ethertype IPv6 (0x86dd), length 181: (hlim 64, next-header UDP (17) payload length: 125) fe80::cd99:e689:7b3b:776e.54081 > fe80::c1a:473b:74a3:c6.546: [udp sum ok] dhcp6 reply (xid=4654ef (client-ID hwaddr type 1 001185754b07) (server-ID hwaddr/time type 1 time 478104455 000000000000) (DNS-server 2a01:368:a::2 2a01:368:a::1) (IA_PD IAID:0 T1:302400 T2:483840 (IA_PD-prefix 2a01:36d:115:4446::/64 pltime:604800 vltime:604800)))
logban meg ez:
dhcpcd 15927 ppp0: unsupported interface family 00
dhcpcd 15927 DUID 00:03:00:01:00:11:85:75:4b:07
dhcpcd 15927 ppp0: IAID 00:00:00:01
dhcpcd 15927 ppp0: soliciting a DHCPv6 lease
dhcpcd 15927 ppp0: ADV ::/64 from fe80::cd99:e689:7b3b:776e
dhcpcd 15927 ppp0: REPLY6 received from fe80::cd99:e689:7b3b:776e
dhcpcd 15927 eth0.15: loading for delegation
dhcpcd 15927 eth0.15: IAID 85:75:4b:07
dhcpcd 15927 eth0.15: adding delegated prefixes
dhcpcd 15927 eth0.15: adding address 2a01:36d:115:4446::1/64
dhcpcd 15927 ppp0: adding reject route to 2a01:36d:115:4446::/64 via ::1
dhcpcd 15927 eth0.15: adding route to 2a01:36d:115:4446::/64
dhcpcd 15927 ppp0: renew in 302400 seconds, rebind in 483840 seconds
dhcpcd 15927 ppp0: deleting reject route to 2a01:36d:115:4446::/64 via ::1
dhcpcd 15927 forked to background, child pid 15983
dhcpcd 15983 eth0.15: removing route to 2a01:36d:115:4446::/64
vegyük észre ugyanakkor, hogy a dhcpcd még mindig egy fos, mert annak ellenére, hogy a doksiban 0-s slaid mellett nem vesz fel reject routeot, mégis megteszi, emiatt a eth0.15-re már nem kerül fel a route:
dhcpcd 15927 ppp0: adding reject route to 2a01:36d:115:4446::/64 via ::1
dhcpcd 15927 eth0.15: adding route to 2a01:36d:115:4446::/64