BGP协议原理及应用

引言

边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓朴图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。

一、AS-自治系统

AS(自治系统),由单一的机构或组织所管理的一系列IP网络及设备所构成集合。

  1. 整个地球上的网络范围太大,单个网络收敛很慢且网络延迟大;
  2. 每个网络可能是某个组织或公司组建的,他们并不想将自己辛苦组建的网络交给别人管理,所以需要自治管理
  3. 为了方便对自治系统进行管理,给每一个自治系统设计了一个号,即AS号。AS号由16位二进制构成,取值范围:0 - 65535,其中1 - 64511号为公有AS号, 64512 - 65534被设定为私有AS号。
  4. 因为传统的AS号存在不够用的情况,所以,目前大部分设备均支持拓展的AS号,由32位二进制构成。中国由于加入互联网较晚,所以中国的AS号大多都是扩展AS号

二、BGP协议基本概念

  1. 边界网关协议( Border Gateway Protocol,BGP)是互联网上一个核心的去中心化自治路由协议
  2. bgp本身就是一个多地址的协议簇(mp-bgp,多协议bgp)–地址族(ipv4)bgp刷新很慢,需要手工刷新,加快收敛
  3. AS,自治性系统域(16位的号码空间—>会扩展到32位)

2.1 BGP作用

  1. AS内部使用IGP来计算和发现路由,如OSPF,ISIS,RIP等。
  1. AS之间使用BGP来传递和控制路由。

2.2 BGP特点

  1. 无类别路径矢量 -----距离矢量的升级版—AS–BY–AS
  2. 使用单播更新来发送所有信息;基于TCP 179端口工作
  3. 增量更新,仅触发更新,无周期更新
  4. 具有丰富的属性来取代IGP中度量进行选路,有多个参数控制协议
  5. 可以在进项和出项对流量实施强大的策略,可控性非常强大
  6. 默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
  7. BGP支持认证和聚合(将现有的IP地址合并成较大的、具有更多主机地址的路由域)

2.3选择BGP的理由

  1. 大量路由需要承载,能容纳上万条
  2. 支持mpls\vpn的应用,传递客户vpn路由
  3. 策略能力强,可以很好的实现路由策略与数据控制

2.4BGP和重发布的区别

  1. 重发布要求AS间需要有ASBR,ASBR同时具有两个AS的路由信息,通过ASBR实现路由共享;而BGP是没有ASBR的,由于AS是自治系统,如果有ASBR,那这个ASBR归谁管理?如果只归一方管理,那他可以通过路由策略提高自己AS的流量的转发速度,所以BGP是AS间各出一个或多个运行BGP的路由器,让这些运行BGP的路由器建立邻居关系后交换路由信息。

  1. 重发布在导入路由时会洗掉开销值,会造成选路不佳的问题,而BGP具备强大的路由策略,BGP为路由信息设计了路径属性,通过属性进行选路,是的选路过程更加灵活,可控性更高。

2.5 BGP 特性

2.5.1  BGP协议是无类别的路径矢量协议。

  1. 无类别即BGP在传递路由时会携带子网掩码;路径矢量,不同与距离矢量,路径矢量是以一个AS为单位,而距离矢量是以一个路由为单位,距离矢量是一种路由算法,而BGP不需要计算路由,它只需将以计算好的路由传递给了邻居即可。
  2. 我们对IGP(内部网关协议)和EGP(外部网关协议)的要求不同,IGP需要在一个AS内计算路由,所以我们要求IGP选路佳、收敛快、占用资源少;而EGP不同,EGP协议只需传递AS以计算好的路由,所以我们对EGP的可控性、可靠性要求更高。

2.5.2 EGP的追求:可控性

AS之间需要传递大量的路由信息,所谓可控,就是可以更方便的干涉选路,更容易做策略,以弥补重发布的不足。为了保证路由传递的可控性,更方便干涉选路,BGP协议舍弃了开销值,取而代之的是他为路由信息设计了很多路径属性。可以通过属性进行选路,是的选路过程更加灵活,可控性更高。

