bgp路由协议详解

关键词: 路由

bgp路由协议详解(精选3篇)

篇1:bgp路由协议详解

相信只要配置过路由器BGP的网友都知道,BGP是需要更新的,本篇就为大家介绍BGP的自动更新是如何设置的,这里我们需要用到BGP更新定时器,它的作用是只对同一地址族的相同前缀的路由起作用,其主要作用是防止网络中的某条路由震荡过于频繁,同时也是对CPU的一种保护,

一、上图所示就是BGP自动更新的示意,红色与蓝色的箭头代表相同前缀的路由,但是从不同邻居学习而来,而且蓝色的路由优于红色的;黑色的坐标轴代表路由发送与接收的时间,每个公司距离为10秒,我们假设RA上配置的更新定时器时间为30秒,

1、RA接收到红色路由后立刻发送给RB,同时RA上启动更新定时器。

2、10秒以后RA接收到更优的蓝色路由,由于定时器没有超时暂时不发送给RB,但是更新本地路由表,在第10秒RA完成路由收敛。

3、第30秒RA上更新定时器超时,所以发送蓝色路由给RB并且更新掉红色路由,RB在第30秒完成收敛。

二、从上面的分析我们可以看出RB的收敛时间比RA会慢上20秒左右,由于BGP是距离矢量路由协议这种延迟可以可能对于整个网络的BGP路由器都会有一定影响,所以在设计BGP网络中对该参数的设计需要有一定考虑。

篇2:BGP路由的动态性研究

关键词:BGP,路由动态性,路由策略

0 引言

Internet的BGP路由系统存在大量的更新报文,这导致BGP的路由表频繁发生变化,从而增大了路由系统的开销、并降低了网络的可控性和稳定性。因此,如下研究应运而生:需要对BGP路由的动态特征进行描述、分析和解释,而在此基础上对BGP路由行为展开预测,进而为工业界提出改善BGP协议配置的指导方法。

1997年,Labovitz等人[1]系统地描述了BGP路由动态特征,指出BGP路由系统中大量的更新报文并不是由路由配置或者网络拓扑的变化引起的,而是冗余的、病态的路由更新报文。同时,BGP路由的变化具有明显的周期性,这与网络的使用方式(network usage)相关。在后续研究中[2],Labovitz等人发现通过对单一供应商的路由配置的优化,可以显著减少冗余的BGP路由更新。2007年,文献[3]对文献[1]描述的BGP路由动态性重新进行了评价,指出BGP路由系统的冗余路由转发已经大大减少了。另外,文献[4]指出BGP更新报文的规模与Internet拓扑规模呈线性关系。文献[5]指出Internet主体流量的路由很稳定,相比之下流量比较小的路由将会更加容易发生改变。

基于对BGP路由动态性的认识,相关研究大体可以分为:讨论如何优化BGP路由策略配置,以减少冗余的路由更新[6,7,8,9,10];从BGP路由行为出发,解释产生路由更新的根本来源[11,12,13,14,15,16,17,18];模型、预测BGP的路由行为[19,20,21,22,23,24]。鉴于目前BGP路由系统的冗余更新大大减少,第一类研究效果颇为可观。由于BGP协议本身对路由的描述粒度限于AS级,后2类研究的精度仅限于AS级。接下来,本文依次介绍上述3类研究工作。

1 BGP路由收敛问题

冗余的BGP路由更新导致BGP路由表频繁发生变化,一条BGP路由的AS路径的变化通常都符合如下模式:一个长时间存在的AS路径在短时间内频繁地发生变化,最后变成某一个其它的AS路径并继续长时间存在,这种现象称为“路径探索”(path exploration)。究其本质就是在某一个网络事件的影响下,某个AS改变其BGP路由表,由此而使得一定范围内与之连接的AS的路由表也随即发生震荡。文献[6]通过声明和撤销“种子前缀”(beacons)来观察相应的路由行为来研究“路径探索”现象,进一步发现“路径探索”多会持续几分钟,而且这一现象在Internet核心网络并不明显,在边缘网络则表现更为突出。

“路径探索”表明BGP路由表会在特定情况下反复变化,即BGP对应特定的路由变化的收敛时间可能会很长,极端情况下,会出现持续的路由震荡。文献[7]从理论的角度对BGP的路由收敛问题进行了形式化论证,由此推得:BGP路由系统是否收敛等价于这个网络的BGP路由配置是否存在一个“争执轮”。

虽然路由抖动抑制可以加速BGP收敛,但是该方法并不能从根本上解决BGP协议的收敛问题,目前BGP收敛问题的研究实现方法大体分为3类。在此,对这3类方法给出如下应用解析:

第一类方法采用实时的路由策略冲突检查。通过累计收集历史路由[9,10],检查哪些路由更新会导致循环的路由更新转发,进而调整路由策略以屏蔽这些病态的路由更新。这类方法的缺点在于通信开销比较大;而且其解决方案也并非检查是否存在“争执轮”,因而本可以收敛的路由策略也会发生一定修改。

