HenriWahl / dhcpy6d

MAC address aware DHCPv6 server written in Python
https://dhcpy6d.de
GNU General Public License v2.0
94 stars 27 forks source link

dhclient applying /128 to received addresses #43

Closed iam-TJ closed 2 years ago

iam-TJ commented 3 years ago

This may be a deficiency of my understanding but I've just noticed that in our test network using dhclient the addresses received from dhcpy6d are /128 not /64: fddc:7e00:e001:ee00:fffe:f875:a4f3:42b4/128.

dhcpy6d is handing out /64 prefixes and dhclient is setting a /64 prefix length so I'm currently confused as to where the responsibility lies. Didn't notice this earlier since we also have RAs announcing the same prefixes with SLAAC EUI64 and that generated the expected /64 route table entries.

$ ip -6 addr show dev enp2s0
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet6 fddc:7e00:e001:ee00:fffe:f875:a4f3:42b4/128 scope global noprefixroute 
       valid_lft forever preferred_lft forever
### ^^^ from dhcpy6d
    inet6 fddc:7e00:e001:ee00:fa75:a4ff:fef3:42b4/64 scope global dynamic noprefixroute 
       valid_lft 2591905sec preferred_lft 604705sec
### ^^^ from RA/SLAAC-EUI64

sudo dhclient -v -d -6 -P -N -I --address-prefix-len 64  enp2s0
XMT: Renew on enp2s0, interval 10250ms.
RCV: Reply message on enp2s0 from fe80::d0a0:6dff:fed1:1e01.
RCV:  X-- Preference 255.
RCV:  X-- IA_NA a4:f3:42:b4
RCV:  | X-- starts 1629716774
RCV:  | X-- t1 - renew  +90
RCV:  | X-- t2 - rebind +120
RCV:  | X-- [Options]
RCV:  | | X-- IAADDR fddc:7e00:e001:ee00:fffe:f875:a4f3:42b4
RCV:  | | | X-- Preferred lifetime 180.
RCV:  | | | X-- Max lifetime 240.
RCV:  X-- IA_PD a4:f3:42:b4
RCV:  | X-- starts 1629716774
RCV:  | X-- t1 - renew  +90
RCV:  | X-- t2 - rebind +120
RCV:  | X-- [Options]
RCV:  | | X-- IAPREFIX fddc:7e00:e001:ee00::/64
RCV:  | | | X-- Preferred lifetime 180.
RCV:  | | | X-- Max lifetime 240.
RCV:  X-- Server ID: 00:01:00:01:61:1d:2e:fc:47:04:6e:fb:8c:aa
PRC: Bound to lease 00:01:00:01:61:1d:2e:fc:47:04:6e:fb:8c:aa.
RTNETLINK answers: File exists
RTNETLINK answers: File exists
HenriWahl commented 3 years ago

Looks like dhclient being the cause: https://kb.isc.org/docs/aa-01141

HenriWahl commented 2 years ago

Can't fix it.