bgp路由协议的opnet仿真内容摘要:

OPNET simulation of BGP ProtocolAbstractThe paper proposes a design method which is based on OPENT simulation software, uses the modular development and uses BGP protocol on the basis of introducing the basic concept and characteristics of the border gateway protocol (Border Gateway Protocol, BGP) .It established specific measures to change the routing priority and modify the AS_Path attribute to control routing to solve the problem through setting up BGP model,it has solved the convergence of BGP. The method has the advantages of low cost, easy access to the hardware environment, convenient popularization,and so it has a certain reference value.Key words Border gateway Routing protocol OPENT simulationI绪论 Internet是一个全球互联的计算机网络。 随着Internet的飞速发展,在全球范围的层面上,对其进行有效地管理将变得越来越困难。 出于管理和扩展的目的,因特网被分割成许多不同的自治系统(Autonomous System, AS)[1]。 换句话说,因特网是由自治系统汇集而成的。 AS自身可以有自己的一套规则和策略,能够把自己和其它AS惟一地区别开来。 一个AS是拥有同一选路策略、在同一技术管理部门下运行的一组路由器。 每个AS被看作是一个进行自我管理的网络,一个自治系统只负责管理自己内部的路由。 以AS为边界,可以将常用的动态路由协议分为AS间的外部网关协议(Exterior Gateway Protocol, EGP)和AS内部的内部网关协议(Interior Gateway Protocol , IGP )[1]。 边界网关协议(Border Gateway Protocol, BGP)就是为TCP网络设计的用于自治系统之间的EGP路由协议。 该协议的基本功能是与其他BGP协议自治系统交换网络层可达信息(Network Layer Reachable Information, NLRI),这种可达信息包含了通往目标所要穿越的自治系统记录,利用这些信息,系统就可以构建一个无环的自治系统连接图,并把形成的外部路由信息发布给内部网关协议IGP。 随着Internet的迅速发展,网络拓扑的日趋复杂,多个自治系统间的通信的要求越来越高,BGP协议也显得越来越重要。 BGP协议这种复杂的路由协议,它灵活的自主配置策略机制带来方便的同时,也不可避免的存在错误的策略配置,进而引发路由振荡的后果[3]。 目前解决方法有两种:一种是静态方法:即在没有发生路由振荡的情况下,对路由策略进行分析,发现冲突的路由策略,并加以修改;另一种是动态方法:即引入额外的路由振荡检测机制,在交换路由信息的过程中,发现并消除路由振荡。 Aradhan首先提出讨论BGP持续路由振荡问题,并定义了安全性的概念。 他认为,路由振荡的原因并不是单一的AS策略配置问题,而是由于很多个AS之间的交互才引发的问题[4]。 在没有配置错误的情况下也是有可能发生的,而且由于AS更倾向于保持自己AS域内策略的保密性,所以,它更难于检测和解决。 Govindan R, Alaettinoglu C, Eddy G等人提出以路由注册的方式进行全球合作来避免路由策略冲突的产生[7]。 这个机制主要包含了这样几个部分:一是RPSL}8], RPSL是IETF用于描述路由策略的高级语言;二是路由注册器(routing registry ),AS管理员会将自己的策略注册到互联网路由注册处(IRR, Internet Routing Registry;三是分析所收集策略的工具,这个工具用来检测连通性和策略冲突并进行管理。 Gary —PPL ( Pathbased PolicyLanguage ),这个语言将策略规则转化为描述网络服务以及接入控制信息的形式化逻辑,再编写编译器来评估网络策略规则的正确性,并且返回有冲突策略的信息,这里的正确性包括策略规则的句法和语义上的正确[10]。 Gao和Rexford提出由分级结构、过滤和网络拓扑等限制来确保路由的稳定,并表明网络经济会自然保障路由的稳定[12]。 其基本思想是,利用AS间的经济关系形成的互联网层次结构,为达到目的网络的路由设定一个偏序关系,这种基于AS图的业务分级结构和与之相匹配的AS间的多种商业协议足以使BGP协议收敛。 在这个结构中假设了三种AS关系,以及由此根据商业关系制定路由策略,Gao和Rexford规定不允许存在客户—提供者循环(例如,不能有AS经过若干个提供者后,又成为自己的非直接客户)。 本文在介绍边界网关协议(Border Gateway Protocol,BGP)基本概念和特点的基础上,提出了基于OPENT路由仿真软件,采用模块化开发,进行BGP协议设计的方法;通过搭建BGP模型,确立了改变路由的优先级以及修改AS_Path属性来控制选路的具体措施,解决了BGP的收敛问题。 论文主要基于OPENT平台进行BGP协议的设计,OPENT有强大的网络功能且成本低廉,硬件环境容易获取,便于推广和使用;BGP协议开发过程中,结合OPENT网络仿真软件进行测试,仅需一台PC机就可以完成所有网络实验,有一定的推广价值;基于OPENT路由软件采用模块化开发方法,便于新的协议的开发和移植,如果加入更多的协议,便可以设计出功能更全的路由软件,让其运行在高性能多网卡的PC机上,就可以充当路由器的角色,有潜在的商业价值。 1 边界网关协议概述 BGP定义边界网关协议(BGP)是运行于TCP上的一种自治系统的路由协议。 它既不是基于纯粹的链路状态算法(发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分),也不是基于纯粹的距离向量算法(网络中的每条链路分配给一个权值,而且到目的地的距离被定义为到达目的地的路由统权值的总和。 因为必须保存计算所需的距离值,路由表的每一项都额外添加了一个字段,添加的字段包含了沿着对应下一跳的路径到达表项目的地的距离[1]。 BGP是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP构建在EGP(内部网关协议)的经验之上,BGP系统的主要功能是和其他的BGP系统交换网络可达信息[1]。 网络可达信息包括列出的AS(自治系统:同构型的网关连接的英特网)的信息。 这些信息有效地构造了AS互联的拓扑图,并由此清除了路由环路,同时在AS级别上可实施策略决策。 [3]。 内部网关协议和外部网关协议 BGP的消息格式BGP有4种报文类型:Open、Update、Notification、Keepalive。 这些报文有相同的报文头,: BGP报文的报文头格式:216。 Marker:16字节,用于标明BGP报文边界,所有比特均为“1”。 216。 Length:2字节,BGP消息总长度(包括报文头在内),以字节为单位。 216。 Type:1字节,BGP报文的类型。 其取值从1到5,分别表示Open、Update、 Notification、Keepalive和Routerefresh消息。 其中,前四种报文是在RFC 1771中定义,而Type为5的报文则是在RFC 2918中定义的。 Open报文 Open报文是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。 Open报文:216。 Version:BGP的版本号。 对于BGP4来说,其值为4。 216。 My autonomous system:本地AS号。 通过比较两端的AS号可以确定是EBGP 连接,还是IBGP连接。 216。 Hold time:保持时间。 在建立对等体关系时两端要协商Hold Time,并保持一致。 如果在这个时间内,未收到对端发来的Keepalive报文或Update报文,则认为BGP连接中断。 216。 BGP identifier:BGP标识符。 以IP地址的形式表示,用来识别BGP路由器。 Opt Par Len(Optional Parameters Length):可选参数的长度。 如果为0,则没有可选参数。 216。 Optional parameters:可选参数。 用于多协议扩展(Multiprotocol Extensions)等功能。 Update报文Update报文用于在对等体之间交换路由信息。 它既可以发布可达路由信息,也可以撤销不可达路由信息。 : Update报文一条Update报文可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI(Network Layer Reachable Information,网络层可达信息)字段中,Path Attributes字段携带了这些路由的属性,BGP根据这些属性进行路由的选择;同时Update报文还可以携带多条不可达路由,被撤销的路由放在Withdrawn Routes字段中。 :216。 Unfeasible routes length:不可达路由字段的长度,以字节为单位。 如果为0则说明没有Withdrawn Routes字段。 216。 Withdrawn routes:不可达路由的列表。 216。 Total path attribute length:路径属性字段的长度,以字节为单位。 如果为0则说明没有Path Attributes字段。 216。 Path atributes:与NLRI相关的所有路径属性列表,每个路径属性由一个TLV(TypeLengthValue)三元组构成。 BGP正是根据这些属性值来避免环路,进行选路,协议扩展等。 216。 NLRI(Network Layer Reachability Information):可达路由的前缀和前缀长度二元组。 Notification报文当BGP检测到错误状态时,就向对等体发出Notification报文,之后BGP连接会立即中断。 : Notification报文:216。 Error code:差错码,指定错误类型。 216。 Error subcode:差错字码,错误类型的详细信息。 216。 Data:用于辅助发现错误的原因,它的内容依赖于具体的差错码和差错子码,记录的是出错部分的数据,长度不固定。 Keepalive报文BGP会周期性地向对等体发出Keepalive消息,用来保持连接的有效性。 其消息格式中只包含报文头,没有附加其他任何字段。 这些报文通过TCP的连接传送。 在BGP中上述4种报文可实现以下三个功能过程。 1)建立邻居关系:位于不同自制系统中的路由器,首先要建立邻居关系,然后才能周期性地交换路由信息。 建立邻居的过程是一个路由器发送Open报文,另一个路由器若愿意接受请求,则以Keepalive报文应答。 至于路由器如何知道对方的IP地址,协议中并没有规定,可以由管理员在配置中提供。 Open报文中包含发送者的IP地址及其所属自制系统的标识,另外还有一个保持时间参数,即定期交换信息的时间长度。 接受者把Open报文中的保持时间与自己的保持时间计数器比较,选择其中的较小者,这个数就是一次交换信息保持有效的最长时间。 建立邻居关系的一对路由器,以选定的周期交换路由信息。 2)邻居的可到达性:这个过程维护邻居关系的有效性。 通过周期地互换发送Keepalive报文,双方都知道对方的活动状态。 3)网络的可到达性:每个路由器保持一个数据库,记录着它可到达的所有子网。 当情况有变化时,更新报文把最新信息及时地广播给所有实现BGP的路由器。 Update报文包含两类信息:一类是以前发布过的,而现在要作废的路由器的表;另一类是路由器的属性信息。 前者列出了已经关机或失效的一些路由器,接受者把有关内容从本地数据库中删除。 后者包含以下三种信息。 216。 网络层可到达信息:是发送路由器可到达的子网的列表,每个子网以其网络地址标识。 216。 通过的自治系统:是数据报经过的自制系统的标识符。 这主要用于通信策略控制。 收到这个信息的路由器可以据此决定是否走这条通路,例如机密报文可能要选择某些自制系统;或者了解到某个自制系统的性能参数、拥挤程度等,从此决定绕开该网络。 216。 下一段:是指可作文下一步转发的边界路由器的IP地址。 可以使发送者的地址,也可以是另外的边界路由器的地址。 为了获得一个邻站,路由器首先要打开通往某个感兴趣的相邻路由器的TCP连接,然后发送一个Open报文。 这个报文标识出了发送方所属的自制系统。 并且提供了该路由器的IP地址。 在这个报文中还有一个Hold Time参数,它指出发送方建议的Hold Time的值设定为多少秒。 如果接收方准备打开邻站关系,那么它需要计算Hold Timer的值,也就是在它自己的Hold Time和Open报文中的Hold Time之中取较小的那个值。 计算得到的值同,是发送方连续收到Keepalive和/或Update报文之间的最大时间间隔,以秒为单位。 Keepalive报文只含有首部。 所有的路由器都要经常向它的各个对等路由器发送这种报文,以防止Hold Timer超时。 Update报文用于传输路由信息,它指出该信息是来自内部网关协议,还是BGP或者其它方式。 同时它还与其它属。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。