IPv6 dhcp not starting



  • I upgraded today because of FreeBSD-SA-13:10.sctp and FreeBSD-SA-13:09.ip_multicast, after the upgrade I noticed my IPv6 on the WAN interface was missing. However after looking into it closer, I noticed that the IPv6 was assigned on the interface (pppoe0), however it wasn't showing in the webinterface. That and the dhcp client doesn't start, .. there is no port 546, .. which is required for making the prefix routable with openbgpd.

    I noticed following errors on boot.

    
    Starting DHCPv6 relay service...
    Warning: array_unique() expects parameter 1 to be array, null given in /etc/inc/services.inc on lin0
    Configuring firewall.....0 table deleted.
    .done.
    
    

    However when I looked through the file services.inc, I couldn't see any real problems that could cause it.

    Regards, ..



  • I can confirm that the dhcpv6 client is not automatically started when a pppoe interface is used.
    When the physical interface (ie em0) is used then the dhcpv6 client is started and the interface is assigned an IP address.

    When using pppoe I have to start the client manually. (showing some debug info also)

    /usr/local/sbin/dhcp6c -f -d -D -c /var/etc/dhcp6c_wan.conf -p /var/run/dhcp6c_pppoe0.pid pppoe0



  • thank you, aside from the fact that it crashed at least it was able to update the routing protocol what made my ipv6 block usable to me

    ps I think that there's something wrong with interfaces.inc not sure where cause the ip doesn't get updated to the webinterface, and from what i gather that's something that happens in interfaces. Maybe add some more comments to the code.



  • It looks to me like the setup of the ipv6 WAN interface is broken.
    Instead of configuring pppoe0 in the appropriate files the underlying physical interface is used (vr2 in my case)

    After manually changing vr2 to pppoe0 in /var/etc/dhcp6c_wan.conf and /var/etc/dhcp6c_wan_script.sh ipv6 and starting dhcp6c like above ipv6 addresses are assigned and used by clients.
    Then the default has to be changed since that also is set to vr2 instead of pppoe0



  • In the latest snapshots you have an option to use the IPv4 interface as parent for IPv6.
    You have to use the checkbox labled "Request a IPv6 prefix/information through the IPv4 connectivity link" for this.

    Then the IPv6 information is requested through the PPPoE session.
    If you ISP only provide you with a prefix and not with an interface address you have to check the box labeled "Only request a IPv6 prefix, do not request a IPv6 address" also.

    This works perfectly. the configuration files are ok.
    Unfortunately the DHCPv6 client daemon is not started when you request the v6 info through the PPPoE session.



  • @avink:

    In the latest snapshots you have an option to use the IPv4 interface as parent for IPv6.
    You have to use the checkbox labled "Request a IPv6 prefix/information through the IPv4 connectivity link" for this.

    Then the IPv6 information is requested through the PPPoE session.
    If you ISP only provide you with a prefix and not with an interface address you have to check the box labeled "Only request a IPv6 prefix, do not request a IPv6 address" also.

    You are right, when I tick this box the correct interface is used.

    Must say though that the wording for the checkbox is bad since there is no IPv4 involved anywhere.
    It's IPV6CP on the PPP connection.

    @avink:

    This works perfectly. the configuration files are ok.
    Unfortunately the DHCPv6 client daemon is not started when you request the v6 info through the PPPoE session.

    I can confirm this issue. I also needed to manually start dhcp6c.



  • @avink:

    In the latest snapshots you have an option to use the IPv4 interface as parent for IPv6.
    You have to use the checkbox labled "Request a IPv6 prefix/information through the IPv4 connectivity link" for this.

    Then the IPv6 information is requested through the PPPoE session.
    If you ISP only provide you with a prefix and not with an interface address you have to check the box labeled "Only request a IPv6 prefix, do not request a IPv6 address" also.

    This works perfectly. the configuration files are ok.
    Unfortunately the DHCPv6 client daemon is not started when you request the v6 info through the PPPoE session.

    That box has been checked for me all the time and no it doesn't make it work ! There's something wrong, it used to work now it doesn't, right after an upgrade, …



  • @Ofloo:

    @avink:

    In the latest snapshots you have an option to use the IPv4 interface as parent for IPv6.
    You have to use the checkbox labled "Request a IPv6 prefix/information through the IPv4 connectivity link" for this.

    Then the IPv6 information is requested through the PPPoE session.
    If you ISP only provide you with a prefix and not with an interface address you have to check the box labeled "Only request a IPv6 prefix, do not request a IPv6 address" also.

    This works perfectly. the configuration files are ok.
    Unfortunately the DHCPv6 client daemon is not started when you request the v6 info through the PPPoE session.

    That box has been checked for me all the time and no it doesn't make it work ! There's something wrong, it used to work now it doesn't, right after an upgrade, …

    They will need more information like in which snapshot it worked?
    I am also seeing the same thing here on my vdsl2 (pppoe) connection.

    
    Sep 3 11:46:00	php: servicewatchdog_cron.php: Service Watchdog detected service radvd stopped. Restarting radvd (Router Advertisement Daemon)
    Sep 3 11:45:00	php: servicewatchdog_cron.php: Service Watchdog detected service radvd stopped. Restarting radvd (Router Advertisement Daemon)
    Sep 3 11:44:00	php: servicewatchdog_cron.php: Service Watchdog detected service radvd stopped. Restarting radvd (Router Advertisement Daemon)
    Sep 3 11:43:00	php: servicewatchdog_cron.php: Service Watchdog detected service radvd stopped. Restarting radvd (Router Advertisement Daemon)
    Sep 3 11:42:00	php: servicewatchdog_cron.php: Service Watchdog detected service radvd stopped. Restarting radvd (Router Advertisement Daemon)
    
    

    Watchdog keep trying to start up radvd every mins but fails, please let me know if I could be more of help, things like other system log and so on.
    Unfortunately I can't really say which snapshot worked as I only just started using ipv6 in latest snapshots. And the only time ipv6 worked for me was months back before RC.

    meanualy start with this command worked.

    /usr/local/sbin/dhcp6c -f -d -D -c /var/etc/dhcp6c_wan.conf -p /var/run/dhcp6c_pppoe0.pid pppoe0
    


  • Currently I'm running the snapshot from July 25.

    Last saturday I tested the snapshot from August 31 because I saw a lot of link flaps on the system (still think this is a driver issue, but that's another thread), and it had the same issue.
    I have to start the daemon by hand.



  • I think that the only issue you are seeing here is that dhcp6c is started before pppoe has been connected and fails.
    Can you confirm this is the case ?



  • @ermal:

    I think that the only issue you are seeing here is that dhcp6c is started before pppoe has been connected and fails.
    Can you confirm this is the case ?

    My log was pulled after pppoe has connected for about 12hours, in that 12hours watchdog just showing the same thing every mins.
    Unless I start it manually.



  • @ermal:

    I think that the only issue you are seeing here is that dhcp6c is started before pppoe has been connected and fails.
    Can you confirm this is the case ?

    Upgraded to Sep  3 02:29:12 EDT image and can confirm dhcp6c is still not started on boot.
    Don't know if it is dhcp6c is started to early. You can check from attached (anonymized) system.log pulled after boot and after manually starting dhcp6c

    Then upgraded to Sep  3 14:08:44 EDT image and can confirm dhcp6c IS not started on boot.
    (anonymized) system.log attached too.

    system-anon_Sep-3-14:08:44.txt
    system-anon_Sep-3-02:29:12.txt



  • You seem to be low on resources since php processes are getting killed all over.
    Also can you share your configuration seems you have some strange thing in there!

    EDIT: Can you try with todays snapshot since there were some changes done for low resource systems.



  • @ermal:

    You seem to be low on resources since php processes are getting killed all over.
    Also can you share your configuration seems you have some strange thing in there!

    Am running pfSense on an Alix 2D13 which has 256 MB RAM. EDIT: nanoBSD version of pfSense.
    PM sent for config.

    @ermal:

    EDIT: Can you try with todays snapshot since there were some changes done for low resource systems.

    Will try later today.



  • Try this commit https://github.com/pfsense/pfsense/commit/d6df2c4c71678b5edd98892ca40facbb80f4ed1c manually or use a tomorrow snapshot and see if this behaves better.



  • Just upgraded to the "Sep 4 01:46:07" snapshot. This snapshot and the Sept 3 14:08:44 snapshot both DID start dhcp6c correctly

    On memory usage: both Sep 3 snapshots had 8 lines with the word "kill" in them. The Sep 4 snapshot has only 3.



  • @ermal:

    Try this commit https://github.com/pfsense/pfsense/commit/d6df2c4c71678b5edd98892ca40facbb80f4ed1c manually or use a tomorrow snapshot and see if this behaves better.

    Tried it. What should it improve? I still have 3 lines with "kill" in sysem.log and dhcp6 is started too.



  • ok now dhcp6c doesn't crash, .. however the ipv6 routes are not working

    /usr/local/sbin/dhcp6c -f -d -D -c /var/etc/dhcp6c_wan.conf -p /var/run/dhcp6c_pppoe0.pid pppoe0
    

    makes them work though, ..

    if i do sockstat -46lp546, it shows a lot of dhcp6c clients on that port and also a php and sh script. however they keep cycling, as if they crash constantly