[pkg-dhcp-devel] Bug#592539: Improved patch
Steven Ihde
steve at x2.hamachi.us
Sat Mar 21 23:47:47 UTC 2015
Thanks for taking a look, C.J. I incorporated your fix for the typo
you mentioned in your postscript. I also rebased the patch against the
latest source; see the bug report for details.
I will also take a look at improving the handling of the dhcpd6.leases
file, as it appears to deviate from the handling of the v4
dhcpd.leases file. Thanks for your suggestions.
-Steve
On Jan 21, 2015, at 3:13 PM, C.J. Adams-Collier <cjac at colliertech.org> wrote:
> Hello Steven, ALCON,
>
> I've applied your patch to the 4.2.4 .deb source from Ubuntu Trusty and
> removed the apparmor and apport references:
>
> http://archive.ubuntu.com/ubuntu/pool/main/i/isc-dhcp/isc-dhcp_4.2.4-7ubuntu12.dsc
>
> I doubt that you used this source for the base of your patch, but it
> applied with only one rejection, so it was close enough for me. There
> were compile-time problems on my Wheezy build machine relating to
> apport / apparmor, but these were easy enough to deal with using
>
> $ grep -rsil -e apport -e apparmor isc-dhcp-4.2.4 | grep -v changelog
>
> Still, it would be nice to have the source you built from so that I
> could skip this stage. It would be nicer still if the patch applied to
> 4.2.2 (Wheezy) or 4.3.1 (Jessie).
>
> Once installed, I verified that stopping and starting the daemon did not
> cause an outage with the v4 server. It did not; I was able to request
> v4 leases on all interfaces as expected. I then modified
> the /etc/default/isc-dhcp-server config file to set the following
> variables:
>
> V6_ENABLED="true"
> INTERFACES_V6="vl78 eth4.100 eth4.101 eth3"
>
> A re-start of the daemon succeeded for v4, but failed for v6 due to a
> missing dhcpd6.leases file:
>
> Jan 21 09:17:35 sip1 dhcpd: Can't open lease database /var/lib/dhcp/dhcpd6.leases: No such file or directory --
> Jan 21 09:17:35 sip1 dhcpd: check for failed database rewrite attempt!
> Jan 21 09:17:35 sip1 dhcpd: Please read the dhcpd.leases manual page if you
> Jan 21 09:17:35 sip1 dhcpd: don't know what to do about this.
>
> It might be nice if the daemon grepped the log for this message and gave
> a more specific error message. I created the leases file with:
>
> $ sudo touch /var/lib/dhcp/dhcpd6.leases
>
> Re-starting succeeded for v4 and failed again for v6 because I had not
> written any subnet6 declarations and the daemon had no interfaces on
> which to listen. It might be nice if the daemon grepped the log for
> this message and gave a more specific error message:
>
> Jan 21 09:39:53 sip1 dhcpd: No subnet6 declaration for eth3 (fe80::290:bff:fe0a:6c2).
> ...
> Jan 21 09:39:53 sip1 dhcpd: No subnet6 declaration for eth4.101 (fe80::290:bff:fe0a:e08b).
> ...
> Jan 21 09:39:53 sip1 dhcpd: No subnet6 declaration for eth4.100 (fe80::290:bff:fe0a:e08b).
> ...
> Jan 21 09:39:53 sip1 dhcpd: No subnet6 declaration for vl78 (2607:ff08:f5:1337::1).
> Jan 21 09:39:53 sip1 dhcpd: ** Ignoring requests on vl78. If this is not what
> Jan 21 09:39:53 sip1 dhcpd: you want, please write a subnet6 declaration
> Jan 21 09:39:53 sip1 dhcpd: in your dhcpd.conf file for the network segment
> Jan 21 09:39:53 sip1 dhcpd: to which interface vl78 is attached. **
> Jan 21 09:39:53 sip1 dhcpd:
> Jan 21 09:39:53 sip1 dhcpd:
> Jan 21 09:39:53 sip1 dhcpd: Not configured to listen on any interfaces!
>
> I added a subnet6 declaration for the vl78 interface
> to /etc/dhcp/dhcpd6.conf and re-started the service successfully:
>
> # vl78
> subnet6 2607:ff08:f5:1337::0/64 {
> # ::ac10:4e66 -::ac10:4e6d = ::172.16.78.102 - ::172.16.78.109 ; matches v4 subnet range
> range6 2607:ff08:f5:1337::ac10:4e66 2607:ff08:f5:1337::ac10:4e6d;
>
> option dhcp6.name-servers 2607:ff08:f5:1337::64,2607:ff08:f5:1337::19,2607:ff08:f5:3a::2;
> option dhcp6.domain-search "esd.colliertech.org","colliertech.org";
>
> # laptop / virtual machine
> host ubuntu0 {
> host-identifier option dhcp6.client-id 00:01:00:01:1c:52:b8:47:08:00:27:04:be:09;
> fixed-address6 2607:ff08:f5:1337::5d;
> }
> }
>
> At this point, I was able to solicit the server for an address from my
> laptop VM client, ubuntu0. Logs from server:
>
> Jan 21 15:02:44 sip1 dhcpd: Solicit message from fe80::a00:27ff:fe04:be09 port 546, transaction ID 0xC6EFEB00
> Jan 21 15:02:44 sip1 dhcpd: Sending Advertise to fe80::a00:27ff:fe04:be09 port 546
> Jan 21 15:02:45 sip1 dhcpd: Request message from fe80::a00:27ff:fe04:be09 port 546, transaction ID 0xD04C9800
> Jan 21 15:02:45 sip1 dhcpd: Sending Reply to fe80::a00:27ff:fe04:be09 port 546
>
> Logs from client:
>
> cjac at ubuntu0:~$ sudo dhclient -v -6 eth0
> Internet Systems Consortium DHCP Client 4.2.4
> Copyright 2004-2012 Internet Systems Consortium.
> All rights reserved.
> For info, please visit https://www.isc.org/software/dhcp/
>
> Bound to *:546
> Listening on Socket/eth0
> Sending on Socket/eth0
> PRC: Soliciting for leases (INIT).
> XMT: Forming Solicit, 0 ms elapsed.
> XMT: X-- IA_NA 27:04:be:09
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: Solicit on eth0, interval 1010ms.
> RCV: Advertise message on eth0 from fe80::5c89:b9ff:fee0:68e2.
> RCV: X-- IA_NA 27:04:be:09
> RCV: | X-- starts 1421881365
> RCV: | X-- t1 - renew +3600
> RCV: | X-- t2 - rebind +7200
> RCV: | X-- [Options]
> RCV: | | X-- IAADDR 2607:ff08:f5:1337::5d
> RCV: | | | X-- Preferred lifetime 604800.
> RCV: | | | X-- Max lifetime 2592000.
> RCV: X-- Server ID: 00:01:00:01:1c:52:ae:e0:00:90:0b:0a:06:c4
> RCV: Advertisement recorded.
> PRC: Selecting best advertised lease.
> PRC: Considering best lease.
> PRC: X-- Initial candidate 00:01:00:01:1c:52:ae:e0:00:90:0b:0a:06:c4 (s: 155, p: 0).
> XMT: Forming Request, 0 ms elapsed.
> XMT: X-- IA_NA 27:04:be:09
> XMT: | X-- Requested renew +3600
> XMT: | X-- Requested rebind +5400
> XMT: | | X-- IAADDR 2607:ff08:f5:1337::5d
> XMT: | | | X-- Preferred lifetime +7200
> XMT: | | | X-- Max lifetime +7500
> XMT: V IA_NA appended.
> XMT: Request on eth0, interval 910ms.
> RCV: Reply message on eth0 from fe80::5c89:b9ff:fee0:68e2.
> RCV: X-- IA_NA 27:04:be:09
> RCV: | X-- starts 1421881366
> RCV: | X-- t1 - renew +3600
> RCV: | X-- t2 - rebind +7200
> RCV: | X-- [Options]
> RCV: | | X-- IAADDR 2607:ff08:f5:1337::5d
> RCV: | | | X-- Preferred lifetime 604800.
> RCV: | | | X-- Max lifetime 2592000.
> RCV: X-- Server ID: 00:01:00:01:1c:52:ae:e0:00:90:0b:0a:06:c4
> PRC: Bound to lease 00:01:00:01:1c:52:ae:e0:00:90:0b:0a:06:c4.
> cjac at ubuntu0:~$ ip -6 addr show dev eth0
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
> inet6 2607:ff08:f5:1337::5d/64 scope global
> valid_lft forever preferred_lft forever
> inet6 fe80::a00:27ff:fe04:be09/64 scope link
> valid_lft forever preferred_lft forever
>
>
> Thanks for the hard work on this! I'll post an update if I have any
> problems with either the v4 or v6 server
>
> Cheers,
>
> C.J.
>
>
> PS:
>
> There is a typo in the init script under the "status" case:
> check_status -v "$DHCPD6_PID" "NAME6"
> should be
> check_status -v "$DHCPD6_PID" "$NAME6"
>
More information about the pkg-dhcp-devel
mailing list