
                        DHCP mini-HOWTO (DHCPd/DHCPcd)
                                       
ߣVladimir Vuksan, vuksan@veus.hr ߣ ΰ dawei@sinica.edu.tw

   汾/ڣv4.2, 11 June 1999
     _________________________________________________________________
   
   ļҪڽλΰ Linux 趨 DHCP ŷ DHCP
   ûˣһЩ⡣
     _________________________________________________________________
   
1. 

     * 1.1 
     * 1.2 ȡļ°汾
     * 1.3 
     * 1.4 
     * 1.5 Ȩ
       
2. DHCP ͨѶЭ

3. 趨û

     * 3.1 û˵ļسʽ
     * 3.2 װ Slackware ֮
     * 3.3 װ RedHat 5.x  RedHat 6.x ֮
     * 3.4  RedHat 4.x  Caldera OpenLinux 1.1 ϵ趨
     * 3.5 װ Debian ֮
     * 3.6  LinuxPPC  MkLinux ϵ趨
     * 3.7 ǺŻToken Ring·
     * 3.8 ᣬµĶ
     * 3.9 ע
     * 3.10 ų
       
4. 趨 DHCP ŷ

     * 4.1 UNIX ϵ DHCP ŷ
     * 4.2 趨·̬
     * 4.3 DHCPd ѡ趨
     * 4.4 ŷ
     _________________________________________________________________
   
1. 

1.1 

   ļݲκ⳥ҪļĸӡԼ
    ʱλҪԼеաһ³ļԿܻЩ
   Լ ȷĵطˣȻܶϵͳΣȻѲ̫
   ܷ СΪϣһŲκΡ
   
   ͬʱҲģļṩݲ  ʽѶ ļ
   ݣ඼Ǽģδؿԡʱ
   λ ҪԼеա
   
1.2 ȡļ°汾

   ļ°汾ᶨڵ comp.os.linux.answers ̳ϡ
   ҲᱻڸѶ FTP վ̨ϣ磺
   
   [1]ftp://metalab.unc.edu/pub/Linux/docs/HOWTO
   
   ⣬ͨ Linux ļƻҳҵļοַ
   
   [2]http://metalab.unc.edu/LDP/
   
   ļİ淭룬οַ
   
   [3]http://www.linux.org.tw/CLDP/mini/DHCP.html
   
   ڴʽ跭ȨҪļԼԵκˡ
   뽫 ÷汾λַṩҡ
   
1.3 

   ǶļκλǳӭûĸͲ룬ļ
    ˵ǰԣ뽫Ľ顢ָ̼
   vuksan@veus.hr
   
1.4 

   ļ޸ Paul Makeev ׫дİ汾ġ
   
   ļй׵ѣо£
     * Heiko Schlittermann
     * Jonathan Smith
     * Dan Khabaza
     * Hal Sadofsky
     * Henrik Stoerner
     * Paul Rossington
       
1.5 Ȩ

   ļ 1998 ʼİȨ Vladimir Vuksan У밴¹涨
   ͨ
   
     * Linux HOWTO ļȫ򲿷֣ʹκӵýʽ
        ֻͨҪȨÿݿСҵΪͨǱ
       ܻ ӭģǣκεͨΪ߶ϣܱ֪
     * з롢Ĺϲκ Linux HOWTO ļľۼ
        ȨıҲ˵㲻Դ HOWTO һļ
       Ȼ ļͨǿһЩض״
       £ŻŵЩ  Linux HOWTO Эˣĵַ
       £
     * κʣ Linux HOWTO Э
       
   [4]linux-howto@metalab.unc.edu
   
