电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

IPv6路由技术

来源:火烈鸟作者:开心麻花2025-09-181

IPv6路由技术(精选6篇)

IPv6路由技术 第1篇

IPv6隧道实际就是将IPv6报文封装在IPv4报文中,这样IPv6协议就可以穿越IPv4网络进行通信。由于目前Internet上使用的仍然是IPv4网络协议,各个IPv6路由节点形成了整个IPv4网络“海洋”中的“孤岛”,为了实现IPv4网络到IPv6网络的迁移,通常的做法是多个IPv6网络通过隧道技术跨越IPv4网络彼此连接起来。随着IPv6主机/路由器的不断增加,使IPv4路由变成孤岛,直至IPv4路由消亡,IPv6主机/路由器连为一体,最终实现完全的IPv6网络。

需要特别指出的是,在IPv4网络到IPv6网络的迁移过程中,要以隧道方式传输IPv6数据报,在隧道两端必须具有IPv6/IPv4主机或路由器。我们所说的IPv6/IPv4主机或路由器是指具有IPv6/IPv4主机或路由器是指具有IPv6、IPv4双地址协议的主机或路由器,IPv6/IPv4主机或路由器既能与IPv6主机或路由器通信,又能与IPv4主机或路由器通信。如果没有这种双地址协议的主机或路由器,就根本无法实现在IPv6和IPv4之间进行通信。

1.1 隧道技术的核心

基于IPv4网络和IPv6隧道传输技术的核心即通过把IPv6数据报文封装在IPv4数据报中,利用现有IPv4网络作为传输载体,从而建立起IPv6节点间通信。隧道两端的节点间通过IPv4机制进行通信,隧道被看做直接透明通道;换句话说:路由器将IPv6的数据报报文装入IPv4数据报中,IPv4的源地址和目的地址分贝对应于隧道起始端和终止端IPv4地址。在隧道的出口处再解封、提取出IPv6报文,并转发给下一个IPv6路由器或目的主机。

1.2 隧道技术的传输步骤

基于IPv4网络的IPv6隧道传输过程分为四个布骤:封装、传输、解封和隧道管理。封装是指在隧道的入口处创建IPv4数据报并将IPv6数据报装入IPv4数据报中。传输是将携带有IPv6数据报文的IPv4数据报在IPv4网络中利用隧道技术进行传输。解封是指在隧道的出口处移去IPv4数据报头,提取出IPv6数据报文。隧道管理是指由隧道起点配置维护的信息,诸如隧道支持的最大传输单元(MTU)尺寸等信息。

1.3 隧道的布置

通常在IPv4网络中实现IPv6数据报隧道传输,根据封装设备和解封设备的类型,提供了四种隧道布置方案:

主机至路由器:IPv6/IPv4主机经由IPv4网络以隧道方式跨越IPv4网络,把IPv6数据报传输到一个中间IPv6/IPv4路由器,在由此IPv6/IPv4路由器将IPv6数据报转送到下一IPv6主机或路由器。

路由器至路由器:通过IPv4网络连接的两个IPv6/IPv4路由器可以在它们之间以隧道方式传送IPv6数据报。此时隧道跨接了IPv6/IPv4端到IPv6/IPv4路径上的一个中间IPv4网络。

路由器至主机IPv6/IPv4路由器用隧道方式跨越IPv4网络将IPv6数据报传送给目的IPv6/IPv4主机。

主机至主机即IPv6/IPv4源主机直接用隧道方式跨越IPv4网络将IPv6数据报传输给目的IPv6/IPv4目的主机。

2 手工隧道技术及应用

2.1 手工隧道技术概述

手工隧道是通过IPv4骨干网连接的两个IPv6域的永久链路,这个永久链路两端两个边缘路由器或终端系统与边缘路由器之间定期安全通信的稳定连接。手工隧道直接把IPv6报文封装到IPv4报文中去,IPv6报文作为IPv4报文的净载荷。其封装格式如图1所示。

手工隧道的转发机制是按照“隧道起点封装-IPv4网络中路由隧道终点解封装”过程来进行的。

2.2 手工隧道配置实验

实验目的:加深理解手动隧道技术工作原理;掌握手工隧道配置方法。

实验环境:思科Cisco 2621XM路由器两台,两台路由器采用WIC-2T接口线缆“背靠背”互联。路由器IOS(操作系统)版本要求12.0以上,支持IPv6。路由器R1、R2串口配置IPv4地址,用于模拟IPv4网络,路有器R1、R2分别创建Loop0口配置IPv6地址,用于模拟IPv6网络。在R1、R2路由器手工配置隧道。

实验拓扑:实验拓扑如图2所示。

配置参考:

配置路由器R1:

#全局启动IPv6路由协议

#配置路由器接口地址

#路由器"背靠背"连接,模拟DCE端,配置时钟

#配置Tunnel接口,用于IPv6隧道,指明Tunnel源端口,目的端口

#启动IPv6 RIP路由协议

#启动参与RIP路由协议的接口

配置路由器R2:

#全局启动IPv6路由协议

#配置路由器接口地址

#配置Tunnel接口,用于IPv6隧道,指明Tunnel源端口,目的端口

#启动IPv6 RIP路由协议

#启动参与RIP路由协议的接口

实验结果:在路由器R1上采用扩展Ping可以从R1的Loop0口可以ping通R2的Loop0地址

3 自动隧道技术及应用

3.1 自动隧道技术概述

自动隧道技术也称6to4隧道,它可将多个IPv6域通过IPv4网络连接到IPv6网络。使用一种特殊的地址,称为6to4地址。比如2002:a.b.c.d:xxxx:xxxx:xxxx:xxxx:xxxx地址。其中a.b.c.d是IPv4地址。这个内嵌在IPv6地址中的IPv4地址可以用来查找6to4隧道的其他终点。6to4地址的网络前缀有64bit长,其中前48bit(2002:a.b.c.d)由分配给路由器上的IPv4地址决定,用户不能改变,而后16bit是由用户自己定义的。这样,这个边缘路由器后面就可以连接一组网络前缀不同的网络。

3.2 自动隧道配置实验

实验目的:加深理解自动隧道技术工作原理;掌握自动隧道配置方法。

实验环境:思科Cisco 2621XM路由器两台,两台路由器采用WIC-2T接口线缆“背靠背”互联。路由器IOS(操作系统)版本要求12.0以上,支持IPv6。路由器R1、R2串口配置IPv4地址,用于模拟IPv4网络,路有器R1、R2分别通过E0口和两台主机相连,配置IPv6地址用于模拟IPv6网络。在R1、R2路由器配置6to4隧道。

如图3所示,两台路由器R1和R2通过6to4隧道相连。全局IPv4地址192.168.100.1转换成IPv6地址后使用前缀2002:c0a8:6401::/64。对此地址进行子网划分,Tunnel0使用2002:c0a8:6401:1::/64,连接主机PC1的E1接口使用2002:c0a8:6401:2::/64。配置的静态路由将所有其他发往IPv6前缀2002::/16的流量定向到6to4隧道的Tunnel接口。

图中各设备的IP地址配置如表1所示。请注意表中IPv4地址和6to4地址的转换关系。

配置参考:

配置路由器R1:

#全局启动IPv6路由协议

#配置路由器接口地址

#路由器“背靠背”连接,模拟DCE端,配置时钟。

#配置Tunnel接口的全局IPv6地址,指明Tunnel源端口,无需指明目的端口

#配置为6to4自动隧道模式

#设置静态路由

配置路由器R2:

#全局启动IPv6路由协议

#配置路由器接口地址

#配置Tunnel接口的全局IPv6地址,指明Tunnel源端口,无需指明目的端口

#配置为6to4自动隧道模式

#设置静态路由

3.3 自动隧道工作原理分析

●主机A发出报文

此报文按照路由送到路由器R1。路由器R1收到后,查看路由表,发现路由表中有一条2002::/16的路由表项,此表项指向Tunnel 0接口,于是R1把报文从Tunnel0接口发送出去。在发送出去的时候,要进行隧道的封装。

●路由器R1对报文封装

因为做了Source S0这条配置,所以封装时源地址就是S0的地址,目的地址从IPv6报文的目的地址2002:c0a8:3210:2::2中把IPv4的部分c028:3201提取出来,就是192.168.50.1.所以现在报文如下:

●路由器B对报文解封装

路由器R2收到此报文后,进行解封装,看到其中的IPv6报文头。然后根据路由表,将此报文转发到主机B。

●主机B对此报文的回复

主机B收到报文后,对此进行回复。回复报文送到路由器R2,因为路由器R2也有2002::/16的路由表项,指向Tunnel0接口,于是报文从Tunnel0接口发送出去。

3.4 自动隧道的特点

6to4隧道具有自动隧道维护方便的优点,是一种比较好的隧道技术。它的缺点是必须使用规定的6to4地址。

4 IPv6的展望