2.5.3  EGP的追求:可靠性:

  1. BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;又为了保证传输的可靠性,直接选择TCP协议作为传输层的协议来完成数据收发,使用的是TCP 179号端口。但使用TCP协议通讯也会造成一些问题,传输效率降低,只能单播通讯(TCP需要去建立会话),占用资源会加大 ,用TCP之后,便不能通过广播或者组播去自动发现邻居进行通信了。
  2. 由于BGP依靠TCP协议传输数据,BGP协议可以实现非直连建邻,非直连建邻的前提条件是邻居双方网络可达, BGP的非直连建邻是建立在IGP的基础上。
  3. BGP的邻居更准确的说是BGP的对等体,我们可以根据邻居关系的建立情况,将BGP的邻居关系分为两种:

  1. 因为EBGP对等体之间一般采用直连建邻的方法,所以,我们将EBGP对等体之间的数据包中的TTL值设置为1;
  2. 而IBGP对等体之间往往需要非直连建邻,所以,IBGP对等体之间的数据报中的TTL值我们设置为255;当然,如果EBGP对等体之间需要非直连建邻,则需要手工修改TTL值。

2.5.4  EGP的追求:

AS-BY-AS:BGP将一个AS作为一个单位来看待,以一个AS为一跳。

三、BGP的数据包类型

BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障。

3.1 Open

Open包主要用来建立邻居关系,正常进收发一次即可,Open包会携带一些建邻需要协商的参数,邻居互相认同对方的参数才可以建立邻居关系。以下为Open包会携带的一些参数:

  1. AS号:在手工建立邻居关系需要时声明邻居的AS号。对端收到后会检查声明的AS号是否和本地的AS号一致,一致才可以建立邻居关系。
  2. 认证:BGP在建邻时如果做认证的话,需要比对双方认证口令,不一致则无法建立邻居关系。
  3. Router-ID:主要区分和标定路由器。OPEN报文中携带RID的目的是为了确保双方的RID不一致。确保其唯一性,如果相同,则无法正常建立邻居关系。

(这里的RID和OPSF的格式一致,也是由32位二进制构成,并且遵循IP地址的格式。也可以通过两种方法获取,一种是手工配置;另一种是自动获取(先在自己路由器的环回接口中选择最大的IP地址作为RID,如果没有环回接口,则在自己物理接口中选择IP地址最大的作为RID)。\n注意:在接收邻居数据包时,其中的源IP地址和手工指定的邻居的IP地址一致才可以正常建立邻居关系)

  1. holdtime:保活时间, 这个参数默认值为 180S,即180S内若收不到对方发送的keeplive或者UPdate包则将判定BGP链接中断。双方建邻时携带这个值,但是并要求必须相同。但是,执行时必须相同,所以,将会选择二者中较小的作为执行时间

3.2keeplive

  1. 用来保活邻居关系,默认周期1min查询邻居关系是否存在;实际保活TCP会话。
  2. Keeplive报文的发送周期为保活时间(hold time)的1/3,保活时间默认为180S,则周期发送时间默认为60S。
  3. KeepLive包还有一个作用:在收到对方发送的OPEN报文后,临时充当确认包的作用。

(TCP本身具有确认机制,可以确保传输的可靠性,这里的确认主要是确认OPEN报文中携带的参数,如果认同对方的参数,则将回复Keeplive包进行确认。)

3.3Update

  1. nBGP中的更新包,用来携带路由条目,包括目标网段,子网掩码信息以及BGP的各种属性\n
  2. 在UPdate包中存在撤销路由字段,我们可以直接将不可达的路由信息放在该字段下进行通告,以达到传递失效信息的目的。而不需要像RIP那样采用带毒传输的方式。