2. DHCP ͨѶЭ

   DHCP ǡ̬趨Э(Dynamic Host Configuration Protocol)ļ
   дDHCP  Ҫ;ǣ͸ŷЭعִܸеû
   ϲȱٵ· ߲DHCP Э BOOTP ͨѶЭ
   һѶο RFC 2131 ı׼ RFC 1531 Ǿɱ׼Լ
   οļĩβοԴ Ĳ֣ҲԲģ [5]DHCP
   FAQ (http://web.syr.edu/ jmwobus/comfaqs/dhcp.faq.html)
   
   ļΪλ˵ DHCP ŷ˵ġسʽ(daemon)û˵ļ
   سʽ ڹվϻҪõ˵ļسʽԱԶ˵ŷ
   ȡ·趨Ѷ ϵͳԱʹŷ˵ļسʽԱɢ·
   趨Ѷûȡãԣi ֻǸһʹߣ㽫
   Ҫû˵ļسʽ
   
3. 趨û

3.1 û˵ļسʽ

    2.0.x 
   
   ʹõһ Linux ķа汾㶼û˵ļسʽ
   Ҫ صĳʽ׼Ϊ dhcpcd Ŀǰİ汾 0.70 [6]
    Ķ׼˵
   (ftp://metalab.unc.edu/pub/Linux/system/network/daemons/dhcpcd-0.70.ls
   m)
   
    2.2.x 
   
   ں 2.1.x  2.2.x  ipv4 ·ʽ׼޸Ĺ磬
    λ趨Ԥֵdhcpcd ޷ʹõ RedHat 6.x
   Ŀǰṩ dhcpcd 1.3.x  2.2.x ĺģͱһ汾
   dhcpcd 1.3.x ʹã Sergei Viznyuk sergei@phystech.com Ϊ
    ޸ĵİ汾¼طȡã
   
     * [7]ftp://phystech.dyn.ml.org/pub/
     * [8]http://www.cps.msu.edu/~dunham/out/dhcpcd-1.3.6.tar.gz
       
   ˵ԴΪԭ
   
3.2 װ Slackware ֮

   Դκ Metalab ġ䡱(mirrorվ̨¼طµ
   DHCPcd ʽ׼
   
     * [9]ftp://ftp.cdrom.com/pub/linux/metalab/system/network/daemons/
     * [10]ftp://metalab.unc.edu/pub/Linux/system/network/daemons
     * [11]ftp://ftp.kobe-u.ac.jp/pub/PC-UNIX/Linux/network/dhcp վ̨
       ձ
       
   °汾 dhcpcd.tar.gz °汾
   
     *  dhcpcd.tar.gz ⿪
       tar -zxvf dhcpcd-0.70.tar.gz
     * л׼⿪Ŀ¼ dhcpcd ʽ
       cd dhcpcd-0.70
       make
     * װ׼ ( root ִµ)
       make install
       
   Ὠ /etc/dhcpc Ŀ¼DHCPcd ׼ DHCP Ѷ
   ô ҽ dhcpcd ʽƵ /usr/sbin Ŀ¼
   
   Ϊܹڿʱϵͳ趨ֵڼ䣬ʹ DHCP Ĺܣµ趨
   
   cd /etc/rc.d
   
   mv rc.inet1 rc.inet1.OLD
   
   ĶὫе·ֵ趨塱(scriptת rc.inet1.OLD
    뽨µ rc.inet1 塣ĳʽ˱趨
   ݣ
     _________________________________________________________________
   
#!/bin/sh
#
# rc.inet1       shell ڿʱ INET ϵͳĻ趨

HOSTNAME=`cat /etc/HOSTNAME` # Ǳģһ
                             # 

#  loopbackƻأװá
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo

# ̫·ߣʹ趨 eth0 档
# ֻ loopback  SLIP ߣҪʹ

/usr/sbin/dhcpcd
     _________________________________________________________________
   
   浵֮뽫¿
   
   ϵĶᣬ [12]Ĳ
   
3.3 װ RedHat 5.x  RedHat 6.x ֮

   DHCPcd 趨 RedHat 5.0 ϵİ汾ʵסҪ飬
    ̨(Control Panel)
   
   control-panel
   
     * ѡȡ Network Configuration ͼ
     * Ի󵥻 Interfaces 
     * Ի󵥻 Add ť
     * ѡ Ethernet Ŀ
     *  Edit Ethernet/Bus Interface Իйѡ "Activate interface at
       boot time" ĿԼѡȡ DHCP Ϊ Interface configuration protocol
       Ŀ 롣
       
   ϵĶᣬ [13]Ĳ
   
3.4  RedHat 4.x  Caldera OpenLinux 1.1 ϵ趨

   DHCPcd ڱ׼ RedHat 汾 RPM İװʽеģ
   е CD-ROM ϵ RPMS Ŀ¼ҵַأ
   
   [14]ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd
   -0.6-2.i386.rpm
   
   Ȼᰲװʾ
   
   rpm -i dhcpcd-0.6-2.i386.rpm
   
   ߣ԰ Slackware ǽķһԼİ汾
   
   л nothing nothing@cc.gatech.edu ṩµѶ
     _________________________________________________________________
   
ҰѾ̬ ip λַƣӵ /etc/resolv.conf Ƴǣ
search  nameserver 趨УΪĳЩԭҵ dhcpcd ŷ
/etc/dhcpc/resol.confұʹþ̬ /etc/resolv.conf

ڵ /etc/sysconfig/network Ƴ HOSTNAME  GATEWAY 趨Сǣ
ұ趨УNETWORKINGDOMAINNAMEGATEWAYDEV

ڵ /etc/sysconfig/network-scripts/ifcfg-eth0 Ƴ IPADDRNETMASK
NETWORK BROADCAST 趨Сǣұ DEVICE  ONBOOT 趨У
BOOTPROTO 趨У޸ĳ BOOTPROTO=dhcp

ᴢ浵¿
     _________________________________________________________________
   
   ϵĶᣬ [15]Ĳ
   
3.5 װ Debian ֮

   ַҵ deb ʽװ DHCPcd ʽ׼
   
   [16]ftp://ftp.debian.org/debian/dists/slink/main/binary-i386/net/dhcpc
   d_0.70-4.deb
   
   ߣ԰ Slackware ǽķװ
   
   Ҫװ deb װĳʽ׼룺
   
   dpkg -i /where/ever/your/debian/packages/are/dhcpd*deb
   
   㼸κε DHCPcd 趨Ϊ From: Heiko Schlittermann
   (heiko@os.inf.tu-dresden.de)
   
    dhcpcd ĳʽ׼ͬ debian ׼һὫ尲װ
   /etc/init.d/<package_name> ֮ϣ˴Ϊ /etc/init.d/dhcpcd ֮
    /etc/rc?.d/ Ŀ¼С
   
    /etc/rc?.d/ Ŀ¼ŵĸ൵ǿʱִе塣
   
   ڰװ᲻¿Ӧÿʹ˹سʽ(daemon)
   ķʽ
   
   /etc/init.d/dhcpcd start
   
   ϵĶᣬ [17]Ĳ
   
3.6  LinuxPPC  MkLinux ϵ趨

    R. Shapiro ׫дġ
   
    Yoichi Hariguchi չİ汾 0.65  0.7  dhcpcd ʽӦÿʹ
   ú 2.1.24  LinuxPPC  MkLinux ִУǣע¼
   Ҫ㣺
   
   * ҪҪ͸ԭʼʽִеĵע⣬ppc
   linux ϵ Ὣ 'char' ٶΪ 'unsigned char'ǣHariguchi 
   ԭʼʽȷ 'char' ٶΪ 'signed char'ԣҪ͸ԭʼʽ
   ִе༭ Makefile CFLAGS а "-fsigned-char" ѡ
   
   
   * Ŀǰ linuxppc [ν linux-pmac] ƽ̨ȶİ汾 2.1.24
   ҪĻ ɵַȡ dhcpcd 룺 [18]2.1 
   (http://www.cro.net/ vuksan/dhcppatch) mklinux ƽ̨е DR2.1
    DR3.0 汾õ 2.0 ĺ (2.0.33) ԣʹ
   룬ǣʹװҲûʲ˺ע linuxppc 
   װƬ dhcpcd ʽ rpm װ 2.1 룬 
    linuxppc ƽ̨޷ǣ mklinux ƽִ̨С
   
   * ʹ linuxppc ƽ̨ 2.1.24 ʱ dhcpcd ʽ֮ᣬ
   ῴ һ̵·ѶϢԺ
   
   * Hariguchi  dhcpcd ʽỨһЩʱ䣬Լ 30 룬
   ŷ 趨·ɵĶʹõ linuxppc ƽ̨ 2.1.24 ʱ
   ľѶϢ ֻ˵·Ѿ趨ˡ
   
   춱Ƚ° linuxppc Ķԣ Hariguchi չ dhcpcd ʽ
   ʹ ʱ  Ĳ Sergei Viznyuk չİ汾Ŀǰķа汾Ϊ
   1.3.9 鷳 Viznyuk  dhcpcd ʽ glibc 2 Ϊʽչ
   Ȼ linuxppc 2.1.1xx ȴʹʽ⡣ʽҪõһЩ
    - صϸ 硣һʽ֮ᣬܹڽ°ĺ
   ˣ linuxppc  2.1.24 汾 MkLinux Ĳְ汾ϻǲ
   У
   
    Viznyuk չ dhcpcd ʽһ Viznyuk 
   dhcpcd v1.3.7ִее linuxppc ģ2.1.102103
   115 119 ִУѾɲԡӦÿ͸ԭʼʽ
   ִеǣҲ֪ʵ ϸڡViznyuk  dhcpcd ޷ 2.1.24
   ĺȻ޲ Hariguchi  dhcpcd ʽȴʹáҪ
    Hariguchi  dhcpcd ʽ׶ˡ
   
   ժҪ£
     _________________________________________________________________
   
MkLinux  Hariguchi ã Viznyuk 
2.1.24   Hariguchi ʹãִеף Viznyuk
 
2.1.102+ Hariguchi ã Viznyuk ãִеҪɣ
     _________________________________________________________________
   
   ע⣬Viznyuk  dhcpcd ֱд /etc/resolv.conf д
   ֮ǰ ݾеĵ㲻Լ /etc/dhcpc ƻ
   ѶͬʱҲ עִͨеŵ /sbin Ŀ¼жǷŵ
   /usr/sbin ѡ  Hariguchi 汾֮һ㲻ͬ
   ʹ ifup  dhcpcd  ifup  ҲһЩС
   
   Ҫȡø linuxppc ʹõԤȱ֮ dhcpcd ʽŵ
   
   [19]reshapiro@mediaone.net
   
   Ҳṩ˶Ԫ RPMs װ
   
   [20]ftp://ftp.linuxppc.org//pub/linuxppc/contrib/linuxppc-R4/RPMS/
   
   벻ҪʹøĿ¼֮µ dhcpcd-1.3.8-2.ppc.rpm Ѿֹͣάˡ
   ɿİ  dhcpcd-0.70-0.ppc.rpm linuxppc 2.1.24 ʹõģԼ
   dhcpcd-1.3.8-3.ppc.rpm  linuxppc 2.1.102 ϵİ汾ʹõģ汾
   1.3.9  rpm װӦ ṩͬʱһհ汾 0.65 
   0.70 Hariguchi չķʽ԰汾 1.3.9  Viznyuk չ 
   һЩ޸ģ  -c ѡע⣬ ׼ Viznyuk
   dhcpcd ݡ
   
3.7 ǺŻToken Ring·

   㳢ڡǺŻ·ִ dhcpcd ʽ޷
   Henrik Stoerner (henrik_stoerner@olicom.dk) ṩҵĽ
   
    dhcpcd ֻʶ̫· EthernetֵǺŻ
   · ܾκε飬ұ˵治̫·
   
   ʹһ򵥵 dhcpcd ԭʼʽ롣Ѿ
    һС͵ҳϣṩ RedHat  RPM װһԤȱ
   õĶԪ [21]http://eolicom.olicom.dk/~storner/dhcp/
   
   Ѿ͵ dhcpcd άˣˣϣδе
   dhcpcd 汾á
   
3.8 ᣬµĶ

   Ļ¿֮ᣬӦ趨·Ľ档룺
   
   ifconfig
   
   Ӧûῴµ
     _________________________________________________________________
   
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
     _________________________________________________________________
   
    inet addr ֮ῴһЩ֣ʾѾ趨ˡ
   㿴  0.0.0.0 ҲҪֻ dhcpcd ȡ IP λַǰʱ
   趨ֵ ֮ᣬȻ 0.0.0.0 ο [22]ų
   DHCPcd һسʽ(daemon)ֻҪĻ
   ִ ״̬ÿСʱ DHCP ŷһΣԼ IP λַ
   ڡὫ еѶϢ¼ syslog У Slackware ϣΪ
   /var/adm/syslog RedHat/OpenLinux ϣΪ /var/log/syslog
   
   Ҫһ¡ָŷʽ裬
   Ҫ· Ӧ̣֪ŷ IP λַȻٽλַ
   /etc/resolv.conf  ߣҲ DHCPcd  DHCP ŷȡ
   Ȼ /etc/dhcpc Ŀ¼²  resolv.confҾʹ DHCPcd 
    resolv.conf ݣ£
   
   ݾɵ /etc/resolv.conf 
   
   mv /etc/resolv.conf /etc/resolv.conf.OLD
   
   Ŀ¼ /etc/dhcpc ڣвĿ¼
   
   mkdir /etc/dhcpc
   
   Ȼ /etc/resolv.conf ԡᡱ /etc/dhcpc/resolv.conf
   
   ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
   
   ʽ޷볢ʹķ 
   nothing@cc.gatech.edu ģ޸ Henrik Stoerner ṩ
   
   
   һִ裬ֻΪҵ dhcpcd 
   /etc/dhcpc/resolv.conf  /etc/sysconfig/network-scripts/ifup 
   Уµ޸ģȻĵĲ ܺãѾΪҽ
   
     _________________________________________________________________
   
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
     _________________________________________________________________
   
   Ұ޸ĳɣ
     _________________________________________________________________
   
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
     _________________________________________________________________
   
   ע ! (bang)  if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ];
   
   󹦸ɣܳɹ :-)
   
3.9 ע

   µĲ費ǾԱҪǶĳЩ˶ԣܾɵó
   
   a) ֻżŻ·ߵʹеķʽ
   dhcpcdҪ裬ӵ root ݣ
   
   /usr/sbin/dhcpcd
   
   Ҫص·
   
   /usr/sbin/dhcpcd -k
   
3.10 ų

   㰴Ĳ裬ȴȻ޷ȡ·ܿΪ
   
   I. ·趨ȷ 
   
   ڿĹУ·Ӧûʾ漸еѶϢ
   ݣ
     _________________________________________________________________
   
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
     _________________________________________________________________
   
    Linux ϵͳѶϢʾ·޷
   ʶ ʹʹõһ̫·NE2000 ݣӦûõһ
   Ƭ DOS ߴƬ 趨·趨 IRQs ֵһֱ
   Linux Աʶ· IRQ ֵ趨ͨΪ 9,10,12
   
   II. ʹõ DHCP ŷ֧Ԯ RFC 1541 ׼/ҵ DHCP ŷ Windows
   NT
   
   ִ dhcpcd 
   
   dhcpcd -r
   
   ʹ ifconfig 鿴Ƿ·Ѿ趨ˣ
    Inet.addr=0.0.0.0õȴ趨ʱ䣩
   
   Խ⣬ӦصĿм "-r" ѡ
   Ʃ  /sbin/dhcpcd ޸ĳ /sbin/dhcpcd -r 
   
    RedHat Ϊ༭ /etc/sysconfig/network-scripts/ifup 
   壬 ޸ĳɣ
     _________________________________________________________________
   
        IFNAME=$[ {DEVICE} \
        "/sbin/dhcpcd -r -c /etc/"- etc etc.
     _________________________________________________________________
   
   III. ڿڼѶϢ "Using DHCP for eth0 ... failed"ǣ
   ϵͳ ȴ
   
   ܿʹõ RedHat ϵͳң㲢δϸذ˵ :-)
    if  © ! (bang) š [23]˴ 
   
   
   IV. ҵ·˼֮ᣬûзӦˡ
   
    gatedբسʽ(gateway daemon) رѶŪ
   Linux ·ɣŻ⡣Ƿ gated ִУ
   
   ps -auxww | grep gate
   
   ʹ RedHat  RPM ʽƳֶ
    /etc/rc.d/ Ƴ
   
   V.ڿʱԱʶҵ̫·ǣҵѶϢ¼УȻ
   "NO DHCPOFFER" ѶϢͬʱ״Ҳᷢҵ PCMCIA ̫·
   
   
   ȷ·ʹõ 10BaseT Ӳ绰ߵĲ)ü
   һ£ ʱ·趨ʹǸӲ磺
     _________________________________________________________________
   
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
     _________________________________________________________________
   
   ʹϥ͵Ե˱Թʹ PCMCIA ߣر ifport
   Ӳ Ϊ 10Base2 (ϸͬ·(thinnet)Ҳ⡣
   㲻趨 ·ؿȷʹõ 10BaseT 
   
   
   VI. ûŷӦ DHCP û˵Ĺ㲥Ҫ Peter Amstutz ṩ
   
   ĳЩϵͳϣĹ㲥Ҫбơ dhcpcd Ϊ
   ִ 'dhcpcd -h foohost'ʹ·ϵʻƣ
   Ϊơ
   
   VII. ѾеĲ趨ǣҵĻȻ޷ߡ
   
   ݻcable modemͨס·̫·λַԣ
   Ҫ µĵԻ·ĳ̵ַ cable
   modem ϵµĵ/· ͨȹص cable modem Կ
   ʹ cable modemԵ绰 ֧Ԯ֪ԷĵѾ
   ·
   
   ķǽipfwadm Ĺ򣩲 67/68 DHCP ʹɢ
   Ѷ ϸķǽ
   
   VIII. ʹõ MediaOne Express ṩķ񣬵Ȼ޷ߡ
   
   ԭ MediaOne  DHCP и˲ӦóֵѶϢһţ
   Ѳ Ǹ⣬ȴ޷ʹԳⷽ顣㣨
   ʹõ Windows NTʱʹá¼Event Viewer
   㽫ῴµ ʾѶϢ
   
   DHCP յһδ֪ĳΪ 005  067 ѡԭʼѡʾ
   
   0000: 62 61 73 69 63 basic
   
   ⣬뵽 [24]ftp://vanbuer.ddns.org/pub/  
   Ԫȡԭʼ롣
   
4. 趨 DHCP ŷ

4.1 UNIX ϵ DHCP ŷ

   ڸ UNIX ݵҵϵͳϣҵѵ DHCP ŷʽá
   У ŷʽ Paul Vixie/ISC  DHCPdĿǰµİ
    2.0 ʹã 3.0  beta ׶εĲԡԵ
   ַȡã
   
   [25]ftp://ftp.isc.org/isc/dhcp/
   
    RedHat汾 5.2 Linux ׼а DHCP ŷԪ RPM
   װ  RPM װĵΪ dhcp-2.0b1pl6-2.platform.rpmװʱֻҪ
   
   rpm -i dhcp-2.0b1pl6-2.i386.rpm
   
   ʹĲ裬İװ˵
   
   ֮ᣬ뽫⿪Ȼ⿪Ŀ¼룺
   
   ./configure
   
   Ҫðװǰ趨Ҫʱ䡣룺
   
   make
   
   Լ
   
   make install
   
4.2 趨·̬

   ɰװ֮ᣬ ifconfig -a㽫µѶϢ
     _________________________________________________________________
   
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
     _________________________________________________________________
   
   δʾ MULTICAST ѶϢӦ趨ĺģԡַ
   multicast֧Ԯ춴ϵͳԣ㼸
   
   ¸ǣ 255.255.255.255 ·ɡµ˵ DHCPd ʽ
   ҵREADME
   
   Ϊ dhcpd ܹȷط޵ DHCP ûˣ磬Windows 95
   dhcpd ܹͷ 255.255.255.255  IP λַϡҵǣLinux
   Ὣ 255.255.255.255 Ϊ·Ĺ㲥λַ˴Ϊ 192.5.5.223
   Υ DHCP ͨѶЭȻ DHCP û˲Ӱ죬Щ磬
   Microsoft DHCP ûˣȴᡣд ûˣῴŷ
    DHCPOFFER ѶϢ
   
   룺
   
   route add -host 255.255.255.255 dev eth0
   
   㿴µѶϢ
   
   "255.255.255.255: Unknown host"
   
   ӦýѶ뵽 /etc/hosts У /etc/hosts file:
   
   255.255.255.255 all-ones
   
   Ȼᣬ룺
   
   route add -host all-ones dev eth0
   
   
   
   route add 255.255.255.0 dev eth0
   
   eth0 ӦĿǰʹ·װơǣʵȷ
   ޸ġ
   
4.3 DHCPd ѡ趨

   ڣ趨 DHCPdΪˣ༭ /etc/dhcpd.conf
   
   ͨҪǣָ IP λַΪˣ밴ķʽ趨
   
     _________________________________________________________________
   
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;
}
     _________________________________________________________________
   
   趨ĽΪDHCP ŷṩûˣʹáΧ
   192.168.1.10-192.168.1.100  192.168.1.150-192.168.1.200  IP λַ
   ûûرԼ IP λַ ʱ䣬ͳʱԤΪ 600 룬
   ҪȻͳʱΪ 7200 롣ͬʱ ŷҲᡰ֪ͨû
   Ҫʹ 255.255.255.0 Ϊ·֣192.168.1.255 Ϊ㲥λַ
   192.168.1.254 Ϊ·/բ 192.168.1.2 Ϊ DNS ŷ
   
   Ҳû˵̫·λַָض IP λַûˣ
     _________________________________________________________________
   
