DHCP V6简要说明
ipv6存在三种IP地址配置方式,一种是动态配置(dhcp)是本文介绍的主要对象;一种是无状态地址自动配置(SLAAC,即设备中生成IP),这个是DNP snooping关心的,本文不涉及;第三种就是静态配置,即用户手动设置,是本文中防护措施需要考虑的场景之一。
DHCPv6 是DHCP协议的ipv6版本。该协议允许终端快速自动地获取IPV6地址。该协议方便网络管理员管理和验证IPV6地址以及其他配置参数,而无需一一去每个终端检查上检查。终端在不同子网间移动时也不再需要重现设置IP地址。
DHCPv6协议的优点如上所述,显而易见。但是该协议也必不可免存在缺点:
1、 服务器不能感知网络上静态配置的IPV6地址;
2、 服务器不能感知网络上其他服务器分配的IPV6地址。
3、 该协议是一个单向驱动协议。服务器不能主动控制客户端,完全处于被动状态,其交互性和可靠性依赖于客户端。
客户端通常发送dhcpv6消息一般都是采用广播地址ff02::1:2 达到多个或者单个服务器,单个服务器则在客户端消息中的server identifier选项中的DUID来确认是否需要回应。如果消息中没有该选项,则表示是发送给所有服务器。
DHCPV6正常申请地址的报文交互过程如下,一般是四步:
上述报文交互过程可以看到,这边solicit定位服务器时,只能采用广播地址,但是我们知道广播域是非常局限的,它无法跨路由使用。这就要求每个物理网络中必须至少要有一台DHCPV6服务器。就算忽略经济问题,对网络管理员来说也是非常不便利的。因此协议中增加了relay场景,以便跨路由获取dhcpv6的服务
由客户端发起的请求报文都是广播报文,按理说request报文是在多个可用服务器中选择一个服务器,应该可以直接采用单播发包的,但是这个报文仍然是采用的广播,这个是因为relay不代理单播请求报文。只要服务器的网络中宏存在relay中继器,并且该relay有发送relay agent选项,则不可以使用单播进行请求。发送单播请求报文必须是在收到服务器发出的unicast option选项信息之后才行。
对于client而言,是无感知relay报文的。因此client并不知道自己是否跨三层申请地址了,即不清楚自己申请的IP地址是经relay转发的还是服务器直接分配的。所以一般情况下,所有client的请求报文都是广播处理。除非client接收到的应答报文中包含了unicast option,即服务器告诉客户端,他们是二层关系,客户端可以直接发单播过来。但是除非服务器认为他的服务网络内,一个relay都没有(一直收不到任何relay 报文)的情况下,才有可能向终端发送unicast option,告知终端可以发单播。一般情况下,服务器都会默认网络中存在relay。
DHCPv6 snooping应用场景
由于DHCP snooping当前用户表项的MAC地址是根据报文的源MAC生成,因此无法适用于relay场景。。。
问题:dhcp snp如何适配relay场景?为relay场景单独维护一套表项?即使如此,也无法利用ip source guard来过滤报文呢
1、从安全角度讲,DHCPV6协议也是架设在IP、UDP之上的服务协议,那么网络攻击行为也就一样存在于DHCP协议。常见的攻击行为就是大量砸包、伪造客户端攻击服务器,伪造服务器攻击终端,总之就是不让网络设备或者协议正常使用。其中,大流量砸包企图将网络设备砸晕这种攻击由设备自行防护,一般都有CPP和NFPP抵御措施,不在本篇讨论范围内。
①dhcpv6中,server完全处于被动,消息的可靠性全部掌握在客户端手上,这就意味着,不论什么消息,只要服务器接收到之后搜需要做出响应。
因此很容易被非法客户端钻了空子。
当一个非法客户端不断伪造DHCPV6报文,进行欺骗申请IPV6地址时,很有可能导致服务器IPV6地址耗尽,合法终端申请不到IPV6地址:
②非法服务器干扰合法服务器的分配,导致合法客户端申请到的网络地址不可用。
③服务器无法感知网络中静态配置的IPV6地址,如果网络中部分终端私自配置静态IP,则容易导致其他DHCP客户端IP地址冲突而无法上网。
④由于服务器过于被动,几乎无法对终端行为进行把控,更无法感知终端的位置信息,但实际网络部署中,经常会根据地理位置信息而分配不同的子网段,比如公司内部平台部门和无线部门使用的IP网段就不同,因此希望有一种机制,可以辅助DHCP服务器来进行分配,那么这个时候我们的DHCP snooping就可以非常响亮的登场了。
DHCPV6 snooping需要完成的业务:
1、过滤非法报文:
①丢弃非信任口收到的响应报文
②仅对来自非信任口的报文进行合法性检查
③丢弃与snp数据库中信息不一致的release、decline报文
④丢弃IP、mac等信息与数据库中不一致的请求报文
2、隔离非法服务器:
①链接在非信任端口的服务器均属于非法服务器,默认端口都是非法的,支持配置为信任端口。
②设备仅将客户端请求报文转发至信任口;
③设备仅转发从信任口接收的响应报文
3、辅助IP source guard 完成IP过滤功能
提供IP报文硬件过滤数据库
每一条记录包含
IP+MAC+
端口
+VLAN
等信息
4、报文中增减option 18和 option37
Interface ID
的默认填充内容是接收到
DHCPv6
客户端请求报文的端口所属
VLAN
的编号以及端口索引;
Remote ID
的默认填充内容是接收到
DHCP
客户端请求报文的
DHCP
中继设备的桥
MAC
地址
①在请求报文中添加以上两个option
②在应答报文中去除以上两个option
③以上两个option支持标准格式和扩展模式两种格式