本文主要是研究IPv4向IPv6过渡机制及隧道技术的解决方案,本质上说属于网络层的范畴,但对于任何技术来说,应用才是最关键的。我个人认为对于IPv6今后的发展应该和3G应用结合考虑。移动设备的上网已经是大势所趋,比如3G手机、IPAD等等。从IPv6的应用来看,移动应用最有可能成为商业发展IPv6的最核心的出发点,IPv6的大规模应用也很有可能率先从移动设备开始。因此如何把基于固定网络的传统因特网与第三代移动通信结合起来也是当前应该着重考虑的问题。

尽管IPv6目前还存在着很多的问题,但毫无疑问,采用IPv6协议的下一代互联网,在未来几年将逐步取代目前基于IPv4的互联网,这是一个不争的事实。而我国由于IPv4的地址严重不足和人口众多,为IPv6未来在中国的应用奠定了较好的基础。

参考文献

[1]王相林著.IPv6核心技术.北京:科学出版社,2009

[2][美]波波维亚等著,王玲芳等译.部署IPv6网络.北京:人民邮电出版社,2007

[3][美]JeffDoyle Jennifer Carroll著,葛建立,吴立章译.TCP/IP路由技术(卷1),北京:人民邮电出版社,2007

[4][加]德斯穆尔斯著.王玲芳等译.Cisco IPv6网络实现技术.北京:人民邮电出版社,2004

[5]华为IPv6技术白皮书

IPv6路由技术 第2篇

当今世界, 因特网的规模正以惊人的速度不断扩大, 同时移动通信也在突飞猛进地向前发展。越来越多的移动用户都希望能够以更加灵活的方式接入因特网, 能够随时、随地访问Internet而不受时空的限制。因此网络对移动性的支持显得越来越重要。移动IPv6技术正是为适应这种需求而产生的一种新的支持移动用户和因特网连接的互连技术。它能够使移动用户在移动自己位置的同时, 正在进行的网络通信不被中断, 因此成为当前业界研究的热点问题。

移动IPv6是一个庞杂的协议, 包含的内容非常多, 而且目前还在继续发展。移动IPv6又是一个设计精巧的协议, 虽然目前还有一些缺陷, 但我们可以看到, 移动IPv6协议的前景是非常光明的。在可以预见的未来, 我们将可以充分享受移动IPv6给我们带来的便捷, 自由徜徉在移动信息的世界里。然而现有的移动IPv6技术还有很多不足之处, 比如由它引起的“三角路由”问题就是一个亟待解决的问题, 它极大地浪费了网络资源, 并增加了因家乡代理和家乡链路故障而造成的影响。路由优化是解决三角路由的关键技术。本文综合考虑路由优化需要注意的安全问题、代价问题、数据包失序问题以及路由优化时机的选择问题, 提出了一种基于时延的路由优化方案。

2 基于IPV6时延的路由优化机制

2.1 路由优化时机的选择

路由优化避免了“三角路由”问题, 减小了传输时延, 提高了网络性能, , 在实际应用中并非所有的直接路径都比间接路径理想;而且路由优化本身也会带来一定的资源消耗。因此, 只有在直接路径比间接路径理想时, 才有必要进行优化, 直接路径不如间接路径理想, 无需进行路由优化。所以不能对所有的情况都进行路由优化, 而应对直接路径和间接路径进行比较选择。在本文机制中利用返回路由可达过程对直接路径和间接路径的传输时延分别进行测量。若直接路径的传输时延小则进行路由优化, 否则不进行路由优化。

2.1.1 对端节点的操作

返回路由可达过程中共由四条消息组成:家乡测试初始 (Ho TI) 消息, 转交测试初始 (Co TI) 消息, 家乡测试 (Ho T) 消息和转交测试 (Co T) 消息。这四条消息具有不同的传输路径, 可测试不同的传输时延。Ho TI消息是从移动节点发送经家乡代理转发至对端节点, 可用于测量从移动节点到对端节点间接路径的传输时延。Co TI消息是从移动节点直接发送至对端节点, 可用于测量从移动节点到对端节点的直接路径的传输时延。Ho T消息是从对端节点发送经家乡代理转发至对端节点, 可用于测量从对端节点至移动节点间间接路径的传输时延。Co T消息是从对端节点直接发送至移动节点, 可测量从对端节点至移动节点直接路径的传输时延。

2.1.2 动节点的操作

每个移动节点都必须维护一个绑定更新列表。绑定更新列表记录该移动节点发送的每一个绑定更新消息, 其中绑定的生存周期尚未过期。绑定更新列表中包括所有与移动节点通信的节点。每个绑定更新列表条目包含有以下字段:目的节点IP地址、为之发送的家乡地址、转交地址、生存周期初始值、剩余的生命周期及发送绑定更新的最后时间等。

2.2 数据包失序的消除

数据包失序是指数据包未按发送顺序到达的现象。大量的数据包失序会导致接收方发送大量的重复确认帧。而连续的三个重复确认帧会使发送方误认为网络中发生拥塞而启动拥塞控制机制, 减小发送窗口。而实际上, 此时网络上并未发生拥塞。因此, 数据包失序会引起网络资源的浪费, 降低网络性能。在本文机制中, 采用了双缓存这方法来消除数据包失序现象, 改善网络性能。

双缓存机制的主要思想是, 进行路由优化后, 将从直接路径发送的数据包暂缓存。待间接路径的数据包都到达移动节点后, 再将缓存的直接路径的数据包转发给移动节点。通过这种方式, 就可以基本上避免数据包失序问题。

因此, 在本文的机制中, 将直接路径的数据包缓存于移动节点的接入路由器。移动IP技术会带来“三角路由”问题, 即对端节点发送的数据不能直接发送给移动节点而必须经家乡代理转发。这造成了一定的资源浪费。路由优化技术是解决“三角路由”问题的关键技术。本文综合考虑进行路由优化需注意的几个问题, 提出一种基于时延的路由优化机制。该机制对RRP过程的Ho T消息和Co T消息加盖发送时间戳, 测量直接路径和间接路径的传输时延, 以决定是否进行路由优化。

摘要:随着便携计算机的普及和无线局域网技术的不断成熟, 网络对移动性的支持显得越来越重要。移动IPv6技术正是为适应这种需求而产生的一种新的支持移动用户和因特网连接的互连技术。它是为支持移动用户和主机通信而产生的新型IP协议, 使移动用户在移动自己位置的同时无需中断正在进行的网络通信。移动IPv6协议是重要的IP层协议, 但移动IP会带来三角路由问题, 引起网络开销增加和性能下降。路由优化技术是解决三角路由的关键技术, 已成为当前业界研究的热点问题。本文通过对移动IPv6路由优化技术进行深入的研究, 针对进行路由优化需要注意的安全问题、代价问题、数据包失序问题以及路由优化时机的选择等问题, 提出了一种基于时延的路由优化机制。

关键词:IPV6,时延,路由优化机制

参考文献

[1]余政, 宋健, 袁占亭, 罗晓娟.移动IP综述[J], 计算机工程, 2002, 28 (7) :5-7.[1]余政, 宋健, 袁占亭, 罗晓娟.移动IP综述[J], 计算机工程, 2002, 28 (7) :5-7.

[2]唐宏, 龚涛, 董会宁.移动IP研究中的关键问题[J], 重庆邮电学院学报, 2004, 16 (3) :91-94.[2]唐宏, 龚涛, 董会宁.移动IP研究中的关键问题[J], 重庆邮电学院学报, 2004, 16 (3) :91-94.

[3]蒋亮, 郭健, 等.下一代网络移动IPv6技术[M], 北京:机械工业出版社, 2005:60-61.[3]蒋亮, 郭健, 等.下一代网络移动IPv6技术[M], 北京:机械工业出版社, 2005:60-61.

IPv6路由技术 第3篇

由于Internet的迅猛发展, 网络接入呈指数级增长, 当前网络正面临IPv4地址枯竭问题。NAT (网络地址转换) 技术的引入, 缓解了地址枯竭的问题, 但是给网络管理增加了极大的复杂度, 有些应用程序穿越NAT设备就不能运行了。所有这些事实, 驱动着IPv6协议登上网络的舞台。

IPv6与IPv4相比, 地址格式发生了重大的变化, 地址长度由原来的32位提升到了128位, 相应的, 地址分配也发生了很大的变化。然而, 从本质上, 整个地址空间仍然是层次结构的, 故而, 新一代网络协议的采用不会改变路由查找的本质特点。但是地址空间的剧增, 给路由查找带来了极大的困扰;查找速度受到严重的制约。因此寻找高效可行的路由查找算法成为业界关注的焦点。而Trie树是实现高速路由查找的关键, 是实现各种路由查找优化策略的基础, 所以基于Trie的IPv6路由查找算法尤为重要。

1 Trie的相关研究

1.1 Trie简介

