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