3.4Notification

  1. BGP设计的一个告警机制,出现错误数据时收发,当BGP检测到一个错误的时候,将会用这个包进行告警,告知对端错误点在哪

3.5Route-refresh

  1. 用于改变路由策略后请求对等体重新发送路由信息,前提是对等体双方均支持路由刷新

四、BGP的状态机

4.1BGP状态机表示

BGP的状态机仅描述BGP对等体建立过程中的状态变化。因为BGP可以做到建立邻居关系和发布路由分开完成。

  1. nidle状态:空闲状态,一旦指定邻居,就处于idle状态,然后BGP会首先检查指定的IP地址在本地路由表中是否可达,如果可达,则开始尝试建立TCP会话,进入下一个状态;如果不可达,则将停留在idle状态。
  2. connect状态: 进行TCP会话连接的状态。如果TCP会话建立成功,则进入下一个状态;如果TCP会话建立失败,则进入Active状态,该状态会反复尝试TCP连接,如果尝试超时,则放弃重连,退回到idle状态。

(注意:在建立TCP会话连接时,双方都会尝试建立连接,一方建立成功,则将创建一个双向的TCP会话通道;双方都建立成功,则将会出现两个双向通道。则需要关闭一个TCP通道。后面开始发送OPEN报文,其中会携带RID,双方将比较RID,仅保留RID大的一端发起的TCP连接,RID小的一端发起的TCP连接通道将被断开。)

  1. OpenSent: 开始发送OPEN报文,报文中携带建立邻居关系所需的参数。当收到对端发送的OPEN报文后,并且报文里的参数没有问题,则将回复一个keeplive作为确认,进入下一个状态;

  1. OPENConfirm:在该状态,本段在等待对端keeplive包,当对端收到本端的Open报文且确认参数无误,发送keeplive包进行确认进入下一个状态。
  2. Established : 建立完成状态 ,标志着对等体关系的建立。

4.2 BGP的工作过程

  1. 配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输。
  2. 会话建立后,邻居间正常收发一次open报文,并互发keeplive包进行确认建立BGP的邻居关系,并生成邻居表。
  3. 邻居关系建立后,默认每1min,使用keeplive周期保活邻居关系,周期保活TCP会话。
  4. 邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP表。
  5. 本地对BGP表中的路由进行选择,默认将最优路径加载于路由表中(最优-仅仅基于BGP的选路规则,不一定为最佳路径;BGP默认不支持负载均衡)
  6. 若出现错误信息,邻居间将使用Notification报文进行报错操作。
  7. 收敛完成,仅keeplive周期保活即可,默认保活时间为180S,周期发送时间为60S。
  8. 若发生结构突变,则将直接发送UPdate报文进行触发更新。

4.3  BGP的路由黑洞

  1. AS间通过EBGP对等体交换路由信息,然后通过单播将获取到的路由信息发送给IBGP对等体,使AS所有运行BGP的设备拥有了所有AS的路由信息,如下:R3从R1学到AS100的1.0.0.0/8的路由信息,然后通过单播传给R7,R7传给R2,所有AS内运行BGP的路由器都学到了1.0.0.0/8的路由信息

  1. 矢量协议的特点是谁发给我这条路由,我到这条路由就找谁,如果R7想ping1.0.0.0/8,那R7就会将ping包发送给R3,由R3转发。在R7发送ping包时,它首先查看路由表查找R3的位置,假设R7通过R4找R3,那R7就会将ping包发给R4,当这个ping包来到R4上,R4看二层是找自己的,解封装看三层,发现这个ping包的DIP为1.0.0.0/8网段的,但R4上没有运行BGP,没有收到关于1.0.0.0/8网段的路由信息,所以R4就会把这个ping包丢弃,虽然R7上有1.0.0.0/8的网段路由信息,但无法与R1通信,这就是BGP的路由黑洞。
  2. BGP的路由黑洞:由于BGP协议可以非直连建邻,故可能出现BGP协议跨越未运行BGP协议的路由器,导致BGP路由传递后,显示控制层面可达,但是,数据层面,流量经过未运行BGP协议的路由器时,无法通过,形成路由黑洞。

