Annotation of embedaddon/dhcp/README, revision 1.1.1.1

1.1       misho       1:              Internet Systems Consortium DHCP Distribution
1.1.1.1 ! misho       2:                           Version 4.1-ESV-R7
        !             3:                           10 September 2012
1.1       misho       4: 
                      5:                              README FILE
                      6: 
                      7: You should read this file carefully before trying to install or use
                      8: the ISC DHCP Distribution.
                      9: 
                     10:                          TABLE OF CONTENTS
                     11: 
                     12:        1       WHERE TO FIND DOCUMENTATION
                     13:        2       RELEASE STATUS
                     14:        3       BUILDING THE DHCP DISTRIBUTION
                     15:         3.1     UNPACKING IT
                     16:         3.2     CONFIGURING IT
                     17:          3.2.1   DYNAMIC DNS UPDATES
                     18:          3.2.2   LOCALLY DEFINED OPTIONS
                     19:         3.3     BUILDING IT
                     20:        4       INSTALLING THE DHCP DISTRIBUTION
                     21:        5       USING THE DHCP DISTRIBUTION
                     22:         5.1      FIREWALL RULES
                     23:         5.2     LINUX
                     24:          5.2.1   IF_TR.H NOT FOUND
                     25:          5.2.2   SO_ATTACH_FILTER UNDECLARED
                     26:          5.2.3   PROTOCOL NOT CONFIGURED
                     27:          5.2.4   BROADCAST
                     28:          5.2.6   IP BOOTP AGENT
                     29:          5.2.7   MULTIPLE INTERFACES
                     30:         5.3     SCO
                     31:         5.4     HP-UX
                     32:         5.5     ULTRIX
                     33:         5.6     FreeBSD
                     34:         5.7     NeXTSTEP
                     35:         5.8     SOLARIS
                     36:          5.8.1 Solaris 11
                     37:          5.8.2 Other Solaris Items
                     38:         5.9     AIX
                     39:         5.10    MacOS X
                     40:        6       SUPPORT
                     41:         6.1     HOW TO REPORT BUGS
                     42: 
                     43:                      WHERE TO FIND DOCUMENTATION
                     44: 
                     45: Documentation for this software includes this README file, the
                     46: RELNOTES file, and the manual pages, which are in the server, common,
                     47: client and relay subdirectories.  The README file (this file) includes
                     48: late-breaking operational and system-specific information that you
                     49: should read even if you don't want to read the manual pages, and that
                     50: you should *certainly* read if you run into trouble.  Internet
                     51: standards relating to the DHCP protocol are stored in the doc
                     52: subdirectory.  You will have the best luck reading the manual pages if
                     53: you build this software and then install it, although you can read
                     54: them directly out of the distribution if you need to.
                     55: 
                     56: DHCP server documentation is in the dhcpd man page.  Information about
                     57: the DHCP server lease database is in the dhcpd.leases man page.
                     58: Server configuration documentation is in the dhcpd.conf man page as
                     59: well as the dhcp-options man page.   A sample DHCP server
                     60: configuration is in the file server/dhcpd.conf.   The source for the
                     61: dhcpd, dhcpd.leases and dhcpd.conf man pages is in the server/ sub-
                     62: directory in the distribution.   The source for the dhcp-options.5
                     63: man page is in the common/ subdirectory.
                     64: 
                     65: DHCP Client documentation is in the dhclient man page.  DHCP client
                     66: configuration documentation is in the dhclient.conf man page and the
                     67: dhcp-options man page.  The DHCP client configuration script is
                     68: documented in the dhclient-script man page.   The format of the DHCP
                     69: client lease database is documented in the dhclient.leases man page.
                     70: The source for all these man pages is in the client/ subdirectory in
                     71: the distribution.   In addition, the dhcp-options man page should be
                     72: referred to for information about DHCP options.
                     73: 
                     74: DHCP relay agent documentation is in the dhcrelay man page, the source
                     75: for which is distributed in the relay/ subdirectory.
                     76: 
                     77: To read installed manual pages, use the man command.  Type "man page"
                     78: where page is the name of the manual page.   This will only work if
                     79: you have installed the ISC DHCP distribution using the ``make install''
                     80: command (described later).
                     81: 
                     82: If you want to read manual pages that aren't installed, you can type
                     83: ``nroff -man page |more'' where page is the filename of the
                     84: unformatted manual page.  The filename of an unformatted manual page
                     85: is the name of the manual page, followed by '.', followed by some
                     86: number - 5 for documentation about files, and 8 for documentation
                     87: about programs.   For example, to read the dhcp-options man page,
                     88: you would type ``nroff -man common/dhcp-options.5 |more'', assuming
                     89: your current working directory is the top level directory of the ISC
                     90: DHCP Distribution.
                     91: 
                     92: Please note that the pathnames of files to which our manpages refer
                     93: will not be correct for your operating system until after you iterate
                     94: 'make install' (so if you're reading a manpage out of the source
                     95: directory, it may not have up-to-date information).
                     96: 
                     97:                            RELEASE STATUS
                     98: 
