DHCPv6_Snooping测试实操(信而泰原创文章)
DHCPv6 Snooping原理
DHCPv6 Snooping概述
(1)DHCPv6 Snooping
·Dynamic Host Configuration Protocol Snooping
·动态主机配置协议监听
(2)定义
保证DHCP客户端从合法的DHCP服务器获取IP地址,并记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击
(3)目的
抵御网络中针对DHCP的各种攻击
DHCPv6 Snooping的基本原理
·DHCP Snooping分为DHCPv4 Snooping和DHCPv6 Snooping,两者实现原理相似,以下以DHCPv4 Snooping为例进行描述。
·使能了DHCP Snooping的设备将用户(DHCP客户端)的DHCP请求报文通过信任接口发送给合法的DHCP服务器。之后设备根据DHCP服务器回应的DHCP ACK报文信息生成DHCP Snooping绑定表。后续设备再从使能了DHCP Snooping的接口接收用户发来的DHCP报文时,会进行匹配检查,能够有效防范非法用户的攻击。
DHCP Snooping信任功能-1
·DHCP Snooping的信任功能,能够保证客户端从合法的服务器获取IP(Internet Protocol)地址。
·网络中如果存在私自架设的DHCP Server仿冒者,则可能导致DHCP客户端获取错误的IP地址和网络配置参数,无法正常通信。DHCP Snooping信任功能可以控制DHCP服务器应答报文的来源,以防止网络中可能存在的DHCP Server仿冒者为DHCP客户端分配IP地址及其他配置信息。
·DHCP Snooping信任功能将接口分为信任接口和非信任接口:
信任接口正常接收DHCP服务器响应的DHCP ACK、DHCP NAK和DHCP Offer报文。另外,设备只会将DHCP客户端的DHCP请求报文通过信任接口发送给合法的DHCP服务器。
非信任接口在接收到DHCP服务器响应的DHCP ACK、DHCP NAK和DHCP Offer报文后,丢弃该报文。
DHCP Snooping信任功能-2
在二层网络接入设备使能DHCP Snooping场景中,一般将与合法DHCP服务器直接或间接连接的接口设置为信任接口(如图中的if1接口),其他接口设置为非信任接口(如图中的if2接口),使DHCP客户端的DHCP请求报文仅能从信任接口转发出去,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,私自架设的DHCP Server仿冒者无法为DHCP客户端分配IP地址。
上图为DHCP Snooping信任功能示意图
DHCP Snooping绑定表-1
如图所示的DHCP场景中,连接在二层接入设备上的PC配置为自动获取IP地址。PC作为DHCP客户端通过广播形式发送DHCP请求报文,使能了DHCP Snooping功能的二层接入设备将其通过信任接口转发给DHCP服务器。最后DHCP服务器将含有IP地址信息的DHCP ACK报文通过单播的方式发送给PC。
在这个过程中,二层接入设备收到DHCP ACK报文后,会从该报文中提取关键信息(包括PC的MAC地址以及获取到的IP地址、地址租期),并获取与PC连接的使能了DHCP Snooping功能的接口信息(包括接口编号及该接口所属的VLAN),根据这些信息生成DHCP Snooping绑定表。以PC1为例,图中二层接入设备会从DHCP ACK报文提取到IP地址信息为192.168.1.253,MAC地址信息为MACA。再获取与PC连接的接口信息为if3,根据这些信息生成一条DHCP Snooping绑定表项
上图为DHCP Snooping绑定表功能示意图
DHCP Snooping绑定表根据DHCP租期进行老化或根据用户释放IP地址时发出的DHCP Release报文自动删除对应表项。
由于DHCP Snooping绑定表记录了DHCP客户端IP地址与MAC地址等参数的对应关系,故通过对报文与DHCP Snooping绑定表进行匹配检查,能够有效防范非法用户的攻击。
为了保证设备在生成DHCP Snooping绑定表时能够获取到用户MAC等参数,DHCP Snooping功能需应用于二层网络中的接入设备或第一个DHCP Relay上。
在DHCP中继使能DHCP Snooping场景中,DHCP Relay设备不需要设置信任接口。因为DHCP Relay收到DHCP请求报文后进行源目的IP、MAC转换处理,然后以单播形式发送给指定的合法DHCP服务器,所以DHCP Relay收到的DHCP ACK报文都是合法的,生成的DHCP Snooping绑定表也是正确的。
DHCPv6 Snooping支持的LDRA功能-1
概述:
RFC 6221定义了轻量级DHCPv6中继代理LDRA(Lightweight DHCPv6 Relay Agent),它是一种在DHCPv6交互报文中插入中继代理选项信息以标示用户位置的规范。
类似于DHCPv4网络中使用的Option82选项,在DHCPv6网络中可以使用LDRA获取用户详细的位置信息。LDRA一般部署在靠近用户的接入设备上。
实现:
LDRA工作流程与DHCPv6中继工作流程相似。当接收到用户的DHCPv6请求报文时,部署LDRA功能的设备即会构建Relay-Forward报文并在其中封装用户的位置信息(如用户与设备连接的接口信息等)然后转发给DHCPv6 Server,从而使得DHCPv6 Server能够获取到DHCPv6 Client的物理位置信息进而为用户部署诸如IP地址分配、QoS、接入控制等策略。
DHCPv6 Snooping支持的LDRA功能-2
LDRA详细工作交互过程如下
DHCPv6 Snooping支持的LDRA功能-3
DHCPv6客户端向LDRA设备发送DHCPv6报文。
LDRA设备收到客户端的DHCPv6报文后,将其封装在Relay-Forward报文的中继消息选项中,同时将用户的位置信息封装在Relay-Forward报文中的interface-id或remote-id中,之后将Relay-Forward报文发送给DHCPv6服务器。
DHCPv6服务器从Relay-Forward报文中解析出DHCPv6客户端的请求以及用户位置信息,之后根据用户位置信息为DHCPv6客户端选取IPv6地址和其他配置参数,构造应答消息,将应答消息封装在Relay-Reply报文中,并发送给LDRA设备。
LDRA设备从Relay-Reply报文中解析出DHCPv6服务器的应答,转发给DHCPv6客户端。DHCPv6客户端根据应答报文获取到DHCPv6服务器地址,后续从该服务器获取IPv6地址和其他网络配置参数。
DHCP Snooping应用场景-1
防止非DHCP用户攻击导致合法用户无法正常使用网络
攻击原理
在DHCP网络中,静态获取IP地址的用户(非DHCP用户)对网络可能存在多种攻击,譬如仿冒DHCP Server、构造虚假DHCP Request报文等。这将为合法DHCP用户正常使用网络带来了一定的安全隐患。
解决方法
·为了有效的防止非DHCP用户攻击,可开启设备根据DHCP Snooping绑定表生成接口的静态MAC表项功能。
·之后,设备将根据接口下所有的DHCP用户对应的DHCP Snooping绑定表项自动执行命令生成这些用户的静态MAC表项,并同时关闭接口学习动态MAC表项的能力。此时,只有源MAC与静态MAC表项匹配的报文才能够通过该接口,否则报文会被丢弃。因此对于该接口下的非DHCP用户,只有管理员手动配置了此类用户的静态MAC表项其报文才能通过,否则报文将被丢弃。
·动态MAC表项是设备自动学习并生成的,静态MAC表项则是根据命令配置而成的。MAC表项中包含用户的MAC、所属VLAN、连接的接口号等信息,设备可根据MAC表项对报文进行二层转发。
DHCP Snooping应用场景-2
防止DHCP报文泛洪攻击导致设备无法正常工作
攻击原理
在DHCP网络环境中,若攻击者短时间内向设备发送大量的DHCP报文,将会对设备的性能造成巨大的冲击以致可能会导致设备无法正常工作。
解决方法
为了有效的防止DHCP报文泛洪攻击,在使能设备的DHCP Snooping功能时,可同时使能设备对DHCP报文上送DHCP报文处理单元的速率进行检测的功能。此后,设备将会检测DHCP报文的上送速率,并仅允许在规定速率内的报文上送至DHCP报文处理单元,而超过规定速率的报文将会被丢弃。
DHCP Snooping应用场景-3.1
防止DHCP Server仿冒者攻击导致用户获取到错误的IP地址和网络参数
攻击原理
·由于DHCP Server和DHCP Client之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。如果该DHCP服务器为用户分配错误的IP地址和其他网络参数,将会对网络造成非常大的危害。
·如图所示,DHCP Discover报文是以广播形式发送,无论是合法的DHCP Server,还是非法的DHCP Server都可以接收到DHCP Client发送的DHCP Discover报文。
上图为DHCP Client发送DHCP Discover报文示意图
DHCP Snooping应用场景-3.2
如果此时DHCP Server仿冒者回应给DHCP Client仿冒信息,如错误的网关地址、错误的DNS(Domain Name System)服务器、错误的IP等信息,如图所示。DHCP Client将无法获取正确的IP地址和相关信息,导致合法客户无法正常访问网络或信息安全受到严重威胁。
上图为DHCP Server仿冒者攻击示意图
DHCP Snooping应用场景-3.3
解决方法
·为了防止DHCP Server仿冒者攻击,可配置设备接口的“信任(Trusted)/非信任(Untrusted)”工作模式。
·将与合法DHCP服务器直接或间接连接的接口设置为信任接口,其他接口设置为非信任接口。此后,从“非信任(Untrusted)”接口上收到的DHCP回应报文将被直接丢弃,这样可以有效防止DHCP Server仿冒者的攻击。如图所示。
上图为Trusted/Untrusted工作模式示意图
测试用例
测试用例(防私设服务器)
测试需求
如上图所示,在二层网络接入设备使能DHCPv6 Snooping场景中,一般将与合法DHCP服务器直接或间接连接的接口设置为信任接口(如图中的gi0/5接口),其他接口设置为非信任接口(如图中的gi0/6接口),使DHCP客户端的DHCP请求报文仅能从信任接口转发出去,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,私自架设的DHCP Server仿冒者无法为DHCP客户端分配IP地址。
配置思路
如图是一个纯2层的网络,用户和服务器都在同一个vlan10中,在S5700交换机上通过配置DHCP SNOOPING TRUST口,配置只有来自gi0/5的DHCP SERVER的报文可以通过,杜绝用户私设的DHCP SERVER对其他用户造成的影响。
DUT配置
配置思路
1. 开启dhcp
2. 开启全局dhcp-snooping检测功能
3. 在连接dhcp服务器的接口信任dhcp-offer报文
4. 其他接口都配置dhcp-snooping,防止非法dhcp服务器提供ip地址
测试仪配置
Step1: 添加interface
添加3条Interface
手工添加
测试仪P5、P6、P9端口分别建立IPv6接口
修改接口参数
1. P5取消“启用网关MAC地址学习”,IPv6地址修改为”fc05::5”
2. P6取消“启用网关MAC地址学习”,IPv6地址修改为”fc06::6”
3. P9设置地址数量修改为“400”,取消“启用网关MAC地址学习”
Step2: 配置DHCPv6
添加DHCPv6服务器-1
1. P5添加DHCPv6 服务器
2. Interface和协议关联,接口名称选择interface1
添加DHCPv6服务器-2
1. P6添加DHCPv6 服务器
2. Interface和协议关联,
接口名称选择interface2
添加DHCPv6服务器-3
1. P5编辑地址池,修改地址池起始地址为“fc05::1”
2. P6编辑地址池,修改地址池起始地址为“fc06::1(图略)”
注意:地址池起始地址要和接口地址保持在同一个网段
添加DHCPv6客户端
P9添加DHCPv6客户端
Step3: 开启DHCPv6验证
选择对应流模板
统计2视图选择DHCPv6 Client Session Statistics统计视图
开启DHCPv6服务器和客户端
DHCPv6块状态:Bound表示仿真客户端已获得分配的地址
连接信任端口的DHCPv6服务器获得IP地址
开启仿冒DHCPv6服务器和客户端
DHCPv6块状态:Solicting表示客户端处于DHCPv6四步交互的第一步,无法进行下去
连接仿冒的DHCPv6服务器无法获得IP地址