一. DHCP的基本概念
1. DHCP的定义
DHCP<动态主机配置协议>是TCP/IP协议集所提供的一种实现自动分配IP配置信息的子协议。
2. DHCP的功能
① 动态分配(每一个IP地址都具有租约)
② 分配网关、WINS、DNS系统信息
③ 与DNS相结合实现动态更新
④ 保留IP地址给指定主机
3. DHCP的体系结构
DHCP服务器:运行DHCP服务软件包和DHCP协议的主机
(装有WIN2K、WINNT、LINUX、UNIX系统的主机)
DHCP客户机:运行DHCP协议可以发送DHCP请求的主机
(装有WIN2K、WINNT、WIN95/98/ME/XP、LINUX、UNIX系统的主机)
二. DHCP工作原理
1. 分配IP地址过程
① CLIENT发送广播DHCPDISCOVER寻找DCHP服务器。
② 服务器发送广播DHCPOFFER响应CLIENT的请求。
③ CLIENT会检查得到的IP信息是否完整并且发送广播DHCPREQUEST通知DHCP服务器已获得IP地址。
④ SERVER发送广播DHCPACK确认客户机的请求,表示分配成功。
2. 更新租约
① DHCP客户端重新启动时 每次DHCP客户端重新启动时, 都会自动利用广播的方式,给DHCP服务器发送DHCPREQUEST更新信息,要求继续租用原来的IP地址
② 50%时,CLIENT以点到点方式发送DHCPREQUEST请求服务器的更新租约。
③ 87.5%时,CLIENT发送广播DHCPREQUEST寻找其他DHCP服务器,如果更新成功的话,DHCP服务器向CLIENT发送DHCPACK;如果不成功的话则发送DHCPNACK。
三. DHCP服务的配置
1. 安装DHCP的服务软件包
# mount /dev/cdrom(插入第二张安装光盘)
# cd /mnt/cdrom/RedHat/RPMS
# rpm –ivh dhcp-3.0pl1-23.i386.rpm
相关文件和目录:
/var/lib/dhcp目录 :存放租约文件。
/etc/dhcpd.conf :核心配置文件, 要手工创建。
/var/lib/dhcp/dhcpd.leases :客户租约的数据库文件。
/etc/sysconfig/dhcpd :配置DHCP的启动参数。
/etc/sysconfig/dhcrelay :配置DHCP中继代理。
/etc/rc.d/init.d/dhcpd (/etc/init.d/dhcpd):DHCP服务的启动脚本
2. /etc/dhcpd.conf
# vi /etc/dhcpd.conf
格式:
选项/参数(放在所有作用域之上的选项/参数,作用范围是整个DHCP服务器)
声明 {
选项/参数(只在声明中的有效)
}
说明:
(1) 声明
n subnet 网络号 netmask 子网掩码 { ……..}
功能:定义子网 (定义作用域 )
注意:网络号必须与服务器的网络号相同,如果服务器有多块网卡时,必须为每一个网卡都建立一个相同网络号的子网,但是不用分配地址的子网可以不定义地址范围
n range 起始IP地址 终止IP地址;
功能:定义作用域范围
注意:subnet声明中至少有一个range,也可以在一个subnet中有多个range,但多个range所定义IP范围不能重复。
n host 主机名 {………}
功能:定义保留地址
注意:通常放在subnet声明中
n group {……..}
功能:定义组参数
注意:常用于包含host声明和subnet声明
n shared-network 名称 {………..}
功能:设置DHCP服务器多个IP子网共享同一个物理网络
注意:通常用于包含多个subnet声明
(2) 参数
n ddns-update-style (none|ad-hoc|interim) ;
功能:定义动态更新类型
注意:none 表示不支持动态更新
ad-hoc 表示特殊更新模式
interim 表示互动更新模式
在文件中必须包含该参数,且放在第一行
n ignore client-updates;
功能:忽略客户机更新
注意:该选项只能作为服务器选项
n default-lease-time 数字 ;
功能:指定默认地址租约
注意:可以作为服务器选项和作用域选项,默认单位为秒
n max-lease-time 数字;
功能:指定最长的地址租期
注意:可以作为服务器选项和作用域选项,默认单位为秒
n hardware 硬件类型 硬件地址;
功能:指定硬件接口类型及硬件地址
注意:硬件类型可以取ethernet/token-ring
硬件地址为网卡地址的MAC地址
该选项只能用于host声明中
n fixed-address ip地址;
功能:定义DHCP客户机指定的IP地址
注意:该选项只能用于host声明中
n server-name 主机名;
功能:通知DHCP客户机服务器的主机名
注意:可以作为服务器选项和作用域选项
(3) 选项
n option domain-name “域名”;
功能:为客户机指明DNS域名
注意:可以作为服务器选项和作用域选项
n option domain-name-servers ip地址[,ip地址…………];
功能:指定客户机的DNS服务器的地址
注意:可以作为服务器选项和作用域选项
n option host-name “主机名”;
功能:为客户机指定主机名
注意:可以作为服务器选项和作用域选项
n option routers ip地址[,ip地址……….];
功能:为客户机指定默认网关
注意:可以作为服务器选项和作用域选项
n option netbios-name-servers ip地址[,ip地址……..];
功能:为客户机指定WINS服务器地址
注意:可以作为服务器选项和作用域选项
n option broadcast-address 广播地址;
功能:设置客户机的广播地址
注意:可以作为服务器选项和作用域选项
n option subnet-mask 子网掩码;
功能:设置客户机的子网掩码
注意:可以作为服务器选项和作用域选项
n option nis-domain “名称”;
功能:定义客户机的所属NIS域的名称
注意:可以作为服务器选项和作用域选项,且只对unix/linux客户机有效
n option nis-servers ip地址[,ip地址……];
功能:定义客户机的NIS域服务器的地址
注意:可以作为服务器选项和作用域选项,且只对unix/linux客户机有效
实例:设置dhcpd.conf文件,达到以下要求:
(1) 不支持dns动态更新,且忽略客户机的更新
(2) 服务器的默认地址租约时间为3600秒,最大地址租约时间为7200秒
(3) 所有作用域的客户机后缀域名为abc.com,DNS服务器地址为192.168.0.254
(4) 所有作用域的客户机默认网关地址192.168.0.1
(5) 定义作用域192.168.0.0子网,地址掩码为255.255.255.0,地址范围为192.168.0.2-----192.168.0.250
(6) 保留192.168.0.0子网中的192.168.0.8给以太网卡物理地址为00:E0:4C:70:33:65的客户机
#vi /etc/dhcpd.conf
ddns-update-style none;
ignore client-updates;
default-lease-time 3600;
max-lease-time 7200;
option routers 192.168.0.1;
option domain-name “abc.com”;
option domain-name-servers 192.168.0.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.250;
host c1 {
hardward ethernet 00:E0:4C:70:33:65;
fixed-address 192.168.0.8;
}
}
3. 设置DHCP守护进程的工作参数
#vi /etc/sysconfig/dhcpd
DHCPDARGS=eth0(设置DHCP守护进程监听网卡接口)
4. 启动DHCP服务器
#service dhcpd start
四. DHCP客户端的配置
1. Linux客户端
(1) 设置网卡采用dhcp启动协议,自动获取ip地址信息
#vi /etc/sysconfig/network-scripts/ifcfg-ethX(X可以0,1,2……)
修改BOOTPROTO为:
BOOTPROTO=dhcp
(2) 获取IP地址
#ifdown ethX ;ifup ethX (X可以取0,1,2,……)
注意:linux系统的dhcp客户端使用dhclient服本来获取IP地址信息
2. Windows客户端
(1) 右击网上邻居----属性------双击tcp/ip协议----选择“自动获动IP地址”
(2) c:\>ipconfig/release
c:\>ipconfig/renew
五. 配置案例
要求:一台RedHat Linux 9.0主机,eth0的ip地址为:192.168.0.1,现要求利用dhcpd软件制做一台满足以下要求的DHCP服务器:
(1) 不支持dns动态更新,且忽略客户机的更新
(2) 服务器的默认地址租约时间为3600秒,最大地址租约时间为7200秒
(3) 所有作用域的客户机后缀域名为abc.com,DNS服务器地址为192.168.0.254
(4) 所有作用域的客户机默认网关地址192.168.0.1
(5) 定义作用域192.168.0.0子网,地址掩码为255.255.255.0,地址范围为192.168.0.2-----192.168.0.250
(6) 保留192.168.0.0子网中的192.168.0.8给以太网卡物理地址为00:E0:4C:70:33:65的客户机
(7) 绑定dhcp服务在eth0接口上
配置过程:
(1) # rpm –ivh dhcp-3.0pl1-23.i386.rpm
(2) # vi /etc/dhcpd.conf
ddns-update-style none;
ignore client-updates;
default-lease-time 3600;
max-lease-time 7200;
option routers 192.168.0.1;
option domain-name “abc.com”;
option domain-name-servers 192.168.0.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.250;
host c1 {
hardward ethernet 00:E0:4C:70:33:65;
fixed-address 192.168.0.8;
}
}
(3) #vi /etc/sysconfig/dhcpd
DHCPDARGS=eth0
(4) # /etc/rc.d/init.d/dhcpd restart
六. 补充内容
1. DHCP中继代理设置
#vi /etc/sysconfig/dhcrelay
INTERFACES=“eth0” 设置与DHCP服务器相连的接口名
DHCPSERVERS=“192.168.2.1” 设置DHCP服务器的地址
2. DHCP服务的部署
(1) 小型网络中可以只用一台DHCP服务器管理整个网络的IP地址, 对于一些dns,wins,web服务器应使用静态ip
(2) 大型网络由多个路由器相连时,可以在每个子网设置一台DHCP服务器,或者通过DHCP中继,再或者是通过RFC 1542路由器实现跨路由分配分配IP地址
在大型网络可以有多台DHCP服务器,并且相互提供备份,所谓的备份就是每个服务器同时建立所备份服务器的作用域,但作用