Annotation of embedaddon/dhcp/README, revision 1.1

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

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