BGP 协议原理总结

时间:2019-05-12 14:25:28下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《BGP 协议原理总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《BGP 协议原理总结》。

第一篇:BGP 协议原理总结

BGP协议原理总结

BGP协议3:

边界网关路由协议(版本3)

RFC1267

王尚

201192339

名词解释:

1 AS(自治系统):在单一技术管理下的一系列路由器,他们使用一个内部网关,在AS内部路由数据包的共同标准,使用同一个外部网关协议来想其他AS传输数据包。因为这个经典的解释已经被扩展,所以对于一个单一的AS来说在内部使用多个内部网关协议和有时多个系列的标准已经很普遍了。(在这里使用的AS强调了这样的事实,即便多个内部网关协议和度量标准被使用,一个AS面向其他的AS的管理拥有一个单一的连贯一致的内部路由方案,并且展示一个始终如一的图片,什么的网络通过它可以到达。从外部的路由的观点来看一个AS可以被看做一个单片集成电路:)

图1 AS系统

IGP(内部的边界网关协议)专门用于自治系统中的网关间交换数据流转通道信息的协议

EGP(外部的边界网关协议)在自治系统间的相邻的网关主机间交换路由信息的协议。常用于在INTERNET主机间交换路由表信息。一个轮询协议,利用HELLO和I-HEARD-YOU消息的转换,能让每个网关控制盒接受网络可达性信息的速率,容许每个系统控制自己的开销,同时发出命令请求更新响应。路由表包括一组一知路由器及这些路由器的可到达地址及路径开销,从而选择最佳路由。每个路由器没个120或者480秒访问邻居一次,邻居发挥完整的路由表来响应。

IBGP(内部边界网关协议)EBGP(外部边界网关协议)EBGP对等体

BGP和IGP同步:一个BGP路由器不将从内部Peer得知的目的地通告给外部Peer,除非该目的地也能通过IGP得知。若一个路由器通过IGP得知该目的地,则可以认为路由能在AS中传播,内部通达已经可以得到保证。2 3

4 5 6 7

BGP协议概述

1 BGP协议是外部路由协议,用来在AS之间传递路由信息。2 是一种增强的距离矢量路由协议。具有以下特点:

① 可靠的路由更新机制 3 4 5 6 7 8 9 ②

丰富的Metric度量方法 ③

从设计上避免了环路的发生 可以为路由附带属性信息

支持CIDR(无类别域间路由)丰富的路由过滤和路由策略

使用的传输层协议是TCP协议,使用的端口号是179 无需周期性的更新

周期性的发送KEEPALIVE报文验证TCP连接的连通性 在进行路由更新时只发送路由增量

BGP路由通告原则

1 当存在多条路径时,BGPSpeaker只选择最优的给自己使用 2 BGPSpeaker只把自己只用的路由通告给邻居

3 BGPSpeaker从EBPG获得的路由会向他的所有BGP邻居通告(包括EBGP和IBGP)

4 BGPSpeaker从IBGP获得的路由不向它的IBGP邻居发送

5 BGP Speaker从IBGP获得的路由是否会通告给他的EBGP对等体要依从于IGP和BGP同步的情况来决定

6 连接一但建立,BGP Speaker将把自己所有BGP路由通告给新的邻居

IBGP全连接

① IBGP对等体物理意义上的全连接 ② IBGP对等体逻辑意义上的全连接

BGP报文种类

1 Open:在TCP会话建立之后,两个邻居都将发送Open消息,每个邻居都

利用该消息标识自己并指定BGP操作参数

2 KeepAlive:当路由器接受了由邻居发送来的Open消息中的指定参数。

它将响应一条KeepAlive消息,此后路由器每60秒发送一条KeepAlive消息,或是以协商的保持时间的1/3为周期发送KeepAlive消息。由于KEEPALIVE纯粹是一个通信知会,不需要携带什么信息,因此KEEPALIVE报文实际上是不带数据的BGP报文头。

3 Update:被用来宣告可行路由、撤销的路由 4 Notification:只要路由器检测到差错就会发送Notificat

ion消息并关闭BGP进程,随后我们将看到BGP邻居断开,然后试图重新建立BGP邻居。BGP报文头

BGP报文的格式都是一样的:BGP报文头+BGP报文体

其中BGP报文头格式如下:

图 2 BGP报文头 ⑴ Maker(16byte):全为1,否则标记值要使用认证机制来计算(认证机制是通过认证信息的一部分来指定的)。标记可以用来探测BGP对端的同步丢失,认证进入的BGP消息。⑵ Length(2byte)BGP报文的全长,长度值必须最少19个字节,最大4096个字节。可能更多,根据报文类型决定 ⑶ Type(1byte)1-Open

2-UPDATE

3—Notification

4KeepAlive

Open报文:

⑷ ⑸ ⑹ ⑺

图3 Open报文头

Version(1字节)当前BGP版本号为3 My Autonomus System(2字节):发射者自导系统号 HoldTIME(2字节):BGP的Hold time为180秒 BGPIDE NTIFIER(4字节):发送者的BGP route ID

⑻ AUTH.CODE

⑼ AUTHE NTICATIO NDATA

Update

图 4 Update报文头

⑽ TOTALPath AttributeSLE NGTH(2字节):总的路径属性长度 0代表在UPDATE消息中没有网络层可达信息域 ⑾ Path Attribute:路径属性,在一个UPDATE中可能存在多个路径属性对。每个路径属性对包括Attribute Flags,Attribute type code,Attribute Date Length 三个字段。Attribute Flags,Attribute type code 各占一个字节。

⒈ Attribute Flags的8位分别表示:

⒉ Attribute type code指明是什么属性。

图 5 Attribute type code属性

⑿ Network(4字节): INTER NET NETWOR K编码表明这个AS的路由由这个路径属性表明

③ KeepAlive报文

④ Notification报文

图6 Notification报文头 ⑴ ERRORCODE:(1字节)

⑵ Error Subcode(1字节)

⑶ Date用来诊断Notification的原因。依赖于错误码和错误子码。Message Length=21+data length

BGP协议中消息的使用

1 通过TCP建立BGP连接时,发送Open报文

2 连接建立后,如果路由需要发送或者路由改变时,发送Update报文告知对端路由信息

3稳定后此时要定时发送KeepAlive报文以保持BGP连接的有效性

4档本地BGP在运行中发生错误时,发送Notification报文告知BGP对端 BGP有限状态机

BGP会话共有6种状态,分别是: 1CONNECT 3OpenSENT

5ESTABLISHED

BGP会话共有13种事件,影响BGP的会话,分别是: 1BGPStop

3BGPTransport ConnectionCLOSED

5BGPTRANSPORTFATALERROR 7HoldTimerExPIRED

9ReceiveOPENMESSAGE

11ReceiveUpdateMESSAGES

13-ReceiveNOTIFICATIONMESSAGE 1 空闲状态 BGP通常以空闲状态开始。在该状态下,它拒绝接收所有入连接。当一个开始事件出现的时候,BGP初始化所有BGP资源,打开重试连接计时器(ConnectRetrytimer)、初始化到邻居的TCP连接、接听来自邻居的TCP初始化消息,并将它的状态转到连接状态。开始事件是由一个操作者配置一个BGP过程,或重置一个已经存在的过程,或者由路由器软件重置BGP过程引起的。一个差错的出现会将BGP过程的状态转为空闲状态。路由器可能会试图发起另外一个是事件。但是对于路由器如何完成这个过程应当加以限制——在具有持续差错的条件下,坚持不懈的试图重新开始会导致摆动。因此,在第一次转向空闲状态以后,路由器会启动重试连接计时器,当计时器终止后,路由器就会放弃重新开始BGP。下一次ConnectRetry时间是前一次的两倍,以此类推。2 连接状态

在这种状态下,BGP过程会等到TCP连接完成以后再决定后续动作。如果TCP连接成功,BGP连接将ConnectRetry清零,完成初始化过程,给邻居发送一个Open消息并转移到发送Open消息状态。如果TCP连接建立失败。BGP过程会继续监听由邻居发起的连接、重置ConnectRetry计时器并转移到激活状态。

如果再连接状态下,ConnectRetry计时器超时了,计时器将重新开始计时,并再一次试图与邻居建立一个TCP连接,BGP状态继续保持在连接状态。任何一个其他输入事件的出现都会导致BGP状态转向空闲。3 激活状态

在这个状态下,BGP过程试图与邻居建立一个TCP连接。如果TCP连接建立成功,BGP过程将ConnectRetry清零,完成初始化工作,给邻居发送一个Open消息并转移到发送Open消息状态。

如果BGP在激活状态时,ConnectRetry计时器超时,该过程回到连接状态并且重置ConnectRetry计时器。它同样也发起一个到对等的TCP连接并且继续监听来自对等得连接。如果邻居试图与一个未知的IP 地址建立TCP会话,那么ConnectRetry计时器会被重置,连接被拒绝并且本地过程保持在激活状态。任何一个输入事件(除了开始事件,在激活状态下该事件会被忽略)都会导致状态转移为空闲。

