📄 readme
字号:
Internet Systems Consortium DHCP Distribution Version 3.0.1 July 14, 2004 README FILEYou should read this file carefully before trying to install or usethe ISC DHCP Distribution. TABLE OF CONTENTS 1 WHERE TO FIND DOCUMENTATION 2 RELEASE STATUS 3 BUILDING THE DHCP DISTRIBUTION 3.1 UNPACKING IT 3.2 CONFIGURING IT 3.2.1 DYNAMIC DNS UPDATES 3.2.2 LOCALLY DEFINED OPTIONS 3.3 BUILDING IT 4 INSTALLING THE DHCP DISTRIBUTION 5 USING THE DHCP DISTRIBUTION 5.1 FIREWALL RULES 5.2 LINUX 5.2.1 IF_TR.H NOT FOUND 5.2.2 SO_ATTACH_FILTER UNDECLARED 5.2.3 PROTOCOL NOT CONFIGURED 5.2.4 BROADCAST 5.2.6 IP BOOTP AGENT 5.2.7 MULTIPLE INTERFACES 5.3 SCO 5.4 HP-UX 5.5 ULTRIX 5.6 FreeBSD 5.7 NeXTSTEP 5.8 SOLARIS 6 SUPPORT 6.1 HOW TO REPORT BUGS WHERE TO FIND DOCUMENTATIONDocumentation for this software includes this README file, theRELNOTES file, and the manual pages, which are in the server, common,client and relay subdirectories. The README file (this file) includeslate-breaking operational and system-specific information that youshould read even if you don't want to read the manual pages, and thatyou should *certainly* read if you run into trouble. Internetstandards relating to the DHCP protocol are stored in the docsubdirectory. You will have the best luck reading the manual pages ifyou build this software and then install it, although you can readthem directly out of the distribution if you need to.DHCP server documentation is in the dhcpd man page. Information aboutthe DHCP server lease database is in the dhcpd.leases man page.Server configuration documentation is in the dhcpd.conf man page aswell as the dhcp-options man page. A sample DHCP serverconfiguration is in the file server/dhcpd.conf. The source for thedhcpd, dhcpd.leases and dhcpd.conf man pages is in the server/ sub-directory in the distribution. The source for the dhcp-options.5man page is in the common/ subdirectory.DHCP Client documentation is in the dhclient man page. DHCP clientconfiguration documentation is in the dhclient.conf man page and thedhcp-options man page. The DHCP client configuration script isdocumented in the dhclient-script man page. The format of the DHCPclient lease database is documented in the dhclient.leases man page.The source for all these man pages is in the client/ subdirectory inthe distribution. In addition, the dhcp-options man page should bereferred to for information about DHCP options.DHCP relay agent documentation is in the dhcrelay man page, the sourcefor which is distributed in the relay/ subdirectory.To read installed manual pages, use the man command. Type "man page"where page is the name of the manual page. This will only work ifyou have installed the ISC DHCP distribution using the ``make install''command (described later).If you want to read manual pages that aren't installed, you can type``nroff -man page |more'' where page is the filename of theunformatted manual page. The filename of an unformatted manual pageis the name of the manual page, followed by '.', followed by somenumber - 5 for documentation about files, and 8 for documentationabout programs. For example, to read the dhcp-options man page,you would type ``nroff -man common/dhcp-options.5 |more'', assumingyour current working directory is the top level directory of the ISCDHCP Distribution.If you do not have the nroff command, you can type ``more catpage''where catpage is the filename of the catted man page. Catted manpages names are the name of the manual page followed by ".cat"followed by 5 or 8, as with unformatted manual pages.Please note that until you install the manual pages, the pathnames offiles to which they refer will not be correct for your operatingsystem. RELEASE STATUSThis is release version 3.0.1 of the ISC DHCP Distribution. In this release, the server and relay agent are currently fullyfunctional on NetBSD, Linux systems with kernel version 2.2 or later,FreeBSD, OpenBSD, BSD/OS, Digital Tru64 Unix and Solaris. The softwarewill also run on HP-UX, but only supports a single network interface.Ports also exist for QNX, SCO, NeXTStep, and MacOS X, but are not inwide use, with all that implies. We are not aware of an easy way toget this software running on HP-UX.The DHCP client currently only knows how to configure the network onNetBSD, FreeBSD, OpenBSD, BSD/os, Linux, Solaris and NextStep. Theclient depends on a system-dependent shell script to do networkconfiguration - support for other operating systems is simply a matterof porting this shell script to the new platform.If you are running the DHCP distribution on a machine which is afirewall, or if there is a firewall between your DHCP server(s) andDHCP clients, please read the section on firewalls which appears laterin this document.If you wish to run the DHCP Distribution on Linux, please see theLinux-specific notes later in this document. If you wish to run on anSCO release, please see the SCO-specific notes later in this document.You particularly need to read these notes if you intend to supportWindows 95 clients. If you are running a version of FreeBSD prior to2.2, please read the note on FreeBSD. If you are running HP-UX orUltrix, please read the notes for those operating systems below. Ifyou are running NeXTSTEP, please see the notes on NeXTSTEP below.If you start dhcpd and get a message, "no free bpf", that means youneed to configure the Berkeley Packet Filter into your operatingsystem kernel. On NetBSD, FreeBSD and BSD/os, type ``man bpf'' forinformation. On Digital Unix, type ``man pfilt''. BUILDING THE DHCP DISTRIBUTION UNPACKING ITTo build the DHCP Distribution, unpack the compressed tar file usingthe tar utility and the gzip command - type something like: zcat dhcp-3.0.1.tar.gz |tar xvf -On BSD/OS, you have to type gzcat, not zcat, and you may run intosimilar problems on other operating systems. CONFIGURING ITNow, cd to the dhcp-3.0.1 subdirectory that you've just created andconfigure the source tree by typing: ./configureIf the configure utility can figure out what sort of system you'rerunning on, it will create a custom Makefile for you for thatsystem; otherwise, it will complain. If it can't figure out whatsystem you are using, that system is not supported - you are onyour own. DYNAMIC DNS UPDATESA fully-featured implementation of dynamic DNS updates is included inthis release. There are no build dependencies with any BIND version- this version can and should just use the resolver in your C library.There is documentation for the DDNS support in the dhcpd.conf manualpage - see the beginning of this document for information on findingmanual pages. LOCALLY DEFINED OPTIONSIn previous versions of the DHCP server there was a mechanism wherebyoptions that were not known by the server could be configured usinga name made up of the option code number and an identifier:"option-nnn" This is no longer supported, because it is not future-proof. Instead, if you want to use an option that the server doesn'tknow about, you must explicitly define it using the method describedin the dhcp-options man page under the DEFINING NEW OPTIONS heading. BUILDING ITOnce you've run configure, just type ``make'', and after a whileyou should have a dhcp server. If you get compile errors on oneof the supported systems mentioned earlier, please let us know.If you get warnings, it's not likely to be a problem - the DHCPserver compiles completely warning-free on as many architecturesas we can manage, but there are a few for which this is difficult.If you get errors on a system not mentioned above, you will needto do some programming or debugging on your own to get the DHCPDistribution working. INSTALLING THE DHCP DISTRIBUTIONOnce you have successfully gotten the DHCP Distribution to build, youcan install it by typing ``make install''. If you already have an oldversion of the DHCP Distribution installed, you may want to save itbefore typing ``make install''. USING THE DHCP DISTRIBUTION FIREWALL RULESIf you are running the DHCP server or client on a computer that's alsoacting as a firewall, you must be sure to allow DHCP packets throughthe firewall. In particular, your firewall rules _must_ allow packetsfrom IP address 0.0.0.0 to IP address 255.255.255.255 from UDP port 68to UDP port 67 through. They must also allow packets from your localfirewall's IP address and UDP port 67 through to any address your DHCPserver might serve on UDP port 68. Finally, packets from relay agentson port 67 to the DHCP server on port 67, and vice versa, must bepermitted.We have noticed that on some systems where we are using a packetfilter, if you set up a firewall that blocks UDP port 67 and 68entirely, packets sent through the packet filter will not be blocked.However, unicast packets will be blocked. This can result in strangebehaviour, particularly on DHCP clients, where the initial packetexchange is broadcast, but renewals are unicast - the client willappear to be unable to renew until it starts broadcasting itsrenewals, and then suddenly it'll work. The fix is to fix thefirewall rules as described above. PARTIAL SERVERSIf you have a server that is connected to two networks, and you onlywant to provide DHCP service on one of those networks (e.g., you areusing a cable modem and have set up a NAT router), if you don't writeany subnet declaration for the network you aren't supporting, the DHCPserver will ignore input on that network interface if it can. If itcan't, it will refuse to run - some operating systems do not have thecapability of supporting DHCP on machines with more than oneinterface, and ironically this is the case even if you don't want toprovide DHCP service on one of those interfaces. LINUXThere are three big LINUX issues: the all-ones broadcast address,Linux 2.1 ip_bootp_agent enabling, and operations with more than onenetwork interface. There are also two potential compilation/runtimeproblems for Linux 2.1/2.2: the "SO_ATTACH_FILTER undeclared" problemand the "protocol not configured" problem. LINUX: SO_ATTACH_FILTER UNDECLAREDIn addition, there is a minor issue that we will mention here becausethis release is so close on the heels of the Linux 2.2 release: thereis a symlink in /usr/include that points at the linux asm headers. Itappears to be not uncommon that this link won't be updated correctly,in which case you'll get the following error when you try to build: lpf.c: In function `if_register_receive': lpf.c:152: `SO_ATTACH_FILTER' undeclared (first use this function) lpf.c:152: (Each undeclared identifier is reported only once lpf.c:152: for each function it appears in.)The line numbers may be different, of course. If you see thisheader, your linux asm header link is probably bad, and you shouldmake sure it's pointing to correct linux source directory. LINUX: PROTOCOL NOT CONFIGUREDOne additional Linux 2.1/2.2 issue: if you get the following message,it's because your kernel doesn't have the linux packetfilter or rawpacket socket configured: Make sure CONFIG_PACKET (Packet socket) and CONFIG_FILTER (Socket Filtering) are enabled in your kernel configurationIf this happens, you need to configure your Linux kernel to supportSocket Filtering and the Packet socket. You can do this by typing``make config'', ``make menuconfig'' or ``make xconfig'', and thenenabling the Packet socket and Socket Filtering options that you'llsee displayed on the menu or in the questionnaire. You can also edityour linux kernel .config file directly: set CONFIG_FILTER=y andCONFIG_PACKET=y. If you do this, make sure you run ``make oldconfig''afterwards, so that the changes you've made are propogated to thekernel header files. After you've reconfigured, you need to type``make'' to build a new Linux kernel, and then install it in theappropriate place (probably /linux). Make sure to save a copy of yourold /linux.If the preceding paragraph made no sense to you, ask your Linuxvendor/guru for help - please don't ask us.If you set CONFIG_PACKET=m or CONFIG_FILTER=m, then you must tell thekernel module loader to load the appropriate modules. If this doesn'tmake sense to you, don't use CONFIG_whatever=m - use CONFIG_whatever=y. Don't ask for help with this on the DHCP mailing list - it's a Linuxkernel issue. This is probably not a problem with the most recentLinux 2.2.x kernels. LINUX: BROADCASTIf you are running a recent version of Linux, this won't be a problem,but on older versions of Linux (kernel versions prior to 2.2), thereis a potential problem with the broadcast address being sentincorrectly.In order for dhcpd to work correctly with picky DHCP clients (e.g.,Windows 95), it must be able to send packets with an IP destinationaddress of 255.255.255.255. Unfortunately, Linux changes an IPdestination of 255.255.255.255 into the local subnet broadcast address(here, that's 192.5.5.223).This isn't generally a problem on Linux 2.2 and later kernels, sincewe completely bypass the Linux IP stack, but on old versions of Linux2.1 and all versions of Linux prior to 2.1, it is a problem - pickierDHCP clients connected to the same network as the ISC DHCP server orISC relay agent will not see messages from the DHCP server. It *is*possible to run into trouble with this on Linux 2.2 and later if youare running a verson of the DHCP server that was compiled on a Linux2.0 system, though.It is possible to work around this problem on some versions of Linuxby creating a host route from your network interface address to255.255.255.255. The command you need to use to do this on Linuxvaries from version to version. The easiest version is: route add -host 255.255.255.255 dev eth0On some older Linux systems, you will get an error if you try to do
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -