IPv6 - LAN looses Prefix after link event



  • 2.1.1-PRERELEASE (amd64) (built Mar 6)
    –--

    Problem:  When the LAN interface experiences a link down/up event.  The IPv6 prefix assigned to the interface is lost.  Only recovery is a system reboot (that I have found).

    Details:

    WAN: DHCPv6 Prefix Delegation size = /60
    LAN (re0): IPv6 Prefix ID = 0

    You can see the problem occurring in the routing.log below.

    Note: The /60 does work.  I have other OPT interfaces that get their prefix.  Unique Prefix ID on each.

    Steps to reproduce:

    1. Just bounce the LAN interface.

    Bug Filed:  3514

    system.log
    *** THE LINK BOUNCE EVENT ***
    Mar  8 08:06:30 pfsense check_reload_status: Linkup starting re0
    Mar  8 08:06:30 pfsense kernel: re0: link state changed to UP
    Mar  8 08:06:33 pfsense php: rc.linkup: DEVD Ethernet attached event for lan
    Mar  8 08:06:33 pfsense php: rc.linkup: HOTPLUG: Configuring interface lan
    Mar  8 08:06:39 pfsense check_reload_status: updating dyndns lan
    Mar  8 08:06:42 pfsense php: rc.dyndns.update: The command '/sbin/route change -inet6 default fe80::201:5cff:fe24:9301' returned exit code '1', the output was 'route: writing to routing socket: Network is unreachable route: writing to routing socket: Network is unreachable change net default: gateway fe80::201:5cff:fe24:9301: Network is unreachable' 
    Mar  8 08:06:44 pfsense check_reload_status: Linkup starting re0
    Mar  8 08:06:44 pfsense kernel: re0: link state changed to DOWN
    Mar  8 08:06:47 pfsense php: rc.linkup: DEVD Ethernet detached event for lan
    Mar  8 08:07:10 pfsense check_reload_status: Linkup starting re0
    Mar  8 08:07:10 pfsense kernel: re0: link state changed to UP
    Mar  8 08:07:13 pfsense php: rc.linkup: DEVD Ethernet attached event for lan
    Mar  8 08:07:13 pfsense php: rc.linkup: HOTPLUG: Configuring interface lan
    Mar  8 08:07:19 pfsense check_reload_status: updating dyndns lan
    Mar  8 08:07:22 pfsense php: rc.dyndns.update: The command '/sbin/route change -inet6 default fe80::201:5cff:fe24:9301' returned exit code '1', the output was 'route: writing to routing socket: Network is unreachable route: writing to routing socket: Network is unreachable change net default: gateway fe80::201:5cff:fe24:9301: Network is unreachable'
    
    routing.log
    *** IPv6 PREFIX IS LOST ***
    Mar  8 08:06:34 pfsense radvd[44420]: attempting to reread config file
    Mar  8 08:06:34 pfsense radvd[44420]: no auto-selected prefix on interface re0, disabling advertisements
    Mar  8 08:06:34 pfsense radvd[44420]: resuming normal operation
    Mar  8 08:06:39 pfsense radvd[44420]: attempting to reread config file
    Mar  8 08:06:39 pfsense radvd[44420]: no auto-selected prefix on interface re0, disabling advertisements
    Mar  8 08:06:39 pfsense radvd[44420]: resuming normal operation
    Mar  8 08:07:14 pfsense radvd[44420]: attempting to reread config file
    Mar  8 08:07:14 pfsense radvd[44420]: no auto-selected prefix on interface re0, disabling advertisements
    Mar  8 08:07:14 pfsense radvd[44420]: resuming normal operation
    Mar  8 08:07:19 pfsense radvd[44420]: attempting to reread config file
    Mar  8 08:07:19 pfsense radvd[44420]: no auto-selected prefix on interface re0, disabling advertisements
    Mar  8 08:07:19 pfsense radvd[44420]: resuming normal operation
    
    resolver.log
    *** JUST INFORMATIONAL ***
    Mar  8 08:06:36 pfsense dnsmasq[37539]: exiting on receipt of SIGTERM
    Mar  8 08:06:37 pfsense dnsmasq[90864]: started, version 2.68 cachesize 10000
    Mar  8 08:06:37 pfsense dnsmasq[90864]: compile time options: IPv6 GNU-getopt no-DBus i18n IDN DHCP DHCPv6 no-Lua TFTP no-conntrack no-ipset auth
    Mar  8 08:06:37 pfsense dnsmasq[90864]: reading /etc/resolv.conf
    Mar  8 08:06:37 pfsense dnsmasq[90864]: using nameserver 208.67.220.220#53
    Mar  8 08:06:37 pfsense dnsmasq[90864]: using nameserver 208.67.222.222#53
    Mar  8 08:06:37 pfsense dnsmasq[90864]: ignoring nameserver 127.0.0.1 - local interface
    Mar  8 08:06:37 pfsense dnsmasq[90864]: read /etc/hosts - 28 addresses
    Mar  8 08:07:16 pfsense dnsmasq[90864]: exiting on receipt of SIGTERM
    Mar  8 08:07:17 pfsense dnsmasq[18998]: started, version 2.68 cachesize 10000
    Mar  8 08:07:17 pfsense dnsmasq[18998]: compile time options: IPv6 GNU-getopt no-DBus i18n IDN DHCP DHCPv6 no-Lua TFTP no-conntrack no-ipset auth
    Mar  8 08:07:17 pfsense dnsmasq[18998]: reading /etc/resolv.conf
    Mar  8 08:07:17 pfsense dnsmasq[18998]: using nameserver 208.67.220.220#53
    Mar  8 08:07:17 pfsense dnsmasq[18998]: using nameserver 208.67.222.222#53
    Mar  8 08:07:17 pfsense dnsmasq[18998]: ignoring nameserver 127.0.0.1 - local interface
    Mar  8 08:07:17 pfsense dnsmasq[18998]: read /etc/hosts - 28 addresses
    


  • Should be fixed on latest snapshots.



  • A different way to handle this has been committed.
    Can you try with newer snapshots.



  • ** resolved **

    The "just send a HUP to dhcp6 to get it to reload"  change you checked in today is a good fix.



  • When I set a LAN interface to track a DHCP6 WAN interface, a DHCPD is started with:

    /usr/local/sbin/dhcpd -6 -user dhcpd -group _dhcp -chroot /var/dhcpd -cf /etc/dhcpdv6.conf -pf /var/run/dhcpdv6.pid em2
    

    but there is no:

    cat /etc/dhcpdv6.conf
    cat: /etc/dhcpdv6.conf: No such file or directory
    

    shouldn't it be started with:

    -cf /var/dhcpd/etc/dhcpdv6.conf
    

    that file has all the necessary info.
    I'm on

    2.1.1-PRERELEASE (amd64) 
    built on Wed Mar 12 06:06:51 EDT 2014 
    FreeBSD 8.3-RELEASE-p14
    

    Edit:
    forget it, I guess

    -chroot /var/dhcpd
    

    takes care of that and you have to use /etc/dhcpdv6.conf then.


Log in to reply