4 发送Open消息状态

在这种状态下,已经发送了Open消息,BGP正在等待从邻居发来的Open消息。当收到一个Open消息后,检查该消息的所有字段。如果发现了差错,会给它的邻居发送一个Notification消息并且将状态转移到空闲。

如果再接收到的Open消息种没有发现差错。BGP给邻居发送一个KeepAlive消息,并且将KeepAlive计时器置位。邻居之间协商一个Hold时间,他们会选用较小的值。如果协商的Hold时间是0,则没有启动Hold和KeepAlive计时器。根据对等的AS号,决定该连接是内部的还是外部的,并且将状态转移到Open消息确认。

如果收到了一个TCP断开消息,本地过程断开BGP连接,重置ConnectRetry计时器,开始监听将要由邻居发起的新的连接并将状态转移到激活。任何一个输入事件(除了开始事件,在激活状态下该事件会被忽略)都会导致状态转移为空闲。5 Open消息确认状态

在这种状态下,BGP过程会等待一个KeepAlive或者Notification消息。如果收到KeepAlive消息,转移到已建立状态。如果收到Notification消息或者TCP断开消息,状态转移到空闲。

如果Hold计时器超时,检测到一个差错或出现一个stop事件,BGP过程会给邻居发送一个Notification消息并且断开BGP连接,将状态转向空闲。6 已建立状态

在这种状态下,BGP对等之间的连接完全建立起来了,对等之间可以交换Update、KeepAlive、Notification消息。如果收到Update或者KeepAlive消息,重新启动Hold计时器(如果协商的Hold时间是非零)。如果收到Notification消息,状态会转移到空闲。任何其他的事件都会导致Notification消息的发送并将状态转移到空闲。

BGP建立邻居后,会通过相互发送类似hello包的数据来维持邻居关系,这个数据包称为KeepAlive,默认60秒发送一次,holdtimer为180秒,即到达180秒没有收到邻居的KeepAlive,便认为邻居丢失,则断开与邻居的连接。KeepAlive发送时间间隔的推荐值为Hold计时器值饿1/3,最小为3秒。

BGP Update 消息处理

Update消息仅仅在建立状态被接收。当一个UPDATE消息被接收,每一个域要有效性检查。

如果可选的非转发的属性不认识,默认丢弃。如果可选转发属性不认识,属性标志字节 设置部分位(第三个高位顺序位),保留属性公告到别的BGP Speaker。如果可选的属性被认识,而且值有效,要根据可选参数的类型在本地处理,保留,如果必要的话,更新广播到别的BGP发言者。

如果UPDATE消息包括非空的WITHDRAWNROUTES域,先前广播的路由如果目的地包括在这里面需要从Adj-RIB_IN中移出来。BGPSpeaker应该运行决策过程,原因是先前的公告路由不再可用。

如果UPDATE消息包括了一个可用的路由,应该放在相应的Adj-RIB_IN内部,同时做下面的步骤:

① 如果网络层可达信息(NLRI)和Adj-RIB_IN的路由一样,新路由应该替换老路由,这样明确撤销了老路由的服务。BGP发言者运行决策过程,原因是老路由不再存在。

②如果新的路由重叠包含在Adj-RIB-IN老路由内部,BGPSpeaker应该运行决策过程,因为更特殊路由使得原来的更不特殊路由的一部分不可用了。

③如果新路由有和Adj_RIB_IN内包含的路由同样的路径属性,并且更特殊。不需要做任何事情。

④如果新路由的NLRI不同于Adj-RIB-IN存储的任何路由,新路由应该放入。BGP发言者应该运行决策进程。如果新路由是更不特别的重叠路由,BGP发言者应该运行对更不特殊的路由运行决策进程。

Ⅰ 决策过程

决策过程选择路由用于下一步的通告,方法是应用本地策略信息库(PIB)的策略处理Adj-RIB-IN中的路由。决策过程的输出是广播到对端的路由集合;被选的路由存储在Adj-RIB-Out中。选择过程可以定义为一个函数,给定路由的属性作为参数,返回非负的整数指示路由的优 先级别。计算路由优先级别的函数不能把以下的情况作为输入:别的路由的存在,别的路由的不存在,或者别的路由的路径属性。路由选择对每一个可用路由运用优先程度算法,选择最高优先程度的路由。

决策过程操作Adj-RIB-IN包括的路由中,同时负责:-选择路由通告到本地的AS中别的BGP发言者-选择路由通告到邻居AS中的BGP发言者-路由聚合和路由信息简化

决策过程分三期,通过不同的事件触发。

⑴一期负责计算来自邻居AS的BGP发言者的每条路有的优先级,通告到在本地AS的 别的BGP发言者到每个确定的目的地的具有最高优先级的路由。⑵二期在一期完成的时候激活。负责从到达目的地的所有路由中选择最好的路由,同时安装每个选择的路由到相应的LOC-RIB。⑶在LOC-RIB修改后激活三期。负责发布LOC_RIB中的路由到邻居AS的每个对端。路由聚合和信息简约在这期可选的执行。PHASE1: 优先级的计算

无论何时本地的BGP发言者接受到邻居AS的对端的通告新的路由,替代路由,测销路由的UPDATE消息,都要激活一期决策过程,一期决策过程是独立的过程,当没有别的工作要做的时候就停止。一期决策功能在操作任何包含路由之前锁定Adj-RIB-IN,在操作完成所有新的或者不可用的路由之后,解开Adj-RIB-IN。每一个新收到或者替代的可用路由,本的BGP发言者应该确定一个优先级。如果路由是通过本地AS的BGP发言者学习到的,或者LOCAL-PREF值被当作优先级,或者本地系统应该根据预先配置的策略信息计算路由优先级。如果路由通过邻居AS中的BGP发言者学习,优先级的计算是根据预先配置的策略。策略信息的确切特性和相关计算是本地的问题。本的发言者应该云内部更新过程选择并且通告最佳路由。PHASE2: 路由选择

第二期决策函数在第一期完成后激活。第二期函数是独立的过程当没有更进一步的工作要做的时候就停止。第二期进程要考虑ADj_RIB_IN中的所有路由,包括从自己的AS中和邻居的AS中的BGP发言者接收的路由。当运行第三期决策函数,第二期决策函数可以阻塞。第二期距测函数应该在开始函数前锁定所有的Adj-RIB-IN,在完成后解开所有。

如果BGP路由的NEXT-HOP属性描述了一个地址,在本地LOC-RIB中BGP发言者没有路由,BGP发言者应该排除在第二期决策函数外面。

为了ADj_RIB_IN中的路由的每一个目的地集合,本地BGP发言者以确定路由: A)对同一个目的地集和,最高优先级的路由,或者 B)是唯一的到目的的地路由,或者 ⑶是第二期解扣规则的选择结果。

本地发言者应该安装路由到LOC-RIB中,替代LOC-RIB中保存的任何道相同目的地的路由。本地发言者必须根据选择路由的NEXT-HOP属性确定立即下一跳,通过查找IGP悬着IGP中的可能的路径。当安装选择路由在LOC_RIB中,立即下一跳必须被使用。如果NEXT-HOP属性描述的地址改变,路由选择应该按照上面的说明重新计算。不可用的路由应该从LOC-RIB中拿出,相应的不可用路由应该从Adj-RIBs-IN拿出。解扣

在Adj-RIBs-IN中一个BGP发言者可以有多个有相同的优先级的路由到同一个目的地。本的发言者可以选择包含在相应LOC-RIB中的一条路由。本地发言者认为所有的路由,不论是邻居AS的BGP发言者的路由,还是本地AS的BGP发言者的路由是一样的。

下面的解扣过程假设一个自治系统的所有AS的每一个候选路由能够确定到NEXT-HOP属性描述的地址的路径代价(内部距离)。根据下面的算法解扣。A)如果本地系统配置考虑MULTI_EXIT_DISC,候选路由的MULTI_EXIT_DISC属性不同,选择MULTI_EXIT_DISC属性值最小的。

B)否则,选择到路与欧的NEXT-HOP属性描述的入口的代价(内部距离)最小的。如果有几个路由有相同的代价,按照下面的过程解扣

-如果最少有一个路由是通过邻居AS的BGP发言者通告的,选择邻居AS的BGP发言者通告的鲈鱼哦,如果BGP的标示符的值是所有邻居AS的BGP发言者中最小的。-否则,选者BGP标示符最小的BGP发言者通告的路由。PHASE3: 路由分发

第三期路由决策过程可以被第二期的完成激活,或者下面的事件发生: A)LOC-RIB中的到本地目的地的路由改变。