第二类方法强调在BGP基础上增加全局的调度[11]。通过收集每个AS的路由配置策略,并从整体上检查AS间是否存在相互冲突的路由策略。这类方法的缺点是BGP路由配置策略本身通常关乎商业运作内情,很多AS是难于主动提供这样的数据,因而整个Internet的协作基本是不可能实现的。

第三类方法放弃全局协作,而对每个AS的BGP配置提出限制规则。文献[23]指出,只要每个AS的BGP输出过滤规则满足:“对供应商和对等AS只转发本地或者来自客户AS的路由”,Internet的全局BGP路由就可以保证收敛。然而,某些AS之间的商业关系定性复杂,不能用简单的“客户、供应商、对等AS”来进行确切描述。同时,对于大规模ISP,其内部客户AS的路由数量趋多,且变化非常频繁,想要让BGP配置满足上述规则即已成为一项颇具难度的研究工作。

2 定位BGP路由变化来源

除了冗余的路由更新,BGP路由系统中的路由更新主要是由拓扑变化、软硬件故障或者路由策略的变化引起的[12]。定位这些路由更新的实际来源可以帮助AS管理员定位路由故障、提高网络性能并避免路由震荡,因此学术界对此开展了大量研究工作[13,14,15,16,17,18,19],并将这类研究统称为定位路由变化(Locating route instabilities)。其基本思路为:将路由更新按着前缀、时间、观测点3个维度划分成不同的路由事件,并根据同一个路由事件中的路由更新的特征推测路由事件的类型,进而定位路由更新的来源。当一条稳定的路由经过“路径探索”过程变为另外一条稳定的路由,要么是旧的路由被撤销,要么是新的优先级更高的路由被声明[13]。文献[16]证明了该研究可以将70%的路由更新的来源精确定位到某一条AS边上。虽然进一步细化定位精度存在实施困难,文献[17]则转而讨论了如何在定位路由故障以后,再通过修改路由配置以避免受到路由故障的影响。

3 AS路径预测

为了控制网络流量、优化网络配置,AS管理员往往需要主动修改网络配置。因此预测BGP路由(预测AS路径),也是一个重要且热门的研究课题。

traceroute可以探测流量在AS间的实际传播路径,因此这类研究中最为常见的讨论方法就是利用traceroute主动探测IP级路径,而后将IP地址转化为AS号。这种方法存在不可小视的现实缺陷。首先,与拓扑测量的问题一样,将IP地址映射为AS号的过程会带来无法忽略的误差。其次,流量经过的实际路径与BGP路由也并不是完全一致。最后,这种方法需要从预测起点发起traceroute探测,而实际情况下却往往难以满足,并且Internet的骨干网络中很多路由器并不响应traceroute探测。

基于所有AS的路由转发都符合AS商业关系的路由策略这一基础假设,文献[20,21]将预测AS间路径转化为计算一对AS间的符合“无谷底”模型的最短路径。后续工作验证了这一方法的正确性,然而该方法却无法体现BGP路由的多样性(即同一个AS的不同路由器到达特定目标前缀的AS路径可能会存在着不一致),而且最短的符合“无谷底”模型的AS路径也可能不止一条,因此这种方法的精确性仍然有待改善。

文献[22]采用类似神经网络的方法从BGP数据中抽取路由策略,通过迭代地调整网络路由策略使得其路由输出与训练数据能够达成现实一致,而后再用训练获得的路由策略进行AS路径预测。文献中将一个AS划分成若干个“准路由器”,不同“准路由器”采取的路由策略也随即有所不同,因此该方法可以体现BGP路由的多样性。但这种方法的却可分析表现在其中用于训练的数据仅只考虑一副快照,而实际的网络环境却是变化不定的,因而这种预测后得到的结果也是片面的。

4 结束语

对于BGP行为的理解,本质上是对经济的行为的理解,更是对人的行为的理解。如果Internet的经济结构发生改变,或者能够从一个新的角度去观察BGP行为,往往就会获得某种全新的、甚至更进一步的理解。因此,对BGP路由动态性的研究只能解说哪个更符合目前的Internet特征,而不能评说基础事实是什么,因为基础事实会随着经济规律变化。

篇3:bgp路由协议详解

【关键词】虚拟路由器;OSPF;多协议标签交换;LDP;BGP

1.虚拟IP路由器及其实现方案

虚拟IP路由器是指用来模拟真实IP路由器路由功能的应用软件。本文实现的虚拟路由器,其特点是在一台主机上能够同时运行多个路由器,支持多用户的并发操作。通过用户的配置,能够模拟不同拓扑结构的网络的运作过程。与实际路由器相比,由于是通过软件来实现,其速度和所支持的用户数量会受到一定的限制。但这项技术大大减少了运营的开销,并且还提高了网络配置的灵活性,给网络的模拟、测试提供了很好的技术背景。

1.1虚拟IP路由器内部结构设计

