1.下載安裝包
download dhcp-3.0.3.tar.gz (http://www.bind9.net/download-dhcp)
#tar zxvf dhcp*
#cd dhcp-3.0.3
#./configure
#make
#make install
2.配置
#vi /etc/dhcpd.conf(典型配置)
//增加以下內容
ddns-update-style interim;
//配置DHCP-DNS互動更新模式
ignore client-updates;
//忽略客戶機更新
subnet 192.168.0.0 netmask 255.255.255.0 {
//設定子網IP
option routers 192.168.0.1;
//預設閘道
option subnet-mask 255.255.255.0;
//子網路遮罩
option broadcast-address 192.168.0.255;
//廣播位址
option domain-name-servers 192.168.0.1;
//DNS 伺服器地址
option domain-name "test.redflag.com";
//DNS伺服器名稱
range dynamic-bootp 192.168.0.10 192.168.0.100;
//設定可供自動分配的IP範圍
default-lease-time 216000;
//預設租賃時間,單位為秒,下同
max-lease-time 43200;
//最大租賃時間
host test {
//主機名稱
hardware ethernet 00:0C:29:EB:5C:29;
//網卡硬體地址
fixed-address 192.168.0.1;
//分配的固定IP
}
}
3.啟動服務,測試
#/usr/sbin/dhcpd
Internet Systems Consortium DHCP Server V3.0.3
Copyright 2004-2005 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 1 leases to leases file.
Listening on LPF/eth0/00:0c:29:eb:5c:29/192.168.0/24
Sending on LPF/eth0/00:0c:29:eb:5c:29/192.168.0/24
Sending on Socket/fallback/fallback-net
4.Client配置
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
把GATEWAY,IPADDR,NETMASK,NETWORK,BROADCAT注釋掉,增加如下內容:
BOOTPROTO=dhcp
check_link_down () {
return 1;
}
儲存後退出,重新執行service network restart即可看到由DHCP SERVER分配的IP。也可以察看日誌:
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:90:26:1E
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:49 errors:0 dropped:0 overruns:0 frame:0
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:8425 (8.2 Kb) TX bytes:4968 (4.8 Kb)
Interrupt:10 Base address:0x1080
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:700 (700.0 b) TX bytes:700 (700.0 b)
# tail -10 /var/log/messages
Mar 28 09:02:54 test dhcpd: DHCPDISCOVER from 00:0c:29:90:26:1e via eth0
Mar 28 09:02:55 test dhcpd: DHCPOFFER on 192.168.0.100 to 00:0c:29:90:26:1e via eth0
Mar 28 09:02:55 test dhcpd: DHCPREQUEST for 192.168.0.100 (192.168.0.1) from
00:0c:29:90:26:1e via eth0
Mar 28 09:02:55 test dhcpd: DHCPACK on 192.168.0.100 to 00:0c:29:90:26:1e via eth0
5.碰到的問題
1.client啟動network服務的時候提示:
determining IP information for eth0 ... failed; no link present. check cable?
解決:
在/etc/sysconfig/network-scripts/ifcfg-eth0 檔案後增加如下內容:
check_link_down () {
return 1;
}
2./etc/init.d/dhcpd start 提示:
-bash: /etc/init.d/dhcpd: permission denied
解決:#chmod u+x dhcpd
3.# service dhcpd start
dhcpd: unrecognized service
解決:/etc/inid./下無dhcpd指令檔,或者該檔案不可執行,重新添加檔案或增加執行許可權
6.將dhcpd放到服務裡執行
#vi /etc/init.d/dhcpd
#!/bin/sh
#
# dhcpd This shell script takes care of starting and stopping dhcpd.
#
# chkconfig: - 65 35
# description: dhcpd provide access to Dynamic Host Control Protocol.
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -f /usr/sbin/dhcpd ] || exit 0
[ -f /etc/dhcpd.conf ] || exit 0
RETVAL=0
# See how we were called.
case "$1" in
start)
# Start daemons.
echo -n "Starting dhcpd: "
daemon /usr/sbin/dhcpd eth0
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dhcpd
;;
stop)
# Stop daemons.
echo -n "Shutting down dhcpd: "
killproc dhcpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dhcpd
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
status)
status dhcpd
RETVAL=$?
;;
*)
echo "Usage: dhcpd {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
啟動服務測試一下是否正常:
#service dhcpd start
#ps -aux|grep dhcpd