[solved] IPv6 address lost (not renewed) on cable modem reset
-
For some reason, Comcast has this idea to reboot my cable modem nightly. I wouldn't mind so much, but a side effect is that pfSense loses my IPv6 address. From what I can see in the logs, dhcp6c tries to renew, gets no response, and so just dies without being a bit more persistent.
Once I notice that the problem has occurred, "fixing" it is as easy as popping into pfsense, going to the WAN interface, and clicking "SAVE" (which restarts dhcp6c.)
Is this a known issue?
Is there an automated way to get this to self-correct?
Thank you
Gary(below is a log dump of the process showing that it releases the assigned ipv6 addresses when it loses WAN, and then gives up trying to renew them.)
Aug 15 18:21:00 dhcp6c 30186 release an IA: NA-0 Aug 15 18:21:00 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=0, retrans=905 Aug 15 18:21:00 dhcp6c 30186 a new XID (df32ce) is generated Aug 15 18:21:00 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:00 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:00 dhcp6c 30186 set IA address Aug 15 18:21:00 dhcp6c 30186 set identity association Aug 15 18:21:00 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:00 dhcp6c 30186 transmit failed: No buffer space available Aug 15 18:21:00 dhcp6c 30186 remove an IA: NA-0 Aug 15 18:21:00 dhcp6c 30186 remove an address 2001:558:6035:13:aaaa:aaaa:aaaa:aaaa Aug 15 18:21:00 dhcp6c 30186 remove an address 2001:558:6035:13:aaaa:aaaa:aaaa:aaaa/128 on igb0 Aug 15 18:21:00 dhcp6c 30186 reset a timer on igb0, state=INIT, timeo=0, retrans=763 Aug 15 18:21:00 dhcp6c 30186 release an IA: PD-0 Aug 15 18:21:00 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=0, retrans=1092 Aug 15 18:21:00 dhcp6c 30186 a new XID (c92302) is generated Aug 15 18:21:00 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:00 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:00 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:00 dhcp6c 30186 set IA_PD prefix Aug 15 18:21:00 dhcp6c 30186 set IA_PD Aug 15 18:21:00 dhcp6c 30186 transmit failed: No buffer space available Aug 15 18:21:00 dhcp6c 30186 remove an IA: PD-0 Aug 15 18:21:00 dhcp6c 30186 remove a site prefix bbbb:bbb:bbbb:bbb0::/60 Aug 15 18:21:00 dhcp6c 30186 remove an address bbbb:bbb:bbbb:bbb1:bbb:bbbb:bbbb:bbbb/64 on lagg0_vlan1 Aug 15 18:21:00 dhcp6c 30186 remove an address bbbb:bbb:bbbb:bbb6:bbb:bbbb:bbbb:bbbb/64 on lagg0_vlan6 Aug 15 18:21:00 dhcp6c 30186 remove an address bbbb:bbb:bbbb:bbb7:bbb:bbbb:bbbb:bbbb/64 on lagg0_vlan7 Aug 15 18:21:00 dhcp6c 30186 remove an address bbbb:bbb:bbbb:bbb3:bbb:bbbb:bbbb:bbbb/64 on lagg0_vlan31 Aug 15 18:21:00 dhcp6c 30186 reset a timer on igb0, state=INIT, timeo=0, retrans=540 Aug 15 18:21:00 dhcp6c 30186 removing an event on igb0, state=INIT Aug 15 18:21:00 dhcp6c 30186 removing an event on igb0, state=INIT Aug 15 18:21:01 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:01 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:01 dhcp6c 30186 set IA address Aug 15 18:21:01 dhcp6c 30186 set identity association Aug 15 18:21:01 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:01 dhcp6c 30186 transmit failed: No buffer space available Aug 15 18:21:01 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=1, retrans=1848 Aug 15 18:21:01 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:01 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:01 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:01 dhcp6c 30186 set IA_PD prefix Aug 15 18:21:01 dhcp6c 30186 set IA_PD Aug 15 18:21:01 dhcp6c 30186 transmit failed: No buffer space available Aug 15 18:21:01 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=1, retrans=2202 Aug 15 18:21:03 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:03 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:03 dhcp6c 30186 set IA address Aug 15 18:21:03 dhcp6c 30186 set identity association Aug 15 18:21:03 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:03 dhcp6c 30186 transmit failed: No buffer space available Aug 15 18:21:03 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=2, retrans=3832 Aug 15 18:21:04 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:04 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:04 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:04 dhcp6c 30186 set IA_PD prefix Aug 15 18:21:04 dhcp6c 30186 set IA_PD Aug 15 18:21:04 dhcp6c 30186 transmit failed: No buffer space available Aug 15 18:21:04 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=2, retrans=4450 Aug 15 18:21:07 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:07 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:07 dhcp6c 30186 set IA address Aug 15 18:21:07 dhcp6c 30186 set identity association Aug 15 18:21:07 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:07 dhcp6c 30186 send release to ff02::1:2%igb0 Aug 15 18:21:07 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=3, retrans=7805 Aug 15 18:21:08 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:08 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:08 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:08 dhcp6c 30186 set IA_PD prefix Aug 15 18:21:08 dhcp6c 30186 set IA_PD Aug 15 18:21:08 dhcp6c 30186 send release to ff02::1:2%igb0 Aug 15 18:21:08 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=3, retrans=8707 Aug 15 18:21:15 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:15 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:15 dhcp6c 30186 set IA address Aug 15 18:21:15 dhcp6c 30186 set identity association Aug 15 18:21:15 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:15 dhcp6c 30186 send release to ff02::1:2%igb0 Aug 15 18:21:15 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=4, retrans=15164 Aug 15 18:21:17 dhcp6c 30186 set client ID (len 14) Aug 15 18:21:17 dhcp6c 30186 set server ID (len 14) Aug 15 18:21:17 dhcp6c 30186 set elapsed time (len 2) Aug 15 18:21:17 dhcp6c 30186 set IA_PD prefix Aug 15 18:21:17 dhcp6c 30186 set IA_PD Aug 15 18:21:17 dhcp6c 30186 send release to ff02::1:2%igb0 Aug 15 18:21:17 dhcp6c 30186 reset a timer on igb0, state=RELEASE, timeo=4, retrans=18094 Aug 15 18:21:30 dhcp6c 30186 no responses were received Aug 15 18:21:30 dhcp6c 30186 removing an event on igb0, state=RELEASE Aug 15 18:21:35 dhcp6c 30186 no responses were received Aug 15 18:21:35 dhcp6c 30186 removing an event on igb0, state=RELEASE Aug 15 18:21:35 dhcp6c 30186 exiting
A search for "dhcpc6" in this forum reveals that this problem has existed for at least 3 years: https://forum.pfsense.org/index.php?topic=67571
-
…and more digging hints at the answer:
DHCP (v4) gets a DHCP answer from the cable modem with a bogus IP addr, and so DHCPv6 figures that if v4 is working, but v6 isn't getting an answer, that DHCPv6 must not be supported.
-
…and based on the cause listed in the previous message, the solution is to go into Interfaces->WAN, scroll down to "DHCP Client Configuration" and add your cable modem's IP address to the "Reject leases from" field.
The IP address of the cable modem depends on the specific hardware. For nearly all Motorola/Arris modems, it'll be "192.168.100.1".
You can figure it out if you examine the "dhcp" logs in pfsense after a reboot of the modem. It'll be the IP address listed as the DHCP server assigning pfSense an IPv4 before the modem is completely rebooted.