1.几个DHCP名词在介绍
DHCP工作原理以前,先解释这几个名词的含义:
DHCP客户:DHCP客户是一通过DHCP来获得网络配置参数的Internet主机,通常就是普通用户的工作站。
DHCP服务器:DHCP服务器是提供网络设置参数给DHCP客户的Internet主机。
DHCP/BOOTP 中继代理:在DHCP客户和服务器之间转发DHCP 消息的主机或路由器。
DHCP是基于客户机/服务器模型设计的,DHCP客户和DHCP服务器之间通过收发DHCP消息进行通讯。
2、DHCP 消息的格式
___________________________________________________________
| 0 | 1 | 2 | 3 |
|0123456789 | 0123456789 | 0123456789 | 0123456789 |
|op (1) | htype (1) | hlen (1) | hops (1) |
| xid (4) |
| secs (2) | flags (2) |
| ciaddr (4) |
| yiaddr (4) |
| siaddr (4) |
| giaddr (4) |
| chaddr (16) |
| sname (64) |
| file ( 128) |
| options ( 312) |
------------------------------------------------------------
各段描述如下:
括号里的数字代表这个段以8位组为单位的大小,除options外,其余的段的长度都是固定的,options段的长度至少是312个8位组。如op(1)代表这个段的长度为一个8
位组op 是消息操作代码,值为1 代表BOOTREQUEST(自举请求)值为2 代表BOOTREPLY(自举响应)。
在DHCP客户和DHCP服务器对话期间,op段被DHCP客户设置为BOOTREQUEST(1),被DHCP服务器设置为BOOTREPLY(2)。
htype 是硬件地址类型
hlen 是硬件地址长度
hops DHCP客户置这项为零,中继代理要用
xid DHCP客户在寻求时产生的一个随机数,它提供了对所有后续的DHCP消息中的客户请求和服务器响应的一种联合。
ciaddr 客户机用来请求一个特定的IP地址,这个地址以前曾经分配给该客户机,希望保留。
yiaddr 由DHCP服务器填写,包含它提供给某一DHCP客户的IP地址。
siaddr 服务器的主机地址
giaddr 中继代理的IP地址
chaddr DHCP客户硬件地址
sname 服务器主机名
file 启动文件名
3、修改配置文件DHCPd默认的配置文件是/etc/dhcpd.conf
这是一个文本文件,DHCPd里有一个语法分析器,能对这个文件进行语法分析,获得配置参数。
dhcpd.conf 格式是递归下降的,关键字大小写敏感,可以有注释,注释以#开头,一直到该行结束。这里给出一个简单的dhcpd.conf的例子,所服务的网络为C类保留网络192.168.1.0 .
#examples # 缺省租约时间 default-lease-time 28800; # 最大租约时间 max-lease-time 43200; # 子网掩码选项 option subnet-mask 255.255.255.0; # 广播地址 option broadcast-address 192.168.1.255; # 路由器地址 option routers 192.168.1.1; # DNS地址 option domain-name-servers 202.96.134.133;
4、DHCP分配IP地址的过程
DHCP客户机初始化TCP/IP,在本地物理子网上广播一个DHCPDISCOVER 消息,以确定DHCP服务器位置及其IP地址。如果DHCP服务器和客户不在同一个物理子网上,BOOTP中继代理将转发这个消息给DHCP服务器。由于网络上可能不止一个DHCP服务器,凡所有具有有效IP地址信息的DHCP服务器向客户机发出一个提议。客户机从接收到的第一个提议中选定IP地址信息,并广播一条租用地址的消息请求。由发出该提议的DHCP服务器响应该消息,指定IP地址信息给该客户机并发送一个确认,而所有其它DHCP服务器撤回各自的提议。客户机完成TCP/IP协议的初始化和绑定。配置完成后,客户机就可以使用普通网络通信和连接至其它IP主机时用到的所有IP服务和应用。