B)当本地产生的通过BGP以外的方式学习的路由改变。C)当新的BGP发言者-BGP发言者连接建立。

第三期函数是独立的过程当没有进一步的工作去做的时候停止。第三期路由决策过程应该被阻塞,如果第二期决策过程在运行。

所有的LOC-RIB中的路由应该被处理到相应的到Adj-RIBs-Out的入口。路由聚合和信息简约技术可选执行。为了更好支持未来的AS间多播能力,参加AS间多播路由的BGP发言者应该通告他从外部对端收到的路由同时如果安装在Loc-RIB内,因该通告到接收路由的对端。对没有参加AS间多播路由的BGP发言者这个通告是可选的。如果做这样一个通告,NEXT-HOP属性应该被设置为对端地址。应用可以优化这个通告,组合AS-PATH属性的信息不但包括自己的AS号码而且通告路由的对端的AS号码(这个组合要求ORIGIN属性被设置为INCOMPLETE)。另外,应用不需要传递可选的或者自决的路径属性在这种通告中。

当Adj-RIBs-Out更新而且转发信息库(FIB)完成,本地BGP发言者应该运行外部更新进程 路由覆盖

BGP发言者可以传送具有重叠的网络层可达信息(NLRI)的路由到别的BGP发言者。NLRI重叠产生于一些列目的地对非匹配的多个路由是唯一的。由于BGP使用IP前缀对NLRI编码,重叠一般要展示子网关系。路由描述了更小范围的目的地(更长的前缀)称为更特别路由,路由描述了更大范围的目的地(更短的前缀)成为更一般路由。反之同样。这种优先关系有效分解了更一般路由为两部分: -一系列目的地,仅仅使用更一般路由描述。

-一系列路由,使用更一般和更特殊路由的重叠描述。当重叠路由发生在同样的Adj-RIB-IN,更特殊的路由应该有优先权,顺序是更特殊到更一般。重叠描述的目的地的集合表明一部分更一般路由是可用的,但是当前不可用。如果一个更特殊的路由后来撤销了,重叠描述的目的地的集合将可以使用更一般的路由到达。

如果BGP发言者接收了重叠路由,决策过程应该考虑重叠路由的语义。特别是,如果BGP发言者接收了同一个对端的更一般的路由同时拒绝了更特殊的路由,那末重叠表示的目的地可能不转发到路由的AS-PATH属性列出的AS那里。因此,BGP发言者可以由下面选择:

a)同时安装更一般和更特殊的路由 b)只安装更特殊的路由

c)只安装更一般路由的非重叠部分(这意味着解聚和)d)聚合着两条路由同时安装聚合路由 e)安装更一般的路由 f)都不安装

如果一个BGP发言者选择e),应该加入ATOMIC-AGGREGATE属性到路由中。承载ATOMIC-AGGREGATE属性的路由不能被解聚和。也就是说,路由的NLRI不能被是更特殊。向这个路由转发不保证IP 包实际沿着路由的AS-PATH属性列出的AS中转。如果BGP发言者选择A),必须不在通告更特殊的路由的时候通告更一般的路由。

ⅡUpdate发送过程

Update-SEND进程负责通告UPDATE消息到所有的对端。例如,他发布决策进程选择的路由到位于同样的自治系统或者邻居自治系统的BGP发言者。不同自治系统的BGP发言者之间信息交换的法则.相同自治系统的BGP发言者之间信息交换的法则. 在BGP发言者集合之间的路由信息的发布,所有BGP发言者如果在同一个自治系统,称为内部发布。内部更新

内部更新进程是发布路由信息到本地自治系统的BGP发言者。

当BGP发言者从在本地自治系统的别的BGP收到了UPDATE消息,接收BGP发言者不应该再分配UPDATE消息中的路由信息道别的本地自治系统的BGP发言者。当BGP发言者接收了邻居自治系统的BGP发言者的一条新的路由,如果下面的情况之一发生,应该使用UPDATE消息通告路由到本的自治系统的所有的BGP发言者:

1本地BGP发言者安排给新接收的路由的优先程度高于本地发言者已经安排的接受自邻居自治系统的别的路由的优先级

2没有接收到别的邻居自治系统的BGP发言者发送的路由 3新接收路由是几个最高优先级,同样目的的的路由解扣的结果,当BGP发言者受到了UPDATE消息,有非空的WITHDRAWNRJOUTES域,应该从Adj-RIB-IN里去掉所有的在这个域中(IP前缀表示)的目的地。发言者应该做下面的附加步骤:

1如果相应的可用路由先前没有被通告,不需要做更多的行动。2如果相应的可用路由先前被通告,那末:

I 如果被选择通告的新的路由和不可用路由有相同的网络层可达信息,本的系统因该通告替代路由。

II 如果替代路由不能用于通告,BGP发言者应该包括不可用路由的目的的(IP 前缀形式)在UPDATE消息的WITHDRAWNROUTES域,因该发送这个消息到先前通告了相应的可用路由的对端。所有的通告过的可用路由因该放入相应的Adj-RIBs-Out,所有不可用的但是通告过的路由应该被从Adj-RIBs-Out清除。解扣(内部更新)

如果一个本地的BGP发言者连接到邻居AS的几个BGP发言者,有多个Adj-RIBs-IN和这些对段相关联。这些Adj-RIB-IN可以包括到同一个目的的的多个等价优先级的路由,所有的路由要通告到邻居自治系统。本的BGP发言者应该根据下面法则选择其中一条路由:

A)如果候选路由的NEXT-HOP和MULTI-EXIT-DISC属性不同,本地系统配置中考虑了MULTI-EXIT-DISC属性,选择有最低的MULTI-EXIT-DISC属性的路由。

B)如果本的系统能够确定候选路由中T-HOP属性描述的实体的路径的成本,选择成本较低的路由。

C)在所有别的情况中,选择通告路由的BGP发言者具有较低的BGP标示符的路由。外部更新

外部更新过程和邻居AS的BGP发言者路由信息的发布有关。作为阶段3选择过程的一部分,BGP发言者更新他的Adj-RIBs-Out和转发表.所有新的安装的路由和所有新的没有替代路由的不可用的路由要通过UPDATE消息通告到邻居AS内部的BGP发言者。

任何位于LOC-RIB的路由,如果是不可用的应该被撤销。在自己的AS内部如果可达地址改变应该发送UPDATE消息。控制路由流量开销

BGP协议限制路由流量(也就是UPDATE消息),目的是减少通告UPDATE消息的带宽和消化UPDATE消息信息的决策过程的处理能力。⑴ 路由通告的频率

参数MinRouteAdvertisementInterval确定了BGP发言者到特定目的地的两个路由通告之间的最小时间。这个速率限制过程是基于单个目的地的,但是这个MinRouteAdvertisementInterval值是对每一个对端设置的。

从单个BGP发言者通告可用路由到目的地集合的来自BGP发言者的两个UPDATE消息必须至少分离MinRouteAdvertisementInterval.无疑, 只有精确保持目的地集合的计时器才能做到这一点。这是不现实的开销。任何保证BGP发言者接受自邻居AS通告的两个UPDATE消息之间时间间隔的技术通告可用路由到目的的地最小间隔是MinRouteAdvertisementInterval,也要保证大于间隔的一个常量是可以接受的。

由于需要在AS内部快速收敛,本过程不能用于从本AS中别的BGP发言者发来的路由。为了避免永久黑洞,本过程不能用于明确的撤销或者不可用路由(也就是,目的地(通过IP 前缀表示)在UPDATE消息中WITHDRAWNROUTEST域的路由)。这个过程不限制路由选择的速率,但是仅仅限制路由通告的速率。当等待MinRouteAdvertisementInterval溢出时,如果新的路由被选择多次, 在MinRouteAdvertisementInterval的最后最后选择的路由被通告.⑵ 路由产生的速率

参数MINASORIGINATIONINTERVAL确定了在BGP发言者本身的AS,中报告变化的UPDATE消息的连续通告的最小间隔 JITTER

为了减少给定的BGP发言者的BGP消息产生尖峰,jITTER应该被使用于MINASORIGINATIONINTERVAL, KeepAlive,MinRouteAdvertisementInterval计时器.给定的BGP发言者应该应用同样的jITTER数量,无论UPDATE被送到那个目的地;也就是说,jITTER不能被基于“每个对端” 使用。

引入的JITTER的数量使用相应的计数器的基本值乘以一个范围是0。75到1的随机因子。

路由信息的有效组织

选择将要广播的路由信息,一个BGP发言者可以采用几个方法,组织信息为一个有效形式。①信息简约

信息简约可以在策略控制的程度上使用简约-在信息崩溃之后,相同的策略在等价类上使用在所有的目的地和路径。

决策进程使用下面方法可选的减少放在ADj-RIB_Out中的信息数量: A)网络层可达信息(NLRI)