1.1.1.1 ! misho      99: This is ISC DHCP 4.1-ESV-R7, an extended support (ESV) release that
        !           100: provides patches for some security issues and several bugs.
1.1       misho     101: 
                    102: ESVs are intended for users who have longer upgrade constraints 
                    103: Please see our web page http://www.isc.org/downloads/extended-support
                    104: for more information on ESVs
                    105: 
                    106: In this release, the DHCPv6 server should be fully functional on Linux,
                    107: Solaris, or any BSD.  The DHCPv6 client should be similarly functional
                    108: except on Solaris.
                    109: 
                    110: The DHCPv4 server, relay, and client, should be fully functional
                    111: on Linux, Solaris, any BSD, HPUX, SCO, NextSTEP, and Irix.
                    112: 
                    113: If you are running the DHCP distribution on a machine which is a
                    114: firewall, or if there is a firewall between your DHCP server(s) and
                    115: DHCP clients, please read the section on firewalls which appears later
                    116: in this document.
                    117: 
                    118: If you wish to run the DHCP Distribution on Linux, please see the
                    119: Linux-specific notes later in this document.  If you wish to run on an
                    120: SCO release, please see the SCO-specific notes later in this document.
                    121: You particularly need to read these notes if you intend to support
                    122: Windows 95 clients.  If you are running a version of FreeBSD prior to
                    123: 2.2, please read the note on FreeBSD.  If you are running HP-UX or
                    124: Ultrix, please read the notes for those operating systems below.  If
                    125: you are running NeXTSTEP, please see the notes on NeXTSTEP below.
                    126: 
                    127: If you start dhcpd and get a message, "no free bpf", that means you
                    128: need to configure the Berkeley Packet Filter into your operating
                    129: system kernel.   On NetBSD, FreeBSD and BSD/os, type ``man bpf'' for
                    130: information.   On Digital Unix, type ``man pfilt''.
                    131: 
                    132: 
                    133:                    BUILDING THE DHCP DISTRIBUTION
                    134: 
                    135:                             UNPACKING IT
                    136: 
                    137: To build the DHCP Distribution, unpack the compressed tar file using
                    138: the tar utility and the gzip command - type something like:
                    139: 
1.1.1.1 ! misho     140:        gunzip dhcp-4.1-ESV-R7.tar.gz
        !           141:        tar xvf dhcp-4.1-ESV-R7.tar
1.1       misho     142: 
                    143:                            CONFIGURING IT
                    144: 
