随着互联网技术的迅速发展,安全问题日益严重,通常说IPv6比IPv4更安全,这种观点来源于IPv6最初的定义(RFC2401)对IPSec的强制使用,由于这种观点的存在促进了IPv6得到应用。
虽然这种强制IPSec的特征阻挡了一些攻击的入侵之机,但是IPv6并不是万能的,各种攻击漏洞也必定存在,而问题的根源大多是与非法主机接入有关,针对IPv4、IPv6主机的安全合法接入问题,清华大学于2009年4月提出SAVI源址合法性检验 rfc草案,该草案主要讲述了ipv4/ipv6的CPS(Control Packet Snooping)原理,根据CPS原理在接入设备(交换机、AP)上建立基于源地址的绑定关系,从而可以判断从接入设备的指定端口接收到的报文的源地址的有效性。
IPv6 SAVI技术原理
CPS对于客户端是透明的,在客户端没有任何变化,也没有新增任何协议,所涉及的内容都是根据已有的协议操作流程,在接入设备上建立绑定关系,这种绑定关系一般都是临时的,有生存期,也有一些事件可以触发接入设备解除具体的绑定关系。
CPS绑定关系的建立是以重复地址检测为基础的( ipv4的gratuitous ARP报文,ipv6的DAD NS报文),如果主机使用没有进行重复检测的地址作为源地址来发送报文,则接入设备应将该报文作为欺骗报文来处理。接入设备根据客户端发出重复地址检测报文后在一定时间内没有收到应答报文而在接入端建立基于源地址的绑定关系,绑定关系建立后,从相应的端口收到的数据报文,根据其源地址是否在端口绑定关系表中有匹配来确定报文是否合法,从而对合法报文正常转发,非法报文则丢弃。
IPv6 SAVI技术草案中关于IPv4的主机合法接入主要包括了ARP snooping与DHCP snooping两部分的内容;关于IPv6的主机合法接入主要包括了NDP snooping与DHCPv6 snooping两部分的内容,下面分别介绍。
NDP Snooping 功能
NDP snooping利用Control Packet Snooping(CPS)机制,通过源IPv6地址和锚信息绑定的方式,对端口接入报文进行合法性检测,放行匹配绑定的报文,丢弃不匹配的报文,以达到对直连链路节点准入控制的目的。
全局启用NDP snooping功能,交换机所有端口上均可建立NDP snooping绑定,但不下硬件表项(即准入控制表项)。
端口上启用NDP snooping功能时,该端口上初始化拒绝所有ipv6报文(除了源地址为本地链路地址的IPv6报文和NS/NA报文)。当该端口上根据DAD NS报文建立一个状态为SAC_BOUND的NDP snooping绑定时,则下发一个(IPv6 address,MAC,Port Name,VLAN ID)四元组的准入控制表项,允许符合规则的IPv6报文通过。
关闭端口的NDP snooping功能时,不删除上层绑定表项,只删除下发的准入控制表项;关闭全局的NDP snooping功能时,删除所有的上层绑定表项,同时删除下发的所有准入控制表项。
DHCPv6 Snooping 功能
在用户不需要认证和使用DHCPv6方式获取IPv6地址的环境之下,可以独立使用DHCPv6 SNOOPING在交换机上绑定用户,用户的(ipv6 address, mac, port)绑定信息可以是通过DHCPv6 SNOOPING在用户动态获取地址的过程中获得。接入主机获取动态地址之前只能访问DHCP SERVER和使用本地链路地址fe80::/10访问本地资源;获取动态全球单播地址之后可以访问所有资源。在这种模式下,接入交换机能够严格控制接入主机的报文,只有完全匹配IPv6 address、MAC、PORT的IPv6报文和本地链路报文才允许转发,可以对用户的源地址进行性有效控制,禁止用户私自配置地址而访问网络。以上介绍IPv6 SAVI技术。