版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://jeffyyko.blog.51cto.com/28563/167570
本节主要讨论DHCP中继的概念、分析和实施。
    在某些情况下,我们需要为不在同一网段的客户机自动配置IP地址、网关等网络信息,通过默认的DHCP似乎不能直接实现这个目的,所以我们需要用到一个小程序即DHCP中继代理程序。它的目的是在DHCP服务器和不在同一网络的DHCP客户端之间架一座桥梁,使得DHCP客户端的请求数据包可以通过它转发给另一网络内的DHCP服务器,以此来实现自动分配IP地址等信息的目的。
   为了更好的理解整个过程,这里将会通过一个演示来展现这个过程,先看一下网络拓扑。如下图:
可以看到,完成这个实验我们需要准备3台主机,其中有两台服务器,一台是DHCP服务器,另一台 双网卡的DHCP中继代理服务器,如果当前有路由设备支持DHCP中继代理功能(比如路由器),这里就完全可以替换为路由设备,没有任何问题。我这里就用Windows2003的DHCP中继程序来代替了,而客户端为验证实验结果之用。
实验最终目的是客户端自动获取到一个10.0.0.X的IP地址,且DHCP服务器为192.168.1.1。
   现在我们一步步来做,请大家特别留意DHCP服务器网关的设置,
一、安装DHCP并配置作用域
   这个步骤这里就不重复了,详见本系列之(四)。配置完成后,如下图:
二、安装并配置DHCP中继代理
    请首先分别设置好两张网卡的IP地址。并将内网卡与DHCP服务器相连。
    一般情况下,我们通过WIN2003自带的【路由和远程访问】来添加DHCP中继程序。步骤如下:
打开【运行】窗口,输入rrasmgmt.msc命令。如下图:
【确定】后,会进入以下程序。如下图:
【路由和远程访问】默认禁用的,添加DHCP中继程序的过程也就是启用的过程。
选择【配置并启用路由和远程访问】后,如下图:
点选【下一步】,然后如下图:
其实利用这个组件我们可以做很多事,比如创建×××、路由等。这里我们选择【自定义配置】。点选【下一步】,然后如下图:
如果想让10.0.0.0网络的访问请求发送到192.168.1.0的网络中,默认情况下两个不同的网段是无法直接访问的,只有在中间加设路由组件才可以。所以这里我们选择
【LAN路由】,以此将这两个网段连接起来。点选【下一步】,然后如下图:
这些是安装的概述信息,点击【完成】即可。如下图:
此时会弹出一个对话框询问是否现在就开启服务,我们选择【是】。如下图:
服务正在开启,需要稍等片刻。此服务正常启动后的界面,如下图:
通常我们需要手动添加DHCP中继代理程序。右键点选IP路由选择/常规,如下图:
选择【新增路由协议】,如下图:
这里我们选择第一个【DHCP 中继代理程序】,点击【确定】即可。
此外,我们还需要将这个程序指向DHCP服务器,否则这个代理就无法正常工作。
打开【DHCP 中继代理程序】属性,并选择【新增接口】。如下图:
然后弹出一个窗口。如下图:
请留意图中的文字说明。我们这里选择NC2这个网卡,因为这个网卡是和客户机相连的。【确定】后,弹出一个对话框。如下图:
这里的设置保持默认即可,【确定】后,打开刚才添加的DHCP中继代理程序的属性,进行如下设置:
我们还需要将DHCP服务器的IP告之代理程序,这样才能处理传入的DHCP请求。
输入IP地址并确定后,DHCP中继程序就配置完成了。如果网内有多台DHCP服务器,在这里都可以将他们添加进去。
三、验证DHCP代理功能
    一切准备就绪,现在开始接入XP2客户端进行验证。为了更清晰的掌握整个IP获取的过程,其间我会打开wireshark,进行辅助分析。
首先将XP2主机上的IP地址释放掉。如下图:
好,现在要开始分析获取过程了。我们需要知道wireshark可以抓取到同网段的所有数据包。在这个例子中,由于存在两个不同的网段,所以至少要在两台主机上分别运行wireshark才可以把整个过程完整的呈现出来。为了便于理解,我们还是按照DHCP的4个交互过程来分别讲解。
1、DHCP客户端查询
DHCP客户端启动后会进行发送DHCP Discover数据包查询DHCP服务器的位置,默认情况下广播数据包是无法穿越本地网段的。
2、DHCP服务器响应
当中继程序把DHCP客户端的请求转发至DHCP服务器之后,DHCP服务器会查看自己的配置并检查是否有可用的IP地址指派,如果有则会返回给客户端一个Offer,即 返回给中继代理一个DHCP Offer 数据包,其中就包含了指派给客户端的IP地址。
如下图:
 当数据包返回到DHCP中继代理上后,代理程序会将其转发给客户端。如下图:
3、客户端的广播通告
    客户端收到来自10.0.0.1,其实就是192.168.1.1所给的Offer数据包后为了让其他DHCP服务器都知道已经分配到了IP,所以会发送广播数据包。同样,依然会通过中继代理转发出去。
中继代理收到此数据包后会转发到所有的网络上,也包括192.168.1.0的网络。
如下图:
4、DHCP服务器确认
    指派这个IP的地址的DHCP服务器收到此广播后,返回一个确认包给客户端。
DHCP中继程序收到ACK的数据包后转发给客户端。如下图:
到此为止,客户端在中继代理的辅助下,获取到了一个10.0.0.X的IP地址。如下图:
指派的IP为10.0.0.2,DHCP服务器是192.168.1.1 ,可见DHCP中继代理程序工作正常。
DHCP中继代理的整个过程描述完了,希望大家能有所收获。
下节应该是本系列最后一节,大致讲述有关超级域的东西,以及本系列的总结。
谢谢!
本文出自 “ 许一君的原创技术博客” 博客,请务必保留此出处 http://jeffyyko.blog.51cto.com/28563/167570