4.4  解决路由黑洞

  1. AS内的设备全部运行BGP:既然路由黑洞是未运行BGP协议的路由器导致的,那就让AS内所有的设备都运行BGP获取路由信息。但这个方法是不现实的,可以承载越多路由信息的路由器其价格也就越昂贵,每一台运行BGP的路由器需要承载所有AS的路由信息,可以承载世界上几万几十万的路由信息的路由器价格也是上百万的,所以,是不可能让AS内的设备拥有全部路由信息的。
  2. AS内运行BGP的设备将从BGP重发布到AS内运行的IGP协议里:通过重发布将BGP所有路由导入到IGP协议里,同样需要AS内所有设备可以承载所有AS的路由信息,同第一条一样不现实。
  3. 物理、逻辑拓扑全连:直接让AS内运行BGP协议的所有设备互相连接,使IBGP间通信不需要经过未运行BGP协议的设备,但由一个AS地理范围可能很大,IBGP间距离较远,所以使用真实链路连接IBGP也不现实,所以我们可以用GRE/MGRE等vpn技术,通过虚拟链路连接IBGP对等体

(BGP为了防止BGP路由黑洞的产生,提出了BGP同步机制:即当一台路由器从自己IBGP对等体学习到一条BGP路由时,他不能将这条路由通告给自己的EBGP对等体,除非他又从IGP协议中(包含静态路由)学习到这条路由。也就是要求IBGP路由和IGP路由同步。\n同步要求将BGP路由重发布到IGP协议中,但我们已经说过这种方法并不现实,所以华为设备默认关闭同步机制。)

五、管理大规模BGP对等应用方式

5.1 对等体组(peer group)

  1. BGP增强技术出现的背景:BGP主要应用于AS之间,更经常应用于大型的组网模式中,而这些大型的组网会存在着BGP对等体众多,路由表过于庞大,路由不稳定并且要建立全连接的要求,所以在配置方面会出现配置复杂等问题。
  2. 对于BGP对等体众多,提出了对等体组和BGP团体,对等体组是将有相同属性的(例如:都和某一台路由器建立对等体关系,或是都需要路由策略过滤路由),这样的一些路由器添加到一个对等体组中,对这个对等体组进行配置即可。

(假设:有多个路由器需要和rta建立ibgp对等体,那么在rta上将这些路由器添加到一个对等体组中,建立ibgp的时候,与对等体组建立即可。这样就简化了具体的配置,对等体组分为IBGP对等体组和EBGP对等体组。对等体组里面的成员处于同一个as的就是ibgp对等体组,处于不同as之间的成员就是ebgp对等体组)

5.2 团体(community)

  1. BGP的团体属性,对于这个团体属性,如果按照原始的通过acl匹配出数据流,再根据router-policy进行修改属性会特别麻烦,所以就直接根据路由器的团体属性进行路由属性的修改,会相对简单。
  2. 公认团体属性:
  1. INTERNET默认就是这个,收到带有这一属性的路由后,可以被通告给所有的对等体(这条路由)
  2. NO_EXPORT:收到这个属性的路由之后,不能发布到as之外,但是可以发布到联盟之内的其他子as。
  3. NO_ADVERTISE:收到带有这一属性的路由之后,不能被通告给其他的任何对等体
  4. NO_EXPORT_SUBCONFED:收到带有这一属性的路由之后,可以通告给本地的as之内,但是不能通告给其他的as,也不能通告给联盟之内的其他子as。

5.2.1 BGP路由聚合

针对于BGP路由表过于庞大,为了缩小路由表的规模,就可以通过BGP路由聚合的方式来减小路由表的规模