字典树 (Trie) 是一种用于快速字符串检索的多叉树结构。其原理是利用字符串的公共前缀来降低时空开销, 从而达到提高程序效率的目的。

搜索字典项目的方法为: (1) 从根结点开始一次搜索; (2) 取得要查找关键词的第一个字母, 并根据多叉树结构。其原理是利用字符串的公共前缀来降低时空开销, 从而达到提高程序效率的目的。

该字母选择对应的子树, 并转到该子树继续进行检索; (3) 在相应的子树上, 取得要查找关键词的第二个字母, 并进一步选择对应的子树进行检索; (4) 迭代过程; (5) 在某个结点处, 关键词的所有字母已被取出, 则读取附在该结点上的信息, 即完成查找。

1.2 现有基于Trie的IP查找方法

1.2.1 二进制Trie

在二进制Trie树结构中, 通过前缀中每一比特的值来决定树的分支, 与路由有关的转发信息就保存在Trie树的节点中。已知某路由表如表1所示。其二进制Trie结构如图1所示。对于IPv4来说, 在最坏情况下树的深度为32, 即需要32次的存储器访问。这对128位地址的IPv6来说, 无疑是一个极大的挑战。

1.2.2 变种Trie

(1) 路径压缩Trie

路径压缩Trie结构[1,2]是对二进制Trie结构改进而来的。考虑到1-bit Trie结构中相当一部分内部节点既不对应任何路由规则, 而且又只有一个子节点, 如图1中的“0110”节点到“0110001”标记为C的点都属于这种情况 (用笔勾勒的区域) 。显然这一系列的点仅给出了一条搜索路径, 只需对C节点进行描述, 则可以删除中间的这些节点。路径的描述包括该路径跳过多少位, 以及这些位的取值。相应的, 路由查找算法遇到这种情况时必须检查所跳过点的取值是否与路径描述中的一致。路径压缩Trie仅是在二进制Trie树稀疏时性能较优, 在最坏情况下的查找时间与存储复杂度和二进制Trie无异。

(2) 级压缩Trie

对于1-bit树种的某个局部, 其分支是密集还是稀疏是一个抽象的说法, 在作为算法实现的时候必须有明确的判断依据。为此, 文献[3]中提出使用填充因子。填充因子是一个不超过1的正数, 定义为该局部分支的总数量与该局部所有可能的分支总数量之比, 这个指标反应使用特定步宽多分支Trie结构节点时的空间利用效率。填充因子是预先设定的, 除了根节点外, 其他任何节点的利用效率都不能低于该填充因子。

(3) 多比特Trie

为了缩短查找时间, 提升更新操作的效率, 摒弃了原有二进制Trie中一次检测1比特的操作;取而代之的是每次对多个比特同时检测。具体的比特位数称之为步宽。为方便描述, 假定步宽k=2。如图2所示。每个节点含有2k=4个字节点, 每一条边对应k位字符。当路由表中的路由前缀的长度不是k的倍数时, 需要对其扩展。

2 算法设计

2.1 算法设计基础之IPv6 地址格式

一个IPv6地址的具体类型是由地址的前几位来指定的。包含这前面几位的可变长字段成为格式前缀 (FP) 。这些格式前缀的初始分配见表2和图3 (参见文[4]) 。

FP 001单播格式前缀

TLA ID 顶级聚合表示

RES 保留将来用

NLA ID 下一级聚合标识

SLA ID 站点级聚合标识

接口ID 接口标识

图3 可聚合全球单播地址[5]

2.2 设计方案

从表2不难发现, 先前的IPv6地址前缀的前3比特不外乎有三种情形:000, 001和111。 (为方便叙述, 在表2的左侧添加序号①~⑦。) 因此, 我们初步拟定, 在Trie查找的第一级涵盖前3比特, 也就是说, 以前3比特作为一级索引。对于这三条分支, 我们分别予以讨论。

设DA:目的IP地址, Destination Address。

(1) 当DA的前三比特为000时, (DA/3=000)

参据表2, 这类地址为保留、为NSAP地址保留、为IPX地址保留三大类。所以, 实际的IP地址中, 按照①②③类地址类型, 第4、第5比特必为00。在搜索过程中, 可以将接下来的3比特进行查找。

(2) 当DA的前3比特为111时, (DA/3=111)

说明此类地址为⑤⑥⑦三类地址中的一种。这时的进一步查找, 要以接下来的11110或者11111作为比较对象。

(3) 同理, 当DA的前3比特为001时, (DA/3=001) , 这就是可聚合单播地址。

当 (DA/3) =001, 即系统识别出DA为一单播地址时, 我们结合表2可以得知, 此类地址占地址空间的百分率为1/8。这对海量的路由表来说, 想要查的DA的下一跳地址, 还有很深的Trie树需要逐级查找。因此, 采用步宽显得尤为重要。

通过图3我们不难发现, IPv6可聚合全球单播地址也是呈明显的层次结构的。可对其前64比特按照<3-13-8-24-16>这种可变步宽来查找。

3 算法性能分析

算法糅合了可变步长多分支Trie结构以及路径压缩Trie结构。此外, 由于已知某些节点固定不存在, 这样可以在查找过程中直接省略。比如在Trie结构的一级查找中, 如果按照步宽k=3进行查找, 将会产生8种地址格式, 而此时仅仅有3个地址类型, 消除了不存在的空白结点, 极大地缩减了查找时间。这种优势在后续的查找过程中体现更为明显。该算法美中不足的是, 需要占用硬件存贮空间仍然不少。但是面对Internet带来的巨大冲击, 路由查表速度要求达到10Gbps (OC192) , 甚至40Gbps (OC768) , 查找速度是当前的重要瓶颈, 因此通过牺牲定量的存储空间换取更高的查找速度, 是我们所钟情的。

4 结束语

本文针对IPv6的地址结构特点, 提出了基于Trie的路由查找算法。通过牺牲定量的存储空间以期获取更高的查找速度。同时, 本文在报文转发之前可以识别其去向是单播以及多播, 在此仅仅就单播算法单独介绍。此后的研究将进一步讨论基于多播的查找。

摘要:随着Internet的迅猛发展, IPv6技术必将成为主流。于是, 如何高效地在路由表中查找匹配128位IPv6地址, 成为了IPv6技术发展的一大制约因素。经大量研究表明, Trie数据结构是实现高速路由查找和报文转发的关键。结合IPv6的地址结构特点, 设计出基于Trie数据结构的查找算法, 提高了路由查找效率以及报文转发速度。

关键词:路由查找,IPv6,Trie树

参考文献

[1] Morrison D R.PATRICIA—practical algorithm to retrieve information coded in alphanumeric.Journal of the CAM, 1968, 15 (4) :514-534.

[2] Sklower Keith.A tree-based routing table for Berkeley Unix.Technical Report, Berkeley:University of California.

[3] Stefan Nilsson, Gunnar Karlsson.IP-AddressLookup Using LC-Tries.IEEE Journal on Selected Areas in Communication 1999, 17 (6) :1067-1082.

[4] Hinden R.DeeringIP Version 6 Addressing Architecture.RFC 2373, 1998.

IPv6路由技术 第4篇

路由欺骗就是由攻击者修改路由器或网络主机中的路由表,使得到达此路由器包含目的地址为被攻击主机地址的数据包以攻击者所在的网络为目的地址,从而达到网络监听或者网络攻击的目的。在网络安全领域,利用协议的漏洞进行协议欺骗是一种网络监听或网络攻击的重要手段。IPv6与IPv4相比较,其安全性大大加强,在IPv6下进行IP欺骗变得非常困难,但也并不是绝无可能。可以利用ICMPv6协议的漏洞实现路由欺骗,这种欺骗隐蔽性强,进行深入研究对加强网络安全具有现实意义。

1 IPv6下的协议欺骗

协议欺骗就是利用网络协议中的bug,采取插入方法实施中间人攻击[1]使被监听的通信双方或者一方相信欺骗者地址就是目标地址,从而获得被监听者的通信数据。欺骗过程主要包括欺骗与隐藏两个关键。

(1) 欺骗:利用协议中的bug,将欺骗主机伪装成被欺骗主机的通信方,将被欺骗主机的通信数据引向欺骗主机,被欺骗主机可能是通信的双方或一方。

(2) 隐藏:为隐藏欺骗,欺骗主机在接收到欺骗主机的数据包后要分析并修改数据包,以掩盖欺骗痕迹,达到欺骗继续的目的。

一般地,假设已知主机B的IP,IPv6下A与B通信至少应经过以下三个步骤:

(1) A发送一个ND请求QA。若B在本地网,则请求B的MAC地址;否则请求到达B所经的本地路由器R的MAC地址。

(2) B或R发送QA的应答,通知所请求的MAC地址。

(3) A发送IP数据包,包含B的IP与所得的MAC地址;然后,按网络应用层协议通信。

