在IPv6协议中,重定向报文的主要作用是为局域网内的节点提供正确的路由选择。主机在启动时具有一定的路由信息,但不一定是最优的,通过IPv6重定向协议路由器检测到IP数据报经非最优路由传输,就通知主机去往该目的地的最优路径。
在IPv6网络中,局域网一个节点是允许多个路由存在的,至于交给谁转发则由优先级决定,但是对于发往不同目的数据包,第一跳路由的选择将会影响数据包发送的效率。
IPv6重定向协议工作原理:
这种报文由路由器发给局域网内的节点。假设内部节点A要将数据包发送给外部节点X,当路由器B收到这个数据包并要转发的时候,B发现自己和A是出于一个局域网的,但这个数据包并不是由A直接发过来的,而是由局域网内另一个路由C发过来的,那么B就会告诉A,如果要发送数据包给X,直接发给B更好。这也就是报文中target和destination的意义,在本例中,target就是B的IPv6地址,destination就是X的IPv6地址。而options里面可以包括B的Mac地址,或者包含B帮A转发的原IP包,这个IP包,对于传输层的协议也许会有帮助。A在收到Redir报文后自然会改变原有的路由表,将发往X的数据包直接交给B转发。
IPv6重定向协议安全隐患分析
IPv6重定向协议本身的主要功能是为了保证主机拥有动态的、小而优的路由表,以提高报文的转发效率。但是由于IPv6重定向协议同样缺乏源地址认证,对于局域网恶意节点来说,可以利用IPv6重定向报文实现数据报的非法重定向,从而实现多种攻击措施。比如它首先伪装路由器,然后再发送Redir报文告诉被攻击者:发往某个外网节点的数据包,走自己这条路由更好,那么被攻击节点就会将数据包交由恶意节点转发,恶意节点就可以不转发禁止其通信,或进行一些篡改。
恶意节点利用IPv6路由重定向报文实现数据报重定向的基本步骤:
(1) 恶意节点伪装路由器
(2) 发送Redir报文
(3) 告诉被攻击者:发往某个外网节点的数据报,走攻击者指定的路由更好
(4) 被攻击节点修改路由表,将数据报交由恶意节点转发
(5) 恶意节点控制被攻击者的数据报
(6) 实施其它攻击措施,如,丢弃、篡改等