李军旺
(岳阳职业技术学院,湖南岳阳 414000)
DHCP 是Dynamic Host Configuration Protocol(动态主机配置协议)的简称。网络中的DHCP 服务器可以为客户机自动配置IP地址、DNS、默认网关、子网掩码等IP地址参数,在大中型网络中这项技术可以提高网络管理效率,应用比较广泛。但由于DHCP 通信的报文是以广播的形式发送,因此当DHCP 服务器与客户机不在同一网段时,报文就无法跨越,此时就要用到DHCP中继技术。
DHCP 基于UDP 协议,采用C/S 工作模式。服务器端接受客户端的请求报文的端口号为67,客户端接收服务器应答报文的端口号为68,网络层协议号字段为0x11。可以用主机、路由器或三层交换机充当DHCP 服务器[1]。其工作过程主要包括发现、提供、请求、确认四个阶段,如图1所示。
图1 DHCP工作原理
第一阶段:客户机寻找DHCP服务器
客户机启动时,以广播的方式发出DHCP Discover 报文,寻找局域网内的DHCP 服务器。DHCP Discover 报文的源IP 地址为0.0.0.0,目标地址为255.255.255.255。
第二阶段:DHCP服务器分配地址给客户机
所有收到Discover 的DHCP 服务器会做出响应,并发送DHCP Offer 报文给客户机。DHCP Offer 报文中包含从未分配地址池中挑选出来准备分配给客户机的IP地址以及网关、子网掩码、DNS地址等信息。
第三阶段:客户机接收并请求使用该IP地址
DHCP 客户端收到Offer 报文后(一般是第1 个到达的Offer包),以广播的方式应答一个DHCP Request报文,请求正式使用该IP 地址。该Request 报文中包含选定的DHCP服务器的IP地址,但该报文源IP地址仍为0.0.0.0,目标地址仍为255.255.255.255。
网络中的DHCP 服务器收到Request 报文后,根据选项字段中的IP地址判断自己分配的IP地址是否已选用。如果选项字段中的IP地址与自己的IP地址相同,表明已选用,则会向客户端发送一个DHCP Ack响应报文,同意将IP地址租用给DHCP客户端。如果不相同,则收回它以前提供IP的地址。
第四阶段:服务器确认IP地址及租期
客户机收到DHCP Ack 报文后,发送3 个ARP 解析请求到网络中,以检测被分到的IP 地址是否已使用。如果没有冲突,说明该IP地址未被其他客户机使用,则该客户机成功获得IP地址,并初始化相关信息。如果有冲突,说明该IP 地址已被其他客户机使用,本次IP 地址申请过程失败。客户机发DHCP Decline 报文给DHCP 服务器,通知它禁用此IP 地址,并重启地址申请过程。
当客户机与DHCP 服务器不在同一物理网段时,由DHCP 中继设备充当中间代理设备,代替DHCP 服务器接收DHCP 客户机的请求,并将报文以单播的形式转发给DHCP 服务器[2]。DHCP 服务器在收到由DHCP 中继设备发送来的报文后,同样以单播的形式将响应报文发送给DHCP 中继设备,再由DHCP 中继设备转发给DHCP 客户机。DHCP 中继技术解决了DHCP 客户端不能跨网段向服务器动态获取IP 地址的问题,使得同一个DHCP 服务器可以为不同网段的客户机分配IP地址[3],其工作过程如图2所示。
图2 DHCP中继原理
IP 地址池是指DHCP 服务器给客户机分配地址的范围。通过DHCP中继给客户端分配IP地址时,因为DHCP 服务器与客户机不在同一网段,所以必须创建地址池。eNSP 中创建地址池的方法是在系统模式下使用ip pool命令创建,1个子网创建一个地址池,多个子网创建多个地址池。地址池创建完后,再用network命令指定地址池对应的网络,网络地址一定要与客户机需要获取的IP地址的网络地址一致[4]。
分组从一个地方转发到另一个地方的行为和动作称为路由,路由器是执行路由的设备。当分组的源端与目的端在同一网络时,不需要路由器,目的端就能收到分组。当分组的源端与目的端不在同一网络时,需要路由器转发,目的端才能收到分组。根据DHCP中继原理,DHCP服务器与DHCP客户机不在同一网络,因此必定用到路由技术。路由分直连路由、静态路由和动态路由。直连路由是路由器在启动的时候自动生成,用来指定路由器的接口所连接的网络能相互直达。静态路由网管手工设定,设定到达某个网络要经过什么接口。动态路由通过动态路由协议自动生成,常用的动态路由协议有OSPF、RIP 等。DHCP 中继配置时,必须在DHCP 服务器上指定Offer和Ack报文的出口,通信过程才能完成[5]。
Vlanif 全称Virtual Local Area Network Interface(虚拟局域网接口),是华为设备上虚拟局域网(Vlan)的接口类型之一,是一种基于Vlan 的三层逻辑接口。每个Vlan 对应一个Vlanif 接口,配置Vlanif 接口的IP地址后,就可以与Vlan 所属子网内其他设备互相通信[6]。
2.1.1 实验拓扑(图3)
图3 路由器作为中继设备
2.1.2 实验分析
本实验的DHCP 服务器和DHCP 均采用路由器(或三层交换机)作为中继设备,设备接口均是三层口,要给PC1分配一个200.10.10.0/24网段的IP址。
2.1.3 配置及相关说明
1)配置DHCP服务器关键命令
必须启用路由器(或三层交换机)的DHCP 服务功能,路由器(或三层交换机)才能提供DHCP服务
[r1]dhcp enable//启用dhcp服务
[r1-GigabitEthernet0/0/0]ip address 192.168.1.1 24//此端口是三层端口,可以直接分配IP地址。
[r1]ip pool addr1//创建地址池addr1
[r1-ip-pool-addr1]network 200.10.10.0//指定地址池addr1对应的网络
[r1]ip route-static 200.10.10.0 24 192.168.1.2//添加至200.10.10.0 的静态路由,指定Offer 和ACK 数据包的出口。
[r1-GigabitEthernet0/0/0]dhcp select interface//开启DHCP接口地址池模式
2)配置DHCP中继关键命令
[r2]dhcp enable//启用dhcp 服务,必须启用,路由器才能提供DHCP服务
[r2-GigabitEthernet0/0/0]ip address 192.168.1.2 255.255.255.0//配置端口IP 地址,与r1 中0 端口地址在同一网段。
[r2-GigabitEthernet0/0/1]ip address 200.10.10.1 255.255.255.0//配置端口IP 地址,与PC1 地址在同一网段。
[r2-GigabitEthernet0/0/1]dhcp select relay//启用端口中继
[r2-GigabitEthernet0/0/1]dhcp relay server-ip
192.16 8.1.1//设置中继服务对应DHCP 服务器的IP地址。
3)PC机配置
PC机只需要设置自动获取IP即可。
2.2.1 实验拓扑(图4)
2.2.2 实验分析
本实验的拓扑与实验一相似,区别是DHCP 中继设备接口是二层口,路由器的二层口不能直接分配IP地址,因此配置与实验一稍有不同。
2.2.3 配置及相关说明
1)配置DHCP服务器关键命令
与实验一相同
2)配置DHCP中继关键命令
2.3.1 实验拓扑(图5)
图5 DHCP服务器要通过中继设备配两个网段的IP
2.3.2 实验分析
本实验的拓扑与实验一相似,区别是DHCP 服务器要通过中继设备配两个网段的IP。
2.3.3 配置及相关说明
1)配置DHCP服务器关键命令
因为要分配两个网段的IP,所以必须创建两个网段的IP 地址池,添加两条静态路由,且端口要启用全局模式,其他与实验一相同。
2)配置DHCP中继关键命令
DHCP 中继器与PC 相连的两个端口都要启用中继,关键代码如下,其他与实验一相同。
2.4.1 实验拓扑(图6)
图6 三层交换机作DHCP中继设备
2.4.2 实验分析
本实验的拓扑与实验三相似,区别是DHCP 中继设备采用的是三层交换机。
2.4.3 配置及相关说明
1)配置DHCP服务器关键命令
同实验三
2)配置DHCP中继关键命令
[lsw1]vlan batch 10 20 30//交换机的三个端口都不能直接设IP,因此要创建三个虚拟接口。
路由器与三层交换机都可以作DHCP 服务器,也可以作DHCP 中继设备,他们的配置方法与步骤类似。不同拓扑下,配置主要不同点是设备的端口类型,当设备的端口是二层端口时,无法直接配IP地址,必须建立虚拟端口,通过虚拟端口来配IP地址。