home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-06-13 | 28.2 KB | 1,123 lines |
- DHCP mini-HOWTO (DHCPd/DHCPcd)
- Vladimir Vuksan, vuksan@veus.hr
- v4.2, 11 June 1999
-
- This document attempts to answer basic questions on how to setup your
- Linux box to serve as a DHCP server or a DHCP client.
- ______________________________________________________________________
-
- Table of Contents
-
-
- 1. Introduction
-
- 1.1 Standard Disclaimer
- 1.2 New Versions of this Document
- 1.3 Feedback
- 1.4 Contributors
- 1.5 Copyright Information
-
- 2. DHCP protocol
-
- 3. Client Setup
-
- 3.1 Downloading Client Daemon
- 3.2 Slackware
- 3.3 RedHat 5.x and RedHat 6.x
- 3.4 RedHat 4.x and Caldera OpenLinux 1.1/1.2
- 3.5 Debian
- 3.6 LinuxPPC and MkLinux
- 3.7 Token Ring networks
- 3.8 Tying it all together
- 3.9 Various notes
- 3.10 Troubleshooting
-
- 4. DHCP Server Setup
-
- 4.1 DHCP server for UNIX
- 4.2 Network Configuration.
- 4.3 Options for DHCPd
- 4.4 Starting the server
-
-
- ______________________________________________________________________
-
-
-
- 1. Introduction
-
-
-
-
- 1.1. Standard Disclaimer
-
- No liability for the contents of this documents can be accepted. Use
- the concepts, examples and other content at your own risk. As this is
- a new edition of this document, there may be errors and inaccuracies,
- that may of course be damaging to your system. Proceed with caution,
- and although this is highly unlikely, I don't take any responsibility
- for that.
-
- Also bear in mind that this is NOT official information. Much content
- in this document are assumptions, which appear to work for people. Use
- the information at your own risk.
-
-
-
- 1.2. New Versions of this Document
-
- New versions of this document will be periodically posted to
- comp.os.linux.answers. They will also be added to the various
- anonymous FTP sites who archive such information, including:
-
- ftp://metalab.unc.edu/pub/Linux/docs/HOWTO
-
- In addition, you should generally be able to find this document on the
- Linux Documentation Project page via:
-
- http://metalab.unc.edu/LDP/
-
-
-
- Chinese version of the HOWTO can be found at:
-
-
-
- http://www.linux.org.tw/CLDP/mini/DHCP.html
-
-
-
- Permission is hereby granted to all individuals who want to translate
- the document into their own language. I would only ask that you
- provide a link back to this document.
-
-
-
- 1.3. Feedback
-
- Feedback is most certaintly welcome for this document. Without your
- submissions and input, this document wouldn't exist. So, please post
- your additions, comments and criticisms to vuksan@veus.hr.
-
-
-
- 1.4. Contributors
-
- This document has been modified from the original version by Paul
- Makeev.
-
- The following people have contributed to this mini-HOWTO.
-
- ╖ Heiko Schlittermann
-
- ╖ Jonathan Smith
-
- ╖ Dan Khabaza
-
- ╖ Hal Sadofsky
-
- ╖ Henrik Stoerner
-
- ╖ Paul Rossington
-
-
-
- 1.5. Copyright Information
-
- This document is copyrighted (c)1998 Vladimir Vuksan and distributed
- under the following terms:
-
-
-
-
- ╖ Linux HOWTO documents may be reproduced and distributed in whole or
- in part, in any medium physical or electronic, as long as this
- copyright notice is retained on all copies. Commercial
- redistribution is allowed and encouraged; however, the author would
- like to be notified of any such distributions.
-
- ╖ All translations, derivative works, or aggregate works
- incorporating any Linux HOWTO documents must be covered under this
- copyright notice. That is, you may not produce a derivative work
- from a HOWTO and impose additional restrictions on its
- distribution. Exceptions to these rules may be granted under
- certain conditions; please contact the Linux HOWTO coordinator at
- the address given below.
-
- ╖ If you have questions, please contact the Linux HOWTO coordinator
- at
-
- linux-howto@metalab.unc.edu
-
-
-
-
- 2. DHCP protocol
-
-
- DHCP is Dynamic Host Configuration Protocol. It is used to control
- vital networking parameters of hosts (running clients) with the help
- of a server. DHCP is backward compatible with BOOTP. For more
- information see RFC 2131 (old RFC 1531) and other. (See Internet
- Resources section at the end of the document). You can also read DHCP
- FAQ (http://web.syr.edu/ jmwobus/comfaqs/dhcp.faq.html).
-
-
- This mini-HOWTO covers both the DHCP _SERVER_ daemon as well as DHCP
- _CLIENT_ daemon. Most people need the client daemon which is used by
- workstations to obtain network information from a remote server. The
- server daemon is used by system administrators to distribute network
- information to clients so if you are just a regular user you need the
- _CLIENT_ daemon.
-
-
- 3. Client Setup
-
- 3.1. Downloading Client Daemon
-
-
- 2.0.x kernels
-
-
- No matter what distribution you are using you will need to download
- the DHCP client daemon for Linux. The package you need to download is
- called dhcpcd and the current version is 0.70. You can read the
- description of the package here.
- (ftp://metalab.unc.edu/pub/Linux/system/network/daemons/dhcpcd-0.70.lsm)
-
-
-
- 2.2.x kernels
-
-
-
- Due to changes in ipv4 network package in 2.1.x and 2.2.x kernels
- (e.g. way it sets the defaults for several fields) dhcpcd doesn't
- work properly. Unless you are using RedHat 6.x (which comes with
- dhcpcd 1.3.x and 2.2.x kernel) you will need to download an
- alternative version of dhcpcd (1.3.x) which is a modified version
- that has been written by Sergei Viznyuk sergei@phystech.com in order
- to avoid mentioned problems. You can download it at:
-
-
-
-
- ╖ ftp://phystech.dyn.ml.org/pub/
-
- ╖ http://www.cps.msu.edu/~dunham/out/dhcpcd-1.3.6.tar.gz
-
-
-
- Then follow the instructions. They should be the same.
-
-
- 3.2. Slackware
-
-
- You can download the latest copy of the DHCPcd from any Metalab mirror
- or following:
-
-
- ╖
-
- ╖
-
- ╖ (Primary site in Japan)
-
-
-
- Download the latest version of dhcpcd.tar.gz
-
-
- ╖ Unpack it
-
-
-
- tar -zxvf dhcpcd-0.70.tar.gz
-
-
- ╖ cd into the directory and make dhcpcd
-
-
- cd dhcpcd-0.70
-
- make
-
-
- ╖ Install it (you have to run the following command as root)
-
-
- make install
-
-
- This will create the directory /etc/dhcpc where DHCPcd will store the
- DHCP information and dhcpcd file will be copied into /usr/sbin.
-
- In order to make the system initialize using DHCP during boot type:
-
- cd /etc/rc.d
-
- mv rc.inet1 rc.inet1.OLD
-
-
- This will move the old network initialization script into
- rc.inet1.OLD. You now need to create the new rc.inet1 script.
- Following code is all you need:
-
-
- ______________________________________________________________________
- #!/bin/sh
- #
- # rc.inet1 This shell script boots up the base INET system.
-
- HOSTNAME=`cat /etc/HOSTNAME` #This is probably not necessary but I
- #will leave it in anyways
-
- # Attach the loopback device.
- /sbin/ifconfig lo 127.0.0.1
- /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
-
- # IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to configure the
- # eth0 interface. If you're only using loopback or SLIP, don't include the
- # rest of the lines in this file.
-
- /usr/sbin/dhcpcd
- ______________________________________________________________________
-
-
-
- Save it and reboot your computer.
-
-
-
- When you are finished go the ``last step''
-
-
- 3.3. RedHat 5.x and RedHat 6.x
-
-
- DHCPcd configuration under RedHat 5.0+ is really easy. All you need to
- do is start the Control Panel by typing
-
-
-
- control-panel
-
-
-
-
- ╖ Select "Network Configuration"
-
- ╖ Click on Interfaces
-
- ╖ Click Add
-
- ╖ Select Ethernet
-
- ╖ In the Edit Ethernet/Bus Interface select "Activate interface at
- boot time" as well as select DHCP as Interface configuration
- protocol
-
-
-
- When you are finished go the ``last step''
-
-
-
- 3.4. RedHat 4.x and Caldera OpenLinux 1.1/1.2
-
-
-
- DHCPcd is included in the standard RedHat distribution as an RPM and
- you can find it on your distribution's CD-ROM in RPMS directory or you
- can download it from:
-
-
-
-
-
- and install it with
-
- rpm -i dhcpcd-0.6-2.i386.rpm
-
-
-
- Alternatively you can compile your own version by following the steps
- outlined in the Slackware.
-
-
-
- This information was provided to me by nothing nothing@cc.gatech.edu
-
-
- ______________________________________________________________________
- Removed my static ip and name from /etc/resolv.conf. However, I
- did leave in the search line and my two nameserver lines (for some reason my
- dhcpcd never creates a /etc/dhcpc/resolv.conf, so I have to use a static
- /etc/resolv.conf).
-
- In /etc/sysconfig/network I removed the HOSTNAME and GATEWAY
- entries. I left the other entries as is
- (NETWORKING, DOMAINNAME, GATEWAYDEV).
-
- In /etc/sysconfig/network-scripts/ifcfg-eth0 I removed the IPADDR,
- NETMASK, NETWORK, and BROADCAST entries. I left DEVICE and ONBOOT as is.
- I changed the BOOTPROTO line to BOOTPROTO=dhcp.
-
- Save the file. Reboot your computer.
- ______________________________________________________________________
-
-
-
- When you are finished go the ``last step''
-
-
-
- 3.5. Debian
-
-
- There is a deb package of DHCPcd at
-
-
-
-
-
- or you can follow the Slackware installation instructions. To unpack
- the deb package type
-
- dpkg -i /where/ever/your/debian/packages/are/dhcpd*deb
-
-
-
- It appears that there isn't a need for any DHCPcd configuration
- because:
-
- From: Heiko Schlittermann (heiko@os.inf.tu-dresden.de)
-
- The dhcpcd package installs it's startup script as usual for debian
- packages in /etc/init.d/<package_name>, here as /etc/init.d/dhcpcd,
- and links this to the various /etc/rc?.d/ directories.
-
-
-
- The contents of the /etc/rc?.d/ dirs is then executed at boot time.
-
-
-
- If you don't reboot after installing you should consider starting the
- daemon manually:
-
-
- /etc/init.d/dhcpcd start
-
-
- When you are finished go the ``last step''
-
-
- 3.6. LinuxPPC and MkLinux
-
-
- Following section has been written by R. Shapiro
-
-
-
- Versions 0.65 and 0.70 of Yoichi Hariguchi's dhcpcd should work
- properly in MkLinux and in linuxppc kernel 2.1.24, with the following
- caveats:
-
-
-
- * If you want, or need, to build the executable from sources, note
- that the ppc linux compilers assume that 'char' is 'unsigned char'
- while the Hariguchi sources assume 'char' is 'signed char'. To build
- from sources you must edit the Makefile so that CFLAGS includes the
- option "-fsigned-char".
-
-
-
- * The current stable release of linuxppc [aka linux-pmac] is 2.1.24
- and requires the
-
- 2.1 patch (http://www.cro.net/ vuksan/dhcppatch). Both the DR2.1 and
- DR3.0 releases of MkLinux use a 2.0 kernel (2.0.33) and do not require
- this patch, although it's harmless to apply it. Note that the dhcpcd
- rpm on the linuxppc cd-rom does not include the 2.1 patch and
- therefore will not work with the linux on that cd! It will work with
- MkLinux however.
-
-
- * In linuxppc 2.1.24, you'll see a router warning shortly after dhcpcd
- starts up. You can ignore this.
-
-
-
- * The Hariguchi dhcpcd takes awhile, about 30 seconds, to make its
- initial connection to the server and to set up routing. In linuxppc
- 2.1.24, the warning mentioned above is an indication that the routing
- is ready.
-
-
-
- For later linuxppc kernels, no version of the Hariguchi dhcpcd will
- work: you must use Sergei Viznyuk's version instead (current release
- is 1.3.9: see above for url). Unfortunately the Viznyuk dhcpcd is
- written for glibc 2, which linuxppc 2.1.1xx isn't. As a result,
- compiling it is a bit tricky - contact me for details. Once compiled,
- however, it works fine on late kernels (and not at all in MkLinux or
- linuxppc 2.1.24).
-
-
-
- As far as Viznyuk's version of dhcpcd is concerned I have a Viznyuk
- dhcpcd (v1.3.7) executable that works in recent linuxppc kernels:
- 2.1.102, 103, 115, and 119 have been tested. It's possible to build
- this from sources, but I don't know the details. The Viznyuk dhcpcd
- doesn't work in 2.1.24, but in that kernel the patched Hariguchi
- dhcpcd works. The Hariguchi dhcpcd can be built easily from sources.
-
-
-
- Short summary:
-
-
-
-
- ______________________________________________________________________
- MkLinux: Hariguchi: yes; Viznyuk, no
- 2.1.24: Hariguchi: yes if patched (easy to build); Viznyuk: no
- 2.1.102+: Hariguchi: no; Viznyuk: yes (tricky to build)
- ______________________________________________________________________
-
-
-
-
-
- Note that the Viznyuk dhcpcd writes into /etc/resolv.conf directly
- (after renaming the existing one), so there's no need to copy or link
- it from /etc/dhcpc. Also note that it's typically installed into
- /sbin, not /usr/sbin, and that the command lines options are slightly
- different from the Hariguchi version. These differences may require
- small changes to ifup, if you're starting dhcpcd that way.
-
-
-
-
- If you want a precompiled dhcpcd for linuxppc, send mail to
-
-
-
- reshapiro@mediaone.net.
-
- I've also made binary RPMs available in
-
-
-
-
- Don't use dhcpcd-1.3.8-2.ppc.rpm in that directory, it's broken. The
- reliable versions here are dhcpcd-0.70-0.ppc.rpm (for linuxppc
- 2.1.24), and dhcpcd-1.3.8-3.ppc.rpm (linuxppc 2.1.102 and up). An rpm
- for 1.3.9 should show up shortly. I also have a modified 1.3.9 which
- includes the -c command-file option, as in 0.65 and 0.70 (the standard
- Viznyuk dhcpcd doesn't include this.)
-
-
- 3.7. Token Ring networks
-
-
- If you are trying to run dhcpcd on the Token Ring Network it will not
- work. This is the solution provided to me by Henrik Stoerner
- (henrik_stoerner@olicom.dk)
-
-
-
- The problem is that dhcpcd only knows about Ethernet cards. If it
- finds a Token-Ring card, it refuses to do anything with it and reports
- "interface is not ethernet".
-
-
-
- The solution is to apply a simple patch to the dhcpcd sources. I have
- put up a small web page with the patch, RedHat RPM-files and a
- precompiled binary at
-
-
-
- The patch has been sent to the dhcpcd maintainer, so hopefully it will
- be included in a future release of dhcpcd.
-
-
- 3.8. Tying it all together
-
-
- After your machine reboots your network interface should be
- configured. Type:
-
- ifconfig
-
- You should get something like this
-
-
- ______________________________________________________________________
- lo Link encap:Local Loopback
- inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
- UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
- RX packets:302 errors:0 dropped:0 overruns:0 frame:0
- TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0
-
- eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45
- inet addr:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254.0
- ^^^^^^^^^^^^^^^^^^^^^^^
- UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
- RX packets:24783 errors:1 dropped:1 overruns:0 frame:1
- TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96
- Interrupt:10 Base address:0x300
- ______________________________________________________________________
-
-
-
-
-
- If you have some normal number under inet. addr you are set. If you
- see 0.0.0.0 don't despair, it is a temporary setting before dhcpcd
- acquires the IP address. If even after few minutes you are seeing
- 0.0.0.0 please check out ``troubleshooting''. DHCPcd is a daemon and
- will stay running as long as you have your machine on. Every three
- hours it will contact the DHCP server and try to renew the IP address
- lease. It will log all the messages in the syslog (on Slackware
- /var/adm/syslog, RedHat/OpenLinux /var/log/syslog).
-
- One final thing. You need to specify your nameservers. There are two
- ways to do it, you can either ask your provider to provide you with
- the addresses of your name server and then put those in the
- /etc/resolv.conf or DHCPcd will obtain the list from the DHCP server
- and will build a resolv.conf in /etc/dhcpc. I decided to use DHCPcds
- resolv.conf by doing the following:
- Back up your old /etc/resolv.conf
-
- mv /etc/resolv.conf /etc/resolv.conf.OLD
-
- If directory /etc/dhcpc doesn't exist create it
-
- mkdir /etc/dhcpc
-
- Make a link from /etc/dhcpc/resolv.conf to /etc/resolv.conf
-
- ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
-
-
- If that doesn't work try this (fix suggested by nothing@cc.gatech.edu
- with a little amendment by Henrik Stoerner)
-
-
-
-
- This last step I had to perform only because my dhcpcd doesn't create
- an /etc/dhcpc/resolv.conf. In /etc/sysconfig/network-scripts/ifup I
- made the following changes (which are a very poor hack, but they work
- for me):
-
-
-
-
-
- ______________________________________________________________________
- elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
- echo -n "Using DHCP for ${DEVICE}... "
- /sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE}
- echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh
-
- if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
- ^^^^
- echo "failed."
- exit 1
- ______________________________________________________________________
-
-
-
- I changed to:
-
-
- ______________________________________________________________________
- elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
- echo -n "Using DHCP for ${DEVICE}... "
- /sbin/dhcpcd
- echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh
-
- if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
- ^^^^^^
- echo "failed."
- exit 1
- ______________________________________________________________________
-
-
-
-
-
- Notice the ! (bang) in if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ];
-
-
-
-
- Now sit back and enjoy :-).
-
- 3.9. Various notes
-
-
- Following step(s) are not necessary but might be useful to some people
-
- a) If you need network connectivity only occasionally you can start
- dhcpcd from the command line (you have to be root to do this) with:
-
-
- /usr/sbin/dhcpcd
-
- When you need to down (turn off) the network type
-
- /usr/sbin/dhcpcd -k
-
-
-
- 3.10. Troubleshooting
-
-
- If you have followed the steps outlined above and you are unable to
- access the network there are several possible explanations:
-
-
-
- I. Your network card is not configured properly.
-
-
- During the boot up process your Linux will probe your network card and
- should say something along these lines:
-
-
- ______________________________________________________________________
- eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
- 3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
- ______________________________________________________________________
-
-
-
- If a message like this doesn't appear your ethernet card might not be
- recognized by your Linux system. If you have a generic ethernet card
- (a NE2000 clone) you should have received a disk with DOS utilities
- that you can use to set up the card. Try playing with IRQs until Linux
- recognizes your card (IRQ 9,10,12 are usually good).
-
-
-
- II. Your DHCP server supports RFC 1541/My DHCP server is Windows NT
-
-
- Try running dhcpcd by typing
-
- dhcpcd -r
-
- Use ifconfig to check if your network interface is configured (wait
- few seconds for the configuration process, initally it will say
- Inet.addr=0.0.0.0)
-
- If this solves your problem add the "-r" flag to the boot up scripts
- ie. instead of /sbin/dhcpcd you will have /sbin/dhcpcd -r
-
-
-
-
- For example under RedHat edit script /etc/sysconfig/network-
- scripts/ifup and change the following
-
-
- ______________________________________________________________________
- IFNAME=$[ {DEVICE} \
- "/sbin/dhcpcd -r -c /etc/"- etc etc.
- ______________________________________________________________________
-
-
-
-
-
- III. During bootup I get error message "Using DHCP for eth0 ...
- failed" but my system works fine.
-
-
-
- You are most likely using RedHat and you haven't followed instructions
- carefully :-). You are missing the ! (bang) in one of the if
- statements. Jump ``here'' and check how to fix it.
-
-
-
- IV. My network works for few minutes and then stops responding
-
-
-
- There are some reports of gated (gateway daemon) screwing up routing
- on Linux boxes which results in problem described above. Check if
- gated is running
-
-
-
- ps -auxww | grep gate
-
-
-
- If it is try removing it with RedHat's RPM manager or removing the
- entry in /etc/rc.d/
-
-
-
- V. My ethernet card is recognized during boot up but I still get "NO
- DHCPOFFER" message in my logs. I also happen to have a PCMCIA ethernet
- card.
-
-
-
- You need to make sure that you have the 10BaseT port ("phone" plug) on
- your network card activated. Best way to verify it is to check what
- kind of connector your card is configured for during bootup e.g.
-
-
- ______________________________________________________________________
- eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
- ^^^^^^^^^^^^
- 3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
- ______________________________________________________________________
-
-
-
-
-
- I have received reports of laptop users having this kind of problems
- due to the PCMCIA utilities (specifically ifport) that would set the
- connector type to 10Base2 (thinnet). You have to make sure you use
- 10BaseT for your connection. If you are not reconfigure the card and
- restart the computer.
-
-
-
- VI. My DHCP client broadcasts requests but no one answers (Contributed
- by Peter Amstutz)
-
-
-
- On some systems, you need to include some hostname for your machine as
- part of the request. With dhcpcd, do this with 'dhcpcd -h foohost'
- Probably the hostname wanted will be your account username on the
- network.
-
-
-
- VII. I have followed all the steps but still my machine is not able to
- connect
-
-
-
- The cable modem will usually memorize the ethernet address of your
- network card so if you connect a new computer or switch network cards
- you will somehow have to "teach" your cable modem to recognize the new
- computer/card. Usually you can turn of the modem and bring it back up
- while computer is on or you will have to call tech support and tell
- them that you have changed a network card in the computer.
-
-
-
- You have firewall rules (ipfwadm rules) that disallow port 67/68
- traffic used by DHCP to distribute configuration info. Check your
- firewall rules carefully.
-
-
-
- VIII. I have MediaOne Express service and I still can't connect.
-
-
-
- It appears that MediaOne has been using adding some things to DHCP
- that shouldn't be there. Supposedly this is not a problem anymore but
- if you experience outages check for these things. If you are (un)lucky
- to have Windows NT on your machine if you go into Event Viewer you
- will see a warning like this.
-
-
- DHCP received an unknown option 067 of length 005. The raw option data
- is given below.
-
- 0000: 62 61 73 69 63 basic
-
-
- If this is the problem go to
-
- and either download a binary or get the source for the change.
-
-
-
-
-
-
-
-
- 4. DHCP Server Setup
-
- 4.1. DHCP server for UNIX
-
- There are several DHCP servers available for U*X-like OSes, both
- commercial and free. One of the more popular free DHCP servers is Paul
- Vixie/ISC DHCPd. Currently the latest version is 2.0 (suggested for
- most users) but 3.0 is in beta testing. You can get them from
-
-
-
-
- RedHat distribution (version 5.2) includes a binary RPM with DHCP
- server. The RPM is called dhcp-2.0b1pl6-2.platform.rpm. To install it
- simply type
-
-
-
- rpm -i dhcp-2.0b1pl6-2.i386.rpm
-
-
-
- You can skip following section if you used this procedure.
-
-
- After you download it you need to unpack it. After you do cd into the
- distribution directory and type:
-
- ./configure
-
- It will take some time to configure the settings. After it is done
- type:
-
- make
-
- and
-
- make install
-
-
-
-
- 4.2. Network Configuration.
-
-
- When done with installation type ifconfig -a. You should see something
- like this:
-
-
-
-
- ______________________________________________________________________
- eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62
- inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0
- UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
- RX packets:2875542 errors:0 dropped:0 overruns:0
- TX packets:218647 errors:0 dropped:0 overruns:0
- Interrupt:11 Base address:0x210
- ______________________________________________________________________
-
-
-
-
-
- If it doesn't say MULTICAST you should reconfigure your kernel and add
- multicast support. On most systems you will not need to do this.
- Next step is to add route for 255.255.255.255. Quoted from DHCPd
- README:
-
-
-
- "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 destination
- address of 255.255.255.255. Unfortunately, Linux insists on changing
- 255.255.255.255 into the local subnet broadcast address (here, that's
- 192.5.5.223). This results in a DHCP protocol violation, and while
- many DHCP clients don't notice the problem, some (e.g., all Microsoft
- DHCP clients) do. Clients that have this problem will appear not to
- see DHCPOFFER messages from the server."
-
-
-
- Type:
-
- route add -host 255.255.255.255 dev eth0
-
- If you get a message
-
- "255.255.255.255: Unknown host"
-
- You should try adding the following entry to your /etc/hosts file:
-
- 255.255.255.255 all-ones
-
- Then, try:
-
- route add -host all-ones dev eth0
-
- or
-
- route add 255.255.255.0 dev eth0
-
- eth0 is of course the name of the network device you are using. If it
- differs change appropriately.
-
-
-
-
- 4.3. Options for DHCPd
-
-
- Now you need to configure DHCPd. In order to do this you will have to
- create or edit /etc/dhcpd.conf.
-
-
-
- Most commonly what you want to do is assign IP addresses randomly.
- This can be done with settings as follows
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ______________________________________________________________________
- default-lease-time 600;
- max-lease-time 7200;
- option subnet-mask 255.255.255.0;
- option broadcast-address 192.168.1.255;
- option routers 192.168.1.254;
- option domain-name-servers 192.168.1.1, 192.168.1.2;
- option domain-name "mydomain.org";
-
- subnet 192.168.1.0 netmask 255.255.255.0 {
- range 192.168.1.10 192.168.1.100;
- range 192.168.1.150 192.168.1.200;
- }
- ______________________________________________________________________
-
-
-
-
-
- This will result in DHCP server giving a client an IP address from the
- range 192.168.1.10-192.168.1.100 or 192.168.1.150-192.168.1.200. It
- will lease an IP address for 600 seconds if the client doesn't ask for
- specific time frame. Otherwise the maximum (allowed) lease will be
- 7200 seconds. The server will also "advise" the client that it should
- use 255.255.255.0 as its subnet mask, 192.168.1.255 as its broadcast
- address, 192.168.1.254 as the router/gateway and 192.168.1.1 and
- 192.168.1.2 as its DNS servers.
-
-
-
- You can also assign specific IP addresses based on clients ethernet
- address e.g.
-
-
- ______________________________________________________________________
- host haagen {
- hardware ethernet 08:00:2b:4c:59:23;
- fixed-address 192.168.1.222;
- }
- ______________________________________________________________________
-
-
-
-
-
- This will assign IP address 192.168.1.222 to a client with ethernet
- address 08:00:2b:4c:59:23.
-
-
-
- You can also mix and match e.g. you can have certain clients getting
- "static" IP addresses (e.g. servers) and others being alloted dynamic
- IPs (e.g. mobile users with laptops). There are a number of other
- options e.g. wins server addresses, time server etc., if you need any
- of those options please read the dhcpd.conf man page.
-
-
-
-
- 4.4. Starting the server
-
-
- There is only one thing to do before starting the server. In most
- cases DHCP installation doesn't create a dhcp.leases files. This file
- is used by DHCPd to store information about current leases. It is in
- the plain text form so you can view it during the operation of DHCPd.
- To create dhcp.leases type
-
- touch /etc/dhcp.leases
-
- on the command line. This will create an empty file (file size = 0).
- You do not need to make any changes to it it should be empty. If you
- get a message saying that file exists simply ignore it and go to the
- next step.
-
-
- You can now invoke the DHCP server. Simply type (or include in the
- bootup scripts)
-
- /usr/sbin/dhcpd
-
- If you want to verify that everything is working fine you should first
- turn on the debugging mode and put the server in foreground. You can
- do this by typing
-
- /usr/sbin/dhcpd -d -f
-
- Then boot up one of your clients and check out the console of your
- server. You will see a number of debugging messages coming up.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-