目的IP 地址可以被看作IP 地址前缀。若地址结构和在AS管理者控制下的系统能够达成一致,有可能减少UPDATE消息中NLRI的尺寸。B)AS_PATHS(AS路径): AS路径信息可以表达为顺序AS-SEQUENCE和无序AS-SET。S-SET可以用在路由聚合算法,描述在9。2。4。2中。他们减少了AS-PATH的尺寸,通过只列出每个AS号码一次,无论在聚合的AS-PATH上出现了几次。

一个AS-SET意味着NLRI列出的目的地能够通过由AS-SET中的部分AS组成的路径到达。AS-SET提供有效的信息来避免回环;然而使用他们可能会剪除一些潜在的有用路径,原因是一些路径不再被单独通过AS-SEQUENCE的方式列出。实际使用中这不是个问题,应为一旦IP 报到达AS组的边界,这个点上的BGP发言者更可能有更多的详细路径信息并能够区分到目的地的路径。②聚合路由信息

聚合是一个过程用来组合几个不同的路由来广播一个单独的路由。聚合作为决策的一个部分发生,这样可以减少放在AjD_RIBS_Out中路由信息的数量 聚合减少了BGP发言者存储并且和别的BGP发言者交换的路由。路由聚合使用下面的独立于期望类型的路径属性和网络层可达信息的过程。

有下面属性的路由不能被聚合。除非相应的属性是唯一的MULTI_EXIT_DISC, NEXT_HOP.具有不同类型码的路径属性不能被聚合在一起.一些类型码的路径能够被聚合,使用下面的规则: ORIGIN属性:如果最少一个被聚合路由它的ORIGIN指示INCOMPLETE,聚合路由ORIGIN的属性值是IMCOMPLETE.否则,如果最少一个路由的属性是EGP,聚合路由的属性是EGP.在所有别的情况下ORIGIN属性是INTERNAL.AS-PATH属性:如果路由聚合有单一的AS-PATH属性,聚合的路由有同样的AS-PATH属性.为了聚合路由属性,我们建模AS-PATH属性作为二元组<类型,值>,”类型”定义了路径段的属性(比如AS-SEQUENCE,AS_SET),”值”定义了AS号码.如果路由被聚合有不同的AS-PATH属性,聚合的AS-PATH属性应该满足:-所有在聚合AS-PATH的AS-SEQUENCE二元组应该在最早的路由集的AS-PATH中都出现.-在聚合的AS-PATH中AS-SET类型的所有的二元组应该出现在最少一个AS-PATH类型中(可以出现为AS-SET或者AS-SEQUENCE)。

-在聚合AS-PATH中任何类型AS-SEQUENCE的二元组X领先于Y,在初始的AS-PATH中,X在每一个AS-PATH中领先于Y,不论Y的类型。

-在AS-PATH中不能由同一个二元组具有相同值却出现了两次,不论二元组的类型。应用可以选择任何算法只要符合这些规则。最少的一个构造应用应该能够执行下埋嗯的算法来满足所有的条件。

-确定最长的对所有的聚合AS-PATH属性来说的二元组序列(如上定义)。把这个序列作为聚合后的派头AS-PATH属性序列。

-设置剩下的AS-PATH属性二元组为AS-SET,把他们加入到AS-PATH后面。-如果聚合AS-PATH属性有多个相同的二元组(不论二元组的类型),清除所有的,只留下一个通过去掉AS-PATH属性中的AS-SET类型。

ATOMIC_AGGREGATE: 如果最少一个路由有这个路径属性,那末聚合后的路由应该有这个属性。

AGGREGATOR: 聚合者属性应该被忽略。路由选择标准 总的来说,在几个可替代路由中比较路由的额外法则是在本文讨论问题之外的。有两个例外。-如果新路由中AS路径出现了本地AS,新路由不能被看作比别的路由更好的路由。如果使用这样的一个路由,路由环路会发生。

-为了成功实现发布操作,只有具有稳定可能性的路由被选择。这样,一个AS必须避免使用不稳定的路由,必须不使路由自发选择快速改变。前面句子中“不稳定”和“快速”的名词量化需要经验,但是原理是清楚的。产生BGP路由

一个BGP发言者可以通过某些方式(比如通过IGP)获得的注入BGP的路由信息产生BGP路由。BGP发言者产生BGP路由应该通过决策进程来安排路由的优先级别。这些路由可以被发布到别的在本地AS的BGP发言者作为内部更新进程的一部分。在一个AS内部决定是否发送非BGP获得的路由,取决于AS内部的环境(也就是IGP类型)而且可以通过配置来控制。

BGP路径属性

每个路径属性由1字节的属性标志位,1字节的属性类型,1或2字节路由属性长度和路径属性数据组成。

属性标志位:

位0:0表示此属性必选,1表示此属性可选。

位1:0表示此属性为非过渡属性,1表示此属性为过渡属性。

位2:0表示所有属性均为路由起始处生成,1表示中间AS加入了新属性。

位3:0表示路由属性长度由1字节指示,1表示由2字节指示。

位4至位7:未用置0

位0和位1标识了BGP的4类路由属性:

-(01)公认必选:BGP的UPDATE报文中必须存在的属性。它必须能被所有的BGP工具识别。公认必选属性的丢失意味着UPDATE报文的差错。这是为了保证所有的BGP工具统一于一套标准属性。

-(01)公认自决:能被所有BGP识别的属性,但在UPDATE报文中可发可不发。

-(11)可选过渡:如果BGP工具不能识别可选属性,它就去找过渡属性位。如果此属性是过渡的,BGP工具就接受此属性,并把它向前传递给其它BGP路由器。

-(10)可选非过渡:当可选属性未被识别,且过渡属性也未被置位时,此属性被忽略,不传递给其它BGP路由器。

路由属性类型:

⑴ORIGIN(TYPECODE = 1,公认必选属性)

指示此路由起始类型:

⑵AS_PATH(TYPECODE = 2,公认必选属性)

AS路径属性由一系列AS路径段(SEGMENT)组成。每个AS路径段为一三元组<路径段类型,路径段长度,路径值>。

路径类型有:

路径段长度用1字节表示AS号的数量,即最长为255个AS号。

路径值为若干AS号,每个AS号为2字节。

⑶NEXT_HOP(TYPECODE = 3,公认必选属性)

此属性为UPDATE消息中的信宿地址所使用的下一跳。

⑷MULTI_EXIT_DISC(TYPECODE = 4,公认自决属性)

简称MED属性。为一4字节无符合整数。它在AS区域间传播,用来帮助一个其它AS区域的BGP伙伴选择进入本AS区域的人口。

⑸LOCAL_PREF(TYPECODE = 5,公认自决属性)

本地优先级属性。为一4字节无符合整数。它在AS区域内传播,用来帮助一个本AS区域内BGP伙伴选择进入其它AS区域的出口。

⑹ATOMIC_AGGREGATE(TYPECODE = 6,公认自决属性)

元聚合属性。长度为零。它表示本地BGP在若干路由中选择了一个较抽象的(LESSSPECIFIC)路由,而没有选择较具体(SPECIFIC)的路由。

⑺AGGREGATOR(TYPECODE = 7,可选过渡属性)

聚合者属性。长度为6字节,分别为最后进行路由聚合的路由器的AS号(2字节)和IP 地址(4字节)。

第二篇:bgp综合实验总结

——————————————

BGP综合实验1

拓扑图

袁 月

拓扑说明:

如图,有R1-R5五台路由器

R1,R3,R4的S0/0、S0/

1、S0/2口通过FR连接,R1为hub,帧中继链路ip为10.10.134.0/24 R1,R2的F1/0口通过以太网连接,链路ip为10.10.12.0/24 R4,R5的s0/1口直连,网段10.10.45.0/24 每台路由器的环回0口ip为x.x.x.x/32 R1上有lo1-lo5,ip地址为192.168.1.1/24---192.168.5.1/24 R5上有lo1-lo5,ip地址为172.16.1.1/24---172.16.5.1/24 实验要求: 1.配置底层:

配置每台设备的接口ip,配置完成后确保直连可达 每个路由器的环回口是X.X.X.X/32 2.配置IGP 全网运行OSPF area0,仅宣告lo0口和链路ip进入ospf,NBMA区域任意处理

3.建立BGP邻居

BGP AS区域划分如图,按照如下规则建立对等关系.使用回环口建立邻居.R1 peer R2 R2 peer R1,R3 R3 peer R2,R4

R4 peer R5 R5 peer R4 4.BGP 路由宣告

邻居建立完成后,将R1和R5的lo0口宣告进入BGP,使用network命令

要求R1,R5使用适当的方式宣告各自的lo1-lo5 宣告完成后要求每台设备的bgp转发表可见这些路由 5.BGP路由控制

要求做出适当控制,达成下列条件,具体方法不限

1、使下列条目出现在R1的bgp表中

