OSPF设计(精选7篇)
OSPF设计 篇1
0 引言
计算机网络技术和应用的迅猛发展,推动了社会信息化程度的不断提高,而信息化需求的提升又推动着新的网络技术的涌现。这些技术使得网络在可扩充性、灵活性、透明性以及传输速率等方面都得到了很大提高。在众多的网络产品中,交换机对于构建高性能的网络起着至关重要的作用[1]。OSPF是互联网络工程任务组(IETF)内部网关协议工作组专为IP开发的,作为Internet通信体中RIP后继的链路状态层次路由算法。OSPF特性包括最少花费路由、多路径和负载均衡。国外不少著名公司已经不同程度上实现OSPF协议。
1 OSPF概述
1.1 OSPF中的术语
OSPF(开放式最短路径优先)是一种基于开放标准的链路状态型路由选择协议,链路状态型路由器识别并且与它们的邻居通信,以便它们能够从网络的其他路由收集最新的路由信息[2]。OSPF术语图如图1所示,其中涉及到很多术语:链路,是指一条由线路或传输路径组成的网络通信信道;链路状态,是两个路由器或者路由器接口之间链路的状态以及路由器与邻居路由器的联系;区域是指区域里面的每台路由器有相同链路状态信息;DR指定路由器,一方面其功能是与该网络上的所有其它路由器建立毗邻关系,另一方面是DR向所有其他IP网络发送网络LSA。
1.2 OSPF邻居关系的建立和交换过程
在OSPF网络中,路由器必须彼此获悉对方后才能共享信息。如图2所示。
在Down状态下,OSPF进程还没有与任何邻居交换信息;路由器以固定的时间间隔(通常10s)发送类型1(Hello)的分组,来与邻居路由器建立特殊的关系。当接口收到第一个Hello分组后,路由器进入到Init状态;每台OSPF路由器都与同一个IP网络中的所有邻居路由器建立双向状态或双向通信;双向状态是OSPF邻居之间具有的最基本的关系,但要了解其他路由器的链路状态并最终建立起一张路由表,每个OSPF路由器至少建立一个毗邻关系;“Exstart(准启动)”状态是建立全毗邻状态的第一步,在这一状态中两个邻居路由器用Hello分组来协商他们之间的关系谁是“主”谁是“从”(具有最高OSPF路由器ID的路由器为主),并用DBD分组来交换数据库信息。当路由器之间建立了主从角色后,就进入了“Exchange(交换)”状态;在交换状态下,邻居路由器使用类型2的DBD分组来互相发送他们链路状态信息;在相互描述过各自的链路状态数据库后,路由器可以使用类型3的链路状态请求(LSR)分组来请求更完整的信息。加载状态结束后,路由器就进入了全毗邻状态。OSPF相邻关系之间就是依靠通过各种状态的建立从而实现数据的交换[3]。
1.3 OSPF区域结构
在大型网络中,路由器链路组成的结构极其复杂,前往每个目的地路径为数众多。为减少SPF算法的计算量,加快收敛,链路状态路由选择协议通常将网络划分为区域。大体可分为中转区域和常规区域。中转区域:主要功能为快速、高效地传输IP分组的OSPF区域。常规区域:主要功能为连接用户和资源的OSPF区域。常规区域通常是根据职能和地理位置划分的。常规区域又分为几类,包括标准区域、末节区域、完全末节区域和次末节区域。
2 OSPF在中小型企业网络中可行性分析
OSPF路由协议通过在同一区域内的路由上配置密码,可以使运行OSPF路由协议的路由之间进行身份验证,只有密码相同的路由器之间才可以建立邻居关系,而密码不同的路由器之间不能建立邻居关系。通过邻居验证的方式,使得那些恶意破坏者,无法将自己的路由器连接到OSPF网络中,从而不能用虚假的路由信息来欺骗其它的路由器。在中大型网络中使用的主要数据流控技术,一般有访问控制列表和基于策略的路由两种,相比访问控制列表,基于策略的路由能提供更加灵活的数据流控和更好的网络性能。
3 OSPF在中小企业的网络设计
3.1 需求分析
某市准备要建设城域网,该城域网需要建立2个骨干机站,每个骨干机站有一台高级的核心路由器,通过将这2台核心路由器相互连接,构成该市的城域骨干网。该城域网需要与省网的汇聚路由连接,省网由4台路由器组成,相互连接组成一个环。这两台核心路由器都负责一定区域内的用户网络。用户网络可以是小区的宽带网络,也可以是企业网络。
通过连接企业网络,城域网可以成为一个中小型规模的ISP。而小区宽带和企业网络中的接入层路由器可以和骨干上的核心交换机相连,为终端用户和城域骨干提供连接和服务。
从设计网络要求,实施和维护成本,设备间的兼容和扩展等方面,OSPF协议比较合适于大中型网络的设计。
3.2 网络设计介绍
骨干网由R1、R2、R3、R4来组成,配置成OSPF区域0,本城域网由R6和R7组成,配置成OSPF区域1(NSSA)。该区域能够允许区域内的路由器可以将其它类别的路由如静态、直连等路由重分布进入OSPF。其中IS-IS区域可以作为中间区域不断扩容。
区域网出口,即两台区域网核心路由器,作为NSSA ABR,配置area NSSA no-summary,过滤骨干网及其它区域网的OSPF路由进入本区域网内部,只会向区域网内其它OSPF路由器通告一条汇总缺省路由。
在区域网出口ABR,配置area range,只向骨干网通告汇总后的区域网OSPF内部路由。OSPF内部路由是指OSPF路由进程中直接通告的路由。
在区域网出口ABR,配置summary-address,向骨干网通告汇总后的区域网OSPF外部路由。OSPF外部路由是指重分布进入OSPF的静态、直连等路由。
如果区域网出口ABR,也做ASBR重分布其它路由进入OSPF,可以配置area 1 nssa no-redistribution no-summary,增加no-redistribution选项后,重分布进入OSPF的外部路由,只会进入area 0,可以避免这部分重分布的路由进入区域网内部。设计拓扑图如图3所示。
3.3 基本配置步骤
实际过程中是按照下面介绍的基本配置步骤对网络进行配置,从而实现对组网设配的重新配置而完成相应设备的OSPF协议。
(1)准备网络
步骤 1:根据拓扑图所示完成网络电缆连接。
步骤 2:清除路由器上的所有配置。
(2)执行基本路由器配置
(3)配置并激活以太网地址和环回地址
步骤1:路由器上配置接口。
步骤2:验证 IP 地址和接口。
(4)在DR路由器上配置OSPF
(5)在BDR路由器上配置OSPF
(6)在DRother路由器上配置 OSPF
(7)使用OSPF优先级确定DR和BDR
(8)记录路由器配置
4 软件模拟测试
在PC机上使用DynamipsGUI软件,按照拓扑设计图完成环境搭建后,以R3路由器为例,操作如下命令:
Router#show ip protocols //查看路由器的协议。
Router#show ip router //查看路由器的路由表。
Router#show ip ospf interface //查看路由器的运行OSPF协议的端口信息。
Router#show ip ospf neighbor //查看路由器的OSPF邻居。
5 总结
以上设计是融合了多种网络协议,围绕OSPF为核心设计的中小型企业网络。在设计中IS-IS协议或EIGRP协议等,都通过OSPF协议来连接,由于OSPF协议可以层次管理,因而在设计网络时,能准确地定义边界。当OSPF自治系统边界确定后,下面企业等不同用户接入,可以在边界进行汇聚重发布,而进入核心网络。而网络可以根据不同的用户群和不同的应用进行区域功能划分管理,同时也可以根据这些进行网络扩展。总的来说OSPF协议是很适合中小型企业ISP网络设计,尤其在目前全国实行天然气改造,众多企业参与的前景下,OSPF协议在天然气组网开发中具有广泛的应用前景。
摘要:设计了一个通用的OSPF网络模型,此模型可以直接应用于OSPF天然气组网设计与实施,并可以用于做一些网络新技术的测试,进一步阐明基于OSPF技术的应用。
关键词:OSPF
参考文献
[1]吴功宜.计算机网络[M].北京:清华大学出版社,2006.
[2]区羽.全球OSPF技术发展状况及应用前景[J].GlobalReport,2002(3):1.
[3]张宏科,张思东,刘文红.基于OSPF协议的路由器原理与技术[J].计算机工程与设计,2004,25(9):1485-1487.
[4]Cisco Systems公司.思科网络技术学院教程(第三、四学期)[M].第3版.北京:人民邮电出版社,2005.
[5]Jeff Doyle,Jennifer DeHaven Carroll.TCP/IP路由技术(第二卷)[M].北京:人民邮电出版社,2007.
[6]Tsirtsis G,Srisuresh P.Network Address Translation-protocol Translation(NAT-PT)[M].RFC2766.2000.
OSPF设计 篇2
21世纪的到来, 让整个世界都步入了信息时代, 信息时代最大的代表特征就是计算机网络的广泛使用、信息总量空前的巨大、信息传播速度和更新频率空间快, 这些都已经深深的影响着我们的生活, 我们已经时时刻刻离不开计算机网络。面临着人们对网络的需求不断膨胀, 相对的能提供这方面的服务的人才也就日益增多, 就目前来说这一领域的顶级人才还是非常稀缺的, 这就需要各大高校在对学生的专业培养上下更大物力、财力、人力等等, 才能有效培养出社会所需求的人才。目前, 各高校在计算机相关专业基本上都开设了《计算机网络技术》课程, 但是配套的计算机、网络硬件设备、专用实验室等等, 都因为种种原因得不到有力的支持, 在教学上更多采用搭建仿真实验平台来弥补现实中的限制条件。而在模拟器选择上, 传统的Cisco Packet Tracer和dynamips都不能很好地满足我们的教学需求, 在长期探索中, 我们确立了利用界面友好的GNS3与Secure CRT模拟器软件搭建动态路由协议OSPF仿真实验平台的方案, 并在实际教学中使用, 效果良好。
二、GNS3以及Secure CRT的概述
GNS3是一款优秀的具有GUI界面的网络虚拟软件, 可以通过它来完成实验模拟实验, 同时它也可以用于虚拟体验Cisco网际操作系统IOS或者是检验将要在真实的路由器上部署实施的相关配置。Secure CRT是一款支持SSH的终端仿真程序, 是Windows下登录UNIX或Linux服务器主机的软件。Secure CRT支持SSH, 同时支持Telnet和rlogin协议。
三、GNS3平台OSPF的设计与制作过程
右面是实验拓扑结构图。
1. 拓扑结构如图。
使用OSPF动态协议目的:用前缀列表和分发列表使R1、R5上不能收到22.22.22.0/24的路由;R3、R4只能收到22.22.22.0/24的还回口路由;R2上要能收到所有环回口的路由。
R1上面的链路配置
进入串行链路接口S0/0配置
进入串行链路接口S0/1配置
进入串行链路接口S0/2配置
进入串行链路接口S0/3配置
R2上面的链路配置
进入串行链路接口S0/0配置
进入环回口接口0配置
进入环回口接口1配置
由于需要对这个借口进行OSPF路由控制
而OSPF环回口发布时默认32位所以要更改类型
R3上面的链路配置
进入串行链路接口S0/1配置
进入环回口接口0配置
R4上面的链路配置
进入串行链路接口S0/2配置
进入环回口接口0配置
R5上面的链路配置
进入串行链路接口S0/3配置
进入环回口接口0配置
2. 配置好基础链路之后, 配置OSPF动态路由协议:
R1上的动态路由OSPF配置方式
开启OSPF路由协议协议号110
router ospf 110
R1上的OSPF标识1.1.1.1
router-id 1.1.1.1
log-adjacency-changes
发布路由
R2上的动态路由OSPF配置方式
开启OSPF路由协议协议号110
router ospf 110
R2上的OSPF标识2.2.2.2
router-id 2.2.2.2
log-adjacency-changes
发布路由
R3上的动态路由OSPF配置方式
开启OSPF路由协议协议号110
router ospf 110
R3上的OSPF标识3.3.3.3
router-id 3.3.3.3
log-adjacency-changes
发布路由
R4上的动态路由OSPF配置方式
开启OSPF路由协议协议号110
router ospf 110
R4上的OSPF标识4.4.4.4
router-id 4.4.4.4
log-adjacency-changes
发布路由
R5上的动态路由OSPF配置方式
开启OSPF路由协议协议号110
router ospf 110
R5上的OSPF标识5.5.5.5
router-id 5.5.5.5
log-adjacency-changes
发布路由
最后是R2上要接收到所有环回口地址, R1上已经没有22.22.22.0/24的路由, R5上已经没有22.22.22.0/24的路由, R3上只有22.22.22.0/24的路由, R4上只有22.22.22.0/24的路由。
四、总结
OSPF (Open Shortest Path First开放式最短路径优先) 是一个内部网关协议 (Interior Gateway Protocol, 简称IGP) , 用于在单一自治系统 (autonomous system, AS) 内决策路由, OSPF采用著名的迪克斯加算法被用来计算最短路径树, 与RIP相比, OSPF是链路状态协议, 而RIP是距离矢量协议。
利用GNS3和Secre CRT搭建仿真实验平台, 为学生们提供了自主学习的环境, 开展了开创新的实验, 从而使得学生的所学知识掌握的更加牢靠, 而且能更好地应用到实践中去。
摘要:计算机网络实验经常需要使用模拟器来进行教学工作, 传统的cisco packet tracer模拟器又不能真实地模拟IOS软件系统。本文以动态路由协议OSPF为例, 利用GNS3与SecureCRT搭建仿真实验平台, 可以解决学校实验经费和场地不足的问题, 又能够保证实验教学的正常开展, 让学生在几乎真实的IOS网络环境完成网络技术的学习。
关键词:GNS3,SecureCRT,dynamips,OSPF
参考文献
[1]崔北亮.CCNA认证指南 (640-802) [M].北京:电子工业出版社, 2009.
趣谈OSPF动态路由协议 篇3
OSPF 是自治系统内部路由协议, 负责计算同一个自治系统内的路由。在这里“自治系统”是指彼此相连的运行OSPF 路由协议的所有路由器的集合。对于OSPF来说, 整个网络只有“自治系统内”和“自治系统外”之分。需要注意的是:“自治系统外”并不一定在物理上或拓扑结构中真正的位于自治系统的外部, 而是指那些没有运行OSPF 的路由器或者是某台运行OSPF 协议的路由器中没有运行OSPF 的接口。
二、OSFP协议中DR、BDR
在广播和NBMA 类型的网络上, 任意两台路由器之间都需要传递路由信息 (flood) , 如果网络中有 N 台路由器, 则需要建立N * (N-1) /2 个邻接关系。任何一台路由器的路由变化, 都需要在网段中进行N* (N-1) /2 次的传递。这是没有必要的, 也浪费了宝贵的带宽资源。为了解决这个问题, OSPF 协议指定一台路由器DR (Designated Router) 来负责传递信息。所有的路由器都只将路由信息发送给DR, 再由DR 将路由信息发送给本网段内的其他路由器。两台不是DR 的路由器 (DROther) 之间不再建立邻接关系, 也不再交换任何路由信息。这样在同一网段内的路由器之间只需建立N 个邻接关系, 每次路由变化只需进行2N 次的传递即可。
DR 的选举过程如下: (1) 登记选民——本网段内的运行OSPF 的路由器; (2) 登记候选人——本网段内的Priority>0 的OSPF 路由器;Priority 是接口上的参数, 可以配置, 缺省值是1; (3) 竞选演说——部分Priority>0 的OSPF 路由器认为自己是DR; (4) 在所有自称是DR 的路由器中选priority 值最大的当选, 若两台路由器的priority值相等, 则选Router ID 最大的当选。选票就是HELLO 报文, 每台路由器将自己选出的DR 写入HELLO 中, 发给网段上的每台路由器。
三、OSFP协议中三张表
(一) 邻居表。
包括所有建立联系的邻居路由器。
(二) 链接状态表 (拓扑表) 。
包含了网络中所有路由器的链接状态。它表示着整个网络的拓扑结构。同Area内的所有路由器的链接状态表, 都是相同的。
(三) 路由表。
也称转发表, 在链接状态表的基础之上, 利用SPF算法计算而来。
四、OSFP协议中四种链路类型
(一) Broadcast。
当链路层协议是Ethernet 时, OSPF 缺省认为网络类型是Broadcast。在这种类型网络中, 以组播地址 (224.0.0.5, 224.0.0.6) 发送协议报文, 需要选举DR, BDR。
(二) NBMA。
当链路层协议是Frame Relay、X.25 时, OSPF 缺省认为网络类型是NBMA。在这种类型网络中, 以单播地址发送协议报文, 必须手工配置邻居的IP 地址, 需要选举DR, BDR。
(三) Point-to-Multipoint。
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型, 通常由NBMA的类型手工修改而来, 如果NBMA类型的网络不是全连通的。在这种类型网络中, 以组播地址 (224.0.0.5) 发送协议报文, 不需要选举DR, BDR。
(四) Point-to-Point。
当链路层协议是PPP, HDLC, LAPB时, OSPF缺省认为网络类型是Point-to-Point。在这种类型网络中, 以组播地址 (224.0.0.5) 发送协议报文, 不需要选举DR, BDR。
五、OSFP协议中五种的报文类型
(一) HELLO报文。
最常用的一种报文, 周期性的发送给本路由器的邻居。内容包括一些定时器的数值, DR, BDR, 以及自己已知的邻居。HELLO报文中包含有Router ID、Hello/dead intervals、Neighbors、Area-ID、Router priority、DR IP address、BDR IP address、Authentication password、Stub area flag等信息, 其中Hello/dead intervals、Area-ID、Authentication password、Stub area flag必须一致, 相邻路由器才能建立邻居关系。
(二) DBD报文。
两台路由器进行数据库同步时, 用DBD报文来描述自己的LSDB, 内容包括LSDB中每一条LSA的摘要 (摘要是指LSA的HEAD, 通过该HEAD可以唯一标识一条LSA) 。这样做是为了减少路由器之间传递信息的量, 因为LSA的HEAD只占一条LSA的整个数据量的一小部分, 根据HEAD, 对端路由器就可以判断出是否已经有了这条LSA。
(三) LSR报文。
两台路由器互相交换过DBD报文之后, 知道对端的路由器有哪些LSA是本地的LSDB所缺少的或是对端更新的LSA, 这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。
(四) LSU报文。
用来向对端路由器发送所需要的LSA, 内容是多条LSA (全部内容) 的集合。
(五) LSAck报文。
用来对接收到的DBD, LSU报文进行确认。内容是需要确认的LSA的HEAD (一个报文可对多个LSA进行确认) 。
六、Ospf协议中6种LSA
(一) Router LSA (Type=1) 。
是最基本的LSA类型, 所有运行OSPF的路由器都会生成这种LSA。主要描述本路由器运行OSPF的接口的连接状况, 花费等信息。对于ABR, 它会为每个区域生成一条Router LSA。这种类型的LSA传递的范围是它所属的整个区域。
(二) Netwrok LSA (Type=2) 。
本类型的LSA由DR生成。对于广播和NBMA类型的网络, 为了减少该网段中路由器之间交换报文的次数而提出了DR的概念。一个网段中有了DR之后不仅发送报文的方式有所改变, 链路状态的描述也发生了变化。在DROther和BDR的Router LSA中只描述到DR的连接, 而DR则通过Network LSA来描述本网段中所有已经同其建立了邻接关系的路由器。 (分别列出它们Router ID) 。同样, 这种类型的LSA传递的范围是它所属的整个区域。
(三) Network Summary LSA (Type=3) 。
本类型的LSA由ABR生成。当ABR完成它所属一个区域中的区域内路由计算之后, 查询路由表, 将本区域内的每一条OSPF路由封装成Network Summary LSA发送到区域外。LSA中描述了某条路由的目的地址、掩码、花费值等信息。这种类型的LSA传递的范围是ABR中除了该LSA生成区域之外的其他区域。
(四) ASBR Summary LSA (Type=4) 。
本类型的LSA同样是由ABR生成。内容主要是描述到达本区域内部的AS-BR的路由。这种LSA与Type3类型的LSA内容基本一样, 只是Type4的LSA描述的目的地址是ASBR, 是主机路由, 所以掩码为0.0.0.0。这种类型的LSA传递的范围与Type3的LSA相同。
(五) AS External LSA (Type=5) 。
本类型的LSA由ASBR生成。主要描述了到自治系统外部路由的信息, LSA中包含某条路由的目的地址、掩码、花费值等信息。本类型的LSA是唯一一种与区域无关的LSA类型, 它并不与某一个特定的区域相关。这种类型的LSA传递的范围整个自治系统 (STUB区域除外) 。
(六) AS External LSA (Type=7) 。
类型7的LSA被应用在非完全末节区域中 (NSSA) 。
七、OSPF的7种状态机
(一) Down。
邻居状态机的初始状态, 是指在过去的Dead-Interval时间内没有收到对方的Hello报文。
(二) Init。
本状态表示已经收到了邻居的HELLO报文, 但是该报文中列出的邻居中没有包含我的Router ID (对方并没有收到我发的HELLO报文)
(三) 2-Way。
本状态表示双方互相收到了对端发送的HELLO报文, 建立了邻居关系。在广播和NBMA类型的网络中, 两个接口状态是DROther的路由器之间将停留在此状态。其他情况状态机将继续转入高级状态。
(四) Ex Start。
在此状态下, 路由器和它的邻居之间通过互相交换DBD报文 (该报文并不包含实际的内容, 只包含一些标志位) 来决定发送时的主/从关系。建立主/从关系主要是为了保证在后续的DBD报文交换中能够有序的发送。
(五) Exchange。
路由器将本地的LSDB用DBD报文来描述, 并发给邻居。
(六) Loading。
路由器发送LSR报文向邻居请求对方的DBD报文。
(七) Full。
在此状态下, 邻居路由器的LSDB中所有的LSA本路由器全都有了。即, 本路由器和邻居建立了邻接 (adjacency) 状态。
八、结语
OSPF协议的SPF算法保证area内无环路。其中维护的3张表。邻居表 (显示邻接关系) , 拓扑表 (列举所有收到的LSA (link state advertisement) , 是一个LSA数据库) , 路由表 (记录到达某个网段的最佳路径, 是由前边2个表算出来的) 所有厂家都支持, 且数据包的格式都通用, 便于延展;带宽开销少, 触发式路由更新等优点, 所以广泛应用于各组网拓扑中。
摘要:OSPF是Open Shortest Path First (即“开放最短路由优先协议”) 的缩写。它是IETF (Internet Engineering Task Force) 组织开发的一个基于链路状态的自治系统内部路由协议 (IGP) , 用于在单一自治系统 (Autonomous system, AS) 内决策路由。在IP网络上, 它通过收集和传递自治系统的链路状态来动态地发现并传播路由。本文简要梳理了OSPF的相关知识点。
简析OSPF路由协议研究及应用 篇4
本文主要介绍了OSPF路由协议的优越性、相关基本概念和它的具体操作过程,并通过使用华为路由器对OSPF路由协议的应用进行了说明。
1 OSPF路由协议和RIP路由信息协议的比较
(1)RIP路由协议是一种传统的路由协议,它适合比较小型的网络,在当前计算机网络迅速发展的情况下,旧的RIP协议无法适应今天的网络。而OSPF路由协议则是在计算机网络急剧膨胀的时候制定出来的,它克服了RIP协议的许多缺点。
(2)使用RIP路由协议的网络最多支持15 个路由器,也就是说如果一个使用RIP路由协议发现的网络路由经过15 个路由器或以上时,它就认为网络不可达。然而使用OSPF路由协议的网络对使用路由器的个数没有限制。
(3)使用RIP路由协议的网络容易产生路由自环,路由自环是对网络极大的危害,所以使用RIP路由协议的网络通常采用一些特殊的方法加以解决,例如:水平分割,触发更新等等,从而造成网络资源的浪费。然而使用OSPF路由协议的网络在自治系统内部不会产生路由自环,节约了巨大的网络资源。
(4)RIP路由协议则不支持,这使得RIP路由协议对解决当前IP地址的匮乏和可变长子网掩码的灵活性缺少支持。OSPF路由协议支持可变长子网掩码(VLSM)。
(5)使用RIP路由协议的路由器不是针对网络的实际情况来传输自己的路由表,而是定期地传输自己的路由表,这对于网络的带宽资源是个极大的浪费,特别是对那些使用路由器很多的大型广域网。然而使用OSPF路由协议的路由器只有在自己的链路状态发生变化时,才传输自己变化的路由状态信息,并采用多路广播来传输,节约了网络的带宽。
2 OSPF路由协议的基本概念和术语
(1)链路状态信息(LSA)和链路状态数据库(LSDB)使用OSPF路由协议的路由器收集其所在网络区域上各路由器的连接状态信息,即链路状态信息,生成链路状态数据库。LSA描述了路由器所有的链路、接口和邻居等信息,LSDB是对整个自治系统的网络拓扑结构的描述。通过LSA的扩散,所有使用OSPF路由协议的路由器都会生成同样的LSDB。然后每一台路由器都使用SPF算法计算出一棵最短路径树,然后从最短路径树得出到每一个目的网络的最佳(最短)路径,将其路径存入自己的路由表中。
(2)指定路由器(DR)和备份指定路由器(BDR)在广播型网络或者在非广播多路访问型网络中,有可能存在多个路由器,为了避免路由器之间建立完全相邻关系而引起的大量开销,OSPF要求在区域中选举一个DR。每个路由器都与之建立完全邻接关系。DR负责收集所有的链路状态信息,并发布给其他路由器。选举DR的同时也选举出一个BDR,在DR失效的时候,BDR担负起DR的职责。
(3)区域(Area)和区域ID(Area ID)
区域是一组路由器的集合,相同区域内的路由器有着相同的LSDB。OSPF用区域把一个自治系统分成多个链路状态域,一个区域的拓扑结构对一个区域是不可见的。区域ID是用一个32 位的二进制数来标识区域,以示区别,它可以定义成IP地址的格式,也可以用一个十进制整数表示(例如Area0.0.0.0 或者Area0)。
(4)SPF算法及最短路径树
SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离。每一个路由器根据一个统一的数据库,会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中被称为最短路径树。在OSPF路由协议中,最短路径树的树干长度,即OSPF路由器至每一个目的地路由器的距离,称为OSPF的Cost,其算法为:Cost=100×106/链路带宽。
3 OSPF路由协议操作步骤
第一步:使用OSPF路由协议的路由器交换Hello报文路由器首先将所有启动OSPF协议的接口上发送拥有路由ID、区域ID、优先权(Priority)等信息的Hello报文。与它相邻的路由器如果收到这个Hello报文,就将这个报文内的信息,加入到自己的Hello报文内。如果路由器的某端口收到从其他路由器发送的、含有自身信息的Hello报文,则根据该端口所在网络类型,确定是否可以建立邻接关系(Adjacency)。所谓邻接关系是指使用OSPF路由协议的路由器以交换路由信息为目的,在所选择的相邻路由器之间建立的一种关系。
第二步:选举指定路由器(DR)和备份。指定路由器(BDR)如果在点对点型网络(P2P)或者在点到多点型网络(P2MP)中,路由器将直接和对端路由器建立起邻接关系,无需选举DR和BDR,如果在广播型网络或者在非广播多路访问型网络(NBMA)中,该路由器还要先进行DR和BDR的选举,然后在确立邻接关系。在广播型网络或者在非广播多路访问型网络中,OSPF路由协议需要在网络结构中建立一个中心节点(路由器),该节点能和其他任何一个节点进行链路状态信息(LSA)交换和更新。因此网络结构就利用Hello报文内的路由ID和优先权(Priority)字段值来确定选择,优先权值最高的路由器成为DR。如果优先权值大小一样,则路由ID值最高的路由器选举为DR,优先权值次高的路由器选举为BDR。
第三步:建立邻接关系。在这个步骤中,路由器与路由器之间,首先利用Hello报文中的路由ID信息,确认主从关系,然后让主从路由器相互交换部分链路状态信息。每个路由器对信息进行分析比较,如果收到的信息有新的内容,路由器将要求对方发送完整的链路状态信息。这个状态完成后,路由器之间建立完全邻接(Full Adjacency)关系,同时邻接路由器拥有了自己独立的、完整的链路状态数据库。在广播型网络或者在非广播多路访问型网络中,DR与BDR互换信息,并同时与本子网内其他路由器交换链路状态信息,如果在点对点型网络或者在点到多点型网络中,只有相邻路由器之间交换链路状态信息。
第四步:选择最佳路由(路径)。当一个路由器拥有完整独立的链路状态数据库后,它将会依据自己链路状态数据库的内容,以自身为根,并采用SPF算法计算出一棵最短路径树,然后从最短路径树得出到每一个目的网络的最佳(最短)路径,将其路径存入自己的路由表中。使用OSPF路由协议路由器是利用量度(Cost)计算目的路径,Cost值最小者即为最佳路径。
第五步:维护路由信息。当一个使用OSPF路由协议路由器的链路状态发生变化时,它将会把关于自己的新的链路状态信息通过泛洪(Flooding)的方式通告网络上其他路由器。当其他路由器接收到包含有新信息的链路状态信息的报文时,将更新自己的链路状态数据库,然后用SPF算法重新计算到每一个目的网络的最佳路径。在重新计算过程中,路由器继续使用旧路由表来传输数据包,直到完成新的路由表。值得注意的是,即使路由器链路状态没有发生改变,链路状态信息也会自动更新,默认时间为30 分钟。
4 OSPF路由协议的应用
这里我们将通过一个实例(图1)来说明OSPF路由协议是如何在华为路由器(Quidway AR28-11)上应用的,以方便大家了解如何使用OSPF路由协议:
参考文献
[1]王志功,景为平,孙玲.集成电路设计技术与工具[M].南京:东南大学出版社,2007.
OSPF路由协议的实践应用分析 篇5
开放式最短路径优先(Open Shortest Path First,OSPF)是目前广泛使用的一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。但如果使用时不结合具体网络应用环境,不做好细致的规划,OSPF协议的使用效果会大打折扣,甚至引发故障。
二、网络简介
人民银行合肥中心支行(以下简称“人行合肥中支”)网络属于人民银行省会中支节点,处于省级网络核心地位。单位网络下联省内各地市中支,上联总行,纵向起到连通上下的作用。安徽省的金融城域网位于省会中支,网络在省会中支横向扩展,省内各商业银行、政府机构、财务公司和小微企业在访问人行系统时均需通过省会中支一点接入。
内部网络方面:人行合肥中支建设初期与地市中支使用2 M SDH线路作为广域网线路,每个地市中支均使用电信和联通双线路上联省会中支。广域网路由协议为OSPF协议,省会中支的路由器位于OSPF骨干域(Area 0)中,所有地市中支的路由器均位于同一个OSPF区域(Area 32)中。
外部网络方面:人行合肥中支金融城域网外联数十家外部单位,外联区域与内部网络之间通过防火墙隔离。金融城域网建设初期,单位与外部机构之间使用OSPF路由协议。
该网络架构易于建设、管理和维护,满足了网络建设初期设备性能不足、运维力量有限、总体业务量不大的特点。但随着单位业务的发展,该网络架构逐渐暴露出一些不足之处。
三、内部网络OSPF分区改造
(一)原有内部网络架构的弱点
随着单位业务的发展,以及各类新系统不断上线,原有的内部网络架构逐渐暴露出一些弱点。
1.2M SDH线路已难以满足业务需求,随着各类业务增加,尤其是高清电视会议视频系统的上线使用,广域网线路逐渐成为网络带宽的瓶颈。
2.网络稳定性不足。所有的地市中支路由器均位于同一个OSPF区域(Area32)中,虽然便于建设、维护和管理,但区域中路由器数量较多,OSPF路由收敛时间较长。当区域中某台OSPF路由器路由发生变化时,将会引发所有地市中支路由器重新计算路由,进而导致网络发生震荡,变得极不稳定,往往需要较长时间才能使路由收敛,其间网络可能会发生短时间的中断和抖动,对业务产生一定的影响。
3.各地市中支路由器上分别引入了大量的本地静态路由,OSPF引入的外部路由消耗了大量设备资源,增加了设备的负载,严重影响了设备性能。
(二)改造后的变化
为此,经过细致规划和可行性调研后,人行合肥中支对全省OSPF路由架构和广域网线路进行了升级和改造。改造后的网络有如下变化。
1.广域网线路由2M SDH线路升级为4M MSTP线路。相比于SDH线路而言,MSTP线路升级扩容更为方便,可为将来线路带宽升级做好准备。考虑到省会中支上联总行的线路带宽只有15M,如果将省内广域网线路带宽升级至8M或更高,地市中支对总行的访问流量将会激增,很可能导致上联总行的广域网线路出现拥堵现象。因此,在综合考虑和测试后,人行合肥中支将省内广域网线路带宽升级为4M,既能满足当前业务需求,又不会对上联总行的广域网线路造成过大的流量压力。
2.在总体网络拓扑框架不变的情况下,对OSPF进行分区管理。省会中支的路由器位于OSPF骨干域(Area0)中,每个地市中支划分一个OSPF子域,区域号按照各地市的电话号码进行划分(比如滁州的电话区号为0550,则滁州中支的区域号为0.5.5.0,这样便于识别和管理),每个OSPF子域中只有几台路由器(包含下辖县支行路由器)。调整后,各地市中支之间通过OSPF Area进行隔离,减少了区域间的路由震荡,省会中支在ABR路由器(区域边界路由器)上做路由聚合,减少了路由表数量。这样,OSPF路由计算和收敛速度更为迅速,网络更加清晰,管理策略更加简单,网络的稳定性有了极大的提升。
3.在广域网接口上配置BFD命令,加速OSPF路由计算。以前的广域网线路为SDH线路,SDH线路一旦发生中断,则对应的广域网接口会自动DOWN,引发OSPF路由重新计算。但在MSTP线路中,可能会发生广域网中间线路实际上已经中断(数据包无法通过),而两端接口仍然会保持UP的情况,这会造成线路和路由虚假连通的现象,即路由器认为该线路仍然有效,因而仍将数据包发往该线路(线路实际上已中断)。OSPF路由协议只有在等待超时后才会重新计算路由(通常为40秒),在此期间,网络和业务会出现中断。为此,需要在MSTP广域网接口上配置BFD命令,追踪对端接口,一旦发现数据包不通,立即引发接口自动DOWN,触发OSPF重新计算路由,生成正确的路由表。
四、外部网络路由改造
人行合肥中支金融城域网外联数十家银行、政府机构、财务公司等单位,其中,与银行间使用电信和联通双线路作为热备线路,外联区域与内部网络之间通过防火墙隔离。
金融城域网建设初期,网络使用OSPF协议作为路由协议。OSPF路由协议可以根据网络状态自动计算路由,实现路由自动化管理,极大地减轻了网络管理员的运维负担。
但在实际运维中,发现外联银行与地市中支情况不同,地市中支的网络管理可由省会中支统一规划,使用相同的标准建设,遵从相同的运维规范进行管理,OSPF路由协议的运行效果较好。而各外联银行运维人员的管理水平和技术力量参次不齐,网络规范和运维管理也千差万别。OSPF路由协议本质上是一个开放的路由协议,其间任何一台路由器都可以随意发布任何地址路由,并在整个OSPF域中传播,这会导致如下问题的发生。
一是路由器上存在着大量无关地址的路由。由于各银行的路由器还连接其他网络,或者有一些遗留的无用路由地址,这些网络地址都可能被引入至OSPF中,并传播到所有的路由器上,最终造成路由器的路由表数量过大,运行效率下降,并且不利于网络故障排查和运维管理。
二是如果A单位路由器错误地配置了原本属于B单位的地址,并将该错误地址路由引入到OSPF中,该错误路由会被传播到自治域中所有的路由器上(只要路由器运行OSPF路由协议,均可接收到此路由)。这将使B单位的主机无法访问网络,B单位的服务器也无法被外部网络访问,从而导致网络和业务中断,如图1和图2所示。
综合考虑各方面因素,人行合肥中支对外联网络进行了路由改造,将OSPF动态路由全部改造为静态路由,并要求使用主、备路由模式,以电信线路作为主路由。这样做虽然会对网络切换效率带来一定的影响,也增加了网络运维和管理的工作量(所有静态路由均需人工配置和维护),但考虑到外联单位网络的不可控性,可以有效地保障网络安全稳定运行。
五、小结
OSPF协议是一种被广泛使用的动态路由协议,它具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。但在实际应用中,一定要结合具体的网络环境,不能教条式地使用,否则会影响到使用效果,甚至会导致网络故障。
OSPF协议是一种链路状态路由协议,区域中任何一台OSPF路由器的路由发生变化时,都会引起整个区域中所有路由器重新计算路由,进而导致网络不稳定。因此,单个OSPF区域中的路由器数量不宜过多,当区域中的路由器数量较多时,应合理划分OSPF子域,使每个区域只包含合适数量的路由器,实现OSPF协议高效、稳定地运行。
OSPF路由协议本质上是一个开放的路由协议,区域中任何路由器发布的任何地址都会被信任。因此,它更适宜在内部机构的网络中使用。在内部网络中,所有的网络和设备都可以使用统一标准进行建设和管理,应用OSPF路由协议可以取得良好的效果。但在外部网络中,各外联机构的网络千差万别,没有统一的运维管理标准,如果使用动态OSPF路由协议,将会导致网络中出现大量无关地址的路由,增加路由器的负载,而引入的错误路由将直接导致网络和业务中断,改用静态路由则可较好地保障网络安全稳定运行。
摘要:OSPF协议是一种常见的网络路由协议,也是目前广泛使用的动态路由协议,其具有开放性特点,适用于小型至大型网络;此外,具有配置使用方便、路由变化收敛速度快等优点。但在实际使用OSPF协议中,如果不结合具体应用环境进行合理规划,常会导致应用效果不佳,甚至引发网络故障。本文结合人民银行合肥中心支行近年来的网络建设、运维情况,总结探讨了OSPF协议的一些使用经验和注意事项,可为相关单位网络运维提供一定借鉴和参考。
关键词:计算机网络,网络管理,路由协议,OSPF协议,静态路由
参考文献
[1]Thomas M.Thomas II.OSPF网络设计解决方案(第2版)[M].北京:人民邮电出版社,2013.
基于OSPF的保护隧道实现研究 篇6
对互联网而言, 网络故障是不可避免的。随着互联网规模的迅速扩大, 网络故障数量明显增加。故障可导致连接中断, 使得网络服务不可用。随着各种延时敏感服务的广泛使用, 例如:在线网游、股票网上交易、远程医疗等, 这些实时应用对网络端到端性能提出了更高的需求。现有路由协议处理故障的能力导致网络收敛时间较长, 例如, 路由信息协议RIP (Routing Information Protocol) 在故障发生后的自愈时间在100秒的数量级, 开放最短路径优先协议OSPF (Open Shortest Path First) 和中间系统-中间系统协议ISIS (Intermediate System-Intermediate System) 的路由收敛时间在几秒到几十秒之间。在收敛过程中, 由于路由不可达, 导致分组丢失, 影响网络应用, 难以满足延时和抖动敏感服务的需求。
研究如何提高网络从故障中快速恢复的能力, 已经成为近年来网络研究的热点。链路状态路由协议是目前域内广泛使用的路由协议, 通过预先计算保护路由, 研究者已经提出邻居最短路径方案LFA[1]、隧道方案Tunnel[2]、Notvia方案[3]和保护隧道方案[4]提高域内网络从故障中快速恢复的能力。邻居最短路径方案对于单点故障只能提供50%~80%的保护覆盖率。隧道方案对单节点故障不能提供100%保护覆盖率。并且没有提出计算隧道终节点的有效方法。Notvia方案需要路由器维护额外的大量Notvia 地址, 带来很大的地址管理负担。此外, Notvia 可能导致数据包经过不必要的回路。
保护隧道方案对隧道方案进行改进, 利用增量最短路径算法iSPT[4]计算保护路径, 能够有效的为受影响的目的节点找到隧道终点, 并计算出保护路由。该方案能对单点故障能提供100%的节点保护。同时, 该方案对保护路径进行优化, 避免了Notvia方法需要绕道下下一跳和路由回路[5]。
相对其他保护方案保护覆盖率低或计算管理开销大的缺点, 保护隧道方案是一种更有效的路由保护方法。文献5给出了保护隧道算法的描述。但保护隧道方法在实际应用中仍有一些问题需要解决。本文分析了保护隧道算法在现实部署中面临的网络虚节点处理, 非对称链路处理、末端网络处理以及多路径问题, 提出了保护隧道集成到链路状态协议的设计方案, 并对其机制进行了详细设计。通过在实际网络中部署, 测量了保护隧道方案的性能。
本文第2部分分析了保护隧道方法在实际应用中面临的问题。第3部分提出了基于OSPF的保护隧道方案, 包括保护隧道路由计算方法以及保护隧道路由转发机制。第4部分设计和实现了保护隧道路由系统, 并在实际网络环境进行了部署, 并对系统的性能进行测量和分析。第5部分对全文进行了总结。
2保护隧道方案面临问题
保护隧道方案是提高链路状态路由协议在网络故障情况下快速恢复的方法, 适用于对称链路、二连通网络, 可对单节点故障提供100%的保护覆盖率[5]。但保护隧道方法在实际部署与应用中仍有一些问题亟待解决, 包括:非对称链路处理、末端网络处理、等价多路径情况处理。
2.1非对称链路的处理
由于管理员的配置可能造成链路出现权值不对称的情况。即便链路是对称的, 对于一些特殊的网络类型, 路由协议可能将其抽象成一个逻辑上不对称的网络。例如, 为了减小协议报文在广播网的数量, 以及对链路带宽的占用, OSPF协议将广播网络作为虚节点, 将广播网上各节点由全连接关系变为只与网络虚节点相连。
网络虚节点N与其他各节点Ri之间的链路权值是非对称的, 如图1所示。图1中, 网络虚节点到其它节点的链路的权值都为0, 其它节点到网络节点的链路的权值大于0。
2.1.1 特殊非对称:网络虚节点
在链路状态路由协议中, 实际的网络被描述成一个有向图。其中节点表示路由器或网络 (广播网或非广播多路访问网) 。如图一所示, 路由器节点之间的边表示一条点对点链路。路由器节点与网络节点之间的边表示该路由器接入到该网络。对于后一种情形, 边的权值是非对称的。网络节点到邻居路由器节点的链路的权值为0, 而邻居路由器节点到网络节点的链路的权值大于0。
现行保护隧道算法只适用于对称链路网络, 要求网络中的每个节点间的路径是对称的。对于一个对称链路的网络, 当存在网络虚节点时:
隧道终点的选择:若隧道终点的类型为网络节点, 则选取它的父亲节点作为真正的隧道终点。
直接转发下一跳节点的选择:若直接转发下一跳节点为网络节点, 则选取它相应的孩子节点作为真正的直接转发下一跳节点。
2.1.2 一般非对称
为了提高保护隧道方案在一般非对称链路网络中的保护率, 在计算保护路由时, 可以强制使用直接转发DF (Direct Forwarding) 。
调整后的保护隧道机制新加入了一个参数EnableDF。默认情况下, 将强制使用DF, 使得保护机制既可以用于对称链路网络, 也可应用于非对称链路网络。当所管理的网络为对称链路网络时, 可以进一步优化, 配置为非强制使用DF, 减少非必需的DF所带来的开销。
2.2末端节点保护
网络中的末端节点只有一个邻居节点。当末端节点与其邻居节点间的链路发生故障, 或者当邻居节点发生故障, 则网络拓扑变成非连通图。末端节点成为孤立的节点, 在这种情况下, 无法对末端节点提供保护;然而, 当其它发生节点发生故障, 则末端节点仍然可以使用它的邻居节点提供的保护。因此, 应尽力为末端节点提供保留路由:
(1) 在网络拓扑中去掉末端节点。利用保护隧道计算增量最短路径树, 为源节点计算到其他节点的保护隧道路由。
(2) 将末端节点加入到新的最短路径树中, 末端节点的父亲节点为其邻居节点。对末端节点计算保护隧道路由, 末端节点继承它的父亲节点的保护路由。
2.3多路径的优化
在实际网络中, 到目的节点可能存在多个下一跳。当下一跳节点或者与下一跳节点相连的链路发生故障时, 节点为其故障节点或故障链路预先利用保护隧道算法计算出保护路由。当节点检测到相应故障发生时, 由于到目的节点可能存在多个下一跳, 在这种情况下, 并不需要切换到保护隧道路由。此时, 保护隧道提供的保护路由的优先级低于多路径路由。因此, 多路径情况下, 优先选择多路径路由。
3基于OSPF的保护隧道方案
3.1控制平面
控制平面链路状态数据库保存当前网络拓扑结构信息。接口状态机维护路由器OSPF接口的状态及OSPF邻居关系。邻居状态机 (NSM:Neighbor State Machine) 模块负责在OSPF邻居之间形成OSPF邻接关系, 交换及更新链路状态信息, 并将链路状态信息被保存在链路状态数据库中。网络中每个节点维护相同的链路状态数据库。各节点利用SPF (Shortest Path First) 算法计算出正常的最短路径路由表。然后基于正常路由表, 利用保护隧道方案算法计算保护路由。
3.1.1 保护路由计算
计算保护路由时, 先假定邻居节点发生故障, 预先计算出保护路由。保护路由计算依次对各个邻居节点的处理, 分为五个阶段:
(1) 第一阶段:初始化处理
将末端节点暂时从网络拓扑中去除。对末端节点的保护保护路由计算将在第四阶段进行。然后, 将故障节点以及与其相连接的链路一并网络拓扑中去除。最后, 复制当前最短路径树的拷贝。利用增量最短路径算法, 生成新的最短路径树, 是直接在该最短路径树拷贝上进行操作的。
(2) 第二阶段:处理传输节点
首先进行增量最短路径计算, 更新最短路径树, 获得新的最短路径树。在计算过程中, 记录下受影响节点, 以及受影响节点的流量入节点INODE (Incoming Node) 。
然后为受影响的节点计算出隧道终点的路由TER (Tunnel Endpoint Route) 和直接转发的路由DFR (Direct Forwarding Route) 。
(3) 第三阶段:处理虚节点
若受影响的节点包含了虚节点, 则采用如下方式计算其TER、DFR:
计算TER:若隧道终点的类型为网络节点, 则选取它的父亲节点作为真正的隧道终点。
计算DFR:若直接转发下一跳节点为网络节点, 则选取它相应的孩子节点作为真正的直接转发下一跳节点。
(4) 第四阶段:处理末端节点
最后将末端节点加入到新的最短路径树中, 末端节点的父亲节点为其邻居节点。对末端节点计算保护路由, 末端节点继承它的父亲节点的保护路由。
(5) 第五阶段:完成处理
将保护路由表以增量的方式更新至数据平面。
3.1.2 保护路由更新
OSPF模块将计算出来的正常路由表及保护路由表, 通过增量更新的形式下载至转发模块。当采用多表结构分别存储正常路由与保护路由时, 新的路由将分别更新至对应的转发表中。当采用单表结构时, 保护路由与正常路由共存在同一转发表中, 且应保证保护路由优先级低于正常路由。
3.1.3 保护路由表启用
当检测到链路路障时, 经过该链路的正常路由将被禁用, 同时保护路由将会立即启用。当网络收敛, 并完成正常路由计算, 保护路由表将禁用, 并切换使用正常路由表。
3.2数据平面
3.2.1 转发方式
当转发平面检测到邻居节点或链路发生故障时, 启用相应的保护路由进行数据转发。一条保护路由可用如下一个四元组表示:
(DST, NH, TE, DF)
其中DST表示目的网络, NH表示到目的网络的下一跳的地址, TE表示到隧道终点路由器的地址, DF表示隧道终点路由器直接转发时下一跳路由器地址。
当转发平面启用保护路由转发数据包, 根据保护路由类型不同, 对应三种不同的转发方式。
注: NUL表示该数据域的值为空
DNT方式:转发平面利用隧道首先将数据包转发至隧道终点路由器TE。隧道终点路由器将到达的数据包解封装, 并按照正常最短路径路由转发至目的节点。
DND方式:转发平面首先将数据包转发给邻居路由器DF。邻居路由器收到数据包后, 按照最短路径路由将数据包转发至目的节点。
DNTD方式:是前两种方式的结合。转发层首先利用隧道将数据包转发至隧道终点TE。在隧道终点, TE将数据包转发至DF, 最后由DF将数据包按照最短路径路由转发至目的节点。
3.2.2 隧道封装
当一个IP报文即将递交给二层协议前, 首先对该报文对应的路由元信息进行检查。若发现该报文的路由查找结果为一条保护路由, 则需要对该报文进行特殊的封装处理。
通过检查保护路由下一跳信息中的TE域和DF域, 给IP报文加上合适的IP头完成对数据报文的封装。封装过程的流程如下:
(1) 首先检查DF域是否为NUL。若不为NUL, 则对该报文加上DF IP头, 其中IP头的DST域设置为DF。然后执行第 (2) 步。
(2) 检查TE域是否为NUL。若不为NUL, 则对该报文加上Tunnel IP头, 其中IP头的DST域设置为TE。
(3) 返回封装完毕的IP报文。
3.2.3 解封装与直接转发
在隧道的终节点, IP报文被递交至三层协议处理模块。根据IP报文中的协议字段号, 确定对应的四层协议处理模块, 并将报文交给该层协议处理。采用保护隧道封装的报文, 对应的协议字段号为TUNAT。TUNAT协议处理函数将对接受的报文, 执行解封装操作, 得到内部的数据报文。
然后, 对该报文执行转发操作。当需要进行直接转发时, 首先从头部获取直接转发下一跳的元信息, 然后将数据报文转发给指定的下一跳;当不需要直接转发时, 将根据路由表对应查找下一跳路由, 并将数据报文转发至该下一跳。
4实验与测试
4.1实验系统
实验系统基于JEOS Linux系统及Quaaga路由软件实现。系统总体结构如图2所示。系统按功能可划分为三个模块:OSPFD控制平面模块, Zebra通信模块和数据平面模块。
4.1.1 控制平面
控制平面OSPFD模块集成了保护隧道方案。该模块负责保护路由的计算和维护。具体包括:
保护路由计算调度:当正常的SPF路由计算完成后, 调度保护路由计算。
保护路由计算:保护路由计算根据SPT树及LSDB, 计算保护路由表。
更新保护路由:新的保护路由表以增量的方式更新至数据平面。
启用保护路由:当OSPFD检测到节点故障或链路故障时, 启用相应的保护路由。
4.1.2 中间层
Zebra模块位于Linux内核与上层路由协议模块的中间, 充当控制平面与数据平面的通信中介。Zebra屏蔽了底层系统的细节, 为上层路由协议模块提供了一套统一的接口和服务。主要为上层路由协议模块提供必要的接口配置信息和路由信息交互接口, 处理上层路由协议的路由消息更新请求, 。双方通过Zebra协议进行通信。Zebra模块通过Netlink Route Service机制与内核通信, 完成路由消息的更新。
4.1.3 转发平面
转发平面模块负责数据包的转发, 它包含两个子模块:保护路由表管理子模块、保护隧道转发子模块。
保护路由表管理模块:添加和删除保护路由、更新保护路由、启用保护路由表和查找保护路由。
保护隧道转发模块:负责隧道转发时的数据报文的封装与解封装, 以及执行数据报文的直接转发。
4.2实验设置
为了验证方案的有效性, 我们设计了如图3的网络环境, 并在其上进行了实验与测试。该网络的拓扑结构与Cernet2骨干网一致。网络中每个节点的采用JEOS Linux操作系统, 并运行Quagga路由软件。部署了保护隧道方案, 并可灵活配置为启用或禁用。我们选取节点北京、武汉、南京、合肥、济南、天津作为观测点, 编号依次对应为R0至R5, 并在其上进行了观测和记录。
当北京节点R0收到一条发往南京节点R2的数据报文时, 首先将数据报文转发至武汉节点R1。R1收到数据报文后, 最终将其转发至南京节点R2。即正常情形下, 目的地为R2的数据报文, 在到达R0后, 将经历R0-R1-R2这一路径, 最终到达目的地。
当北京节点R0与武汉节点R2之间的链路R0-R1发生故障, 或者当武汉节点R2发生故障时, 由北京节点R0转发至武汉节点R1的数据报文将会丢失。随后, 当北京节点R0检测到该故障, 将会更新自身的链路状态信息, 并发送链路状态更新消息至邻接路由器。当更新消息洪泛至全网络, 各节点更新链路状态信息。然后根据新的链路状态数据库计算出路由表, 并使用新的路由表转发数据报文。在此过程完成后, 网络重新达到收敛。在收敛后, 由北京节点R0转发至南京节点R2数据报文将经由R0-R5-R4-R3-R2到达目的地南京节点。在收敛过程进行当中, 由北京节点R0转发至南京节点R2的报文将无法顺利到达目的地。数据报文可能会被丢失, 或者形成回环, 从而影响端到端性能。受影响的时间取决于故障检测时间以及网络收敛时间。
对于同样的故障, 在启用保护隧道功能的情况下, 当北京节点R0检测到该故障后, 对于下一跳经过武汉节点的数据报文P, 将使用备份保护路由进行转发。北京节点R0首先将报文P进行封装, 利用隧道转发至合肥节点R3。隧道的入节点为天津节点R5, 隧道的终节点为合肥节点R3。当数据包P到达隧道终节点R3后, 由R3进行解封装, 并将数据包P直接转发至南京节点R2。随后的数据报文均能通过保护路由顺利到达目的地南京节点。当网络重新达到收敛后, 北京节点R0切换至新的路由表进行数据报文转发。
4.3实验结果
4.3.1 丢包率
图4反映了网络在正常情况以及发生故障情况下网络丢包率的变化。发送方等间隔向接收方发送UDP数据报文。在正常情况下, 接收方收到的数据包数量与时间成正比, 丢包率没有明显变化。在未启用保护方案的情况下, 当网络发生故障时, 网络在收敛期间, 丢包现象非常明显。在启用了保护方案的情况下, 当网络发生故障时, 丢包时间持续很短暂, 仅由故障检测时间决定。当检测到故障后, 数据包通过保护路径到达接收方, 网络丢包率恢复到正常情况。
4.3.2 吞吐率
图5反映了网络在正常情况以及发生故障情况下网络吞吐率的变化。发送方通过TCP连接向接收方等速率发送数据消息。在正常情况下, 接收方收到的接受速率保持在平稳状态。在未启用保护方案的情况下, 当网络发生故障时, 接收方接受速率明显下降, 在收敛期间, 接受方速率接近于0。在启用了保护方案的情况下, 当网络发生故障时, 接收方接受速率有所下降, 时间持续很短暂, 随后接受速率逐渐恢复至正常情况。因此, 使用保护方案能有效提高网络在故障状态下的自愈能力, 减少网络故障对端到端性能的影响。
5结束语
本文针对保护隧道算法在实现中面临虚节点的处理, 非对称链路的处理、末端节点的处理以及多路径的处理问题, 提出了一种通用的链路状态协议保护隧道路由方案, 并在Quagga中进行了设计和实现。最后, 在CERNET2网络环境中进行了实际部署并测量了其性能。实验结果表明, 保护隧道方法能有效提高域内网络应对故障下的能力, 减小网络故障对端到端性能的影响。
参考文献
[1]A.Alia, Z.Alex, T.Raveendra, C.Gagan, M.Christian, I.Brent, andF.Don, Basic specification for IP fast-reroute:Loop-free al-ternates.RFC 5286, 2008.
[2] S.Bryant, C.Filsfils, S.Previdi, and M.Shands.IP fast reroute using tunnels. Internet draft, draft-bryant-ipfrr-tunnels-03, 2008.
[3]G.Enyedi, G.Rtvri, P.Szilgyi, and A.Csszr.IP fast reroute:Lightweight not-via.2009.NETWORKING, 157?168
[4]P.Narv′aez, K.-Y.Siu, and H.-Y.Tzeng.New dynamic SPT algorithmbased on a ball-and-string model.IEEE/ACMTrans.Netw.2001.9 (6) , 706?718
[5]Lingtao Pan, Mingwei Xu, Qing Li, Dan Jen.Tunnel-AT:a Lightweight IP Fast Reroute Mechanism.in IWQos 2010, 18th Interna-tional Workshop on Quality of Service, April 2010.
[6] M.Xu , L.Pan, S.Yang.IP fast reroute using tunnel-at.draft-xu-ipfrr-tunnelat-01, 2010.
[7] J.Moy.RFC2328 OSPF Version2.
[8] M. Gjoka, V. Ram, and X. Yang.Evaluation of IP fast rerouteproposals. in IEEE/Create-Net/ICST International Conference on COM-munication System softWAre and MiddlewaRE (COMSWARE) , 2007.
[9] A.Markopoulou, G.Iannaccone, S.Bhattacharyya, C.-N.Chuah, andC.Diot.Characterization of failures in an IP backbone. in Proceedingsof INFOCOM, March 2004.
[10] Quagga.http://www.quagga.net
[11] Linux Kernel.http://www.kernel.org
OSPF设计 篇7
1 OSPF的基本概念
开放最短路径优先协议 (Open Shortest Path First) 简称OSPF, 它是路由选择协议中非常重要的一种协议, 这是一种典型的链路状态 (Link-state) 路由协议, 是由Internet工程任务组开发的内部网关 (IGP) 路由协议, 其主要用在一个路由域内。路由域是指一个网络自治系统 (Autonomous System) , 所谓自治系统是指一组路由器都使用同一种路由协议交换路由信息, 网络中每个路由器都有一个唯一的标识, 用于在链路状态数据库 (LSDB) 中标识自己。LSDB描述的是整个网络的拓扑结构, 包括网络内所有的路由器, 作为一种链路状态的路由协议, OSPF将链路状态广播数据包LSA (Link State Advertisement) 传送给在某一区域内的所有路由器, OS-PF协议使用最短路径优先算法, 利用LSA通告得来的信息计算每一个目标网络的最短路径, 以自身为根生成一个树, 包含了到达每个目的网络的完整路径。
OSPF的路由标示是一个32位的数字, 它在自治系统中被用来唯一识别路由器。默认地使用最高回送地址, 若回送地址没有被配置, 则使用物理接口上最高的IP地址作为路由标示。OSPF在相邻路由器间建立邻接关系, 使它们能利用HELLO包维护关系并交换信息。OSPF使用区域来为自治系统分段, 区域0是一个主干区域, 每一个OSPF网络必须具有, 其他的区域通过区域0互连到一起。
2 OSPF的特点
OSPF路由协议主要用在大型自治系统内, 这是一种链路状态的路由协议, , 而距离矢量路由协议RIP (Routing Information Protocol) 则主要用在小型自治系统内, 两个路由协议都具有重要的作用, RIP作为静态路由协议, 具有适于小型网络, 管理员可手工配置, 精确控制路由选择, 改进网络性能等优点, 但它特别不适合于大型网络自治系统。而OSPF路由协议与RIP相比, 具有如下优点:1、RIP路由协议中用跳 (HOP) 来表示到达目的网络所要经过的路由器个数, RIP跳数最高为15, 超过15跳的路由被认为不可达, 而OSPF不受路由跳数的限制, 它只受限于带宽和网络延迟, 因而OSPF更适合应用于大型网络中。2、RIP在规划网络时是不支持可变长子网掩码 (VLSM) , 这将导致IP地址分配的低效率, 而OSPF路由协议支持VLSM, 现在IPV4资源短缺, 我们在划分大型网络的子网时, 往往采用VLSM, 这样划分子网效率更高, 更节约IP资源, 所以OSPF更适合大型网络。3、RIP必须每30秒就要周期性的广播整个路由表, 才能使网络运行正常, 如果RIP用在大型网络中, 它会产生很多广播信息, 而这些广播会占用较多的网络带宽资源, 较频繁的更新有可能导致网络拥塞, 其结果就是RIP用在大型网络中收敛速度较慢, 甚至无法收敛。而OSPF使用组播发送链路状态更新, 在链路状态变化时才进行更新, 这样提高了带宽的利用率, 收敛速度也大幅提高, 能够在最短的时间内将路由变化传递到整个自治系统。4、RIP没有网络延迟和链路开销的概念, 拥有较少跳数的路由总是被选为最佳路由, 即使较长的路径有低的延迟和开销, 并且RIP没有区域的概念, 不能在任意比特位进行路由汇总。而在OSPF路由协议中, 往往把一个路由域划分为很多个区域area, 每一个区域都通过OSPF边界路由器相连, 区域间可以通过路由总结 (Summary) 来减少路由信息, 从而减小路由表, 提高路由器的运算速度。
OSPF路由协议拥有很多优点, 特别适合用于大型网络, 提高网络的运行速度, 但它也有缺点: (1) 使用OSPF路由协议, 需要网络管理员事前先进行区域规划和路由器各端口IP属性的设置, 所以配置相对于静态路由RIP来说显得较为复杂, 对网络管理员的网络知识水平要求较高。 (2) 对路由器的CPU及内存要求较高。
3 OSPF配置命令及配置实例
在思科路由器中配置OSPF路由协议主要使用以下命令: (1) route ospf进程号, 其中进程号要求范围为1~65535, 进程号只在路由器内部起作用, 不同路由器的进程号可以不同。 (2) network address子网掩码的反码area区域号, 区域号要求在0~4294967295内的十进制数, 也可以是带有IP地址格式的X.X.X.X, 当网络区域号为0时或0.0.0.0时为主干域, 不同网络区域的路由器通过主干域学习路由信息。 (3) show ip route, 查看路由信息表, (4) show ip route ospf查看OSPF协议路由信息。
某学校采用四台思科3550路由器把整个学校划分为3个区域, 四台路由器通过使用OSPF协议实现互通。路由器R1的S0端口IP为192.200.10.5/30, E0端口IP为192.1.0.129/26;路由器R2的S0端口IP为192.200.10.6/30, E0端口IP为192.1.0.65/26;路由器R3的E0端口IP为192.1.0.130/26;路由器R4的E0端口IP为192.1.0.66/26。R1的S0端口和R2的S0端口划入区域0;R1的E0端口和R3的E0端口划入区域1;R2的E0端口和R4的E0端口划入区域2。各路由器配置如下:
在上述配置中首先对每台路由器接口进行配置, 接口配置完后可以使用router ospf 100命令启动一个OSPF路由选择协议进程, 期中“100”为进程号, 每台路由器进程号可不同, 最后使用network将相应的网段加入OSPF路由进程中, 则此接口所对应的网段就加入到OSPF进程中。
综上所述, OSPF作为一种链路状态的路由协议, 具有收敛快, 支持变长网络掩码, 支持CIDR, 配置命令简单易学等。所以在大型或复杂网络中应用OSPF协议可以极大的提高网络的运行效率。
参考文献
[1]谢希仁.计算机网络[M].5版.北京:电子工业出版社, 2008
[2]思科网络技术学院.思科网络技术学院教程.
[3]思科网络技术学院.思科网络技术学院教程 (第三, 四学期) .
[4]杨余旺.TCP/IP网络与协议[M].北京:清华大学出版社, 2006.
【OSPF设计】推荐阅读:
方案设计、初步设计、施工图设计07-17
设计教学设计06-18
设计管理包装设计05-14
课程设计中机械设计06-16
机械设计与安全设计08-01
设计教育艺术设计08-26
陈设设计课程设计总结06-05
《设计校园》教学设计07-15
调查设计方案设计07-28
设计思维与产品设计06-12