host haagen {
   hardware ethernet 08:00:2b:4c:59:23;
   fixed-address 192.168.1.222;
}
     _________________________________________________________________
   
   趨ָ IP λַ 192.168.1.222 ̫·λַΪ
   08:00:2b:4c:59:23  ûˡ
   
   · IP λַָԲɻ˫ƣƩ磬ĳЩӵС
   ̬ IP λַ磬ŷûȡá̬IP λַ
   磬ʹϥ ͵ԣʹߣѡƩ磬˵ wins 
   λַʱŷ ȵȣҪһ˽Ļ
   dhcpd.conf ˵ļ
   
4.4 ŷ

   ŷ֮ǰֻҪһˡͨ DHCP İװв
    dhcp.leasesŷ DHCPd ʹĿǰѶ
   һ ֵĸʽϣ DHCPd ڼֱӼ
   ݡ  dhcp.leases룺
   
   touch /etc/dhcp.leases
   
   һհ׵ĵĴС = 0㲻ҪԸõ
   ε޸ Ӧǿհ׵ġ㿴һѶϢ˵õǿհ׵ģ
   Բ µĲ衣
   
   ڣ DHCP ŷˡֻҪ루ӵ趨
   У
   
   /usr/sbin/dhcpd
   
   ҪȷǷһӦȿģʽŷŵ
   Ļǰ foregroundִСΪˣ
   
   /usr/sbin/dhcpd -d -f
   
   Ȼᣬκһû˻쿴ŷˡ̨console
   өĻ 㽫ῴһЩѶϢʾ