*> 172.16.1.0/24

2.2.2.2

0 255 2 3 i *> 172.16.2.0/24

2.2.2.2

255 10 20 2 3 ? *> 172.16.3.0/24

2.2.2.2

0

i *> 172.16.4.0/24

2.2.2.2

255 2 3 i *> 172.16.5.0/24

2.2.2.2

0 255 2 3 i

2、使下列条目出现在R5的bgp表中

*> 192.168.0.0/21

0.0.0.0

32768 2 1 i *> 192.168.1.0

4.4.4.4

0 2 1 i *> 192.168.2.0

4.4.4.4

0 2 1 i s> 192.168.3.0

4.4.4.4

0 2 1 i s> 192.168.4.0

4.4.4.4

0 2 1 i *> 192.168.5.0

4.4.4.4

0 2 1 i

3、完成后,R1,R5互相可PING通对方宣告的这些bgp路由

实验效果: R1上查看BGP表

R5上查看BGP表

BGP综合实验2

拓扑图

实验要求如下: R1与R2为EBGP

R2与R3、R4为EBGP

R3与R4为IBGP

R3与R4、R5为EBGP 每台路由器都有X.X.X.XX/32作为router-id

全网底层跑EIGRP 100 2 3

实验效果:

R3和R4上查看BGP表 R3、R4学到R1上的bgp路由下一跳必须为AS100的,R5上学到的R1和R3的路由,优走R3 在R1和R5上的回环口分别是20.20.20.0/24和30.30.30.0/24,都重分布到BGP中,使其相互学到并互相连通!

R5上查看路由表

R1和R5上的lo0互相ping通

BGP综合实验3

拓扑图

实验要求如下: 1 2 3 4 5 R4上有192.168.1.0/

24、192.168.2.0/

24、192.168.3.0/

24、192.168.4.0/24和100.100.100.0/24网段,R5上有172.16.1.0/

24、172.16.2.0/

24、172.16.3.0/

24、172.16.4.0/24和50.50.50.1/32网段 R1为DR,R2和R3不参与DR选举

每台路由器都有x.x.x.x/24做为router-id Ospf学到的是192.168汇总和172.16的汇总以及100.100的明细路由 EIGRP不能学到192.168的路由,能学到100.100的路由 R4为AS100 R2为AS200 R5为AS300 R4只与R2建立EBGP,R5只与R2建立EBGP,R4能学到50.50.50.1/32的路由,且可达!

第三篇:BGP学习心得

首先,照我的理解,在我司路由器当中有关BGP的路由表一共有三个,可以通过以下命令分别获取:

1: show ip bgp route;

2: show ip protocol routing;

3: show ip route(bgp);

这三条命令所看到的BGP路由表之间是怎样的关系呢?

首先,通过show ip bgp route所看到的路由就是实实在在通过BGP邻居学到的路由,包涵了该路由具有的所有属性:

ZXR10#sho ip bgp route

Status codes: *valid, >best, i-internal

Origin codes: i-IGP, e-EGP, ?-incomplete

Dest Next Hop Metric LocPrf RtPrf Path

*> 3.0.0.0/8 202.138.191.29 20 9497 10026 703 80 i

* 3.0.0.0/8 210.14.0.248 100 20 9299 2914 703 80 i

*> 4.0.0.0/8 202.138.191.29 20 9497 3356 i

* 4.0.0.0/8 210.14.0.248 20 20 9299 2914 3356 i

(注:210.14.0.248是通过multi hop建立的邻居关系,注意和下面的比较)

可以看到本路由器从两个邻居学到了相同的路由,其中可达,即有效的路由被标识为“ *”,而最优的路由被标识为“ >”,有关有效及最优,这牵扯到BGP路由的最优路由算法,这个将在后文中有详细介绍。

再看看通过show ip protocol routing我们看到了什么:

ZXR10#sho ip pro routing

Protocol routes:

status codes: *valid, >best,i-internal

Dest Next Hop RoutePrf RouteMetric Protocol

*> 3.0.0.0/8 202.138.191.29 20 0 bgp-ext

* 3.0.0.0/8 210.1.66.169 20 100 bgp-ext

*> 4.0.0.0/8 202.138.191.29 20 0 bgp-ext

* 4.0.0.0/8 210.1.66.169 20 20 bgp-ext

首先注意到的是所有BGP路由的属性都不见了,只是能通过protocl一项看到他们是通过EBGP学习到的。但实际上这个表和上面那个表还有一个最大的不同:NEXT HOP!请注意上面两个表中用红线表示的部分:由于210.14.0.248(AS9299)这个邻居是multi hop的,因此第一个表看到的实际是路由的NEXT HOP属性,而第二张表看到的才是真正的路由转发的下一跳。我个人理解,第二张表是BGP路由和IGP整合的结果,也就是说路由器在自己的IGP路由表中查找到的第一张表中BGP路由下一跳之后形成了第二张表中BGP路由的转发的下一跳。

接下来我们看看最后一张表,也就是全局路由表:

ZXR10#sho ip rout

IPv4 Routing Table:

Dest Mask Gw Interface Owner pri metric

3.0.0.0 255.0.0.0 202.138.191.29 fei_4/15 bgp 20 0

4.0.0.0 255.0.0.0 202.138.191.29 fei_4/15 bgp 20 0

这张表就是路由器进行转发的全局路由表了,和上面两张表最大的不同是到同一目的地址的路由只有一条了,也就是最优的那条了,这是因为路由器总会把最优的那条路由写进自己的路由转发表的。

需要注意的东东:

1:在我们自研的路由器上,虽然show ip protocol routing能看到所有的BGP路由(最优和非最优的),但是show ip protocl routing summary只能看到最优的路由条目数量,也就是实际写近路由转发表的路由总数。

2:show ip bgp route 命令还能看到本路由器上产生的路由,但下一跳属性是0.0.0.0,管理距离就是这些路由响应的IGP路由的管理距离,若本路由器上采用了路由聚合,那么会看到多出来一条路由,下一跳属性也是0.0.0.0,但这条通过聚合产生出来的路由,其管理距离为254,即无效路由。例如:

*> 203.92.8.0/21 0.0.0.0 1 i

*> 203.92.8.0/21 0.0.0.0 1 i

* 203.92.8.0/21 0.0.0.0 254 i

3:BGP中network命令的使用和OSPF大不相同,可以这么认为:BGP中network命令只是规定了一个可以通告出去的路由范围,在这个范围之内,如果本路由器上有相应的IGP路由,那么路由器就会生成相应的BGP路由并通告出去的。

下面我们看看BGP是如何抉择一条最优的路由的:

BGP选路的策略:

1)如果下一跳不可达,不考虑下一跳。

就是指两个BGP邻居之间交换路由信息的地址必须首先IGP可达,如果不可达就压根不会被BGP选路策略考虑!

2)优先选取有最大权重的路径。

这是思科的私有属性,我们不考虑!

3)如果多条路由有同样的权重,优先选取具有最高本地优先级的路由。

根据LOCAL PREFERENCE 决定,越大越优!

4)如果多条路由有相同本地优先级,优先选取源自于本路由器上B G P的路由。

是指这样一种情况,同一个AS内有两个运行BGP的路由器,他们同时通告本AS的路由给其他AS,且他们之间运行了IBGP,那么在其中任意一台路由器上关于本AS的路由就会有两条,一条是自己产生的,一条是通过IBGP学到的,这时候路由器会优先选择本路由器上产生的本AS路由。(其实这条规则对于路由器上全局路由表的产生和路由抉择没有任何意义,因为可被通告的BGP路由必是已经存在于IGP路由当中的,由于IGP的管理距离比IBGP要小,所以路由器肯定是先选择IGP的!但是仅仅对于BGP路由的抉择来说,这点还是有必要的,我们就接受它吧)

5)如果没有路由是源,优先选取具有最短A S路径的路由。

这条也好理解,由于AS-PATH属性是必遵属性,每条BGP路由都会携带这样一个属性,当收到的属性以上四点都相同时,就会比较那条路由经过的AS数量,越少当然就越好!在我们的路由器当中,这点也可以用来影响外部AS对于本AS的路由选择,例如:

如果我们的路由器连接了两个AS:AS9299和AS9479,那么在其中一个EBGP邻居(9479)上应用如下命令:

route-map todigital permit 10

match as-path 10

set as-path prepend 18009

ip as-path access-list 10 permit ^$ neighbor 202.138.191.29 remote-as 9497 neighbor 202.138.191.29 route-map todigitel out 这些命令的意思是在通告本AS路由给202.138.191.29(AS9479)这个邻居的时候,在AS PATH属性当中预先填好一个值18009,那么这时外部INTERNET上其他AS通过AS9299学到的我们AS的路由所包含的AS PATH 属性当中就会出现两个18009,而通过AS9299学到的我们AS的路由所包含的AS PATH属性当中则只有一个18009。(个人认为这种应用方法比MED属性对于外部AS的路由选择的影响更大,因为MED只能影响邻近AS对本AS的路由选择,而利用PREPEND这个命令可以影响更多的AS对于本AS的路由选择)。下面是互联网上的一个例子:

