DHCP协议及DHCPRELAY

2022-10-06

如同传统的电话网络中要为每一台电话分配一个电话号码以唯一标识这个电话一样, 在IP网络中, 当一台终端需要同其他终端进行通信时, 每一个终端都需要分配一个唯一的标识号, 即IP网络上的地址, IP地址。给终端分配IP地址有多种方式, 如PPP协议的自动协商方式, 用户自定义, 管理员统一分配等。最早的主机配置方式是BOOTP协议, 多用于无盘工作站启动时从服务器上获取IP地址和启动文件名, 多与TFTP协议配合使用, 后为了功能的扩展, 发展了DHCP协议。

1 DHCP协议

DHCP协议可使终端用一个消息获取它所需要的所有配置信息, 允许终端快速、动态地获取IP地址。DHCP协议有三种地址分配方式:自动、动态、手动。

1.1 DHCP协议的三种分配方式

自动分配方式是指DHCP服务器给终端指定一个永久的IP地址。动态分配方式是指DHCP服务器给终端指定一个有时间限制的IP地址, 到时间或主机明确表示放弃这个地址时, 这个地址可以被其他的终端使用。手工分配方式中, 终端的IP地址是由网络管理员来指定的, DHCP只是将指定的IP地址告诉主机。当一台临时的主机需要接入一个网络, 而这个网络的IP地址又非常有限时, 动态分配方式就显得特别的有用。

1.2 DHCP协议的特点

DHCP协议采用C/S方式, 采用终端的硬件地址, 即MAC地址作为终端设备的标识。而且其应用是基于UDP层之上, 因此, 采用知名端口号68为客户端使用, 端口号67为服务器使用, 进行交互。但由于DHCP协议基本上来说是一个单向驱动协议, 因此DHCP服务器是完全被动的, 其动作和行为基本完全由客户端的请求行为而激发, 服务器端无法主动控制客户端, 这是DHCP协议的致命缺点。

2 DHCP协议报文

2.1 DHCP协议的封装

BOOTP/DHCP协议是在同一个物理子网中使用广播方式实现, 因此链路层的封装必须是广播形式, 让同一子网中所有主机都能收到这个报文, 因此DstMac为全1。当服务器向终端广播DHCP报文时, 由于终端是没有IP地址的, 因此IP头中ScrIp为全0。而当终端向DHCP服务器发送请求报文时, 它并不知道DHCP服务器的IP地址, 因此, 此时IP头中DstIp为全1。在UDP头中, 用SrcPort为68, DstPort为67来标识请求报文。

2.2 DHCP协议报文

DHCP使用BOOTP的报文格式, 但修改了一些字段的内容和含义。如由OP字段定义当前报文是client请求还是server应答。由“htype”、“hlen”字段定义client的网络硬件地址类型和长度。报文中还包括“客户机IP地址”、“服务器IP地址”、“中继代理IP地址”等自动分配IP地址中客户机需要的内容。增加了报文中的选项字段的“DHCP message type”选项, 使DHCP报文能将客户机和服务器之间的交互能够定义为8种不同报文类型, 0x01表示是client开始DHCP过程的第一个报文, 0x02表示此为服务器的响应报文, 0x03是客户端开始DHCP过程中对服务器的回应, 也可以是客户端延续IP地址租期发出的报文, 0x04是客户端发现IP地址冲突时发出的报文, 0x05是服务器对客户端请求报文的确认响应报文, 当客户端收到此报文, 才表示真正地获得了IP地址及相关配置信息, 0x06是服务器对客户端请求报文的拒绝响应, 0x07为客户端主动施放服务器分配的IP地址, 0x08表示客户端已获得IP地址, 发送此报文获取其他的一些网络配置信息。

3 DHCP RELAY行为

DHCP协议是建立在BOOTP协议之上的, 而最初的BOOTP协议设定是在同一个物理子网中使用广播的方式来实现, 无法穿越路由器扩展到不同的物理子网中, 为了克服这一局限, DHCP协议采用DHCP RELAY的方式实现不同物理子网之间IP地址的自动获取。DHCP RELAY可以是路由器也可以是一台主机, 总之是具有DHCP RELAY功能, 能够监听UDP目的端口号为67的所有报文。

3.1 DHCP RELAY处理报文过程

当DHCP RELAY监听到一个UDP端口号为67的报文的时候, 会首先判断是否是用户请求报文, 如果是, 再查看跳数字段是否在规定范围内, 如果DHCP RELAY决定要传播该报文, 则DHCP RELAY会改变报文中“中继代理IP地址”, 如果该字段为0则DHCP RELAY会挑选一个IP地址填入其中并继续用它传播全部DHCP报文;如果不为0, 则, 该字段不可以被修改或填充。在这两种情况下, 报文都将会以单播的形式到达目的地, 当然这个目的地可以是配置的以实现多个物理子网中穿行的目的。

3.2 一些DHCP RELAY设备的配置

3.2.1 ESR8850

ESR8850的地址分配分为内部分配和外挂DHCP服务器分配两种。其内部分配主要由PPP方式协商获得, 而外部DHCP实现DHCP RELAY功能只需在相应接口下配置DHCP服务器地址即可。

3.2.2 S3526

华为公司生产的S3562系列交换机也可以实现DHCP RELAY功能, 它可以支持20个DHCP服务器组, 每个服务器组可以配置2个IP地址, 主服务器和备份服务器的IP地址, DHCP服务器组的设置可以让不同的用户群到不同的DHCP服务器组申请IP地址, 可以让某些Vlan到一个服务器组申请IP而另一些Vlan到另一个服务器组申请IP。

对DHCP服务器组IP地址的配置:

对Vlan接口配置对应DHCP服务器组

这样对应的Vlan2中的主机将从172.20.134.1的DHCP服务器中获取IP地址。

4 结语

DHCP在减少组网工作量的同时也有一定的制约性。由于DHCP服务器是完全被动的, 无法控制客户端的行为, 因此其安全性就降低了, 很容易遭受到非法用户的恶意攻击。为了克服这个缺点, DHCP协议也在不断的发展和完善中。

摘要:DHCP协议是网络组网中重要的主机自动获取IP地址协议, 本文从DHCP的分配方式和协议封装来解析DHCP协议及DHCP中继配置

关键词:DHCP协议,DHCP报文,DHCP,RELAY配置

上一篇:浅谈国际工程项目管理及当前问题下一篇:试论政治思想工作在公路工程管理中的引领作用

本站热搜