Differences between version 3 and revision by previous author of HowToDHCP.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Sunday, November 28, 2004 12:18:52 am | by AristotlePagaltzis | Revert |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:06:27 am | by perry | Revert |
@@ -1,1175 +1 @@
-DHCP mini-HOWTO
-!!!DHCP mini-HOWTO
-!Vladimir Vuksan
-
- vuksan@veus.hr
-
-
-
-__Revision History__Revision v4.12October 22, 2000Revised by: vv
-
-
-
-
-
- This document attempts to answer basic questions on how to
-set up 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 the client daemon (dhcpcd); 3.2. Slackware; 3.3. !RedHat 6.x and Mandrake 6.x; 3.4. !RedHat 5.x; 3.5. !RedHat 4.x and Caldera !OpenLinux 1.1/1.2; 3.6. Debian; 3.7. LinuxPPC and !MkLinux; 3.8. Tying it all together; 3.9. Various notes; 3.10. Troubleshooting; 3.11. Alternative DHCP client (ISC dhclient); 4. DHCP Server Setup: ; 4.1. DHCP server for UNIX; 4.2. DHCP server configuration; 4.3. Options for DHCPd; 4.4. Starting the server; 4.5. Other interesting documents
-!!!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 are available from
-
-
-
-http://www.oswg.org/oswg-nightly/DHCP.html
-
-
-
-Following translations of the DHCP mini-HOWTO are available:
-
-
-
-
-
-
-*
-
-Chinese - http://www.linux.org.tw/CLDP/mini/DHCP.html
-
-
-*
-*
-
-Japanese - http://www.linux.or.jp/JF/JFdocs/DHCP.html
-
-
-*
-*
-
-Spanish - ftp://cuates.pue.upaep.mx/pub/linux/LuCAS/DHCP-mini-Como/
-
-
-*
-
-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 and inform me of a URL to your translation
-so I can include a link to it.
-
-----
-!!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-feedback@veus.hrb.
-
-----
-!!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
-
-
-*
-*
-
-numerous others
-
-
-*----
-!!1.5. Copyright Information
-
-This document is copyrighted (c) 1998 Vladimir Vuksan and
-distributed under the terms of the !OpenContent License (OPL). Full
-text of the license can be found at
-
-
-
-
-http://www.opencontent.org/opl.shtml
-
-----
-!!!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 1541) and
-other. (See Internet Resources section at the end of the
-document). You can also read
-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
-
-Currently there are three different DHCP client programs for Linux, dhcpcd,
-pump and dhclient. This mini-HOWTO deals primarily with dhcpcd.
-
-----
-!!3.1. Downloading the client daemon (dhcpcd)
-
-Depending on your distribution you might have to download the
-DHCP client daemon. If you want to compile it from the source you
-package you need is called dhcpcd and the current version is 1.3.18.
-It is maintained by Sergei Viznyuk `sergei@phystech.comb and
-today it comes as a binary package with most distributions.
-
-
-
-dhcpcd source can be downloaded from following locations
-
-
-
-
-
-
-*
-
-ftp://ftp.phystech.com/pub/ (Primary site)
-
-
-*
-*
-
-http://www.cps.msu.edu/~dunham/out/
-
-
-*
-
-Then follow the instructions below. They should be the same.
-
-----
-!!3.2. Slackware
-
-You can download the latest copy of the DHCPcd from any Metalab mirror
-or following:
-
-
-
-
-
-
-*
-
-ftp://metalab.unc.edu/pub/Linux/system/network/daemons
-
-
-*
-*
-
-ftp://ftp.phystech.com/pub/ (Primary site)
-
-
-*
-
-Download the latest version of dhcpcd.tar.gz.
-
-
-
-
-
-
-*
-
-Unpack it
-
-
-
-__tar -zxvf dhcpcd-1.3.18pl1.tar.gz__
-
-
-*
-*
-
-cd into the directory and make dhcpcd
-
-
-
-__cd dhcpcd-1.3.18pl1__
-
-
-
-__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...1
-/sbin/route add -net 127...0 netmask 255...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 6.x and Mandrake 6.x
-
-DHCPcd configuration under !RedHat 6.+ 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"
-
-
-*
-
-Please note that in !RedHat 6.x Redhat as default includes a DHCP client called
-pump instead of above mentioned dhcpcd. CD-ROM does include dhcpcd RPM so if you
-have no luck with pump try with dhcpcd. After you install dhcpcd
-(e.g. __rpm -i dhcpcd-1.3.17pl2-1.i386.rpm__) you
-will have to make some changes.
-
-
-
-Additional notes from Alexander Stevenson
-`alexander.stevenson@home.comb:
-
-
-
-I had no luck with DHCPcd. What finally worked for me was "pump", which
-comes with Linux Mandrake 6.0 (and so I assume it is included with
-!RedHat as well). The command I used was:
-
-
-
-__pump -i eth0 -h hostname__
-
-
-
-It didn't matter what "hostname" was, but without it the server would
-not respond.
-
-
-
-I then changed the line in my /sbin/ifup script to reflect the change;
-the default version does not have the -h switch, and so didn't work for
-me.
-
-
-
-Basically, if you're using linuxconf, and after setting the adapter to
-"DHCP" it still doesn't work, try adding a "__-h
-hostname__" to the pump line in the
-/sbin/ifup script. My script now looks like this:
-
-
-...
-if
[[ -n "$PUMP"
]; then
-echo -n "Determining IP information for $DEVICE..."
-if /sbin/pump -i $DEVICE -h hostname; then
-echo " done."
-else
-echo " failed."
-exit 1
-fi
-else ...
-
-Another more elegant way to add hostname field is provided by Aad van der Klaauw:
-
-
-
-Currently i'm configuring a gateway system at home, needed to set the
-MAC address and use the '-h hostname' workaround. So I decided to
-*not* change the script but to use the configure file.
-In my /etc/sysconfig/network-scripts/ifcfg-eth0 I have added the following
-
-
-DEVICE="eth0"
-MACADDR="00:11:22:33:44:55"
-DHCP_HOSTNAME="trigger_for_terayon"
-
-Which will survive upgrades, and is imho a "cleaner" way.
-
-
-
-That is it. Reboot your machine or type __/sbin/ifup eth0__ on the command line.
-
-----
-!!3.4. !RedHat 5.x
-
-DHCPcd configuration under !RedHat 5.+ 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.5. !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:
-
-
-
-ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/!RedHat/RPMS/dhcpcd-.6-2.i386.rpm
-
-
-
-Install it with __rpm -i dhcpcd-.6-2.i386.rpm__.
-
-
-
-Alternatively you can compile your own version by following the steps
-outlined in the ''Slackware''.
-
-
-
-The following information was provided to me by nothing
-`nothing@cc.gatech.edub.
-
-
-
-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.6. Debian
-
-There is a deb package of DHCPcd (make sure it starts with dhcpcd) at:
-
-
-
-http://ftp.debian.org/debian/dists/slink/main/binary-i386/net/
-
-
-
-Or, follow the ''Slackware'' installation instructions.
-
-
-
-To unpack the deb package type __dpkg -i /where/ever/your/debian/packages/are/dhcpcd*deb__.
-
-
-
-It appears that there isn't a need for any DHCPcd configuration because:
-
-
-
-
-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.
-
- --From: Heiko Schlittermann
-`heiko@os.inf.tu-dresden.deb
-
-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.7. LinuxPPC and !MkLinux
-
-Following section has been written by R. Shapiro
-
-
-
-As of the "1999" (R5) release, Linuxppc is now almost completely
-compatible with Redhat 6, with one caveat (see below). In general the
-instructions are exactly the same as for the current release of
-''!RedHat 6.x and Mandrake 6.x''.
-
-
-
-The remaining problem is that Redhat 6 uses the 'pump' client for dhcp
-by default, and 'pump' doesn't work reliably in Linuxppc. To get around this, you should install the latest
-dhcpcd from Sergei Viznyuk, and then edit
-/sbin/ifup to use __dhcpcd__
-instead of __pump__.
-
-
-
-Change
-
-
-if [[ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
-PUMP=true
-fi
-if [[ -n "$PUMP" ]; then
-
-with
-
-
- if [[ "$BOOTPROTO" = bootp ]; then
-echo " done."
-else
-echo " failed."
-exit 1
-fi
-elif [[ "$BOOTPROTO" = dhcp ]; then
-echo -n "Determining IP information for $DEVICE..."
-if /sbin/dhcpcd -d $DEVICE ; then
-if [[ -f /etc/dhcpc/dhcpcd-${DEVICE}.exe ]; then
-/etc/dhcpc/dhcpcd-${DEVICE}.exe
-fi
-
-and a coresponding changes for __ifdown__. Change
-
-
-if [[ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
-....
-fi
-
-with
-
-
-if [[ "$BOOTPROTO" = bootp ]; then
-fi
-if [[ "$BOOTPROTO" = dhcp ]; then
-if [[ -f /var/run/dhcpcd-${DEVICE}.pid ]; then
-kill `cat /var/run/dhcpcd-${DEVICE}.pid`
-rm -f /var/run/dhcpcd-${DEVICE}.pid
-fi
-fi
-
-A working ppc rpm for dhcpcd is included on the Linuxppc 1999 cd; a
-slightly later rpm is available in the contrib directory on
-ftp://ftp.linuxppc.org/.
-Sources, which compile out of the box in Linuxppc 1999, are available
-from ftp://ftp.phystech.com/pub/dhcpcd-1.3.17-pl9.tar.gz.
-
-----
-!!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...1 Bcast:127.255.255.255 Mask:255...
-UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
-RX packets:302 errors:0 dropped:0 overruns:0 frame:
-TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:
-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.
-^^^^^^^^^^^^^^^^^^^^^^^
-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 don't despair, it is a temporary setting before
-__dhcpcd__ acquires
-the IP address. If even after few minutes you are seeing ...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 DHCPcd's 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.edub 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 \$$ b /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 \$$ b /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh
-if [[ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
-^^^^^^
-echo "failed."
-exit 1
-
-__Note: __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:
-
-
-
-
-
-
-#
-
-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:
-
-----
-!3.10.1. 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).
-
-----
-!3.10.2. 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=...)
-
-
-
-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. ----
-!3.10.3. 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.
-
-----
-!3.10.4. 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 with: __ps -auxww | grep gate__.
-
-
-
-If it is try removing it with !RedHat's RPM manager or removing the entry
-in /etc/rc.d/.
-
-----
-!3.10.5. 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.
-
-----
-!3.10.6. 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.
-
-----
-!3.10.7. 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.
-
-----
-!3.10.8. 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
-ftp://vanbuer.ddns.org/pub/
-and either download a binary or get the source for the change.
-
-----
-!!3.11. Alternative DHCP client (ISC dhclient)
-
-If you have not had success getting your Linux connection running with
-the dhcpcd you might want to try ISC dhclient. dhclient comes with
-the DHCP distribution from ISC which includes both a DHCP client
-and a DHCP server. Instructions on how to get and compile
-the DHCP distribution can be found here.
-When you are done with it please return to this section to configure
-the client.
-
-
-
-__Note: __Following information has been provided by
-Ted Lemon `mellon@isc.orgb
-one of the authors of dhclient.
-
-
-
-With the current version of the DHCP client,
-you don't actually need a dhclient.conf. All you
-have to do is invoke dhclient e.g.: __/sbin/dhclient__.
-
-
-
-This will configure all broadcast interfaces. If this doesn't
-work or you want to specify only one interface create a
-/etc/dhclient.conf file with this example
-configuration.
-
-
-interface "eth0" {
-send dhcp-client-identifier 1:xx:xx:xx:xx:xx:xx;
-send dhcp-lease-time 86400;
-}
-
-Here we assume that the ethernet interface is eth0. If not
-change accordingly. Also replace xx:xx:xx:xx:xx with your ethernet
-address. This dhclient.conf makes the client look more
-like a Win95 client.
-
-----
-!!!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
-
-
-
-ftp://ftp.isc.org/isc/dhcp/
-
-
-
-Some of the distributions provide binary packages for dhcpd so
-skip the following section if you got it installed that way.
-
-
-
-After you download 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. DHCP server 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.
-UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
-RX packets:2875542 errors:0 dropped:0 overruns:
-TX packets:218647 errors:0 dropped:0 overruns:
-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. There
-is a graphical interface for dhcpd configuration under KDE ( http://www.kde.org/ ) called kcmdhcpd
-that is very similar to the DHCP configurator on Windows NT. When KDE
-2.0 comes out it should come with kcmdhcpd or you could get it directly
-from:
-
-
-
-ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/
-
-
-
-If you want to configure it by hand follow instructions below.
-
-
-
-Most commonly what you want to do is assign IP addresses randomly. This
-can be done with settings as follows:
-
-
-# Sample /etc/dhcpd.conf
-# (add your comments
here)
-default-lease-time 600;
-max-lease-time 7200;
-option subnet-mask 255.255.255.;
-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.
-
-
-
-If you need to specify a WINS server for your Windows clients you
-will need to include the netbios-name-servers option e.g.
-
-
-option netbios-name-servers 192.168.1.1;
-
-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. nis server addresses, time server addresses 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 dhcpd.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 dhcpd.leases type:
-
-touch /var/state/dhcp/dhcpd.leases
-
-
-
-This will create an empty file (file size = ).
-Some of the older version of dhcpd 2.0 placed the file in
-/etc/dhcpd.leases. You do not need to make any
-changes to the leases file it will be manipulated by the dhcpd. 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
-
-This will invoke dhcpd on eth0 device. If you want to invoke it
-on another device simply supply it on the command line e.g.
-
-
-/usr/sbin/dhcpd eth1
-
-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 come up. If everything works out
-fine you are done :-). Quit dhcpd and start it without the
-__-d__ __-f__ and arguments. If you want
-dhcpd to start at boot-up include dhcpd in e.g.
-
-
-/etc/rc.d/rc.local----
-!!4.5. Other interesting documents
-
-Linux Magazine has a pretty good article in their April issue called
-Network
-Nirvana: How to make Network Configuration as easy as DHCP that
-discusses the set up for DHCP
.
+Describe
[HowToDHCP
] here.