*> 8.6.240.0/24 202.138.191.29 20 9497 701 7911 31846 31846 31846 31846 31846 i * 8.6.240.0/24 210.14.0.248 20 20 9299 2914 7911 31846 31846 31846 31846 31846 i 6)如果所有路径具有同样的A S长度,优先选取有最低源编码,(I G P < E G P < I N C O M P L E T E)的路由。

这条就是比较路由是通过什么样的方式学习到的,通过IGP学习到的被认为是更加可靠的,其次是EGP,再其次是INCOMPLETE.其中,通过IGP学到是指:通过NETWORK命令宣告的路由(记住,通过NETWORK学习到的路由必须首先存在于本路由器的IGP路由表中,不管是通过OSPF等动态路由协议学到还是通过静态路由协议学到的);EGP现在基本用不到了,在BGP路由表中也很难看到起源是EGP的路由了,故此条可以忽略,呵呵;而INCOMPLETE则表示该路由是通过REDISTRIBUTE纯动态注入到BGP路由表中的)

7)如果源编码相同,优先选取具有最低多出口区分(M E D)的路径。

这个属性可以用来影响邻接AS对于本AS的路由选择(例如本AS和邻近AS中的两个路由器建立了EBGP关系,那么一旦我通告给其中一个路由器上的MED值比另外一个要小,那么很有可能将会引导那个AS出来的流量全部从MED值低的那个路由器上出来,之所以说很有可能是因为首先要比较以上的六个属性先),但要注意的是本AS通过两个不同的AS学到的相同路由是不会比较MED属性的,在我们的路由器上,可以通过在BGP配置模式下用bgp always-compare-med命令强制比较来自不同AS的相同路由的MED属性。

8)如果M E D都相同,外部路径比内部路径优先选取。

这条是指若从IBGP邻居和EBGP邻居学到了相同路由,且以上六个属性又相同,那么就会优先选取从EBGP邻居学到的路由。

9)如果M E D都相同,优先选取通过最近I G P邻居的路径。

这条是指若从两个BGP邻居学到的路由上面八个属性都相同,那么就看到那个BGP邻居所走的IGP路由最短。例如,若从两个EBGP邻居学到相同路由,且以上八个属性相同,但是其中一个EBGP邻居是多跳MULTI HOP的,而另外一个是直连的,那么本路由器肯定会先选择直连的那个邻居通告的路由; 10)如果M E D仍都相同,优先选取具有最低B G P路由器I D的路径。

如果以上九条都相同了,那么路由器就会比较两个邻居的路由器ID了,呵呵,再比较不出来就见鬼了。

要注意的东东:

1:目前我司自研的路由器GAR,GER和T64E,T128由于平台的原因会把第8条放到第3条首先进行比较,也就是说EBGP学到的路由比IBGP学到的路由牛!据朱磊磊说以后的版本会调整成和以上所说的选路策略一样的。

2:另外一点需要注意的是:以上只是BGP算法所要求的,即必须在所有学到的到同一目的网段的BGP路由当中选出一条最优的路由!不论他是否真的有实际的意义(如第四条就没有什么意义),是否会安装到全局路由表中。

3:以上所说的BGP最优路由抉择并不是最全的,思科上面讲的条件更多,但其实对于平时应用来说上面的十条已经足够了。

下面再说说我自己对于BGP同步的理解:

同步这个东东关注的是当一台路由器收到IBGP邻居所通告的路由时候会怎么处理:

1:默认情况下,我司的路由器同步是打开的,在这种情况下,路由器会检查本路由器中通过IGP学到的路由有没有和通过IBGP邻居学到的同样的路由条目:若有,则路由器会把这些IBGP路由放入自己的路由表中,并通告给存在的EBGP邻居(IBGP邻居之间不转发IBGP路由);若没有,则对这些路由不做任何处理,这时候在路由器上关于这些IBGP路由的信息只能在sho ip bgp route看到,而另外两张表中是没有的。

2:当通过no synchronization命令关闭同步的时候,不论路由器有没有通过IGP学到相应的路由,都会把这些路由添加近自己的路由表中(IBGP邻居最好配置next-hop self),并通告给自己存在的EBGP邻居。

下面是我在网上搜到的一个实例,觉的比较透彻:

实验理解BGP同步

BGP基本理伦:

1、由eBGP邻居学来的信息肯定会传给另外的eBGP邻居。

2、由eBGP邻居学来的信息肯定会传给iBGP邻居。

3、由iBGP邻居学来的信息不会再传给另外的iBGP邻居。

4、由iBGP邻居学来的信息:

1)如果同步关了,会传给eBGP邻居

2)如果同步开了,先查找自己的IGP。如果IGP里面有这个网络,就把这个网络传给eBGP;如果IGP里面没有这个网络,就不会传给eBGP邻居。

由实验来帮助大家理解:

初始状态:R1、R2、R3、R4 同步都是关闭的。在所有路由器上,BGP表、路由表都有所有网络。在R1启动同步后

#R3、R2 BGP表、路由表没有变。#R3、R2 BGP表、路由表没有变。

#R1 BGP表没有变,但路由表少了3.3.3.0/24及192.168.0.0/24。原因:R1收到R2(iBPG)的BGP信息,因而在R1BGP表没有少以上网络。由show run看得出,在整个AS 200内是走RIP V2(IGP),而且没有宣告192.168.0.0/24,而网络3.3.3.0/24与R1不是同一个AS,因而R1的路由没有以上网络。#R4 BGP表和路由表都没有192.168.0.0/24及3.3.3.0/24网络。说明R1没有把BGP信息宣告给R4。因为没有了BGP信息,因而R4的路由表肯定不会有以上网络。

再说说BGP的负载均衡

其配置命令是和OSPF一样的。但个人最初不理解的是既然BGP最优路由抉择是一定要选出一条最优的路由,那么怎么实现负载均衡呢。实际上判断能否进行负载均衡的策略是和选最优路由不同的。

我们自研的设备进行负载均衡的策略如下:

首先都是EBGP路由 路由学到的邻居AS相同 路由的origin相同

路由的本地优先属性相同

路由的as-path长度相同,其中每一个AS都对应相同

这和思科是不同的,大家如果有兴趣可以看看思科的相关文档。

第四篇:bgP后期教案

r2(config)#access-list 1 per 192.168.1.0 0.0.0.255

r2(config)#route-map aaa per 10 r2(config-route-map)#match ip add 1

r2(config)#router bgp 100 r2(config-router)#nei 1.1.1.1 route-map aaa in 只从1.1.1.1接受192.168.1.0的路由

access-list 1 deny

192.168.1.0 0.0.0.255 access-list 1 permit any

route-map aaa permit 10 match ip address 1

router bgp 200 aggregate-address 192.168.0.0 255.255.248.0 suppress-map aaa summary-only as-set

聚合过程中过滤,ACL的permit做聚合,deny不做聚合放行明细,即使加上summary-only也会放行192.168.1.0

access-list 1 permit 192.168.1.0 0.0.0.255

route-map aaa permit 10 match ip address 1

router bgp 200 aggregate-address 192.168.0.0 255.255.248.0 summary-only neighbor 4.4.4.4 unsuppress-map aaa 把我本地抑制的路由传给4.4.4.4邻居,且是active

!route-map aaa permit 10 set local-preference 120

router bgp 200 aggregate-address 192.168.0.0 255.255.248.0 summary-only attribute-map aaa 聚合中修改汇总路由属性,注意尽量不和ACL连用 注意:聚合时候route-map 和att…map是同一个意思

access-list 1 deny

192.168.1.0 0.0.0.255 access-list 1 permit any!route-map aaa permit 10 match ip address 1 set metric 66

router bgp 200 neighbor 4.4.4.4 route-map aaa out 不向4.4.4.4通告192.168.1.0,但通告其他的且同时修改metric为66

access-list 1 permit 192.168.1.0 0.0.0.255 router bgp 200 distribute-list 1 in 只允许192.168.1.0的路由进来

access-list 1 permit 192.168.1.0 0.0.0.255

router bgp 200 nei 4.4.4.4 distribute-list 1 in 只允许从4.4.4.4收满足ACL的permit流量路由

?????????????????????????????????? Access-list 1 per 172.168.1.0 0.0.0.255 Acess-list 1 per 172.168.2.0 0.0.0.255 Route-map aaa per 10 Match add 1 Aggregate-add 172.168.1.0 255.255.255.0 as-set advertise-map aaa 只通告ACL匹配的路由,且保留AS号码

?????????????????????????????????