BGP的聚合分为自动聚合和手动聚合:

  1. 自动聚合就和其他路由协议(RIPv1)的自动聚合一样,聚合成自然网段的,然后只发布聚合后的路由。但是自动聚合只能对通过引入的IGP路由进行聚合(就比如import-route ospf)只能对引入的IGP路由聚合
  2. 手动聚合可以对已经存在于BGP路由表中的学习到的路由,引入的路由,通过network宣告的路由进行聚合成非自然类网段的路由

5.2.2  BGP路由宣告

1.可以同时宣告具体路由和聚合路由(默认)

2.抑制具体的路由,发布聚合的路由(detail-suppressed)

3.发布聚合后的路由同时抑制部分的具体路由(也就是发布聚合后的 但是只发布一部分明细的)

4.将指定的具体路由进行聚合

5.3  路由反射器(route reflector)

针对于BGP要建立众多的BGP对等体,而且在同一个AS之内还需要建立全链接,所以可以通过在一个as之内选择一个路由器当做反射器。

其他的还有客户机和非客户机 ,但是对于客户机和非客户机来说,并不知道自己是客户机和非客户机,他们只知道跟别的路由器建立了ibgp对等体邻居关系,所以当自己这边有路由时,会将这个路由更新发送到ibgp对等体(对于客户机来说,他只会与反射器建立ibgp对等体连接)当反射器收到之后呢,就会将从客户机收到的路由更新发送给所有的除了发送这条路由更新的客户机和非客户机,并且也会发送给自己的ebgp邻居。对于非客户机来说,因为从非客户机接收到的路由更新不会发送给非客户机,只会发送给所有的客户机和ebgp邻居,那么非客户机之间要建立全链接,如果在客户机之间建立了全链接,那么需要通过配置命令,来禁止客户机到客户机之间的反射,并且当反射器收到从ebgp对等体学习到的邻居的时候,会发送给所有的客户机和非客户机,BGP反射器如果只有一个,那么当这个反射器失效之后,就没办法达到目的,也就是不能建立ibgp全链接,这时就可以通过配置两个bgp反射器来进行,不需要设置备份,只需要在每一个bgp反射器上指定自己的客户机即可,而且客户机最好是和每一个反射器建立ibgp连接,这时,如果一个反射器收到了路由更新之后,将这个更新发送给ebgp对等体,然后在几经转折,又回到了这个反射器上,这时候,反射器会查看路由更新中携带的cluster-list属性,如果发现这个里面有自己的集群id,就会直接丢弃,当然在同一个as之内的反射器需要配置相同的集群id,也是为了避免一个反射器从另一个发射器学习到路由,在进行反射,导致路由更新重复学习。对于反射器来说,收到路由更新检查cluster-list,但是对于发言者来说,是检查originator id,如果发现与自己的router id相同,那么直接丢弃(相同就意味着是自己发出去的)

5.4  联盟(confederation)

为了减少ibgp连接的数量,还有一种机制,就是BGP联盟\n可以理解为在一个大的as之内划分为多个小的as,但是对外就是那么一个大的as,外面的as不知道这个as之内有什么,在这些小as之间建立ebgp对等体连接,小的每一个as之内,建立ibgp全链接。

5.5  BGP选路规则

  1. 该路由是到达目的地的唯一路由,直接优选。
  2. 对到达同一目的地的多条路由,优选优先级最高的。
  3. 对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。一般来说,BGP计算路由优先级的规则如下:
  1. 丢弃下一跳不可达的路由。
  2. 优选Preference_Value值最高的路由(私有属性,仅本地有效)
  3. 优选本地优先级(Local_Preference)最高的路由。
  1. 优选手动聚合>自动聚合>network>import>从对等体学到的。
  2. 优选AS_Path短的路由。
  3. 起源类型IGP>EGP>Incomplete。
  4. 对于来自同一AS的路由,优选MED值小的。
  5. 优选从EBGP学来的路由(EBGP>IBGP)。
  6. 优选AS内部IGP的Metric最小的路由。
  7. 优选Cluster_List最短的路由。
  8. 优选Orginator_ID最小的路由。
  9. 优选Router_ID最小的路由器发布的路由。
  10. 优选具有较小IP地址的邻居学来的路由。

