IPv6 Prefix Delegation broken?
-
Are you on a nanobsd system?
There isn't any call to conf_mount_rw then conf_mount_ro in services_dhcpdv6_configure(). If this routine is called from something that does not already have the file system mounted RW, then trying to write the dhcpdv6.conf will fail. The easy fix would be to put these rw/ro calls either side of the block of code doing the file_put_contents. But ermal might see a better/more appropriate place to do it - I'll leave it to him as I don't have a test system accessible now to play on. -
Pushed another fix its both services.inc and interfaces.inc
Test it out and let me know. -
Sorry, no changes. Same behaviour as described in http://forum.pfsense.org/index.php/topic,58664.msg314878.html#msg314878
-
Can you show me the contents of /tmp/dhcpd.sh?
-
Sure:
cat /tmp/dhcpd.sh mkdir -p /var/dhcpd mkdir -p /var/dhcpd/dev mkdir -p /var/dhcpd/etc mkdir -p /var/dhcpd/usr/local/sbin mkdir -p /var/dhcpd/var/db mkdir -p /var/dhcpd/var/run mkdir -p /var/dhcpd/usr mkdir -p /var/dhcpd/lib mkdir -p /var/dhcpd/run chown -R dhcpd:_dhcp /var/dhcpd/* cp /lib/libc.so.* /var/dhcpd/lib/ cp /usr/local/sbin/dhcpd /var/dhcpd/usr/local/sbin/ chmod a+rx /var/dhcpd/usr/local/sbin/dhcpd
-
Do you have those directories created?
If you run the script from ssh do you get any errors? -
Hmmm - I thought this would be easy to reproduce on nanobsd. But my system comes up OK. On the console at boot:
Starting DHCP service...done. Starting DHCPv6 service...done.
And the dhcp conf files are there:
-rw-r--r-- 1 root _dhcp 731 Feb 10 18:55 dhcpd.conf -rw-r--r-- 1 root _dhcp 482 Feb 10 18:55 dhcpdv6.conf
The system boots cleanly, with the filesystem read-only at the end.
On my system, the dhcpdv6.conf must be written at a time when the filesystem is read-write. I don't actually have any DHCPv6 available from my ISP, so I am not getting an IPv6 stuff handed down from upstream to my WAN. Perhaps the asynchronous receipt of IPv6 settings from upstream will trigger a call to services_dhcpdv6_configure() when the filesystem is read-only?
Interesting to see what is different about the startup sequence for arthurdent. -
After a reboot it looks OK. Everything the script does is done and it does not give any errors running is manually. However If found the following in my system log. There seems to be an error at some point while booting up (like I said before, "lan" is the external interface in my test setup, so "interface: lan" is correct here):
Feb 10 14:45:19 pfsense-alix php: : rc.newwanipv6: Informational is starting vr0. Feb 10 14:45:24 pfsense-alix php: : rc.newwanipv6: on (IP address: 2001:xxx:xxx:dead:20d:b9ff:fe12:7864) (interface: lan) (real interface: vr0). Feb 10 14:45:25 pfsense-alix php: : The command '/bin/sh /tmp/dhcpd.sh' returned exit code '127', the output was 'chown: not found mount: not found' Feb 10 14:45:28 pfsense-alix dhcpleases: kqueue error: unkown Feb 10 14:45:28 pfsense-alix dhcpleases: Could not deliver signal HUP to process because its pidfile does not exist, No such file or directory.
Ermal, would you like me to PM you the whole log?
-
I pushed another fix but yeah system log would be useful.
-
I send the necessary information via PM, hope it arrived.