因此,可以通过发送假冒的QA应答将C的MAC伪装成B的MAC,这就是ND/NA欺骗[2]。也可以修改R的路由表,将路由导向C 的子网,这就是路由欺骗。

2 基于ICMPv6的路由欺骗原理

非本局域网内的IP与本地网关的映射主要是保存在路由器或网络主机的路由表中,路由表可以静态配置,但另一方面动态路由配置是不可避免的[3]。动态路由可以由相关协议修改,IPv6下ICMPv6协议的安全机制相对较弱,其漏洞容易被利用于路由欺骗。

2.1 ICMPv6协议

ICMPv6协议是IPv6协议族的一个重要子协议,用于在IP主机、路由器之间传递控制消息,包括网络是否通畅、主机是否可达、路由是否可用等网络本身的消息。ICMPv6报文格式如图1所示,其中8位类型和8位代码决定了不同的ICMPv6报文的类型。

在ICMPv6的各种类型中,类型5是重定向差错;类型9、10分别是路由器通告和路由器请求,称为ICMPv6路由器发现报文,用来动态设置子网默认路由。

2.2 ICMPv6路由欺骗

(1) ICMPv6重定向差错欺骗

利用ICMPv6的重定向报文可以假冒路由器修改网络主机的动态路由表,从而达到路由欺骗的目的,ICMPv6重定向原理如下:

① 主机A向外网发送报文M,R1为默认路由。

② R1收到M后,发现下一跳为R2,转发给R2;然后发现主机A与R1、R2在同一LAN。

③ R1发送ICMPv6重定向报文给主机A,以后A发送的M重定向到R2。

如果下一跳不是R2,若能设法假冒R1发送ICMPv6重定向报文给主机A,使以后A发送的M重定向到R2,这就实现了ICMPv6重定向差错欺骗。一般地,A、R1、R2可以是不同LAN的路由器。

(2) ICMPv6路由通告欺骗

一般地,ICMPv6下主机在引导后要多播传送路由器请求报文;一台或多台路由器收到请求报文后响应,多播传送路由器通告报文;主机在收到路由器通告报文后设置默认路由,停止发送路由请求报文。也就是说,路由器发现报文(包括路由器请求报文和路由器通告报文)是用来动态设置子网主机默认路由的。因此,伪造ICMPv6路由器通告报文,可以将子网主机的默认路由设置成自己的IP。路由器请求报文和路由器通告报文的协议头格式见图1。

3 ICMPv6路由欺骗的实现

利用VMware搭建图2所示虚拟网络平台,所有虚拟机均安装Linux Redhat7.0、TCP/IPv6协议。使用平台无关的网络数据捕获开发包libpcap及数据包构造和发送开发包Libnet为工具,以VM1 Telnet VM3为例,研究ICMPv6重定向差错欺骗和ICMPv6路由通告欺骗的实现。

3.1 ICMPv6重定向差错欺骗的实现

图2中VM1 Telnet VM3的默认路由为VR2,在VR3中运行ICMPv6重定向报文构造和发送程序(源程序icmpv6_redirect.c),伪造源IP为VR2,重定向IP为VR3。使用Libnet构造ICMPv6重定向数据包,应该先构造高层协议块,然后依次从高到低构造各个协议块,构造流程是:①libnet_init()初始化Libnet库;②libnet_build_icmpv6()_redirect()构造ICMPv6协议头;③libnet_build_ipv6()构造IPv6协议头;④libnet_build_ethernet()构造以太网协议头;⑤ libnet_write()发送数据包;⑥ libnet_destoy()销毁Libnet。流程中所有的模块均是Libnet的库函数,现仅说明ICMPv6协议头的构造函数libnet_build_icmpv6_redirect()。函数包含8个参数,各参数的说明及在本程序中的取值见表1。另外在构造IP协议时,源IP、目的IP分别为VR2和VM1。

3.2 ICMPv6路由通知欺骗的实现

图2中VM1的默认网关为VR1,在VR2中运行路由器请求报文捕获程序(源程序get_icmp_code.c),捕获VM1启动时发送的路由器请求报文。捕获后,运行路由器通告报文构造和发送程序(源程序inform__icmpv6_code.c),延迟响应VM1的请求。

ICMPv6数据包的捕获使用libpcap中的函数pcap_loop()来实现。由于ICMPv6报文是在IPv6报文中传输的,而IPv6报文又在以太网中传输,所以先分析以太网络协议函数ethernet_protocol_packet_callback(),再在此函数中调用分析IPv6协议的函数ipv6_ protocol_packet_callback(),然后在此函数中调用分析ICMPv6协议的函数icmpv6_ protocol_packet_callback(),捕获路由器请求报文后,启动路由器通告报文构造和发送程序inform__icmpv6_code.c。

各回调函数详情参见文献[4]。主程序设计如下:

