*** From dhcp-server -- To unsubscribe, see the end of this message. ***
> We have come across a problem with the ISC dhcpd, this occurs with all
> versions that I have tested back to 2.0 , but the supplied data is from
> test runs with 3.0b pl11.
>
> The server runs on FreeBSD, version 3.2. The client is NT 4.0, this client
> will successfully get a lease via an ISC dhcp running on our ethernet, but
> not when dialing in via the service provider that the dhcp scope listed is
> intended to serve. In this case, dhcp requests are being forwarded through
> a Cisco router running IOS 12.
>
> In order to show the problem, I compiled the server with DEBUG_PACKET,
> DEBUG_FIND_LEASE and POINTER_DEBUG (print.c and client do not compile
> cleanly with these options by the way)
>
> However the server does not crash, it exits via log_fatal().
>
> Running in gdb, the data in the lease looked to be basically sound, and we
> could not work out why the server was exiting. So as it seemed to be on
> the test:
>
> if (lease -> uid_len < sizeof (lease -> uid_buf))
>
> in memory.c, we increased the size of uid_buf to 34 bytes.
>
> Then the server actually did grant the lease, and we were able to see in
> the leases file, that the uid was exactly 32 bytes in length.
>
> So my questions are:
>
> Why is uid_buf set to 32 bytes, is there a standard that says that uid's
> should only be 32 bytes? If so, to allow for the case of a 32 byte uid,
> does the buffer need to be 33 bytes long, or should the test be <=
> sizeof() ?
>
> In any case, should this be a fatal error? the reason that we found this
> problem was because this request caused the server to exit and thus many
> other dhcp requests were unfullfilled (actually that statement applies to
> our main server, not the server for which I am attaching data).
>
> I cannot attach a stack trace as requested, as the server exits cleanly, I
> have attached tty output from running the server, first with debugging
> turned on and uid_buf set to 32 bytes:
>
> Script started on Mon Nov 15 17:02:04 1999
> unixmon# ../dhcpd -cf dhcpd.conf -lf dhcpd.leases -d xl0
> Internet Software Consortium DHCP Server V3.0b1pl11
> Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
> All rights reserved.
>
> Please contribute if you find this software useful.
> For info, please visit http://www.isc.org/dhcp-contrib.html
>
> Listening on BPF/xl0/00:50:04:3b:80:f5/10.31.0.0
> Sending on BPF/xl0/00:50:04:3b:80:f5/10.31.0.0
> Sending on Socket/fallback/fallback-net
> hardware lease and uid lease are identical.
> hardware lease and ip lease are identical.
> uid lease and ip lease are identical.
> Not returning a lease.
> corrupt lease uid.
> exiting.
>
> Script done on Mon Nov 15 17:21:42 1999
>
>
> --------------------------------------------------------------------------
> -----------------------------------------------
> Then with debugging turned on and uid_buf set to 34 bytes.
>
>
> Script started on Mon Nov 15 17:23:21 1999
> unixmon# ../dhcpd -cf dhcpd.conf -lf dhcpd.leases -d xl0
> Internet Software Consortium DHCP Server V3.0b1pl11
> Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
> All rights reserved.
>
> Please contribute if you find this software useful.
> For info, please visit http://www.isc.org/dhcp-contrib.html
>
> Listening on BPF/xl0/00:50:04:3b:80:f5/10.31.0.0
> Sending on BPF/xl0/00:50:04:3b:80:f5/10.31.0.0
> Sending on Socket/fallback/fallback-net
> hardware lease and uid lease are identical.
> hardware lease and ip lease are identical.
> uid lease and ip lease are identical.
> Not returning a lease.
> packet length 576
> op = 1 htype = 1 hlen = 6 hops = 0
> xid = d7190000 secs = 0 flags = 0
> ciaddr = 0.0.0.0
> yiaddr = 0.0.0.0
> siaddr = 0.0.0.0
> giaddr = 10.31.1.7
> chaddr = 00:00:0c:5d:b3:ff
> filename =
> server_name =
>
> 000: 01 01 06 00 00 00 19 d7 00 00 00 00 00 00 00 00
> 010: 00 00 00 00 00 00 00 00 0a 1f 01 07 00 00 0c 5d
> 020: b3 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0e0: 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63
> 0f0: 35 01 01 39 02 04 00 3d 20 00 63 69 73 63 6f 2d
> 100: 31 30 2e 33 31 2e 31 2e 37 2d 56 69 72 74 75 61
> 110: 6c 2d 41 63 63 65 73 73 31 ff 00 00 00 00 00 00
> 120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> DHCPDISCOVER from 00:00:0c:5d:b3:ff via 10.31.1.7
> unexpected ICMP Echo Reply from 192.168.30.4
> DHCPOFFER on 10.31.1.200 to 00:00:0c:5d:b3:ff via 10.31.1.7
> 000: 02 01 06 00 00 00 19 d7 00 00 00 00 00 00 00 00
> 010: 0a 1f 01 c8 0a 1f 01 30 0a 1f 01 07 00 00 0c 5d
> 020: b3 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0e0: 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63
> 0f0: 35 01 02 36 04 0a 1f 01 30 33 04 00 00 38 40 01
> 100: 04 ff ff 00 00 03 04 0a 1f 01 01 06 08 0a 1e e0
> 110: 04 0a 1e 20 05 3a 04 00 00 1c 20 3b 04 00 00 31
> 120: 38 1c 04 0a 1f ff ff 2c 08 0a 1e e0 06 0a 1e a0
> 130: 1a 2d 04 0a 1e e0 06 2e 01 08 0f 10 63 74 78 75
> 140: 6b 2e 63 69 74 72 69 78 2e 63 6f 6d ff
> trying next lease matching client id: 10.31.1.200
> Found lease for client id: 10.31.1.200.
> trying next lease matching hw addr: 10.31.1.200
> Found lease for hardware address: 10.31.1.200.
> Found lease for requested address: 10.31.1.200.
> hardware lease and uid lease are identical.
> uid lease and ip lease are identical.
> choosing lease on requested address.
> Returning lease: 10.31.1.200.
> packet length 576
> op = 1 htype = 1 hlen = 6 hops = 0
> xid = d7190000 secs = 0 flags = 0
> ciaddr = 0.0.0.0
> yiaddr = 0.0.0.0
> siaddr = 0.0.0.0
> giaddr = 10.31.1.7
> chaddr = 00:00:0c:5d:b3:ff
> filename =
> server_name =
>
> 000: 01 01 06 00 00 00 19 d7 00 00 00 00 00 00 00 00
> 010: 00 00 00 00 00 00 00 00 0a 1f 01 07 00 00 0c 5d
> 020: b3 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0e0: 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63
> 0f0: 35 01 03 39 02 04 00 3d 20 00 63 69 73 63 6f 2d
> 100: 31 30 2e 33 31 2e 31 2e 37 2d 56 69 72 74 75 61
> 110: 6c 2d 41 63 63 65 73 73 31 36 04 0a 1f 01 30 32
> 120: 04 0a 1f 01 c8 33 04 00 00 38 40 ff 00 00 00 00
> 130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> DHCPREQUEST for 10.31.1.200 from 00:00:0c:5d:b3:ff via 10.31.1.7
> DHCPACK on 10.31.1.200 to 00:00:0c:5d:b3:ff via 10.31.1.7
> 000: 02 01 06 00 00 00 19 d7 00 00 00 00 00 00 00 00
> 010: 0a 1f 01 c8 0a 1f 01 30 0a 1f 01 07 00 00 0c 5d
> 020: b3 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 0e0: 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63
> 0f0: 35 01 05 36 04 0a 1f 01 30 33 04 00 00 38 40 01
> 100: 04 ff ff 00 00 03 04 0a 1f 01 01 06 08 0a 1e e0
> 110: 04 0a 1e 20 05 3a 04 00 00 1c 20 3b 04 00 00 31
> 120: 38 1c 04 0a 1f ff ff 2c 08 0a 1e e0 06 0a 1e a0
> 130: 1a 2d 04 0a 1e e0 06 2e 01 08 0f 10 63 74 78 75
> 140: 6b 2e 63 69 74 72 69 78 2e 63 6f 6d ff
> DHCPRELEASE of 10.31.1.200 from 00:00:0c:5d:b3:ff via 10.31.1.200 (found)
> DHCPRELEASE of 10.31.1.200 from 00:00:0c:5d:b3:ff via 10.31.1.200 (found)
> DHCPRELEASE of 10.31.1.200 from 00:00:0c:5d:b3:ff via 10.31.1.200 (found)
> ^C
>
> Script done on Mon Nov 15 17:28:09 1999
>
>
> --------------------------------------------------------------------------
> -----------------------------------------------
> This is the leases file for the second case (it remains empty in the first
> case). Note that the uid is axactly 32 bytes long.
>
> # All times in this file are in UTC (GMT), not your local timezone. This
> is
> # not a bug, so please don't ask about it. There is no portable way to
> # store leases in the local timezone, so please don't request this as a
> # feature. If this is inconvenient or confusing to you, we sincerely
> # apologize. Seriously, though - don't ask.
> # The format of this file is documented in the dhcpd.leases(5) manual
> page.
>
> lease 10.31.1.200 {
> starts 1 1999/11/15 17:25:11;
> ends 1 1999/11/15 21:25:11;
> hardware ethernet 00:00:0c:5d:b3:ff;
> uid
> 00:63:69:73:63:6f:2d:31:30:2e:33:31:2e:31:2e:37:2d:56:69:72:74:75:61:6c:2d
> :41:63:63:65:73:73:31;
> }
> lease 10.31.1.200 {
> starts 1 1999/11/15 17:25:11;
> ends 1 1999/11/15 17:25:35;
> hardware ethernet 00:00:0c:5d:b3:ff;
> uid
> 00:63:69:73:63:6f:2d:31:30:2e:33:31:2e:31:2e:37:2d:56:69:72:74:75:61:6c:2d
> :41:63:63:65:73:73:31;
> }
>
>
> --------------------------------------------------------------------------
> -----------------------------------------------
> Configuration file, only the one scope for this subnet defined in this
> test case.
>
> # dhcpd.conf
> #
>
> # Hosts with more than one interface MUST specify a ``server-identifier'',
>
> server-identifier emea-netmon.ctxuk.citrix.com;
>
> # option definitions common to all supported networks...
>
> option domain-name "ctxuk.citrix.com";
> option domain-name-servers 10.30.224.4,10.30.32.5;
>
> # Shared network declaration is used to group subnets which share the same
>
> # option definitions common to this shared network.
> # 4 Hours
> default-lease-time 14400;
> # 7 Days
> max-lease-time 604800;
> # Buggy clients
> one-lease-per-client true;
>
> # Network from which we are going to give out addresses
>
> subnet 10.31.0.0 netmask 255.255.0.0 {
> range 10.31.1.200 10.31.1.208;
> option broadcast-address 10.31.255.255;
> option routers 10.31.1.1;
> option netbios-name-servers 10.30.224.6,10.30.160.26;
> option netbios-dd-server 10.30.224.6;
> option netbios-node-type 8;
> }
>
>
> Any help appreciated.
>
> Kevin Quinlan
>
-----------------------------------------------------------------------
List Archives : http://www.isc.org/ml-archives/dhcp-server/
Unsubscribe : http://www.isc.org/dhcp-lists.html
-or- : mailto:[EMAIL PROTECTED]?Subject=unsubscribe
-----------------------------------------------------------------------