Prefix-list过滤:

Ip prefix-list aaa se 5 per 192.168.1.0/24 ge小于等于 le大于等于 Router bgp 100

Nei 1.1.1.1 prefix-list aaa in/out

过滤优先级

出方向:route-map过滤-----filter-list----------prefix-list 进方向:prefix-list-------filte-list-------route-map

BGP过滤表达式

1、字和元字符特殊字符

一个典型的AS_PATH过滤器如下所示:

ip as-path access-list 83 permit ^1_701_(_5646_|_1240).*

在关键字permit后面的字符串是一个正则表达式。

2、表1 关于AS_PATH访问列表的正则表达式元字符特殊字符

元字符特殊字符

匹配内容

.任何单一字符,包括空格

[ ]

在方括弧中罗列的任何字符

[^]

除了在方括弧中罗列的字符外任何字符(^必须放置在字符列表之前)

internal,r RIB-failure, S Stale Origin codes: iEGP, ?-incomplete

Network

Next Hop

Metric LocPrf Weight Path *> 192.168.1.0

13.1.1.1

0

7777 100 i *> 192.168.2.0

13.1.1.1

0

8888 100 i r3(config)#

*正常route-map 下面可以同时match很多个条件在执行一个set语句

R1: Ip as-path access-list 1 per _200$ 路由源自于200 Ip prefix-list aaa per 0.0.0.0/0

我只收默认路由

Route-map aaa per 10 Match as-path 1 Match ip add prefix-list aaa Set weight 200

Route-map aaa per 20 Match ip add prefix-list aaa Set weight 100

Router bgp 213

Nei r2 route-map aaa in

Nei r3 route-map aaa in

温和刷新

R1:

