DHCPv6 not sending out correct lease on LAN

Started by ethanrobbins, December 12, 2019, 04:28:00 AM

Previous topic - Next topic
I am trying to assign static addresses to IPv6 clients on the LAN.  I have a IPv6 prefix from HE so I have a static IPv6 address for the LAN interface.

I am looking at the log file on the opnsense router and it looks like its sending the correct address, but a packet capture shows other wise:

The expected address is 2001:X:X:X:1::26
The client is requesting an old address 2001:X:X:X:1::1:8eee

The log shows the expected address ....1::26 but the packet capture shows ...1:8eee

dhcpd.log:
Dec 11 21:51:55 router1 dhcpd: Solicit message from fe80::185e:c4ff:fe6e:b1c7 port 546, transaction ID 0x8D38100
Dec 11 21:51:55 router1 dhcpd: Advertise NA: address 2001:X:X:X:1::26 to client with duid 00:01:00:01:25:81:b0:a9:1a:5e:c4:6e:b1:c7 iaid = -999378489 static
Dec 11 21:51:55 router1 dhcpd: Sending Advertise to fe80::185e:c4ff:fe6e:b1c7 port 546
Dec 11 21:51:56 router1 dhcpd: Request message from fe80::185e:c4ff:fe6e:b1c7 port 546, transaction ID 0xA66A4200
Dec 11 21:51:56 router1 dhcpd: Reply NA: address 2001:X:X:X:1::26 to client with duid 00:01:00:01:25:81:b0:a9:1a:5e:c4:6e:b1:c7 iaid = -999378489 static
Dec 11 21:51:56 router1 dhcpd: Sending Reply to fe80::185e:c4ff:fe6e:b1c7 port 546

In the Advertise and the Reply DHCPv6 responses the address is ..:1:8eee not the expected ...:26
DHCPv6
    Message type: Advertise (2)
    Transaction ID: 0x81d308
     Identity Association for Non-temporary Address
           IPv6 address: 2001:X:X:X:1:0:1:8eee


(see attached for reset of the packet capture info)

Just  tested here and it seems to work fine. What are your RA settings, managed or assisted?
OPNsense 25.7a - Qotom Q355G4 - ISP - Squirrel 1Gbps.

Team Rebellion Member

I'm using RA - managed.

It seams like the client has an old lease, that it tries to renew the server puts in the log:
Dec 12 19:48:30 router1 dhcpd: Client 00:01:00:01:25:81:b0:a9:1a:5e:c4:6e:b1:c7 releases address 2001:X:X:X:1:0:1:8eee, which is not leased to it.

the log file shows the correct address, but the packet capture shows the old IP.


Very odd. I have just tried three times, incrementing the ipv6 address in the static lease by one each time and then doing a ipconfig /renew6 ( windows ) and every time I got the new address. Looking at wireshark ( running in the PC ) it all looks fine and dandy. The advertised IA address is correct.


Could you try changing RA to assisted and see if that makes a difference, it shouldn't I know, but I cannot replicate the issue here.


Is the wireshark capture from your PC or from Opnsense?



OPNsense 25.7a - Qotom Q355G4 - ISP - Squirrel 1Gbps.

Team Rebellion Member

This seams to be and issue with isc-dhcp (or the nut between the keyboard and chair).  I disabled the dhcp6 server on the firewall and setup a separate server on a linux box with the config file from opnsense rouer and I see the same behavior.  I'm using an other linux box as the client (isc-dhcp 4.3.5).

When I get a lease without a 'reservation' on the server (ie from a pool) I get the ..:1:8eee address (ie from the pool). 

I setup the reservation and release/renew the ip and I see this behavior (stuck with the lease from the pool). 

If I remove the lease file on the client and renew the lease I get the reservation ..:0:26. 

If I change the reservation (to ..:0:27 and renew the lease on the client I get the new reservation ..:0:27 and the old reservation ..:0:26 (until the old lease expires (I think)).

Sometimes I get both the reservation and the one from the pool as active leases (..:0:26 and ..:1:8eee).

I think I have a solution (wipe existing lease file when setting up a reservation).  I ran the ISC-DHCP6 server through GDB and there are many things I don't follow and some things look suspect to me, but I need the read the RFC to really know what its suppose to do.  It looks like ISC is now pushing Kea DHCP as the new thing, I will give that a try and see if it shows the same behavior.

I tried this with ISC-KEA and it works...  switching from a pool lease to a reservation lease worked as expected.  The client keeps both the old pool lease and the new reservation lease.  It keeps the pool lease until it expires then release the pool lease and maintains the reservation lease.