一个例子,配置文件内容如下
ddns-update-style interim; #定义所支持的DNS动态更新类型(必选)
ignore client-updates; #忽略客户机更新DNS记录
allow bootp;
subnet 192.168.0.0 netmask 255.255.255.0{ #定义作用域(IP子网)
range 192.168.0.11 192.168.0.200; #定义作用域(IP子网)范围
option routers 192.168.0.1; #为客户端指定网关
option subnet-mask 255.255.255.0; #为客户端指定子网掩码
option domain-name “dpgroup.net”; #为客户端指定DNS域名
option domain-name-servers 166.111.8.28,202.106.196.115; #为客户端指定DNS服务器的IP地址
option broadcast-address 192.168.0.255; #为客户端指定广播地址
default-lease-time 86400; #指定默认的租约期限
max-lease-time 172800; #指定最大租约期限
host node4{ #为某台客户机定义保留地址
hardware Ethernet 00:03:FF:25:5d:a3; #客户机的网卡物理地址
fixed-address 192.168.0.27; #分配给客户机的一个固定IP地址
filename "vmlinux";
option root-path "/usr/src/toshiba/target";
}
}
4、启动和停止DHCP服务
①启动
/etc/init.d/dhcpd start或service dhcpd start
②重新启动
/etc/init.d/dhcpd restart或service dhcpd restart
③停止
/etc/init.d/dhcpd stop或service dhcp stop
④开机自动启动
进ntsysv找到dhcpd,在前面打上*号即可
DHCP (Dynamic Host Configuration Protocol) 动态主机配置协议
·为在同一网络的主机自动分配动态IP
·[root@book named]# /sbin/ifconfig -a eth0 | grep MULTICAST #查看内核是否支持多播
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
·为使用DHCP服务器能满足某些挑剔的DHCP客户机,应在路由表中加入一个到地址255.255.255.255的路由。
·DHCP服务器必须能将数据包送到255.255.255.255的IP地址上,但Linux本身又将该地址作为本地子网的广播地
---------------------------------------------------------------------------------------------------------
/etc/dhcpd.conf通常包括三部分:parameters、declarations 、option。
1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户
参 数 解 释
ddns-update-style 配置DHCP-DNS 互动更新模式。
default-lease-time 指定确省租赁时间的长度,单位是秒。
max-lease-time 指定最大租赁时间长度,单位是秒。
hardware 指定网卡接口类型和MAC地址。
server-name 通知DHCP客户服务器名称。
get-lease-hostnames flag 检查客户端使用的IP地址。
fixed-address ip 分配给客户端一个固定的地址。
authritative 拒绝不正确的IP地址的要求。
2.DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等
声 明 解 释
shared-network 用来告知是否一些子网络分享相同网络。
subnet 描述一个IP地址是否属于该子网。
range 起始IP 终止IP 提供动态分配IP 的范围。
host 主机名称 参考特别的主机。
group 为一组参数提供声明。
allow unknown-clients;deny unknown-client 是否动态分配IP给未知的使用者。
allow bootp;deny bootp 是否响应激活查询。
allow booting;deny booting 是否响应使用者查询。
filename 开始启动文件的名称. 应用于无盘工作站。
next-server 设置服务器从引导文件中装如主机名,应用于无盘工作站。
3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始
选 项 解 释
subnet-mask 为客户端设定子网掩码。
domain-name 为客户端指明DNS名字。
domain-name-servers 为客户端指明DNS服务器IP地址。
host-name 为客户端指定主机名称。
routers 为客户端设定默认网关。
broadcast-address 为客户端设定广播地址。
ntp-server 为客户端设定网络时间服务器IP地址。
time-offset 为客户端设定和格林威治时间的偏移时间,单位是秒。
注意:如果客户端使用的是视窗操作系统,不要选择"host-name"选项,即不要为其指定主机名称
三、启动和检查DHCP服务器
使用命令启动DHCP服务器:
#service dhcpd start
使用ps命令检查dhcpd进程:
#ps -ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
使用检查dhcpd运行的端口:
# netstat -nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 24783/dhcpd
DHCP配置常见错误排除
通常配置DHCP 服务器很容易,不过,在这里有一些技巧可以帮助您避免出现问题。对服务器而言,要确保网卡正常工作,并具备广播功能。对客户机而言,还要确保客户机的网卡 正常工作。最后,要考虑网络的拓扑,并考虑客户机向 DHCP 服务器发出的广播消息是否会受到阻碍。另外如果dhcpd进程没有启动,那么可以浏览 syslog 消息文件来确定是哪里出了问题。这个消息文件通常是 /var/log/messages。
典型故障:
1.DHCP服务器配置完成,没有语法错误。但是网络中的客户机却没办法取得IP地址。
通常是Linux DHCP服务器没有办法接收来自255.255.255.255 的 DHCP 客户机的Request 封包造成的。一般是Linux DHCP服务器的网卡没有设置具有MULTICAST功能。为了让dhcpd(dhcp程序的守护进程)能够正常的和DHCP客户机沟通,dhcpd必须 传送封包到255.255.255.255这个IP地址,但是有些Linux系统里255.255.255.255这个IP地址被用来做为监听区域子网域 (local subnet)广播的 IP地址,所以需要在路由表(routing table)里加入255.255.255.255以激活MULTICAST功能;
使用命令:
route add -host 255.255.255.255 dev eth0
如果报告错误消息:255.255.255.255:Unkown host
那么请先修改/etc/hosts加入一行:
255.255.255.255 dhcp
--------------------------------------------------------------------------------------------------------------------------------
DHCP服务器的安全
1. 在指定网络接口启动DHCP服务器
如果你的Linux系统连接了不止一个网络界面,但是你只想让 DHCP 服务器启动其中之一,你可以配置 DHCP 服务器只在那个设备上启动。在 /etc/sysconfig/dhcpd 中,把界面的名称添加到 DHCPDARGS 的列表中:
DHCPDARGS=eth0
或者直接使用命令:
Echo "DHCPDARGS=eth0" >> /etc/ sysconfig/dhcpd
这样对于带有两个网卡的防火墙机器,更加安全:一个网卡可以被配置成 DHCP 客户来从互联网上检索 IP 地址;另一个网卡可以被用作防火墙之后的内部网络的 DHCP 服务器。仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连接它的守护进程。