深度分析DHCP relay和snooping功能

一、DHCP relay

首先分析一下DHCP relay是什么协议。在使用DHCP协议,客户机可以向DHCP服务器动态的请求配置信息,包括分配的IP地址,子网掩码,缺省网关等信息。由于DHCP请求报文以广播方式进行的,这种类型报文的转发局限于一个网段内,不可以跨网段工作,因此,为进行动态主机配置需要在所有网段上都设置一个DHCP服务器,这显然是不经济的。DHCP中继的引入解决了这一问题,它在处于不同网段间的DHCP客户机和服务器之间承担中继服务,将DHCP协议报文跨网段中继到目的DHCP服务器,于是许多网络上的DHCP客户机可以共同使用一个DHCP服务器。
DHCP协议是以客户/服务器模式工作的,当DHCP客户启动时,发送配置请求报文,DHCP中继收到该报文并适当处理后发送给指定的位于其它网络上的DHCP服务器。服务器根据客户提供的必要信息,再次通过DHCP中继发送配置信息给客户机,完成对主机的动态配置。
DHCP RELAY实现的主要功能为:
1、 配置IP辅助地址
用户通过命令行界面,在接口配置模式下,为接口配置IP辅助地址,即指明DHCP SERVER
的IP地址。在接口控制块中维护辅助地址信息,供DHCP中继时使用。
各接口可以配置多个IP辅助地址(每个接口可配置的的IP辅助地址最大个数为20,可以
根据具体产品需要调整该值),IP辅助地址将被保存在接口控制块中。
2、 处理DHCP中继报文
DHCP中继代理不是对所有收到的DHCP报文都作中继处理,在中继前需要识别需要处理的
DHCP报文。需要强调的是在服务器端如回应报文发送给DHCP中继,则回应报文目的端口设为
67。
DHCP中继模块通过Socket收发DHCP中继报文。从各接口接收的DHCP协议报文,都是由Socket接收。
对DHCP报文识别后,交由中继模块处理。通常DHCP请求报文的源地址是0, DHCP中继代理必须可以接收IP源地址为0的报文。只接收UDP目的端口号为67的 DHCP报文。
(1)处理请求报文
已识别的DHCP报文,UDP目的端口号为67(BOOTPS),且BOOTP报文头中的op域是BOOTREQUEST(1),即DHCP客户机发给服务器的请求报文。将已识别的DHCP报文发送到指定的DHCP服务器。
DHCP客户机发出的请求报文,一般目的地址为广播地址,目的端口号为67,DHCP中继代理需要将报文发送至DHCP服务器处理,DHCP服务器由报文接收接口所配置的IP辅助地址来指定。
1.为防止DHCP报文中继形成环路,抛弃报文头hops域大于限定跳数的DHCP请求报文,限定跳数定义可以调整,缺省为4,最大不超过16。
2.DHCP中继代理在中继DHCP请求报文前,必须检查giaddr域,如果是0,需要将giaddr域设置为接收请求报文的接口的IP地址,如果接口有多个IP地址,可选择其一,并在以后从该接口中继的所有请求报文都使用该IP地址。如果giaddr域不是0,则不修改giaddr域。
3.DHCP中继代理中继DHCP报文时将hops域增加1跳,表明已经过一次DHCP中继。
4. BOOTP报文头所有其它域在发送前不能被DHCP中继代理修改。
5.DHCP请求报文被中继到新的目的地,该目的地就是报文接收接口的IP辅助地址,可以是DHCP服务器地址或另一个中继代理的地址。
6. 如果接收接口有多个IP辅助地址,可以选择其一作为中继的新目的地址,对于来自同一个DHCP客户机的DHCP请求报文必须使用同一个辅助地址作为目的地址。具体实现是通过chaddr域识别DHCP客户机。
7. 对于同一个接口收到的来自不同DHCP客户机的请求报文,中继采用轮循方式选择一个IP辅助地址作为报文新的目的地址。
8.对于某个接口接收到的来自不同DHCP客户机的请求报文,中继采用轮循选择一个IP辅助地址作为其新的目的地址。
9. 中继的请求报文的TTL采用新缺省值,而不是原来请求报文的TTL减1。对中继报文的环路问题可以通过hops域来避免。
(2)处理回应报文
从各接口收到的已识别的DHCP报文,UDP目的端口号为67,且BOOTP报文头中的op域是BOOTREPLY(2),即DHCP服务器希望通过中继代理发给DHCP客户机的回应报文。将已识别的DHCP报文发送到指定的DHCP客户机。
DHCP服务器发给中继的BOOTREPLY报文,一般目的地址为中继代理在处理请求报文时设置的giaddr,目的端口号为67,DHCP中继代理需要将报文发送至DHCP客户机处理,DHCP客户机与报文的giaddr所属的接口直连,通过该接口采用广播或单播方式发送至DHCP客户机。
1.中继代理假设所有的BOOTREPLY报文是发给直连的DHCP客户机。giaddr域用来识别与客户机直连的接口。如果giaddr不是本地接口的地址,BOOTREPLY报文被丢弃。
2.中继代理检查报文的BROADCAST标志,如果置为1,则发广播报文给DHCP客户机,否则发送单播报文,其目的地址为yiaddr,链路层地址为chaddr。
3.中继代理不能修改BOOTREPLY 报文的任何域。
通过dhcprelay就可以在一个大型的网络中,只要一个服务器,就可以对所有的客户端进行自动分配了。