References

   1. ftp://metalab.unc.edu/pub/Linux/docs/HOWTO
   2. http://metalab.unc.edu/LDP/
   3. http://www.linux.org.tw/CLDP/mini/DHCP.html
   4. mailto:linux-howto@metalab.unc.edu
   5. http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html
   6. ftp://metalab.unc.edu/pub/Linux/system/network/daemons/dhcpcd-0.70.lsm
   7. ftp://phystech.dyn.ml.org/pub/
   8. http://www.cps.msu.edu/~dunham/out/dhcpcd-1.3.6.tar.gz
   9. ftp://ftp.cdrom.com/pub/linux/metalab/system/network/daemons/
  10. ftp://metalab.unc.edu/pub/Linux/system/network/daemons
  11. ftp://ftp.kobe-u.ac.jp/pub/PC-UNIX/Linux/network/dhcp
  12. file://localhost/tmp/zh-sgmltools.26942/DHCP.txt.html#nameserver
  13. file://localhost/tmp/zh-sgmltools.26942/DHCP.txt.html#nameserver
  14. ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm
  15. file://localhost/tmp/zh-sgmltools.26942/DHCP.txt.html#nameserver
  16. ftp://ftp.debian.org/debian/dists/slink/main/binary-i386/net/dhcpcd_0.70-4.deb
  17. file://localhost/tmp/zh-sgmltools.26942/DHCP.txt.html#nameserver
  18. http://www.cro.net/~vuksan/dhcppatch
  19. mailto:reshapiro@mediaone.net
  20. ftp://ftp.linuxppc.org//pub/linuxppc/contrib/linuxppc-R4/RPMS/
  21. http://eolicom.olicom.dk/~storner/dhcp/
  22. file://localhost/tmp/zh-sgmltools.26942/DHCP.txt.html#troubleshooting
  23. file://localhost/tmp/zh-sgmltools.26942/DHCP.txt.html#error3
  24. ftp://vanbuer.ddns.org/pub/
  25. ftp://ftp.isc.org/isc/dhcp/