Void main() {

pcap_t* pcap_handle; /*libpcap句柄*/

char error_content[PCAP_ERRBUF_SIZE]; /*存储错误信息*/

char *net_interface; /*网络接口*/

struct bpf_program bpf_filter; /*BPF过滤规则*/

char bpf_filter_string[]=“icmpv6”;

bpf_u_int32 net_mask; /*网络掩码*/

bpf_u_int32 net_ip; /*网络地址*/

net_interface=pcap_lookupdev(error_content); /*获得网络接口*/

pcap_lookupnet(net_interface ,&net_ip,&net_mask,error_content); /*获得网络掩码和地址*/

pcap_handle=pcap_open_live((net_interface ,BUFSIZE,1,0,error_content); /*开网络接口*/

pcap_compile(pcap_handle,&bpf_filter,bpf_filter_string,0,net_ip); /*编译过滤规则*/

pcap_setfilter(pcap_handle,&bpf_filter); /*设置过滤规则*/

if(pcap_datalink(pcap_handle)!=DLT_EN10MB)

retun;

pcap_loop(pcap_handle,-1,ethernet_protocol_packet_callback,NULL);

pcap_close(pcap_handle);

}

在分析ICMPv6协议时,只对ICMPv6路由器请求报文进行分析,ICMPv6路由器请求报文的类型是10。路由器通告报文构造和发送程序与ICMPv6重定向报文构造和发送程序的设计类似,只是type=9,code=0。

3.3 攻击测试

在图2中的VM2和VM4中部署IPv6数据包捕获和分析程序[5]moredetail.c,捕获并分析本子网的数据包。启动各虚拟主机和路由器,运行部署的各应用程序和测试程序,进行ICMPv6路由通告欺骗测试,测试结果见表2。

表2为一组测试结果,由于是以虚拟平台上的仿真攻击,网络环境单一,所以重复测试结果相同。从仿真测试结果不难看出,在没有防范措施的情况下攻击成功。

4 结束语

基于ICMPv6协议的路由欺骗利用了ICMPv6协议中存在的漏洞,具有较好的隐蔽性。对于此类安全隐患,虽然采用关闭操作系统中的ICMPv6路由通告及重定向差错处理功能能够有效防范[6],但是会带来新的网络问题,本文对此不作讨论。另外,基于ICMPv6协议的路由欺骗不是一种孤立的技术,与拒绝服务等网络攻击手段总是联系在一起的。

摘要:阐述IPv6下网络协议欺骗的一般原理,详细分析了ICMPv6协议及其存在的漏洞。对基于ICMPv6协议的路由欺骗原理及方法进行了深入的讨论,并提出了ICMPv6重定向差错欺骗和ICMPv6路由通告欺骗的具体实现方法。

关键词:协议欺骗,路由欺骗,IPv6,ICMPv6,Libpcap,Libnet

参考文献

[1]Joyo M,Quisquater J J.On the importance of securing your bins:the garbage man in the middle attack[A].4th ACMCorf Computer Comm Security,1997,135-141.

[2]Claerhout B.A short overview of IP spoofing[J].Phrack Magazine,1996,48(7):14-21.

[3]W Richard Stevens.TCP/IP Illustrated Volume1:the Protocol[M].Addison Publishing Company,1994.

[4]刘文涛.网络安全开发包详解.北京:电子工业出版社,2005.

[5]小高知宏.TCP/IP数据包分析程序篇[M].叶明,译.北京:科学出版社,2003.

IPv6路由技术 第5篇

无线传感器网络 (Wireless Sensor Network, WSN) 近年来发展迅速, 在环境保护、工业设备监控、医疗监护、农田监测、智能家居、市政交通管理、军事侦察等领域具有广阔的应用前景[1]。无线传感器网络的诸多应用都需要远程用户能够方便地对无线传感器网络资源进行访问、控制和使用。TCP/IP的广泛应用已经使其成为事实上的协议标准, 加之IPv6的诸多优良特性[2], 都使得实现无线传感器网络与IPv6网络的互联与融合是当前最现实的选择。

目前, 无线传感器网络与IPv6网络互联主要有网关接入和直接接入两种方式[3,4]。其中, 网关接入是指利用网关在无线传感器网络和IP网络之间进行协议转换, 实现数据的转发任务, 但是网关接入还存在着网络结构复杂、成本较高等诸多问题;直接接入方式是指在无线传感器网络节点直接运行IPv6协议, 能够实现无线传感器网络和Internet网络的无缝融合。无线传感器网络是低速率、低功耗的资源受限网络[5], 在无线传感器节点上并不适合直接运行标准IPv6协议。

本文设计了一种基于JN5148模块的无线传感器网络边界路由器, 能够实现无线传感器网络与IPv6网络的无缝融合, 并通过实际测试证明了该方案的可行性。

1 边界路由器硬件设计

边界路由器硬件包括射频模块、处理器模块和电源模块等部分。其中, 射频模块负责IEEE 802.15.4数据帧的收发;处理器模块负责解析收到的数据帧, 选择路径后进行转发处理;电源模块负责对其他模块供电。边界路由器的硬件结构如图1所示。

1.1 射频模块

目前, 无线传感器网络领域面向不同应用的协议栈众多, 其中绝大部分协议栈都把IEEE 802.15.4作为物理层和数据链路层的无线通信标准。支持IEEE 802.15.4的射频模块主要有Jennic公司的JN5148、Ember250、MC13192、TI公司的CC2430和Digi公司的XBEE模块。其中, JN5148模块将射频芯片与处理器集成一体, 内置了IEEE 802.15.4协议, 不需要自行设计无线射频天线接口, 开发成本较低, 本文设计中选用Jennic公司的JN5148模块作为边界路由器的处理器和射频模块。JN5148模块集成了基于Open RISC核的32位RISC处理器, 拥有完全兼容2.4 GHz IEEE 802.15.4标准的无线收发器, 128 KB的RAM运行应用程序, 512 KB的FLASH能够满足包括存储应用程序在内的大部分需求[6]。

1.2 串行通信接口设计

无线传感器网络数据流量较小, 对网络带宽要求不高, 因此边界路由器与Internet网络之间可以采用UART串行总线连接。目前, 各种网络设备中普遍应用USB接口, 可以使用转换电路将USB接口转换为UART串行总线接口, 本文选择FTDI232R芯片[7]完成电平匹配和接口转换, FTDI232R是一款可编程的USB接口转UART接口的集成芯片, 具有3.3 V电压输出, 可编程显示数据收发状态。具体电路如图2所示。

2 边界路由器软件设计

2.1 协议栈框架设计

无线传感器网络协议栈是无线传感器网络软件设计的核心, 是无线传感器网络组网、节点与边界路由器以及节点与节点之间数据通信的基础。为了满足无线传感器网络全IP互联, 需要精简IPv6协议以及实现IPv6数据帧在IEEE 802.15.4帧中传输。本文设计的边界路由器采用基于IPv6的无线传感器网络协议栈。协议栈框架如图3所示。

IEEE 802.15.4物理层主要负责启动和关闭射频收发器、能量检测与信道扫描、清除信道评估以及无线电波信号的调制和解调等工作。IEEE 802.15.4 MAC层主要完成信道接入、链路的连接及断开以及数据通信的差错及流量控制等工作。轻量级操作系统Contiki[8]负责协议栈各层任务调度及管理, 保证协议栈工作的实时性。协议栈包括的任务有自组网任务、适配层主任务、网络维护任务、IP层任务以及应用层任务, 任务调度关系如图4所示。本设计选用的JN5148模块内部集成了IEEE802.15.4的物理层和MAC层协议, 因此, 协议栈设计的重点是适配层、IP网络层和传输层。

2.2 适配层设计

组建网络是边界路由器适配层需要完成的基本任务, 系统启动后, 自组网任务负责在选定信道和网络16位PAN_ID后建立网络。网络维护任务在网络建立后维持父节点与子节点之间的链路稳定, 并在链路出现异常时进行上报并尝试修复链路。IEEE 802.15.4物理层数据单元最大为127 B, 而IPv6要求链路支持的最小MTU (Maximum Transmission Unit, MTU) 长度为1 280 B, 明显不支持此长度MTU[9]。适配层介于IEEE 802.15.4 MAC层和IP层之间, 因此适配层主任务除了负责管理MAC层协议事件之外, 主要完成节点自动地址配置、IP数据包的分片与重组和IP数据包头压缩与解压等功能以实现IP数据包在IEEE 802.15.4链路中的传输。

2.2.1 地址映射机制

基于IPv6的无线传感器网络中每个节点都需要配置惟一的IPv6地址, 但是手动配置繁琐并且难以保证地址惟一性。本文设计的无线传感器网络边界路由器采用无状态地址自动配置机制。IPv6地址由全局地址前缀和接口标识ID (Interface ID, IID) [10]两部分组成。因为每一个射频模块都分配有一个全球惟一的IEEE EUI-64标识符, 即64位MAC地址, 因此可以利用EUI-64标识符获得一个IPv6地址接口标识ID来实现无状态地址自动配置。

2.2.2 适配层分片与重组机制

为了减少适配层包头开销, 适配层帧头分为不分片和分片两种格式, 分别用于IP数据包长度小于MAC层MTU的报文和IP数据包长度大于MAC层MTU的报文。适配层不分片帧头格式与常规帧头相同, 分片帧头又分为第一个分片和后续分片两种格式, 如图5和图6所示。

节点适配层接收到适配层数据包时, 首先检查该数据包是否分片, 如果是一个分片的数据包, 则在将所有数据分片重新组合成完整的IP数据包后, 再传送到IP网络层处理;若某一个分片丢失, 则丢弃该IP数据包的所有后续分片。对于IP层下发的数据包, 节点适配层判断IP报文长度是否超过链路层MTU长度, 若超过链路层MTU长度, 则将此IP数据包分片后发送;若不超过链路层MTU长度, 则按照不分片格式发送。

适配层的每一种数据帧都有调度编码位域 (8位) , 不同的调度编码位域表示不同的解析方式, 主要包括不分片、分片、IP包头压缩、UDP报头压缩以及预留功能等多种类型。其中, 11000xxx表示本数据帧是已分片适配层数据帧的第一个分片, 11100xxx则表示本数据帧是已分片适配层数据帧的后续分片。

datagram_size:11 b, 表示链路层未分包之前的IP数据包的总长度, 该IP数据包所有链路层分片的该字段的值都应该相同。

datagram_tag:16 b, 分片标识, 用来区分同一数据源节点的不同IP数据包。同一个IP数据包的所有链路层分片都具有相同的分片标识, 数据源节点每成功发送一个完整的IP数据包都更新 (加1) 该字段的值。

datagram_offset:8 b, 分片偏移量, 表示该分片在所有分片中的偏移量 (以8 B为单位) , 该字段只出现在第二个及后续分片中。

2.2.3 适配层报头压缩机制

标准IPv6网络层报文和UDP报文的报头分别有40 B和8 B, 由此带来的数据传输报头开销极大, 因此本文适配层对IP报文和UDP报文的包头格式进行了压缩处理。由于TCP报文并不适合无线传感器网络这种多跳、数据传输延迟较大的网络[11], 故本文暂不考虑TCP报文。根据无线传感器网络的上下文信息, IPv6版本号和负载长度可以省略, 通信流类型、流标签、下一包头、跳数限制以及源地址和目的地址设置压缩控制域进行部分压缩。IPv6网络层报文头部压缩格式如图7所示。

011xxxxx为调度编码位域, 其中最右端5位用于报头压缩编码。各编码字段定义如下:

TF:2 b, 通信流类型和流标签。其中通信流类型由查分服务代码点DSCP和显示拥塞反馈ECN, 当TF=11时, 通信流类型和流标签全都省略;当TF=00时, 通信流类型和流标签都不压缩;当TF=01时, DSCP省略;当TF=10时, 流标签省略。

NH:1 b, 下一包头。NH=0, 表示下一包头未压缩;NH=1时, 下一包头已压缩。

HLIM:2 b, 跳数限制。当HLIM等于00、01、10和11时, 分别表示未压缩、1跳、64跳和255跳。

M:1 b, 指示目的地址类型。当M=0时, 目的地址不是多播地址;当M=1时, 目的地址为多播地址。

SAC:1 b, 表示源地址的压缩方式, 当它为0时表示使用的是无状态头部压缩;为1时表示使用的是基于上下文的头部压缩。

SAM用来控制不同压缩方式下源地址压缩方式。DAC与DAM的控制目的地址的压缩方式, 具体含义与SAC和SAM相似。

传输层UDP报文紧跟在IPv6网络层包头后面, UDP包头压缩比较简单, 是否压缩由前述NH字段指定。标准UDP报文头部中的长度域省略, 源端口号、目的端口号以及校验和域的压缩方式由P和C字段表示, 校验和域暂不压缩。UDP报文头部具体压缩格式如图8所示。

众所周知, TCP/IP端口号为16位, 通常以0xf0和0xf0b开始, 其压缩方式由P字段指定, 具体如下:

00:不压缩;01:目的端口号前8位 (0xf0) 省略, 其他部分和源端口号保留;10:源端口号前8位 (0xf0) 省略, 其他部分和目的端口保留;11:目的端口和源端口的前12位 (oxf0b) 省略, 其他部分保留。

2.3 IP网络层与传输层设计

标准TCP/IP协议占用资源较多, 而无线传感器网络属于资源受限网络, 因此边界路由器的设计要特别注意协议栈资源占用。uip IPv6 (u IPv6) 协议栈专为资源受限的设备设计, RAM的占用量只有1.7 KB, 代码量只有[12]11.5 KB, 因此选择移植uip IPv6协议栈作为基于IPv6的无线传感器网络协议的IP层和传输层。

uip IPv6协议栈的IP网络层和传输层使用同一个数据缓存区, 因此可以将IP网络层和传输层统一处理。本设计中各功能模块由轻量级操作系统Contiki统一调度, 因而设计一个IP网络层任务集中处理从适配层接收到的数据包和应用层需要发送的数据包。

3 测试与分析

3.1 测试平台搭建

边界路由器负责WSN网络与IPv6网络之间的通信, 本文实验验证了边界路由器的工作性能。实验测试平台包括一个边界路由器、一个传感器节点和一台Linux主机, 其中边界路由器通过UART接口与Linux主机的USB口连接, 链路层运行slip协议。边界路由器和传感器节点的IPv6地址配置为aaaa::215:8d00:b:6840和aaaa::215:8d00:b:67d3, Linux主机端运行slip守护程序来监听USB口, 其IPv6地址为aaaa::1。

3.2 测试结果分析

通过在Linux主机上向传感器节点 (IPv6地址为aaaa::215:8d00:b:67d3) 发送ping6报文, 来测试传感器节点的可达性, 以验证边界路由器的正常工作, 实验结果如图9所示。实验对边界路由器的数据包转发率、平均传输延迟和传输稳定性进行了分析。其中, 数据包转发率是指Linux主机收到的echo报文数量和发送的ping6报文数量之比;平均传输延迟是指Linux主机发送ping6报文和接收到echo报文之间的平均时间间隔;传输稳定性是指传输延迟的变化幅度, 用算术平均差评定。分析结果如图10~图12所示。

如图10和图11所示, 在发送不同长度ping6报文测试时, 边界路由器均具有良好的数据转发成功率 (大于90%) , 并且数据传输延迟较小。图12列举的是发送不同长度ping6报文测试时链路传输延迟的算术平均差, 对于不同长度的测试报文传, 输延迟算术平均差基本小于15 ms, 网络链路传输延迟抖动较小, 证明网络的链路稳定性较好。

4 结论

本文针对无线传感器网络实际应用的现实需求, 设计了基于IPv6的无线传感器网络边界路由器的软硬件。该设计方案实现了无线传感器网络与IPv6网络的无缝融合, 降低了网络应用布置成本, 提高了系统的灵活性。实验证明, 该方案设计的边界路由器具有较低的数据传输延迟, 网络的链路比较稳定, 能够满足实际应用要求。

参考文献

[1]陈雄, 杜以书, 唐国新.无线传感器网络的研究现状及发展趋势[J].系统仿真技术, 2005, 1 (2) :67-73.

[2]贺文华, 陈志刚, 胡玉平.IPv4、IPv6和IPv9比较研究[J].计算机科学, 2008, 35 (4) :94-96.

[3]华蕊.一种基于无线传感器网络应用的轻便TCP_IP协议栈设计[D].北京:北京交通大学, 2011.

[4]胡婷.无线传感器网络与IPv6网络互联方案研究[D].北京:北京邮电大学, 2010.

[5]BRAUN T, VOIGT T, DUNKELS A.TCP support for sensor networks[C]//Proceedings of fourth Annual Conference on Wire-less on Demand Network Systems and Services.Obergurgl, USA:WONS, 2007:162-169.

[6]NXP.JN5148 Wireless Microcontroller DataSheet[EB/OL].[2012-09-12].http://www.jennic.com/support/datasheets/jn5148_wireless_microcontroller_datasheet.

[7]FTDI Chip.FT232RL Data Sheet[EB/OL].[2013-03-08].http://www.datasheetarchive.com/ftdi232r_datasheet.html.

[8]DUNKELS A, GRONVALL B, VOIGT T.Contiki-a lightweight and flexible operating system for tiny networked sensors[C]//Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks.Washington, DC, USA:IEEE, 2004:455-462.

[9]张恒生.IPv6与IEEE 802.15.4网络结合的发展现状[J].电信网技术, 2010 (5) :12-15.

[10]HUI J W, CULLER D E.IPv6 in low-power wireless net-works[J].Proceedings of the IEEE, 2010, 98 (11) :1865-1878.

[11]方维维, 钱德沛, 刘轶.无线传感器网络传输控制协议[J].软件学报, 2008, 19 (6) :1439-1451.

IPv6路由技术 第6篇

随着网络的指数增长和无线通信网络的持续成功, 电信产业进入了一个新纪元: 通信需要不仅局限于有线/无线网络, 而且随时随地接入网络变成了普遍的需求。因此, 移动设备之间的通信在过去的几年里产生了极大的发展。基于网络的应用和这些应用产生的网络传输负载改变了传统移动通信网络的形式, 它已经完全转换成IP网络的一部分。因此, 寻找处理IP协议移动性的更为有效的解决方案成为当前研究工作的一个热点。

由于协议语法和语义的问题, IP协议不支持移动性。Internet工程任务组 ( IETF) 提出了一个基于包的移动性管理协议, 即移动IP协议 ( MIP) 。为了适应新版本的IP协议IPv6, MIP最终被修改为现在的MIPv6 协议[1]。在MIPv6 中, 移动节点 ( MN) 通过两个不同的IP地址来唯一确定: 家乡地址 ( Ho A) 和转交地址 ( Co A) 。家乡地址为移动节点指定了一个唯一永久的名字。它是固定不变的, 即使这个节点从一个子网移动到了另一个子网。转交地址为移动节点指定了一个临时地址, 这个地址基于移动节点在网络中的当前位置而确定。当移动节点漫游到了一个新的网络而不在它的家乡网络时, 这个地址会发生变化。当移动节点进入一个新的网络时, 它向外部代理发送一个路由请求 ( RS) 消息从而获得它的转交地址。标准的MIP协议包括两个步骤: 绑定更新 ( BU) 和数据交付。绑定更新操作旨在为每一个移动节点分配家乡地址和转交地址。

为了使MIPv6 协议在大型的移动网络中为可攀登的, 同时减少信令交互的数量和降低信令传输路径的长度, IETF将MIPv6 协议做了相关的扩展, 提出了层次性MIPv6 ( HMIPv6 ) 协议[2]。HMIPv6 主要的思想是把局部移动和全局移动分开处理。协议将移动IPv6 网络划分为很多的域, 为每一个域部署一个称为移动锚点 ( MAP) 的局部代理。MAP可以处于这个层次性网络的任意一层上, 负责管理该域的一系列接入路由器 ( AR) 。

1 相关研究

HMIPv6 协议的设计上, 忽视了一个重要的问题, 那就是在大型移动网络中的多个MAP的传输负载和处理能力分布问题。事实上, 当一个单一的MAP负责管理一个较大的域时, MN和MAP之间的距离会增加数据包传送的时延并且会影响路由的优化, 例如有MN从当前MAP管理的域离开。为了避免这种情况发生, 网络服务供应商会选择在一个域内部署多个MAP。在这些含有多个MAP的域中, 很容易引发以下问题: 一些MAP变得过载了而另一些MAP却没有得到充分的利用。尤其是当前网络的负载比较沉重时, MAP之间很容易发生负载失衡的现象, 这会严重影响当前网络的整体性能。

因此合理分配MAP的网络负载对于提高网络性能是十分必要的, 为了合理分配分层移动网络中的负载, 目前已有大量的方案提出。这些研究方案的思想大都是使用局部代理的分层管理策略。大多数提出的协议通过将网络合理的分层来优化网络负载, 然而, 决定局部网络的最优大小是很有挑战性的。

文献[3]中, 区域网络的最优大小取决于移动模式、注册延迟和当地移动代理中央处理单元 ( CPU) 的处理开销。尽管这些方案努力通过合理的分层来减少BU消息的数量, 然而会引发网络传输负载分配失衡问题。实际上, 一些局部代理发生了交通堵塞, 而其他的代理却没有得到有效利用。为解决这一缺陷, 网络分层应该以动态方式进行。

针对这一点, 文献[4]提出了基于动态划分域的移动管理方案。在该方案中, 一组AR构成一个域。在每个AR中存储一个域列表, 该域列表显示了属于同一域的所有AR。属于一个给定域的所有MN共同维护这个域列表。如果一个MN的接入点改变为另一个域的新AR, 该节点的域列表将更新为新AR的域列表, 新AR会成为该节点的MAP。

文献[5]提出了另一种MAP网络的动态分层移动管理方案。在该方案中, 当一个移动主机通过一个新的AR连接到一个新的子网时, 新的AR将新的主机Co A告知旧AR。新的AR成为该节点新的位置管理层。

这两种方案的其中一个主要缺陷是它们都通过多级AR向用户传送数据包, 这将导致很长的包传送延迟和选定AR的冗余交通拥堵。这一问题的一个可能的解决方案是减小子网域的大小, 然而, 这将导致频繁的域间切换和过多的BU代价。

解决HMIPv6 传输负载分布问题的另一个可能的方案是参考用户移动模式[6,7]。在文献[7]中, 根据MN的移动速率对用户进行分类。用户从网络中接收阈值, 并将自己的速度与这些阈值相比较。如果用户的速度超过了传播阈值, 只要简单地注册到高层MAP即可。

尽管这个方法很明确, 然而它没有解决MAP之间的传输负载分布问题。实际上, 当所有用户都有同样的移动特征时, 他们最后将注册在同一个MAP上。这会直接使该MAP过载, 而其他的MAP仍然没有被充分利用。此外, 每一个MAP的速率范围都是固定的。

为解决这一问题, 文献[8]依据MAP目前服务的MN的实际速度提出了MAP速度范围的动态设置。然而, 基于MN速度的移动管理框架的一个常规需求是对MN速率的高精度估计。这项工作并不总是很简单, 通常会导致选择不合适的MAP。

在文献[9]中, MN的移动范围是MAP选择的主要因素。在该方案中, 假定MN记录了它的移动区域, 覆盖整个移动区域的最近的MAP被认为是最适合注册的MAP。但该方案中, 关于如何定义每个MN的移动范围, 以及该方案如何能够应用于不断改变移动区域的MN的问题, 尚未被解决。

文献[10]提出了一种分布式位置管理方案。该方案的核心思想是, 允许MN在不触发区域BU的情况下, 漫游到一个被很多MAP覆盖的区域。尽管这项操作在一定程度上平衡了MAP负载, 减少了BU代价, 但却导致了更长的传送延迟。

文献[11]定义了一个新的因素SMR ( session-to-mobility ratio) 。SMR用作选择服务MAP的一个新的因素。SMR是会话到达频率和交接频率之比。在基于SMR的框架中, SMR值很小的MN选择最高的MAP。文献[12]对以上提及的方法进行了分析。

虽然以上方案能在一定程度上均衡MAP的负载, 但在网络负载很大时, 却不能很好地起作用。为了解决这个问题, 本文提出了基于动态负载均衡的层次性移动IPv6 方案 ( DLBHMIPv6) 。

2 改进的层次性移动IPv6 优化方案

我们之前讨论过, 大型移动网络供应商往往需要在一个域中部署多个MAP。在这样的网络中, 尽管许多的动态分层移动性方案可以减少发送给HA的BU消息频率, 但是它们不能有效均衡这些MAP之间的负载。负载分配的不均衡会使一些MAP因传输的信息过多而过载, 从而在数据包的传输过程中导致大量的时延, 然而其他的一些MAP则没有得到充分的利用。为了处理这个问题, 需要一个有效的MAP负载管理策略。基于这个策略, 在分层移动网络中的移动终端用户可以选择最恰当的MAP来进行通信, 这个选择是基于网络中的当前资源分配情况。图1 描述了提出的MAP选择方案中的主要步骤。当当前网络的MAP负载低于一个阈值 ( 0. 8) 时, 说明负载不重, 能够对外提供服务。此时其行为与传统HMIPv6 中基于距离的MAP选择类似, 采用最远距离的MAP选择方案来选择MAP。当当前网络的MAP中有过载现象发生时, 新进入的MN会根据算法选择最优的MAP进行接入, 同时过载的MAP会通过调度算法对当前的负载进行合理的调度, 使整个网络的资源得到合理的分配, 从而优化网络性能。

2. 1 主要步骤

DLB-HMIPv6 方案以如下的步骤执行。

类似于HMIPv6, DLB-HMIPv6 采取动态的MAP发现方法。每一个AR在每一个 Δ 时间段内从高层的MAP接收MAP选项消息。MAP选项中除HMIPv6 协议中规定的MAP的基本信息之外, DLB-HMIPv6 追加了一个CRU字段, 该字段表示MAP的当前负载, AR通过该字段获得高层MAP的当前负载信息。关于CRU字段, 文章的随后部分将给出详细说明。除非特别的指定, 时间参数 Δ 被设置为1 秒。见图1 步骤1。

图 1 DLB-HMIPv6 的主要步骤

AR统计高层MAP的负载情况, 若发生网络负载失衡, 则通过随后给出的调度方案对区域内部的MN进行调度。AR向需要参与调度的MN发送MSCH消息, MN根据MSCH中含有的信息进行MAP切换, 平衡网络负载。见图1 步骤2。

需要调度的MN从MSCH消息中获取OMAP, MN向OMAP及HA发送BU消息, 进行MAP切换。见图1 步骤3。

绑定成功, OMAP向MN发送BA消息, MN通过OMAP进行网络通信。见图1 步骤4。

2. 2 MAP负载计算模型

按照之前的规定, 每个AR每隔 Δ 时间会从高层MAP收到MAP选项消息。在DLB-HMIPv6 方案中, MAP选项消息中包含MAP的当前负载信息, 通过这些消息, 我们可以掌握当前网络中MAP的负载分配。可以用来评价MAP的当前负载的指标有很多, 例如空闲内存大小、当前CPU利用率和带宽利用率。本文选用当前带宽使用情况作为MAP当前负载的评价指标, 使用Mi→k[n]表示编号为i的MAP第k个端口在第n个 Δ 时间间隔内 ( [nΔ, ( n + 1) Δ]) 处理的数据量, 端口k连接处于该MAP下游的网络节点。Mi→k[n]可以使用公式:

计算。值得注意的是, HMIPv6 网络通信模型中的路由器既可以作为一个MAP, 又可以作为一个普通的路由器。当它执行MAP的功能时, 会对网络数据包做一定的处理, 然后转交给注册到该路由器以之作为MAP的MN。而当它执行路由器的功能时, 会将数据包直接转交给下一跳的网络节点, 不管它是一个MN、路由器或是其他。在这两种情况下, 处理数据包所需要占用的计算资源是不同的, 显然前一种情况需要耗费更多的资源。分别用pi→k[n]和qi→k[n]来表示这两种情况下处理的数据包数量, 并给前者增加一个大于1 的权重W来如实反应这个区别, 本文中W取1. 1。现在, 该MAP的当前资源利用率CRU可以通过公式:

计算, m为MAP含有的端口数量。C表示该MAP的数据处理速度。CRU会随着MAP选项消息发送到该MAP管理的AR上, 为负载的调度提供依据。

2. 3 调度策略

如果在同一时刻有大量的MN连接到同一个MAP进行通信, 很有可能会导致这个MAP变得拥挤不堪, 对通信质量造成一定的影响。此时网络中的其他MAP则由于管理少量的MN, 计算资源并没有得到充分的利用, 产生了网络负载不均衡的状况, 影响网络的整体性能。为了避免这种情况的发生, 过载的MAP管理的AR可以建议其辖区内的MN进行自发的切换, 切换到有充足的计算资源的空闲MAP来寻求服务, 以达到均衡网络负载的目的。在同一时刻, 漫游到该AR内的新MN也会受到同样的通知, 选择最优的MAP进行绑定, 进一步平衡网络的负载。

在DLB-HMIPv6 中, AR会记录MN接入网络的时间T以及当前移动速率V, 根据T和V可以预测MN的稳定性S, 根据MN的稳定性S来确定需要切换的MN。

一般来说, 接入时间T较长的MN相对来说比较稳定, 推测其在近期内不会切换到其他的网络。而接入时间较短的MN, 典型的是刚进入该AR区域的MN, 其运动趋向不好预测, 既有可能长期处于当前网络, 又有可能马上切换到另一网络。而对于移动速率V, 一般情况下, V较大的MN有更高的切换次数, 而V较小的MN却很少需要切换。

基于以上的考虑, MN的稳定性S与T有正相关关系, 与V有负相关关系, 而V对S的决定作用大于T, 因此稳定性S可用以下公式来描述:

其中Tmax和Vmax分别是接入该AR的所有MN在 Δ 时间内的T和V的最大值, 用于归一化处理。1 和2 分别作为T和V的权重。由文献[7]可知, MN的移动速度是节点移动性能的主要决定因素, 接入时间T在确定节点的稳定性时起到了辅助作用, 因此具有较小的权重。通过多次试验结果分析, V的权重在1. 75~ 2. 5 之间时具有较好的性能, 本文选择2 作为V的权重。S越大, MN发生切换的几率越小, 反之S越小, MN越不稳定, 具有更高的切换趋势。

AR将MN按稳定性S进行排序, 如果上层的MAP产生了过载现象, 则选取S较大的前30% MN进行调度, 接入到下层MAP。如果是下层的MAP产生了过载现象, 则选取S较小的前30% MN进行调度, 接入到上层MAP。这样不仅能平衡MAP的负载, 而且会使MN根据自身的稳定性接入到合适的MAP级别, 减少未来发生MAP切换的可能性。由于本文判定MAP过载的阈值为0. 8, 假设MAP的负载达到了100% , 则参与调度的MN应不小于20% , 才能起到调度的作用, 使MAP退出过载的状态。而参与调度的MN也不能过多, 这样会导致网络中产生过多的BU消息, 加重网络的负担, 因此选择30% 的MN参与调度, 这是一个合理的数值。

DLB-HMIPv6 协议引入一个新的网络消息MSCH ( MAPscheduling) , AR向被选定的MN发送MSCH消息, 该消息通知MN需要进行切换, 并提供切换的OMAP ( optimum MAP) 。如前一小节所述, AR会定期地收到MAP选项消息, 其中封装了当前各个MAP的CRU, AR取CRU最小的MAP作为OMAP通过MSCH发送给需要调度的MN。MN收到MSCH消息后便根据提供的信息主动地触发MAP切换, 向OMAP进行注册, 注册成功后向HA发送BU消息, 更新RCo A参数, 切换成功之后MN收到BA消息, 之后MN就通过OMAP提供的服务来进行通信。这样网络负载进行了转移, 达到了均衡网络负载的目的。

需要强调的是, 在调度的时期, 若有新的MN进入AR的范围, AR会直接向MN发送MSCH消息, MN得到通知后直接向OMAP进行注册, 而不是通过传统的最远距离MAP选择方案来选择MAP, 这么做的目的是进一步平衡网络负载。

3 仿真实验

为了评估DLB-HMIPv6 协议的网络性能, 本文选择Linux平台上的NS-2 网络模拟软件, 并安装了FHMIPv6 扩展模块, 作为模拟实验平台。在该平台上实现了提出的DLB-HMIPv6 路由优化方案, 将提出的路由优化方案与标准的HMIPv6 以及文献[7]中提出的根据MN的移动性来选择MAP的HMIPv6-UP方案进行了比较。

3. 1 仿真环境

仿真环境中使用的网络拓扑结构如图2 所示, 链路特征见表1。无线网络部分包括4 个相邻的AR, 每个AR的无线覆盖范围为75 m, 两个相邻AR之间距离为100 m。4 个AR连接到一个由3 个MAP组成的具有两层MAP结构的网络中, MAP2 和MAP3 同时连接到MAP1。这个MAP网络通过有线网络N1 与HA和服务器 ( 作为CN) 相连。在网络内随机的部署40 个MN, 采用随机移动模型, 并将其移动速度限制在0 ~ 4 m/s的区间内。MN从CN持续的接收UDP数据包, CN发送数据的速率设置为400 k B/s, UDP数据包的大小为1k B。在MAP之间设立背景业务流, 其大小设为链路能力的50% , 即10 MB/s。根据以上设置, 该网络的总体负载达到了80% , 处于一个较高的水平, 极易出现网络负载分配失衡的现象, 容易验证动态负载调度策略的有效性。仿真实验持续600 s, 这个时间长度可以保证实验数据的有效性。

3. 2 仿真结果

本文从MAP负载的分布、MN与CN通信的时延和网络丢包率几个方面评估DLB-HMIPv6 方案的性能。图3 至图5 分别显示了采用HMIPv6、HMIPv6-UP和DLB-HMIPv6 方案时MAP负载的分布情况, 可以看出采用HMIPv6 和HMIPv6-UP时, MAP1 具有较高的传输负载, 而MAP2 和MAP3 负载较低, 计算资源没有得到有效的利用。采用DLB-HMIPv6 时, 在初始状态, MAP1 具有很高的负载, 网络负载处于一个失衡的状态, 此时调度方案产生作用, 负载逐渐向MAP2 和MAP3 转移。经过约150s, 网络负载趋于稳定, 各个MAP具有相对平均的负载。

图 3 HMIPv6 方案的负载分布

图 4 HMIPv6-UP 方案的负载分布

图 5 DLB-HMIPv6 方案的负载分布

图6 记录了MN与CN之间的通信时延, 取40 个MN的平均值。在HMIPv6 和HMIPv6-UP中, 由于局部MAP出现过载, 导致该MAP不能很好地为MN提供服务, 该MAP域内的MN通信具有较大的通信时延, 因此拉高了整个网络的平均通信时延。但HMIPv6-UP考虑到了MN的移动性, 为其选择相对合适的MAP, 性能上要优于HMIPv6, 具有较低的通信时延。由于DLB-HMIPv6 方案会使MAP之间的负载均衡分配, 因此可以减少某个MAP出现拥堵的情况, 网络提供的服务质量较高, 因而端到端之间的通信延迟较低, 性能优于前两种方案。

图7 显示了网络通信时的丢包率。同样的, 由于DLBHMIPv6 能改善网络的服务质量, 因而相比较HMIPv6 和HMIPv6-UP方案具有更低的丢包率。

从图8 可以看出来, HMIPv6 和HMIPv6-UP协议降低了发送给HA的BU消息的频率, 但是这两种法案没有考虑多个MAP间的负载分配问题, 在拥挤的链路上会产生较多的丢包现象 ( 图6、图7 的分析) 。虽然DLB-HMIPv6 增加了发送给HA的BU消息的数量, 但是对负载较重的MAP1 来说, 收到的BU消息有所减少, 在一定程度上缓解了MAP1 的负载。同时它与前两种方案相比明显降低了通信过程的时延和丢包率, 改善了网络性能, 因此这些代价是值得的。

图 8 HA 和 MAP 收到的 BU 消息数量

综合以上的实验结果分析, DLB-HMIPv6 均衡了网络负载, 虽然信令负荷有所增加, 但能有效改善网络服务质量, 使网络的整体性能得到了很大的提升。

4 结语

DLB-HMIPv6 方案在MAP负载分配失衡时迫使过载的MAP服务的MN进行主动切换, 这样虽然略微增加了MN进行切换的次数, 但是可以促使网络负载从负担较重的MAP转移到相对空闲的MAP, 从而使网络负载得到合理的分配, 改善了MAP向MN提供服务的质量, 能有效减少MN的通信时延和丢包率, 改善了层次性移动网络的整体性能。

参考文献

[1]Johnson D, Perkns C, Arkko J.RFC 3775 Mobility support in IPv6[S].IETF, 2004.

[2]Soliman H, Catcluccia C, Maiki K, et al.RFC 4140 Hierarchical Mobile IPv6 mobility management (HMIPv6) [S].2005.

[3]Pack S, Choi Y.A study on performance of Hierarchical Mobile IPv6 in IP-based cellular networks[C]//IEICE Trans.Commun, 2004, E87-B:462-469.

[4]Pyo C W, Li J, Kameda H.A dynamic and distributed domainbased mobility management method for Mobile IPv6[C]//IEEE VTC, 2003:1964-1968.

[5]Ma W, Fang Y.Dynamic hierarchical mobility management strategy for mobile IP networks[C]//IEEE J.Sel.Areas Commun., 2004, 22 (4) :664-676.

[6]Kawano K, Kinoshita K, Murakami K.A mobility-based terminal management in IPv6 networks[C]//IEICE Trans.Commun., 2002, E85-B (10) :2090-2099.

[7]Natalizio E, Scicchitano A, Marano S.Mobility anchor point selection based on user mobility in HMIPv6 integrated with fast handover mechanism[C]//IEEE WCNC, 2005:1434-1439.

[8]Chung W, Lee S.Improving performance of HMIPv6 networks with adaptive MAP selection scheme[C]//IEICE Trans.Commun., 2007, E90-B (4) :769-776.

[9]Liu M H, Yang C C.A multicast extension to HMIPv6 with efficient MAP selection[C]//IEEE VTC, 2005:816-820.

[10]Bandai M, Sasase I.A load balancing mobility management for multilevel Hierarchical Mobile IPv6 networks[C]//IEEE PIMRC, 2003:460-464.

[11]Pack S, Nam M, Kwon T, et al.An adaptive mobility anchor point selection scheme in Hierarchical Mobile IPv6 networks[J].Comput.Commun., 2006, 29 (16) :3066-3078.

IPv6路由技术

IPv6路由技术(精选6篇)IPv6路由技术 第1篇IPv6隧道实际就是将IPv6报文封装在IPv4报文中,这样IPv6协议就可以穿越IPv4网络进行通信。由于...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部