Penguin

Differences between version 3 and previous revision of HowToDHCP.

Other diffs: Previous Major Revision, Previous Author, 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.