1.1.1.1 ! misho     145: Now, cd to the dhcp-4.1-ESV-R7 subdirectory that you've just created and
1.1       misho     146: configure the source tree by typing:
                    147: 
                    148:        ./configure
                    149: 
                    150: If the configure utility can figure out what sort of system you're
                    151: running on, it will create a custom Makefile for you for that
                    152: system; otherwise, it will complain.  If it can't figure out what
                    153: system you are using, that system is not supported - you are on
                    154: your own.
                    155: 
                    156:                         DYNAMIC DNS UPDATES
                    157: 
                    158: A fully-featured implementation of dynamic DNS updates is included in
                    159: this release.   There are no build dependencies with any BIND version
                    160: - this version can and should just use the resolver in your C library.
                    161: 
                    162: There is documentation for the DDNS support in the dhcpd.conf manual
                    163: page - see the beginning of this document for information on finding
                    164: manual pages.
                    165: 
                    166:                       LOCALLY DEFINED OPTIONS
                    167: 
                    168: In previous versions of the DHCP server there was a mechanism whereby
                    169: options that were not known by the server could be configured using
                    170: a name made up of the option code number and an identifier:
                    171: "option-nnn"   This is no longer supported, because it is not future-
                    172: proof.   Instead, if you want to use an option that the server doesn't
                    173: know about, you must explicitly define it using the method described
                    174: in the dhcp-options man page under the DEFINING NEW OPTIONS heading.
                    175: 
                    176:                             BUILDING IT
                    177: 
                    178: Once you've run configure, just type ``make'', and after a while
                    179: you should have a dhcp server.  If you get compile errors on one
                    180: of the supported systems mentioned earlier, please let us know.
                    181: If you get warnings, it's not likely to be a problem - the DHCP
                    182: server compiles completely warning-free on as many architectures
                    183: as we can manage, but there are a few for which this is difficult.
                    184: If you get errors on a system not mentioned above, you will need
                    185: to do some programming or debugging on your own to get the DHCP
                    186: Distribution working.
                    187: 
                    188:                   INSTALLING THE DHCP DISTRIBUTION
                    189: 
                    190: Once you have successfully gotten the DHCP Distribution to build, you
                    191: can install it by typing ``make install''.   If you already have an old
                    192: version of the DHCP Distribution installed, you may want to save it
                    193: before typing ``make install''.
                    194: 
                    195:                     USING THE DHCP DISTRIBUTION
                    196: 
                    197:                            FIREWALL RULES
                    198: 
                    199: If you are running the DHCP server or client on a computer that's also
                    200: acting as a firewall, you must be sure to allow DHCP packets through
                    201: the firewall.  In particular, your firewall rules _must_ allow packets
                    202: from IP address 0.0.0.0 to IP address 255.255.255.255 from UDP port 68
                    203: to UDP port 67 through.  They must also allow packets from your local
                    204: firewall's IP address and UDP port 67 through to any address your DHCP
                    205: server might serve on UDP port 68.  Finally, packets from relay agents
                    206: on port 67 to the DHCP server on port 67, and vice versa, must be
                    207: permitted.
                    208: 
                    209: We have noticed that on some systems where we are using a packet
                    210: filter, if you set up a firewall that blocks UDP port 67 and 68
                    211: entirely, packets sent through the packet filter will not be blocked.
                    212: However, unicast packets will be blocked.   This can result in strange
                    213: behaviour, particularly on DHCP clients, where the initial packet
                    214: exchange is broadcast, but renewals are unicast - the client will
                    215: appear to be unable to renew until it starts broadcasting its
                    216: renewals, and then suddenly it'll work.   The fix is to fix the
                    217: firewall rules as described above.
                    218: 
                    219:                           PARTIAL SERVERS
                    220: 
                    221: If you have a server that is connected to two networks, and you only
                    222: want to provide DHCP service on one of those networks (e.g., you are
                    223: using a cable modem and have set up a NAT router), if you don't write
                    224: any subnet declaration for the network you aren't supporting, the DHCP
                    225: server will ignore input on that network interface if it can.  If it
                    226: can't, it will refuse to run - some operating systems do not have the
                    227: capability of supporting DHCP on machines with more than one
                    228: interface, and ironically this is the case even if you don't want to
                    229: provide DHCP service on one of those interfaces.
                    230: 
                    231:                                LINUX
                    232: 
                    233: There are three big LINUX issues: the all-ones broadcast address,
                    234: Linux 2.1 ip_bootp_agent enabling, and operations with more than one
                    235: network interface.   There are also two potential compilation/runtime
                    236: problems for Linux 2.1/2.2: the "SO_ATTACH_FILTER undeclared" problem
                    237: and the "protocol not configured" problem.
                    238: 
                    239:                    LINUX: PROTOCOL NOT CONFIGURED
                    240: 
                    241: If you get the following message, it's because your kernel doesn't
                    242: have the linux packetfilter or raw packet socket configured:
                    243: 
                    244:  Make sure CONFIG_PACKET (Packet socket) and CONFIG_FILTER (Socket
                    245:  Filtering) are enabled in your kernel configuration
                    246: 
                    247: If this happens, you need to configure your Linux kernel to support
                    248: Socket Filtering and the Packet socket, or to select a kernel provided
                    249: by your Linux distribution that has these enabled (virtually all modern
                    250: ones do by default).
                    251: 
                    252:                           LINUX: BROADCAST
                    253: 
                    254: If you are running a recent version of Linux, this won't be a problem,
                    255: but on older versions of Linux (kernel versions prior to 2.2), there
                    256: is a potential problem with the broadcast address being sent
                    257: incorrectly.
                    258: 
                    259: In order for dhcpd to work correctly with picky DHCP clients (e.g.,
                    260: Windows 95), it must be able to send packets with an IP destination
                    261: address of 255.255.255.255.  Unfortunately, Linux changes an IP
                    262: destination of 255.255.255.255 into the local subnet broadcast address
                    263: (here, that's 192.5.5.223).
                    264: 
                    265: This isn't generally a problem on Linux 2.2 and later kernels, since
                    266: we completely bypass the Linux IP stack, but on old versions of Linux
                    267: 2.1 and all versions of Linux prior to 2.1, it is a problem - pickier
                    268: DHCP clients connected to the same network as the ISC DHCP server or
                    269: ISC relay agent will not see messages from the DHCP server.   It *is*
                    270: possible to run into trouble with this on Linux 2.2 and later if you
                    271: are running a verson of the DHCP server that was compiled on a Linux
                    272: 2.0 system, though.
                    273: 
                    274: It is possible to work around this problem on some versions of Linux
                    275: by creating a host route from your network interface address to
                    276: 255.255.255.255.   The command you need to use to do this on Linux
                    277: varies from version to version.   The easiest version is:
                    278: 
                    279:        route add -host 255.255.255.255 dev eth0
                    280: 
                    281: On some older Linux systems, you will get an error if you try to do
                    282: this.   On those systems, try adding the following entry to your
                    283: /etc/hosts file:
                    284: 
                    285: 255.255.255.255        all-ones
                    286: 
                    287: Then, try:
                    288: 
                    289:        route add -host all-ones dev eth0
                    290: 
                    291: Another route that has worked for some users is:
                    292: 
                    293:        route add -net 255.255.255.0 dev eth0
                    294: 
                    295: If you are not using eth0 as your network interface, you should
                    296: specify the network interface you *are* using in your route command.
                    297: 
                    298:                        LINUX: IP BOOTP AGENT
                    299: 
                    300: Some versions of the Linux 2.1 kernel apparently prevent dhcpd from
                    301: working unless you enable it by doing the following:
                    302: 
                    303:              echo 1 >/proc/sys/net/ipv4/ip_bootp_agent
                    304: 
                    305: 
                    306:                      LINUX: MULTIPLE INTERFACES
                    307: 
                    308: Very old versions of the Linux kernel do not provide a networking API
                    309: that allows dhcpd to operate correctly if the system has more than one
                    310: broadcast network interface.  However, Linux 2.0 kernels with version
                    311: numbers greater than or equal to 2.0.31 add an API feature: the
                    312: SO_BINDTODEVICE socket option.  If SO_BINDTODEVICE is present, it is
                    313: possible for dhcpd to operate on Linux with more than one network
                    314: interface.  In order to take advantage of this, you must be running a
                    315: 2.0.31 or greater kernel, and you must have 2.0.31 or later system
                    316: headers installed *before* you build the DHCP Distribution.
                    317: 
                    318: We have heard reports that you must still add routes to 255.255.255.255
                    319: in order for the all-ones broadcast to work, even on 2.0.31 kernels.
                    320: In fact, you now need to add a route for each interface.   Hopefully
                    321: the Linux kernel gurus will get this straight eventually.
                    322: 
                    323: Linux 2.1 and later kernels do not use SO_BINDTODEVICE or require the
                    324: broadcast address hack, but do support multiple interfaces, using the
                    325: Linux Packet Filter.
                    326: 
                    327:                             LINUX: OpenWrt
                    328: 
                    329: DHCP 4.1 has been tested on OpenWrt 7.09 and 8.09.  In keeping with
                    330: standard practice, client/scripts now includes a dhclient-script file
                    331: for OpenWrt.  However, this is not sufficient by itself to run dhcp on
                    332: OpenWrt; a full OpenWrt package for DHCP is available at
                    333: ftp://ftp.isc.org/isc/dhcp/dhcp-4.1.0-openwrt.tar.gz
                    334: 
                    335:                    LINUX: 802.1q VLAN INTERFACES
                    336: 
                    337: If you're using 802.1q vlan interfaces on Linux, it is necessary to
                    338: vconfig the subinterface(s) to rewrite the 802.1q information out of
                    339: packets received by the dhcpd daemon via LPF:
                    340: 
                    341:        vconfig set_flag eth1.523 1 1
                    342: 
                    343: Note that this may affect the performance of your system, since the
                    344: Linux kernel must rewrite packets received via this interface.  For
                    345: more information, consult the vconfig man pages.
                    346: 
                    347:                                 SCO
                    348: 
                    349: ISC DHCP will now work correctly on newer versions of SCO out of the
                    350: box (tested on OpenServer 5.05b, assumed to work on UnixWare 7).
                    351: 
                    352: Older versions of SCO have the same problem as Linux (described earlier).
                    353: The thing is, SCO *really* doesn't want to let you add a host route to
                    354: the all-ones broadcast address.
                    355: 
                    356: You can try the following:
                    357: 
                    358:   ifconfig net0 xxx.xxx.xxx.xxx netmask 0xNNNNNNNN broadcast 255.255.255.255
                    359: 
                    360: If this doesn't work, you can also try the following strange hack:
                    361: 
                    362:   ifconfig net0 alias 10.1.1.1 netmask 8.0.0.0
                    363: 
                    364: Apparently this works because of an interaction between SCO's support
                    365: for network classes and the weird netmask.  The 10.* network is just a
                    366: dummy that can generally be assumed to be safe.   Don't ask why this
                    367: works.   Just try it.   If it works for you, great.
                    368: 
                    369:                                HP-UX
                    370: 
                    371: HP-UX has the same problem with the all-ones broadcast address that
                    372: SCO and Linux have.   One user reported that adding the following to
                    373: /etc/rc.config.d/netconf helped (you may have to modify this to suit
                    374: your local configuration):
                    375: 
                    376: INTERFACE_NAME[0]=lan0
                    377: IP_ADDRESS[0]=1.1.1.1
                    378: SUBNET_MASK[0]=255.255.255.0
                    379: BROADCAST_ADDRESS[0]="255.255.255.255"
                    380: LANCONFIG_ARGS[0]="ether"
                    381: DHCP_ENABLE[0]=0
                    382: 
                    383:                                ULTRIX
                    384: 
                    385: Now that we have Ultrix packet filter support, the DHCP Distribution
                    386: on Ultrix should be pretty trouble-free.  However, one thing you do
                    387: need to be aware of is that it now requires that the pfilt device be
                    388: configured into your kernel and present in /dev.  If you type ``man
                    389: packetfilter'', you will get some information on how to configure your
                    390: kernel for the packet filter (if it isn't already) and how to make an
                    391: entry for it in /dev.
                    392: 
                    393:                               FreeBSD
                    394: 
                    395: Versions of FreeBSD prior to 2.2 have a bug in BPF support in that the
                    396: ethernet driver swaps the ethertype field in the ethernet header
                    397: downstream from BPF, which corrupts the output packet.   If you are
                    398: running a version of FreeBSD prior to 2.2, and you find that dhcpd
                    399: can't communicate with its clients, you should #define BROKEN_FREEBSD_BPF 
                    400: in site.h and recompile.
                    401: 
                    402: Modern versions of FreeBSD include the ISC DHCP 3.0 client as part of
                    403: the base system, and the full distribution (for the DHCP server and
                    404: relay agent) is available from the Ports Collection in
                    405: /usr/ports/net/isc-dhcp3, or as a package on FreeBSD installation
                    406: CDROMs.
                    407: 
                    408:                               NeXTSTEP
                    409: 
                    410: The NeXTSTEP support uses the NeXTSTEP Berkeley Packet Filter
                    411: extension, which is not included in the base NextStep system.  You
                    412: must install this extension in order to get dhcpd or dhclient to work.
                    413: 
                    414:                               SOLARIS
                    415: 
                    416:                                Solaris 11
                    417: 
                    418: We have integrated a patch from Oracle to use sockets instead of
                    419: DLPI on Solaris 11.  This functionality was written for use with
                    420: Solaris Studio 12.2 and requires the system/header package.
                    421: 
                    422: By default this code is disabled in order to minimize disruptions
                    423: for current users.  In order to enable this code you will need to
                    424: enable both USE_SOCKETS and USE_V4_PKTINFO as part of the
                    425: configuration step.  The command line would be something like:
                    426: 
                    427:          ./configure --enable-use-sockets --enable-ipv4-pktinfo
                    428: 
                    429:                                Other Solaris Items
                    430: 
                    431: One problem which has been observed and is not fixed in this
                    432: patchlevel has to do with using DLPI on Solaris machines.  The symptom
                    433: of this problem is that the DHCP server never receives any requests.
                    434: This has been observed with Solaris 2.6 and Solaris 7 on Intel x86
                    435: systems, although it may occur with other systems as well.  If you
                    436: encounter this symptom, and you are running the DHCP server on a
                    437: machine with a single broadcast network interface, you may wish to
                    438: edit the includes/site.h file and uncomment the #define USE_SOCKETS
                    439: line.  Then type ``make clean; make''.  As an alternative workaround,
                    440: it has been reported that running 'snoop' will cause the dhcp server
                    441: to start receiving packets.  So the practice reported to us is to run
                    442: snoop at dhcpd startup time, with arguments to cause it to receive one
                    443: packet and exit.
                    444: 
                    445:        snoop -c 1 udp port 67 > /dev/null &
                    446: 
                    447: The DHCP client on Solaris will only work with DLPI.  If you run it
                    448: and it just keeps saying it's sending DHCPREQUEST packets, but never
                    449: gets a response, you may be having DLPI trouble as described above.
                    450: If so, we have no solution to offer at this time, aside from the above
                    451: workaround which should also work here.  Also, because Solaris requires
                    452: you to "plumb" an interface before it can be detected by the DHCP client,
                    453: you must either specify the name(s) of the interface(s) you want to
                    454: configure on the command line, or must plumb the interfaces prior to
                    455: invoking the DHCP client.  This can be done with ``ifconfig iface plumb'',
                    456: where iface is the name of the interface (e.g., ``ifconfig hme0 plumb'').
                    457: 
                    458: It should be noted that Solaris versions from 2.6 onward include a
                    459: DHCP client that you can run with ``/sbin/ifconfig iface dhcp start''
                    460: rather than using the ISC DHCP client, including DHCPv6.  Consequently,
                    461: we don't believe there is a need for the client to run on Solaris, and
                    462: have not engineered the needed DHCPv6 modifications for the dhclient-script.
                    463: If you feel this is in error, or have a need, please contact us.
                    464: 
                    465:                                AIX
                    466: 
                    467: The AIX support uses the BSD socket API, which cannot differentiate on
                    468: which network interface a broadcast packet was received; thus the DHCP
                    469: server and relay will work only on a single interface.  (They do work
                    470: on multi-interface machines if configured to listen on only one of the
                    471: interfaces.)
                    472: 
                    473: We have reports of Windows XP clients having difficutly retrieving
                    474: addresses from a server running on an AIX machine.  This issue
                    475: was traced to the client requiring messages be sent to the all ones
                    476: broadcast address (255.255.255.255) while the AIX server was sending 
                    477: to 192.168.0.255.
                    478: 
                    479: You may be able to solve this by including a relay between the client
                    480: and server with the relay configured to use a broadcast of all-ones.
                    481: 
                    482: A second option that worked for AIX 5.1 but doesn't seem to work for
                    483: AIX 5.3 was to:
                    484:        create a host file entry for all-ones (255.255.255.255)
                    485: and then add a route:
                    486:        route add -host all-ones -interface <local-ip-address>
                    487: 
                    488: The ISC DHCP distribution does not include a dhclient-script for AIX--
                    489: AIX comes with a DHCP client.  Contribution of a working dhclient-script
                    490: for AIX would be welcome.
                    491: 
                    492: 
                    493:                               MacOS X
                    494: 
                    495: The MacOS X system uses a TCP/IP stack derived from FreeBSD with a
                    496: user-friendly interface named the System Configuration Framework.
                    497: As it includes a builtin DHCPv4 client (you are better just using that),
                    498: this text is only about the DHCPv6 client (``dhclient -6 ...'').  The DNS
                    499: configuration (domain search list and name servers' addresses) is managed
                    500: by a System Configuration agent, not by /etc/resolv.conf (which is a link
                    501: to /var/run/resolv.conf, which itself only reflects the internal state;
                    502: the System Configuration framework's Dynamic Store).
                    503: 
                    504: This means that modifying resolv.conf directly doesn't have the
                    505: intended effect, instead the macos script sample creates its own
                    506: resolv.conf.dhclient6 in /var/run, and inserts the contents of this
                    507: file into the Dynamic Store.
                    508: 
                    509: When updating the address configuration the System Configuration
                    510: framework expects the prefix and a default router along with the
                    511: configured address. As this extra information is not available via
                    512: the DHCPv6 protocol the System Configuration framework isn't usable
                    513: for address configuration, instead ifconfig is used directly.
                    514: 
                    515: Note the Dynamic Store (from which /var/run/resolv.conf is built) is
                    516: recomputed from scratch when the current location/set is changed.
                    517: Running the dhclient-script reinstalls the resolv.conf.dhclient6
                    518: configuration.
                    519: 
                    520:                               SUPPORT
                    521: 
                    522: The Internet Systems Consortium DHCP server is developed and distributed
                    523: by ISC in the public trust, thanks to the generous donations of its
                    524: sponsors.  ISC now also offers commercial quality support contracts for
                    525: ISC DHCP, more information about ISC Support Contracts can be found at
                    526: the following URL:
                    527: 
                    528:        https://www.isc.org/services/support/
                    529: 
                    530: Please understand that we may not respond to support inquiries unless
                    531: you have a support contract.  ISC will continue its practice of always
                    532: responding to critical items that effect the entire community, and
                    533: responding to all other requests for support upon ISC's mailing lists
                    534: on a best-effort basis.
                    535: 
                    536: However, ISC DHCP has attracted a fairly sizable following on the
                    537: Internet, which means that there are a lot of knowledgeable users who
                    538: may be able to help you if you get stuck.  These people generally
                    539: read the dhcp-users@isc.org mailing list.  Be sure to provide as much
                    540: detail in your query as possible.
                    541: 
                    542: If you are going to use ISC DHCP, you should probably subscribe to
                    543: the dhcp-users or dhcp-announce mailing lists.
                    544: 
                    545: WHERE TO SEND FEATURE REQUESTS: We like to hear your feedback.  We may
                    546: not respond to it all the time, but we do read it.  If ISC DHCP doesn't
                    547: work well for you, or you have an idea that would improve it for your
                    548: use, please send your suggestion to dhcp-suggest@isc.org.  This is also
                    549: an excellent place to send patches that add new features.
                    550: 
                    551: WHERE TO REPORT BUGS: If you want the act of sending in a bug report
                    552: to result in you getting help in the form of a fixed piece of
                    553: software, you are asking for help.  Your bug report is helpful to us,
                    554: but fundamentally you are making a support request, so please use the
                    555: addresses described in the previous paragraphs.  If you are _sure_ that
                    556: your problem is a bug, and not user error, or if your bug report
                    557: includes a patch, you can send it to our ticketing system at
                    558: dhcp-bugs@isc.org.  If you have not received a notice that the ticket
                    559: has been resolved, then we're still working on it.
                    560: 
                    561: PLEASE DO NOT REPORT BUGS IN OLD SOFTWARE RELEASES!  Fetch the latest
                    562: release and see if the bug is still in that version of the software,
                    563: and if it's not, _then_ report it.  ISC release versions always have
                    564: three numbers, for example: 1.2.3.  The 'major release' is 1 here,
                    565: the 'minor release' is 2, and the 'maintenance release' is 3.  ISC
                    566: will accept bug reports against the most recent two major.minor
                    567: releases: for example, 1.0.0 and 0.9.0, but not 0.8.* or prior.
                    568: 
                    569: PLEASE take a moment to determine where the ISC DHCP distribution
                    570: that you're using came from.  ISC DHCP is sometimes heavily modified
                    571: by integrators in various operating systems - it's not that we
                    572: feel that our software is perfect and incapable of having bugs, but
                    573: rather that it is very frustrating to find out after many days trying
                    574: to help someone that the sources you're looking at aren't what they're
                    575: running.  When in doubt, please retrieve the source distribution from
                    576: ISC's web page and install it.
                    577: 
                    578:                HOW TO REPORT BUGS OR REQUEST HELP
                    579: 
                    580: When you report bugs or ask for help, please provide us complete
                    581: information.  A list of information we need follows.  Please read it
                    582: carefully, and put all the information you can into your initial bug
                    583: report.  This will save us a great deal of time and more informative
                    584: bug reports are more likely to get handled more quickly overall.
                    585: 
                    586:       1.  The specific operating system name and version of the
                    587:           machine on which the DHCP server or client is running.
                    588:       2.  The specific operating system name and version of the
                    589:           machine on which the client is running, if you are having
                    590:           trouble getting a client working with the server.
                    591:       3.  If you're running Linux, the version number we care about is
                    592:           the kernel version and maybe the library version, not the
                    593:           distribution version - e.g., while we don't mind knowing
                    594:           that you're running Redhat version mumble.foo, we must know
                    595:           what kernel version you're running, and it helps if you can
                    596:           tell us what version of the C library you're running,
                    597:           although if you don't know that off the top of your head it
                    598:           may be hard for you to figure it out, so don't go crazy
                    599:           trying.
                    600:       4.  The specific version of the DHCP distribution you're
                    601:           running, as reported by dhcpd -t.
                    602:       5.  Please explain the problem carefully, thinking through what
                    603:           you're saying to ensure that you don't assume we know
                    604:           something about your situation that we don't know.
                    605:       6.  Include your dhcpd.conf and dhcpd.leases file as MIME attachments
                    606:          if they're not over 100 kilobytes in size each.  If they are
                    607:          this large, please make them available to us eg via a hidden
                    608:          http:// URL or FTP site.  If you're not comfortable releasing
                    609:          this information due to sensitive contents, you may encrypt
                    610:          the file to our release signing key, available on our website.
                    611:       7.  Include a log of your server or client running until it
                    612:           encounters the problem - for example, if you are having
                    613:           trouble getting some client to get an address, restart the
                    614:           server with the -d flag and then restart the client, and
                    615:           send us what the server prints.   Likewise, with the client,
                    616:           include the output of the client as it fails to get an
                    617:           address or otherwise does the wrong thing.   Do not leave
                    618:           out parts of the output that you think aren't interesting.
                    619:       8.  If the client or server is dumping core, please run the
                    620:           debugger and get a stack trace, and include that in your
                    621:           bug report.   For example, if your debugger is gdb, do the
                    622:           following:
                    623: 
                    624:                gdb dhcpd dhcpd.core
                    625:                (gdb) where
                    626:                      [...]
                    627:                (gdb) quit
                    628: 
                    629:          This assumes that it's the dhcp server you're debugging, and
                    630:          that the core file is in dhcpd.core.
                    631: 
                    632: Please see https://www.isc.org/software/dhcp/ for details on how to subscribe
                    633: to the ISC DHCP mailing lists.
                    634: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>