5.6 BGP的防环机制-水平分割

1、EBGP水平分割—防止EBGP环路

通过BGP路由中的as-path属性,将路由经过的AS利用BGP条目中的as-path 属性,该属性将记录所有经过的AS编号;接收到的路由条目中若as-path中存在本地的AS号,将拒绝接收;

2、IBGP水平分割—防止IBGP环路基于AS-BY-AS特性,BGP的路由条目默认在一个AS内部传递时,其属性不变化;IBGP水平分割—从一个IBGP邻居处学习到的路由条目不得传递给本地其他IBGP邻居;因为BGP协议具有非直连建立邻居的能力,故在一个AS内部只要设备运行BGP协议,那么其必然存在EBGP邻居关系(一定连接了其他的AS);IBGP水平分割规则将导致在一个AS内部所有运行了BGP协议的路由器间,均需要建立IBGP邻居关系,才能正常传递路由条目—建立邻居关系的配置成指数增长;可以使用联邦和路由反射器来解决该问题;

六、BGP协议存在的问题和建议

6.1BGP协议存在的问题

BGP( Border Gateway Protocol)边界网关协议是一种外部路 由协议,边界指的是自治系统的边界,用于在自治系统间传播路由信息。BGP通过在路由信息中增加AS路径和其他等附带属性信息来构造自治系统的拓扑图,从而消除路由环路。实施用户配置的策略其着眼点是选择最好的路由并控制路由的传播,而不在于发现和计算路由,发现和计算路由属于IGP的工作范围。

  1. 反射器收到两个及以上到达同一目标的路径时,需要判断出最优的路由,然后反射给客户端,这会导致这些设备丧失多条路径判断最优路径的权利。
  2. 路由同步可以避免路由黑洞,但实现同步本身很困难,因为将BGP的路由注入到IGP来实现同步是不可取的。所以为了在非同步的状态实现路由的互通,只有关闭同步。
  3. BGP的宣告:在BGP协议中,宣告本地路由表中路由条目时,将携带路由表中的度量值到BGP的属性中;这些携带度量属性的路由,在传递给本地EBGP邻居时,将继续携带,用于AS判断进入对端AS的最佳入口;但是若本地宣告一条路由,携带度量值后,该路由通过IBGP邻居关系传递到BGP邻居处,邻居再将该路由传递到它的EBGP邻居时,将去除该属性,可能导致选路不佳;
  4. 路由泄露、路由振荡、策略配置复杂路由泄露是指ISP在向其他ISP宣告路由时,由于配置问题或人为失误,导致路由表中出现错误路由,从而影响整个互联网的运行;路由振荡则是指当多个ISP之间进行路由协商时,由于不同的策略和配置出现循环依赖,导致路由信息反复跳动,从而影响网络的稳定性。

6.2 对BGP协议存在问题的建议

  1. 路由泄露问题可通过实施过滤原则实现。ISP应该规范其边缘路由器的配置,以防止非法的路由信息进入网络。
  2. 路由振荡问题可以通过设置相应的路由策略和权重,以调整路由发生的路径,从而防止路由信息在网络中循环传播。
  3. 对于复杂的路由策略配置问题,可以通过采用更加灵活的路由管理方案,如SDN网络体系结构、路由控制平面等,来提供更加高效的路由管理。

七、发展前景分析

7.1  BGP优势

1. 服务器只需设置1个IP地址,最佳的访问路由是有骨干路由器根据网络上路由的跳数以及其他技术指标确定,并不会占用服务器的任何系统资源。无论是服务器的上行路由还是下行路由,都可挑选出最优的路径,真正实现高速的单IP双线路访问。