二、DHCP snooping

其次分析一下DHCP snooping的作用是什么?DHCP Snooping 就是 DHCP 窥探,通过对 Client 和服务器之间的 DHCP 交互报文进行窥探,记录用户的IP地址和MAC地址的绑定关系,实现对用户的监控,同时 DHCP Snooping起到一个 DHCP 报文过滤的功能,通过合理的配置实现对非法服务器的过滤。下边对 DHCP Snooping内使用到的一些术语及功能进行一些解释:
DHCP Snooping TRUST 口:由于 DHCP 获取 IP的交互报文是使用广播的形式,从而存在着非法服务器影响用户正常 IP 的获取,更有甚者通过非法服务器欺骗窃取用户信息的现象,为了防止非法服务器的问题,DHCP nooping 把端口分为两种类型, TRUST口和UNTRUST口,设备只转发TRUST口收到的DHCP Reply报文,而丢弃所有来自UNTRUST口DHCP Reply报文,这样我们把合法的DHCP Server 连接的端口设置为 TURST 口,其他口设置为 UNTRUST 口,就可以实现对非法 DHCP Server 的屏蔽。
DHCP Snooping 绑定数据库:在 DHCP 环境的网络里经常会出现用户私自设置IP 地址的问题,用户私设 IP 地址不但使网络难以维护,并且会导致一些合法的使用 DHCP 获取 IP 的用户因为冲突而无法正常使用网络, DHCP Snooping通过窥探 Client 和 Server 之间交互的报文,把用户获取到的 IP信息以及用户 MAC、VID、PORT、租约时间等信息组成一个用户记录表项,从而形成一个 DHCP Snooping 的用户数据库,配合 ARP检测功能的使用,从而达到控制用户上网的目的。
DHCP Snooping 就是通过对经过设备的 DHCP 报文进行合法性检查,丢弃不合法的 DHCP 报文,并记录用户信息生成 DHCP Snooping 绑定数据库供 ARP 检测查询使用。以下几种类型的报文被认为是非法的 DHCP 报文:
1. UNTRUST 口收到的 DHCP reply 报文,包括 DHCPACK、DHCPNACK、DHCPOFFER 等。
2. 打开 mac 校验时,源 MAC 与 DHCP 报文携带的 DHCP Client 字段值分别为不同的报文。
3. 用户的信息存在于 DHCP Snooping 绑定数据库中,但是端口信息与设备保存在DHCP绑定数据库中的信息中的端口信息不一致的DHCPRELEASE、dhcp declint报文报文。
4.经过DHCP中继转发的HDPC客服端请求报文。

三、DHCP 的典型组网应用

结合前文的DHCP文章的分析DHCP的几种组网典型应用如下:
1. 在本网段内申请地址
用户与DHCP SERVER处于同一个网段内,以DHCP的方式动态获取IP地址。
2. 跨网段申请地址
用户跨网段申请地址,以DHCP的方式动态获取IP地址。
3. DHCP 应用综合组网图
用户跨网段申请地址,以DHCP的方式动态获取IP地址,该综合应用中包括DHCP
SNOOPING、DHCP RELAY等。

四、协议分析:

DHCP的主要功能是
1、DHCP允许计算机快速、动态的获取IP地址。
2、DHCP报文除能获取IP地址之外,还能获取例如子网掩码等租用地址的详细信息。
DHCP服务的优点:
1、 网络管理员可以验证IP地址和其它配置参数,而不用去检查每个主机;
2、 DHCP不会同时租借相同的IP地址给两台主机;
3、 DHCP管理员可以约束特定的计算机使用特定的IP地址;
4、 可以为每个DHCP作用域设置很多选项;
5、 客户机在不同子网间移动时不需要重新设置IP地址
DHCP服务的缺点:
1、 DHCP不能发现网络上非DHCP客户机已经在使用的IP地址;
2、 当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;
3、 DHCP服务器不能跨路由器与客户机通信,除非路由器允许DHCP转发
4. DHCP协议基本上是一个单向驱动协议SERVER完全是被动的其动作行为基本完全由CLIENT的请求行为而激发即SERVER端无法主动控制CLIENT端因此其交互性和安全性就没有PPP协议那么完善这是DHCP协议的致命缺点.

weinxin
DC Farm小程序二维码
扫一扫添加博客小程序
Jim

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:8   其中:访客  5   博主  3

    • avatar 站长 5

      好久没来了,暑假正在华三集训营学习华三体系的东西。

        • 激劉勇靖 激劉勇靖 Admin

          @站长 不错啊 就说你怎么好久都没有来了 博客也不更新了,在华三学习怎么样???有学到实质性的东西不???

            • avatar 站长 5

              @激劉勇靖 还是学理论的东西,学习的还是路由与交换的东西。

                • 激劉勇靖 激劉勇靖 Admin

                  @站长 嗯 先把基础打好,以后上手容易。加油!!!

            • avatar 洺汉特产 1

              楼主好高端啊。

              • avatar shang 1

                如果在公司 DHCP 最烦人了.

                  • 激劉勇靖 激劉勇靖 Admin

                    @shang 为什么???DHCP动态分配IP ,你只要正常连接就OK,都不需要你手动配置什么,很方便啊。还有对管理员来说也简单管理,静态ip太乱不好控制。

                  • avatar hoopsun 0

                    楼主,佩服。向你学习!加油