2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-28 12:57:42 +00:00

374 Commits

Author SHA1 Message Date
Mark Andrews
dc9d7b08aa - Silence benign static analysis warnings.
[ISC-Bugs #33428]
2013-05-15 10:49:54 +10:00
Shawn Routhier
f8380d3ff2 [master]
+- Add support for a simple check that the server id in a request message
+  to a failover peer matches the server id of the server.  This support
+  is enabled by editing the file includes/site.h and uncommenting the
+  definition for SERVER_ID_CHECK.  The option has several restrictions
+  and issues - please read the comment in the site.h file before
+  enabling it.
+  [ISC-Bugs #31463]
2012-11-16 15:02:13 -08:00
Shawn Routhier
10613724a9 [master]
The client now passes information about the options it requested
from the server to the script code via environment variables.
These variables are of the form requested_<option_name>=1 with
the option name being the same as used in the new_* and old_*
variables. [ISC-Bugs #29068]
2012-11-13 12:56:02 -08:00
Shawn Routhier
e563ec2e58 When attempting to convert a DUID from a client id option
into a hardware address handle unexpected client ids properly.
Thanks to Markus Hietava of Codenomicon CROSS project for the
finding this issue and CERT-FI for vulnerability coordination.
[ISC-Bugs #29852]
CVE: CVE-2012-3570
2012-06-27 21:33:25 +00:00
Shawn Routhier
de87ffe336 Previously the server code was relaxed to allow packets with zero
length client ids to be processed.  Under some situations use of
zero length client ids can cause the server to go into an infinite
loop.  As such ids are not valid according to RFC 2132 section 9.14
the server no longer accepts them.  Client ids with a length of 1
are also invalid but the server still accepts them in order to
minimize disruption.  The restriction will likely be tightened in
the future to disallow ids with a length of 1.
Thanks to Markus Hietava of Codenomicon CROSS project for the
finding this issue and CERT-FI for vulnerability coordination.
[ISC-Bugs #29851]
CVE: CVE-2012-3571
2012-06-27 21:20:19 +00:00
Shawn Routhier
cbbd2714d6 - Rotate the lease file when running in v6 mode.
[ISC-Bugs #24887]
2012-05-15 21:07:17 +00:00
Shawn Routhier
bc7f8b8e39 Multiple items to clean up IPv6 address processing.
When processing an IA that we've seen check to see if the
addresses are usable (not in use by somebody else) before
handing it out.
When reading in leases from the file discard expired addresses.
When picking an address for a client include the IA ID in
addition to the client ID to generally pick different addresses
for different IAs.
[ISC-Bugs #23138] [ISC-Bugs #27945] [ISC-Bugs #25586]
[ISC-Bugs #27684]
2012-04-10 00:54:35 +00:00
Shawn Routhier
d13db163c7 Modify the code that determines if an outstanding DDNS request
should be cancelled.  This patch results in cancelling the
outstanding request less often.  It fixes the problem caused
by a client doing a release where  the  txt and ptr records
weren't removed from the DNS.
[ISC-BUGS #27858]
2012-03-19 22:29:06 +00:00
Shawn Routhier
b047bd385b Add support for Infiniband over sockets to the server and
relay code.  We've tested this on Solaris and hope to expand
support for Infiniband in the future.  This patch also corrects
some issues we found in the socket code.  [ISC-Bugs #24245]
2012-02-16 21:05:28 +00:00
Shawn Routhier
87132514a0 In the DDNS code handle error conditions more gracefully and add more
logging code.  The major change is to handle unexpected cancel events
from the DNS client code.
[ISC-Bugs 26287].
2012-02-03 22:47:43 +00:00
Shawn Routhier
0ef9a46e33 Modify the DDNS handling code. In a previous patch we added logging
code to the DDNS handling.  This code included a bug that caused it
to attempt to dereference a NULL pointer and eventually segfault.
While reviewing the code as we addressed this problem, we determined
that some of the updates to the lease structures would not work as
planned since the structures being updated were in the process of
being freed: these updates were removed.  In addition we removed an
incorrect call to the DDNS removal function that could cause a failure
during the removal of DDNS information from the DNS server.
Thanks to Jasper Jongmans for reporting this issue.
[ISC-Bugs #27078]
CVE: CVE-2011-4868
2011-12-30 23:08:41 +00:00
Shawn Routhier
3221151b74 Enhanced patch for 23595 to handle IPv4 fixed addresses more
cleanly.
2011-10-04 19:36:15 +00:00
Shawn Routhier
d424157d63 Add support for passing DDNS information to a DNS server over
an IPv6 address.  [ISC-Bugs #22647]
2011-09-21 20:36:55 +00:00
Shawn Routhier
beaed73f00 DNS Update fix. A misconfigured server could crash during DNS update
processing if the configuration included overlapping pools or
multiple fixed-address entries for a single address.  This issue
affected both IPv4 and IPv6. The fix allows a server to detect such
conditions, provides the user with extra information and recommended
steps to fix the problem.  If the user enables the appropriate option
in site.h then server will be terminated
2011-07-08 22:49:11 +00:00
Tomek Mrugalski
d15aa96419 - Strict checks for content of domain-name DHCPv4 option can now be
configured during compilation time. Even though RFC2132 does not allow
  to store more than one domain in domain-name option, such behavior is
  now enabled by default, but this may change some time in the future.
  See ACCEPT_LIST_IN_DOMAIN_NAME define in includes/site.h.
  [ISC-Bugs #24167]
2011-07-01 12:07:09 +00:00
Tomek Mrugalski
929a236497 - If a client renews before 'dhcp-cache-threshold' percent of its lease
has elapsed (default 25%), the server will reuse the allocated lease
  (provide a lease within the currently allocated lease-time) rather
  than extend or renew the lease.  This absolves the server of needing
  to perform an fsync() operation on the lease database before reply,
  which improves performance. [ISC-Bugs #22228]
2011-05-12 13:26:55 +00:00
Tomek Mrugalski
a34feb7d81 - Code cleanup: remove obsolete PROTO, KandR, INLINE and ANSI_DECL macros
[ISC-Bugs #13151]
2011-05-11 14:01:25 +00:00
Tomek Mrugalski
5d082abd92 Several time related improvements:
- set initial delay to 0 to speed up client start
- added 'initial-delay' parameter to possibly revert to old behavior
- better handling of very short (1 or 2s) leases
- client lease records are recorded at most once every 15 seconds
- ICMP ping-check is now timed more precisely
- Servers that don't offer lease-time are now black-listed
[ISC-Bugs #19660]
2011-04-21 13:24:24 +00:00
Shawn Routhier
391965129d Restore printing of values in omshell to the style pre 21518. For
21518 we changed the print routines to always display time values
as a hex list.  This had a side effect of printing all data strings
as a hex list.  We shall investigate other ways of displaying time
values more usefully.  [ISC-Bugs #22626]
2010-12-03 20:27:51 +00:00
Shawn Routhier
6aaaf6a460 Fixes to lease input and output.
[ISC-Bugs #20418] - Some systems don't support the "%s" argument to
strftime, paste together the same string using mktime instead.
[ISC-Bugs #19596] - When parsing iaid values accept printable
characters.
[ISC-Bugs #21585] - Always print time values in omshell as hex
instead of ascii if the values happen to be printable characters.
2010-09-13 22:06:37 +00:00
Shawn Routhier
2b58b8650e Modify determination of ttl to use for DDNS update [ISC-Bugs #21126] 2010-05-27 17:19:26 +00:00
Shawn Routhier
590298e746 Add some debugging output for use with the DDNS code. [ISC-Bugs 20916] 2010-05-26 22:25:10 +00:00
David Hankins
33692791d7 - "The LDAP Patch" that has been circulating for some time, written by
Brian Masney and S.Kalyanasundraram and maintained for application to
  the DHCP-4 sources by David Cantrell has been included.  Please be
  advised that these sources were contributed, and do not yet meet the
  high standards we place on production sources we include by default.
  As a result, the LDAP features are only included by using a compile-time
  option which defaults off, and if you enable it you do so under your
  own recognizance.  We will be improving this software over time.
  [ISC-Bugs #17741]
2010-03-24 21:49:03 +00:00
Shawn Routhier
0585235c45 Update the fsync batching patch to work with the isc libraries - 21044 2010-03-12 01:36:57 +00:00
Shawn Routhier
7aa153b882 Primarly fix the trace code. This was broken during the modfictions of the
DDNS code to use the bind libraries.  This patch fixes that breakage and
includes support for the new DDNS code.  This patch also deletes some dead
code and neatens up some log messages.
2010-02-11 23:55:36 +00:00
David Hankins
fdfebedf3e - An optimization described in the failover protocol draft is now included,
which permits a DHCP server operating in communications-interrupted state
  to 'rewind' a lease to the state most recently transmitted to its peer,
  greatly increasing a server's endurance in communications-interrupted.
  This is supported using a new 'rewind state' record on the dhcpd.leases
  entry for each lease.  [ISC-Bugs #19601]
2010-02-03 23:25:25 +00:00
Shawn Routhier
176c2a7d2d Continuing update for 20697 - update sys/stddef.h to stddef.h 2010-02-02 23:32:07 +00:00
Shawn Routhier
69c1bf48d3 Add include for stddef.h and remove an extra space from dhcrelay.c 2010-02-02 19:58:18 +00:00
Shawn Routhier
a47d63362f Update copyright years 2009-11-24 02:06:57 +00:00
Mark Andrews
e91b6f3c9b remove empty declarations 2009-11-06 02:04:52 +00:00
Shawn Routhier
98bf16077d Support for asynchronous ddns per ticket 19216 - convert to using isclib and
dnslib.
2009-10-28 04:12:30 +00:00
Shawn Routhier
2c85ac9b24 Switch isc urls from http to https and correct sw to services or software
for new web site as appropirate.
2009-07-23 18:52:21 +00:00
David Hankins
9e3eb22ab7 - A new failover configuration parameter has been introduced for those
environments where DHCP servers can be reasonably guaranteed to be
  "down" when the failover TCP socket is severed, "auto-partner-down".
  This parameter is not generally safe, and by default is disabled, so
  please carefully review the documentation of this parameter in the
  dhcpd.conf(5) manpage before determining to use it yourself.
  [ISC-Bugs #19600]
2009-06-17 22:08:42 +00:00
Paul Selkirk
a41d7a251e pull up rt19436: client -D option 2009-05-27 20:11:38 +00:00
David Hankins
a57df74a1a - Compilation on Solaris with USE_SOCKETS defined in includes/site.h has
been repaired.  Other USE_ overrides should work better. [ISC-Bugs #19434]

- A check for the local flavor of IFNAMSIZ had a broken 'else' condition,
  that probably still resulted in the correct behaviour (but wouldn't use
  a larger defined value provided by the host OS). [ISC-Bugs #19434]
2009-04-30 18:42:52 +00:00
David Hankins
95fd7038a2 - Memory leak in the load_balance_mine() function is fixed. This would
leak ~20-30 octets per DHCPDISCOVER packet while failover was in use
  and in normal state. [ISC-Bugs #19548]

- Various compilation fixes have been included for the memory related
  DEBUG #defines in includes/site.h.  [ISC-Bugs #19548]
2009-04-07 19:55:52 +00:00
David Hankins
0829d595f8 - If configured, dhclient may now transmit to an anycast MAC address,
rather than using a broadcast address.  Thanks to a patch from David
  Cantrell at Red Hat. [ISC-Bugs #17740]
2009-03-13 21:41:45 +00:00
Shawn Routhier
59112e84f5 Validate argument to port option - bug 18695 2009-01-06 00:32:19 +00:00
David Hankins
ecddae64a2 - The v6 BSD socket method was updated to use a single UDP BSD socket
no matter how many interfaces are involved, differentiating the
  interfaces the packets were received on by the interface index supplied
  by the OS.
- The relay agent no longer listens to the All DHCP Servers Multicast
  address.
- A bug was fixed in data_string_sprintfa() where va_start was only called
  once for two invocations of vsprintf() variants.
  [ISC-Bugs #17610b]
2008-08-29 17:48:57 +00:00
David Hankins
7d6180be3e - A bug in subnet6 parsing where options contained in subnet6 clauses would
not be applied to clients addressed within that network was repaired.

- When configuring a "subnet {}" or "subnet6 {}" without an explicit
  shared-network enclosing it, the DHCP software would synthesize a
  shared-network to contain the subnet.  However, all configuration
  parameters within the subnet more intuitively belong "to any client
  on that interface", or rather the synthesized shared-network.  So,
  when a shared-network is synthesized, it is used to contain the
  configuration present inside the subnet {} clause.  This means that
  the configuration will be valid for all clients on that network, not
  just those addressed out of the stated subnet.  If you intended the
  opposite, the workaround is to explicitly configure an empty
  shared-network.

- A bug was fixed where Information-Request processing was not sourcing
  configured option values.

- A warning was added since the DHCPv6 processing software does not yet
  support class statements.

  [ISC-Bugs #17638b]
2008-08-19 17:55:57 +00:00
David Hankins
0524508a91 Backing out [ISC-Bugs #17610] 2008-08-08 22:37:46 +00:00
David Hankins
08c4e7ce2b - The BSD socket code will now permit multiple DHCPv6 server instances to
operate on different interfaces. [ISC-Bugs #17610]
2008-08-08 20:26:57 +00:00
Evan Hunt
7de20a9518 - Merge dhcrelay6 into dhcrelay
- Prep for 4.1.0a2 release
2008-06-13 00:55:53 +00:00
Francis Dupont
420d8b3f0c merge 17500 2008-05-23 13:56:07 +00:00
Francis Dupont
3dbe22465b merge 17621 2008-05-23 13:22:23 +00:00
Francis Dupont
1d17db44a7 rename iaaddr structure & co 2008-03-31 13:49:45 +00:00
Francis Dupont
1acab09f0b Improve DHCPv6 leasequery 2008-03-17 15:45:05 +00:00
Francis Dupont
9322442f8a Merged IA_XXrelated structures 2008-03-17 15:35:37 +00:00
Francis Dupont
bd72740e3c Prefix pools are attached to shared network scopes 2008-03-17 15:25:49 +00:00
David Hankins
f8cbf390af - There is now a default 1/4 of a second scheduled delay between delayed
fsync()'s, it can be configured by the max-ack-delay configuration
  parameter.  [ISC-Bugs #17679]
2008-02-28 23:40:45 +00:00