Router bgp 1` Nei 1.1.1.1 soft-reconfig inbound-------从1.1.1.1学到的路由放进自己内存,确保内存够大,只针对EBGP邻居生效

Clear ip bgp nei 1.1.1.1------这时不去1.1.1.1要路由了,从自己内存拿出来即可

Show ip bgp nei 1.1.1.1发现有type=2(soft)type=128(老的硬清)

Nsf技术

控制层重启,数据转发层继续转发数据,我要重启前告诉对方这段时间我不给你发keeplive报文了,你把你我之间的TCP保持住

Router bgp 100 Bgp graceful-restart restart-time--------你等我多长时间,我在这个时间重启完成

NSR技术-----我制造假象让对方认为我控制层没有问题

SSO GRES

实现两块引擎热备

BGP优化

1,bgp的keeplive调整

router bgp 100 time bgp 10 30

2,如何确定收敛已完成

r3#show ip bgp nei 13.1.1.1 BGP neighbor is 13.1.1.1, remote AS 100, external link

BGP version 4, remote router ID 1.1.1.1

BGP state = Established, up for 00:01:19

Last read 00:00:19, last write 00:00:19, hold time is 180, keepalive interval is 60 seconds

Neighbor capabilities:

Route refresh: advertised and received(old & new)

Address family IPv4 Unicast: advertised and received

Message statistics:

InQ depth is 0

OutQ depth is 0

Sent

Rcvd

Opens:

Notifications:

0

0

Updates:

0

Keepalives:

Route Refresh:

0

0

Total:

Default minimum time between advertisement runs is 30 seconds

For address family: IPv4 Unicast

BGP table version 2, neighbor version 2/0-------如果相同则说明收敛完成

Output queue size: 0

Index 1, Offset 0, Mask 0x2 update-group member

Sent

Rcvd

Prefix activity:

----

----

Prefixes Current:

0

1(Consumes 52 bytes)

Prefixes Total:

0

Implicit Withdraw:

0

0

Explicit Withdraw:

0

0

Used as bestpath:

n/a

Used as multipath:

n/a

0

Outbound

Inbound

Local Policy Denied Prefixes:

--------

-------

Bestpath from this peer:

n/a

Total:

0

Number of NLRIs in the update sent: max 0, min 0

Connections established 1;dropped 0

Last reset never Connection state is ESTAB, I/O status: 1, unread input bytes: 0 Connection is ECN Disabled, Mininum incoming TTL 0, Outgoing TTL 1 Local host: 13.1.1.3, Local port: 59918 Foreign host: 13.1.1.1, Foreign port: 179 Connection tableid(VRF): 0

Enqueued packets for retransmit: 0, input: 0 mis-ordered: 0(0 bytes)

Event Timers(current time is 0x31D68): Timer

Starts

Wakeups

Next Retrans

0x0 TimeWait

0

0

0x0 AckHold

0x0 SendWnd

0

0

0x0 KeepAlive

0

0

0x0 GiveUp

0

0

0x0 PmtuAger

0

0

0x0 DeadWait

0

0

0x0 Linger

0

0

0x0 ProcessQ

0

0

0x0

iss: 368904907 snduna: 368905010 sndnxt: 368905010

sndwnd: irs: 257648202 rcvnxt: 257648357 rcvwnd:

16230 delrcvwnd:

154 16282

SRTT: 125 ms, RTTO: 1409 ms, RTV: 1284 ms, KRTT: 0 ms minRTT: 128 ms, maxRTT: 308 ms, ACK hold: 200 ms Status Flags: active open Option Flags: nagle IP Precedence value : 6

Datagrams(max data segment is 1460 bytes): Rcvd: 7(out of order: 0), with data: 4, total data bytes: 154 Sent: 7(retransmit: 1, fastretransmit: 0, partialack: 0, Second Congestion: 0), with data: 4, total d ata bytes: 102 Packets received in fast path: 0, fast processed: 0, slow path: 0 fast lock acquisition failures: 0, slow path: 0

r3#show int f0/0 FastEthernet0/0 is up, line protocol is up

Hardware is DEC21140, address is ca00.0c1c.0000(bia ca00.0c1c.0000)

Internet address is 13.1.1.3/24

MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,reliability 255/255, txload 1/255, rxload 1/255

Encapsulation ARPA, loopback not set

Keepalive set(10 sec)

Half-duplex, 100Mb/s, 100BaseTX/FX

ARP type: ARPA, ARP Timeout 04:00:00

Last input 00:00:54, output 00:00:05, output hang never

Last clearing of “show interface” counters never

Input queue: 0/75/0/0(size/max/drops/flushes);Total output drops: 0

Queueing strategy: fifo

Output queue: 0/40(size/max)-----如果都是0说明没有更新流量,收敛完成 5 minute input rate 0 bits/sec, 0 packets/sec minute output rate 0 bits/sec, 0 packets/sec

packets input, 3764 bytes

Received 7 broadcasts, 0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

0 watchdog

0 input packets with dribble condition detected

packets output, 7439 bytes, 0 underruns

0 output errors, 0 collisions, 1 interface resets

0 babbles, 0 late collision, 0 deferred

0 lost carrier, 0 no carrier

0 output buffer failures, 0 output buffers swapped out

3修改MSS为1460,双方都要配置

Ip tcp path-mtu-discovery age-timer 30------得到的数值可以保留多久,没有这个参数默认10分钟

5,接口队列长度,防止ACK回来时候优于接口队列太小引起丢弃,接口丢弃5%的包,TCP性能下降50%,建议设置1000 Int f0/0 Hold-queue 1000 in Hold-queue 1000 out

6,bgp scanner扫描时间,每60秒检查下一条可达性,检查条件通告路由是不是满足条件,执行BGP惩罚机制,不建议修改

Rouer bgp 100

Bgp scan-time 50 r3(config)#do show ip bgp sum BGP router identifier 3.3.3.3, local AS number 200 BGP table version is 3, main routing table version 3 2 network entries using 240 bytes of memory path entries using 104 bytes of memory 3/2 BGP path/bestpath attribute entries using 372 bytes of memory 1 BGP AS-PATH entries using 24 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory Bitfield cache entries: current 1(at peak 1)using 32 bytes of memory BGP using 772 total bytes of memory BGP activity 2/0 prefixes, 2/0 paths, scan interval 60 secs Neighbor

V

AS MsgRcvd MsgSent

TblVer InQ OutQ Up/Down State/PfxRcd 13.1.1.1

0

0 00:30:14

7,EBGP通告时间,如果bgp路由表很大尽量不要修改,虽然可以增加收敛,但是CPU很快耗尽;ibgp默认0秒,EBGP默认30秒

r3(config)#router bgp 200 r3(config-router)#nei 13.1.1.1 advertisement-interval 30

r3#show ip bgp nei 13.1.1.1 BGP neighbor is 13.1.1.1, remote AS 100, external link

BGP version 4, remote router ID 1.1.1.1

BGP state = Established, up for 00:02:31

Last read 00:00:31, last write 00:00:31, hold time is 180, keepalive inter

Neighbor capabilities:

Route refresh: advertised and received(old & new)

Address family IPv4 Unicast: advertised and received

Message statistics:

InQ depth is 0

OutQ depth is 0

Sent

Rcvd

Opens:

Notifications:

0

0

Updates:

Keepalives:

Route Refresh:

0

0

Total:

Default minimum time between advertisement runs is 30 seconds

For address family: IPv4 Unicast

BGP table version 3, neighbor version 3/0

Output queue size: 0

Index 1, Offset 0, Mask 0x2 update-group member

Sent

Rcvd

Prefix activity:

----

----

Prefixes Current:

1(Consumes 52 bytes)

Prefixes Total:

Implicit Withdraw:

0

0

Explicit Withdraw:

0

0

Used as bestpath:

n/a

Used as multipath:

n/a

0

Outbound

Inbound

Local Policy Denied Prefixes:

--------

-------

Bestpath from this peer:

n/a

Total:

0

Number of NLRIs in the update sent: max 1, min 1

Minimum time between advertisement runs is 600 seconds

Connections established 2;dropped 1

Last reset 00:02:33, due to User reset Connection state is ESTAB, I/O status: 1, unread input bytes: 0 Connection is ECN Disabled, Mininum incoming TTL 0, Outgoing TTL 1 Local host: 13.1.1.3, Local port: 45132

Foreign host: 13.1.1.1, Foreign port: 179 Connection tableid(VRF): 0

Enqueued packets for retransmit: 0, input: 0 mis-ordered: 0(0 bytes)

Event Timers(current time is 0x2A3D30): Timer

Starts

Wakeups

Next Retrans

0

0x0 TimeWait

0

0

0x0 AckHold

0

0x0 SendWnd

0

0

0x0 KeepAlive

0

0

0x0 GiveUp

0

0

0x0 PmtuAger

0

0

0x0 DeadWait

0

0

0x0 Linger

0

0

0x0 ProcessQ

0

0

0x0

iss: 665239953 snduna: 665240146 sndnxt: 665240146

sndwnd: 16192 irs: 3831860571 rcvnxt: 3831860764 rcvwnd:

16192 delrcvwnd:

192

SRTT: 182 ms, RTTO: 1073 ms, RTV: 891 ms, KRTT: 0 ms minRTT: 48 ms, maxRTT: 300 ms, ACK hold: 200 ms Status Flags: active open Option Flags: nagle IP Precedence value : 6

Datagrams(max data segment is 1460 bytes): Rcvd: 10(out of order: 0), with data: 5, total data bytes: 192 Sent: 8(retransmit: 0, fastretransmit: 0, partialack: 0, Second Congestion: ata bytes: 192

Packets received in fast path: 0, fast processed: 0, slow path: 0 fast lock acquisition failures: 0, slow path: 0 r3#

限制从邻居收到的路与条目:

r1(config-router)#nei 1.1.1.1 maximum-prefix 10000 warning-only

超过10000条告警一次

r1(config-router)#nei 1.1.1.1 maximum-prefix 10000 restart 5

超过10000条,断开邻居5分钟

r1(config-router)#nei 1.1.1.1 maximum-prefix 10000 70

默认收到75%告警一次

Peer group 加快收敛 简化配置

一个的边界连接多个邻居,使用统一的策略,如不用这个特性,IOS为每一个邻居做单个的update更新,建立一个group将多个邻居放进一个group,一个update可为peer group所有邻居生效

限制:出去的update是一致的

IBGP和EBGP不能合起来用

创建一份:属性值通告,update-source的IP地址,EBGP多跳,MED5认证,邻居的权重值,filter-list和前缀列表过滤,route-map策略集合,通告给邻居

R7:

Router bgp 100 Nei ebgp

peer-group Nei ibgp

peer-group

Nei 17.1.1.1 peer-group ebgp

Nei 27.1.1.2 peer-group ebgp

Nei ebgp remote 200

Nei ebgp route-map aaa out/in

Nei ibgp remote-as 100 Nei ibgp up lo 1 Nei ibgp next-hop-seif Nei 88.1.1.1 peer-group ibgp

第五篇:BGP协议实现的单IP双线路

用BGP协议实现的单IP双线路

BGP(边界网关协议)协议主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由。中国网通与中国电信都具有AS号(自治系统号),全国各大网络运营商多数都是通过BGP协议与自身的AS号来互联的。使用此方案来实现双线路需要在CNNIC(中国互联网信息中心)申请IDC自己的IP地址段和AS号,然后通过BGP协议将此段IP地址广播到网通、电信等其它的网络运营商,使用BGP协议互联后网通与电信的所有骨干路由设备将会判断到IDC机房IP段的最佳路由,以保*网通、电信用户的高速访问。

使用此方案具体以下优点:

1. 服务器只需要设置一个IP地址,最佳访问路由是由网络上的骨干路由器根据路由跳数与其它技术指标来确定的,不会对占用服务器的任何系统资源。服务器的上行路由与下行路由都能选择最优的路径,所以能真正实现高速的单IP双线访问。

2. 由于BGP协议本身具有冗余备份、消除环路的特点,所以当IDC服务商有多条BGP互联线路时可以实现路由的相互备份,在一条线路出现故障时路由会自动切换到其它线路。

3. 使用BGP协议还可以使网络具有很强的扩展性可以将IDC网络与其他运营商互联,轻松实现单IP多线路,做到所有互联运营商的用户访问都很快。这个是双IP双线无法比拟的。虽然BGP方案是最好的解决方案但由于此方案需要IDC提供商的设备投入与带宽投入方面较大并且技术上较为复杂,所以目前国内采用此方案仅限于实力较强的专业IDC服务商。综上所述,以上各种双线实现的方式各有优缺点,双IP双线成本较低,但网络不够稳定并且占用大量的服务器资源,普通单IP双线路只是实现了部分双线路的效果所以访问速度不佳,CDN方式对静态网页效果很好但对交互性很强的网页效果不太理想,BGP单IP双线路解决了以上所有的问题是最好的实现方式但国内采用此种方案的IDC服务商较少,如果能将BGP单IP双线与CDN加速结合起来将会是最优的解决方案。目前全国已有不少合用BGP技术方案的数据中心,但大多为特殊客户提供服务,很少有针对普通用户和IDC商的机房。郑州市景安互联网数据中心,经过长达两年的技术积累和准备工作,在取得多方面支持下,申请成功了自己的IP段,和自制域,并与电信、网通达成BGP互联协议,在今年五月份正式向全国普通用户和IDC供应商推出了BGP服务器的机房,使国内最尖端的互联解决方案走向每个使用互联网的人。并在7月初实现了长宽的BGP,达到三线互通。在8月中旬与铁通的互通。景安单IP四网互通,您投资互联网的最佳方案。

下载BGP 协议原理总结word格式文档
下载BGP 协议原理总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    个人吐血BGP经验总结(上)

    BGP 简介 BGP 属于路径矢量协议 他和距离矢量路由协议的区别是: 距离矢量强调的是一个距离,即下一跳路由器,因为一台路由器下一跳地址总是他的邻居路由器 路径矢量强调的是一个......

    计算机网络原理一位滑动窗口协议

    计算机网络原理一位滑动窗口协议 一位滑动窗口协议是指发送窗口和接收窗口尺寸都是1。也就是说发送端在未接收到确认前只能发1数据帧;接收方也只能接收落在当前窗口内的1数据......

    关于金字塔原理一些总结

    关于金字塔原理一些总结 《金字塔原理》告诉我们,在写作时,要先有结论,然后再把结论的理由一层一层的展开,人们要想知道结论的理由就要往下看。其实,我们在平时的写作中也或多或......

    化工原理总结

    化工原理总结 张晓阳 2013-2015年度 第一章 流体流动 1.牛顿黏性定律 2.流体静力学的方程运用: (1)测压力:U管压差计,双液U管微压差计 (2)液位测量。 (3)液封高度的测量。 3.湍流和层......

    遥感原理总结(定稿)

    名词解释 1.遥感:遥感即遥远感知,是在不直接接触的情况下,对目标或自然现象远距离探测和感知的一种技术.一般指的是电磁波遥感.p1 2.电磁波:根据麦克斯韦电磁场理论,变化的电场......

    金融学原理总结

    金融学原理1-1 金融供求及其交易源于社会各部门的经济活动"2-1 货币与商品伴生,使商品交换发展的必然产物." 2-2 交换媒介是货币最基本的职能"3-1 一国国际收支逆差时,该国......

    数据库原理总结

    1关系的范式及规范化 范式是衡量关系模式优劣的标准。范式级别越高,其数据冗余和操作异常现象就越少。第一范式:如果一个关系模式R的所有属性都是不可分的基本数据项,则这个关......

    德育原理总结

    第一章德育的意义与任务 一、德育的意义 1. 加强德育使青少年健康成长的迫切需要。2. 加强德育是实现教育目标的需要(教育目标是培养德智体美劳全面发展的人,教育培养出来的......