2. 由于BGP协议具备冗余备份,消除环路的特点,当IDC运营商拥有多条BGP互联线路时可实现互为备份的功能,并在一条线路出现故障时可自动切换到其他安全可用的线路上。在线路实现互为备份的基础上,也可实现同城双机房的灾备。3. BGP协议还可使网络具有很强的扩展性。可轻松的将IDC网络与其他运营商进行互联互通,实现单IP多线路,做到了所有互联网运营商的用户访问都很快,这是双IP双线无法比拟的。云专线是支持MSTP专线/裸光纤/MPLS等类型的专线接入,企业总部数据中心或分支机构快速入云,提供安全独立的加密隧道,实现端到端通信。在云专线的线路上,即可实现数据上云、互联网接入、多点组网等多功能应用。

7.2  产品发展趋势分析

  1. 边界网关协议(BGP, Border Gateway Protocol),其职能在于实现数据传输过程中,不同因特网自治域系统间的路由实现,本质上看就是在不同的网络系统之间交换网络可达信息(NLRI,Network Layer Reachable Information)。随着网络发展的日益成熟,相应的拓扑结构以及网络自治域也随之呈现出日益复杂的特征,一方面自治域内部呈现出相对的独立特征,另一个方面其间的通信却呈现出越来越频繁的特征,并且对于通信质量的要求也有显著提升趋势。所有这些都使得BGP协议的地位日益重要,这种频繁作用在互联网自治域边缘的通信协议,已经成为了网络路由体系的重要组成部分,其存在对于支持整个互联网数据传输工作的完成和实现,并且在一定程度上对于减少交换和路由设备的运行负荷都有积极意义
  2. BGP协议能够实现对于无类型区域间路由(CIDR,Classless Inter―Domain Routing)的良好支持,这种支持作用能够极大地抑制和缩减路由表本身的规模,并且对于提升路由效率等方面都有显著的作用。并且在实现路由的过程中,BGP协议通过自治域(AS,Autonomous System)边界路由器展开作用,采用特定的策略和算法选择过滤路由,将诸如路由信息协议(RIP,Router Information protocol)、开放式最短路径优先(OSPF,Open Shortest Path First)以及BGP等路由信息发送到对应节点之上。在传输可靠性方面,BGP直接采用TCP作为传输协议,相对而言可以保证其可靠性,并且对于路由聚合和过滤等方面也能够表现出良好支持。

八、结论

边界网关协议BGP(Border Gateway Protocol)是Internet中自治系统间交换路由信息的域间路由标准。随着Internet的发展,BGP协议面临着路由表迅猛增长、路由猝发更新与抖动、扩展性等诸多问题,研究BGP协议的并行性,提高BGP协议的可扩展性和协议性能有着重要的现实意义。 本文阐述了当前BGP协议面临的主要问题,从并行算法模型、网络并行处理技术、并行程序开发的相关工具与技术、程序并行性分析工具等方面分析了BGP协议并行性研究的相关工作。在此基础上,利用Vtune和Gprof两种不同的分析工具从实验的角度对Quagga BGP协议的运行开销进行了测试和分析,然后,从并行算法模型的角度,对BGP协议的并行性模型进行了分类与分析。通过BGP协议并行性的实验分析与理论分析,为并行BGP协议的设计奠定了良好的基础。 为有效验证BGP协议的并行性性能,本文对BGP协议的性能测试进行了总结和分析,针对BGP协议的并行性性能,提出了一组刻画BGP协议并行性的性能评价参数,以及相应的评测设计和案例。最后,依据BGP协议并行性性能的评测设计,对所开发的并行BGP协议系统—Hspeed-BGP系统的性能进行了全面的测试,测试结果一方面表明了Hspeed-BGP系统所具有的并行性,并进一步挖掘了系统中协议执行的性能变化规律与瓶颈,为后续开发提供一定的支撑;另一方面也验证了所提出的BGP协议并行性分析方法与测试方法的有效性,对进一步研究BGP协议的并行性具有较好的参考价值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值