本文实现的虚拟IP路由器的基本功能包括:路由的计算,数据分组的转发以及访问控制列表功能。各个功能模块都受命令行控制模块的控制。当路由器接收从其它相邻的路由器或直连网络接收到数据时,首先判定是什么数据类型,如果是链路状态数据报文,则将进入路由计算模块,在适当的时候要用SPF算法进行最短路径的计算;如果数据是普通TCP数据包时,则首先进入访问控制列表模块,若该数据包未被拒绝,则将进入数据转发模块,转发给其它相邻的路由器或直连网络。

1.2虚拟路由器的 Java 实现

本文以 OSPF 路由协议(RFC2328)为例进行设计,使用的开发语言是 Java,这是一种面向对象的开发语言,以虚拟IP路由器为基础设施的网络在运行过程中用到的对象主要分成以下几类:(1)OSPF类、(2)AreaData类、(3)Interface类、(4)Neighbor类、(5)SPF类。

2.支持 MPLS的虚拟路由器的设计与实现

普通的路由器只能简单地根据路由协议产生的路由表,再结合数据包的第3层网络地址来进行数据包的转发。在对路由器加了MPLS功能后,就能把路由表转化成相应的标签交换表,使得数据的转发只与标签有关,而不会去解析第3层的网络信息,这对提高数据转发的安全性提供了保障。

2.1支持MPLS的虚拟路由器的总体设计

对于一个支持MPLS的虚拟路由器,结构主要包括两大部分:

控制部分(LDP协议)和转发部分(MPLS协议)。

LDP协议是MPLS的控制与信令协议[2]。该协议部分主要包括两个模块:更新出标签模块和分配入标签模块。更新出标签模块在收到标签绑定信息后,把该信息放入该路由器的标签信息库(Label Information Base,LIB),如果发送该信息的路由器是该路由器的下一跳标签交换路由器(Label Switching Router,LSR),还要用该信息更新标签转发信息库(Label Forwarding Information Base,LFIB)和转发信息库(Forwarding Information Base,FIB)中的出标签信息。而对于分配入标签模块,在运行OSPF协议的同时,对路由表中的每一个目的网络都进行FEC分类,并对其加上本地的标签绑定信息,也就是入标签,并将该标签信息放入LIB、LFIB和FIB中。再把该本地标签绑定信息发送给所有与其相邻的路由器(这里采用的是下游未被请求标签分配模式)。

当收到的不是控制消息,即是普通的数据包时,则直接进入分组转发模块(MPLS协议[1]部分)。由MPLS分类器决定查找LFIB、FIB或路由表,得到该路由的下一跳地址、发送的接口和标签操作。对数据包进行标签操作后,就放入发送队列,等候转发。如果对应该数据的标签交换路径(Label Switched Path,LSP)信息不存在,则分组数据进入IP路由部分的数据转发模块进行第3层的数据转发。

2.2支持MPLS的虚拟路由器的实现方案

2.2.1分配入标签模块

在运行 OSPF 协议的同时,也运行着LDP协议。MPLS网络中的 LSR将趋向于路由表、LIB、FIB和LFIB的动态平衡。每当往路由表中添加一个到达目的网络的表项时,就为其分配相应的入标签。

2.2.2更新出标签模块

当路由器接口收到其它路由器的标签绑定信息时,如果发送方是当前路由器的下一跳 LSR,则要更新相应的出标签信息。

2.2.3分组转发模块

当路由器接口收到普通数据分组时,分组将进入MPLS分类器中,先判断该分组是否带了标签,如果是带标签的分组,则查找 LFIB 表,查找对应的LSP、出标签和标签操作,并进行分组转发,相应的标签操作应该是标签交换(Swap)或标签弹出(Pop)。如果不是带标签的分组, 则首先查找 FIB 表,若 LSP存在,则进行与上类似的处理,相应的标签操作应该是标签推入(Push),若对应的LSP不存在(原因可能是未完成LDP 协议的启动等),则查找路由表,对分组执行第3层转发。

3.虚拟路由器在 BGP/MPLS VPN 实验系统中应用

3.1网络拓扑的配置

为了适应大规模多用户并发操作的要求,需要选择合适的网络拓扑配置方案。首先,本文实现的虚拟路由器支持在同一台主机上运行多个路由器线程,而路由器之间的通信是通过socket来实现的,故其所支持的用户数量会受到一台主机上线程和端口数目等资源的限制。其次,在大规模多用户并发操作的过程中, 每个用户都要独立配置自己的网络拓扑,这导致的问题是每个实验者看到的网络拓扑是不同的,也即实验者之间不能传送数据。 因而需要寻求这样一个配置方案,它既能让用户进行独立的配置和操作,又能提供统一的拓扑结构,同时还要使软件资源的消耗尽量少。

3.2 VRF 的配置

PE 路由器要为每个CE路由器进行VRF表的配置,用于识别各 CE所属的VPN。对于每一个VRF表,都需要配置路由区分符(Route Distinguisher,RD)和路由目标(Route Target,RT)两大属性。当PE路由器上的某个子接口属于多个VPN,则多个VPN共享一个RD,CE1、CE3以及CE1、CE2之间的VPN就共享一个RD值。

4.结论

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:TCP/IP网络协议的相关面试题 下一篇:风险投资协议详解