曹茸
(西安欧亚学院信息工程学院,陕西西安710065)
DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议[1-2],用于给网络中的PC动态分配IP信息,其IP租期到期则是自动收回租用,以便于分配给其他主机的功能大大提高了IP地址的使用率,解决了BOOTP网络缺乏“动态性”的弊端,且DHCP向下兼容BOOTP。随着网络规模的扩大和复杂程度的提高,DHCP服务和DHCP中继代理服务功能将得到广泛应用。
DHCP的工作过程主要包括发现、提供、请求、确认和更新租期等过程,如图1所示。
图1 DHCP的工作过程
各过程的功能如下[4]:
(1)DHCP Discover:DHCP客户端连入网络后,要获取IP信息,先以0.0.0.0的IP地址带着自己的MAC地址,向本网络发送255.255.255.255的广播信息,寻找网络的DHCP服务器。
(2)DHCP Offer:网络中的所有主机侦听到该广播信息,只有所有DHCP服务器给予相应,采用单播方式回应客户端请求,包括可以提供的IP信息。
(3)DHCP Request:客户端默认选择最早收到的IP租用信息,并通过广播方式在网络上发送报文,以便于让网络中所有DHCP服务器知道自己选择了哪个服务器提供的IP租用信息。没有被选中的IP信息被相应的服务器收回,以便于提供给别的主机。
(4)DHCP Ack:被选中的DHCP服务器收到客户端的Request报文,确认无误后,给客户端发送确认(Ack)报文。
此时,客户端可以使用该IP信息,租用时间开始计时,当客户端使用IP的时间到达租期的50%时[4],客户端进入Renewing状态,试图以单播形式给提供租用的DHCP服务器发送DHCP Request报文,以更新租期。当服务器收到请求并给予响应时,客户端更新租期;否则,更新失败,客户端接着使用剩余租期时间。当到达租期的87.5%时间时,客户端将进入重新绑定(Rebinding)状态,客户端以广播方式向网络中所有DHCP服务器发送DHCP Request报文,请求更新租期,如果还没有得到响应,继续使用现有IP信息,并将每隔一定时间重发DHCP Request报文,以便于更改租期,如果租期结束还没有收到响应报文,客户端被迫放弃现有IP信息。IP请求过程重新开始。
在DHCP网络中,DHCP服务器的放置位置通常有[5]:
(1)分布式,每个物理网络至少有一台DHCP服务器。(2)集中式,多个物理网络共用一台DHCP服务器。(3)混合式,多个物理网络共用几台DHCP服务器。
3种方法的比较如下:
分布式:每个物理网络至少配置一台DHCP服务器,仅管理该网络的IP分配,功能专一,响应速度快。当物理网络主机数量很少时,将造成硬件资源的极大浪费。
集中式:DHCP服务器放置在网络的中央位置,多个物理网络共用一台DHCP服务器,节省硬件资源,但需要DHCP中继代理的转发功能,且当距离相隔较远的低速网络时,响应速度较慢。
混合式:既解决了分布式硬件资源的浪费,又解决了集中式低速网络流量的问题。需要DHCP中继代理。
目前,网络中更常使用混合式布局。为保证网络的正常运转,DHCP作用域分配遵循80/20原则[5],如图2所示,DHCP Server A中的作用域保证了子网2中的80%的地址分配,兼顾子网1中的20%的地址分配;同理DHCP Server B的作用域保证了本子网80%的地址分配,其余的20%地址由DHCP Server A承担。这样,即使DHCP Server A出现故障时,也能由DHCP Server B保证至少20%的可用地址。
图2 DHCP作用域的80/20原则
DHCP的中继代理功能,可由支持RFC1542的路由器完成,也可由Win Server服务器完成。如图3所示,以VPN Win03为DHCP服务器,H3C MSR30-20为DHCP中继代理,描述DHCP中继代理的工作原理。
图3 网络拓扑图
DHCP Client C获取IP的过程如下:(1)DHCP Client C在子网1中发送DHCPDiscover广播报文。(2)SwA没有隔断广播风暴的功能,RTA将接收该IP为0.0.0.0的报文信息,并在代理文件中填入RTA自己的IP地址,将消息单播转发到子网2上的DHCP Server A。(3)子网2上的DHCP Server A收到此消息时,会从DHCP作用域中找到网关是192.168.1.1/24的可用IP地址租约。(4)DHCP Server A处理IP地址租约(DHCP Offer)并将其以单播形式回送给网关IP地址字段中标识的中继代理(192.168.1.1/24)RTA。(5)RTA将地址租约(DHCP Offer)以广播的形式转发给DHCP客户端。
以图3为例,构建物理网络,在Win XP主体机上配置VPNWin03的DHCP服务功能,启动RTA的中继代理功能。实现DHCP Server A向DHCP Client C分配IP信息。
在XP系统上安装VPN WIN03,在VPN上安装DNS、AD和DHCP服务器,并完成相关设置,授权激活作用域,将主体机XP连入到SwA。如图4所示,MAC为00E0-4C72-072F的DHCP Client A获取正确的IP信息。而MAC为0014-2AFF-E890的DHCP Client C只获取了169.254.0.0网段的IP信息,如图5所示。
在MSR30-20上配置DHCP中继代理后,DHCP Client C获取IP信息如图6所示[4],DHCP服务器中作用域192.168.1.0/24的IP地址的分配情况如图7所示。
连接MSR30-20的console口进行如下配置:
[RTA]dhcp enable
[RTA]dhcp relay server-group 1 ip 192.168.2.2
[RTA]interface GigabitEthernet 0/0
[RTA-GigabitEthernet0/0]dhcp select relay
[RTA-GigabitEthernet0/0]dhcp relay server-select 1
实验证明,图3所示方案可行,而且将支持RFC1542的路由器作为DHCP中继代理,VPNWin03系统作为DHCP Server,通过同一个实验完成DHCP和中继代理功能,解决了实验环境中只有XP等系统没有Win03系统的问题,弥补了教学中将路由器和Win03 DHCP功能割裂开讲解的不足。
[1] 黄彩凤.DHCP基本原理及配置[J].铁道通信信号,2009,45(7):44-46.
[2] 张子陆.简述DHCP服务器配置[J].福建电脑,2010(5):177-178.
[3] 韩丽,崔建涛.DHCP中继代理在虚拟机上的实现[J].太原理工大学学报,2010,41(2):163-165.
[4] 杭州华三通信技术有限公司.H3C网络学院路由交换:第1卷(上册)[M].北京:H3C通信技术有限公司,2010.
[5] 微软公司.网络基本架构的规划和维护[M].北京:高等教育出版社,2005.
[6] 梁金.DHCP协议及DHCP Relay[J].科技资讯,2010(12):29.
[7] 何智勇,沈苏彬,毛燕琴.DHCP协议优化方案研究[J].计算机技术与发展,2010,20(9):5-9.
[8] 丰硕,林美蓉.浅谈解决DHCP动态更改IP地址问题[J].电脑知识与技术,2010,6(11):2589-2590.