BGP基本原理

BGP基本原理

BGP概述

随着网络规模的不断扩大以及网络拓扑的复杂化,网络管理者需要对自治系统间的路由加强控制,于是BGP 协议应运而生了。目前BGP的版本是BGP.4,是运行在Internet上的唯一域间路由协议。
BGP 具有很多鲜明的特点,比如运行于TCP 协议之上、支持CIDR和路由聚合、可以灵活地控制和选择路由以及具备丰富的属性和路由策略等等。BGP是运行在自治系统之间的域间路由协议,与OSPF、RIP 等域内路由协议不同,其着重点不在于发现和计算路由,而在于路由的控制和选择

早期的ARPANet网络时代,网络规模有限,路由数量也不大,因此所有的路由器运行较简单的路由协议如RIP、 OSPF 就可以满足需求。在1980年左右,网络规模扩大导致路由数量极大增长,路由协议不堪重负。为了解决此问题,管理者提出了自治系统(AS, Autonomous System)的概念, 也可以叫做路由域。通过在域内运行内部路由协议以学习和维护路由,在域间运行另外一种路由协议进行域间的路由交换, 可以减少域内路由数量,并有利于路由管理。这种在路由域间路由交换与管理的需求,推动产生了外部网关协议(EGP, Exterior Gateway Protocol)。 EGP 的设计非常简单,只是单纯的发布网络可达信息,不做任何优选,也没有考虑环路避免, 以至于很快就不能满足网络管理的需求,被BGP (Border Gateway Protocol,边界网关协议)-所取代。

从1989年发布的第一个版本BGP-1(RFC 1105)起到目前为止BGP 经历了三个版本,分别是BGP-1 (RFC 1105)、BGP-2 (RFC 11 63)和BGP-3 (RFC 1267)。当前使用的版本是BGP-4(RFC1771,已更新至 RFC 4271)。 和EGP 相比,BGP 具有很多新的特征,比如可以进行路由优选、路由环路避免、高效率的传递机制、维护大量路由的能力、触发更新等。同时因为BGP具有丰富的属性,良好的路由控制能力,并且易于扩展,因此BGP成为目前唯一的用于自治系统间的动态路由协议。

BGP是种外部网关协议(EGP),与OSPF、RIP 等内部网关协议(IGP)不同,其重点关心的不在于发现和计算路由而在于AS之间传递路由信息以及控制优化路由信息。
BGP是一种“路径矢量”路由协议,其路由信息中携带了所经过的全部AS路径列表。这样,接收该路由信息的BGP路由器可以很明确的知道此路由信息是否源于自己的AS。如果路由源于自己的AS, BGP路由会丢弃此条路由,这样就可从根本上避免了AS之间产生环路的可能性。

为了保证BGP协议的可靠传输,其使用TCP 协议来承载,端口号为179。通过TCP协议天然的可靠传输机制、重传、排序等机制来保证BGP 协议消息交互的可靠性。
BGP 能够支持CIDR和路由聚合,可以将一些连续的子网聚合成较大的子网(突破了自然分类地址限制),从而可以在一定程度上控制路由表的快速增长,并降低了路由查找的复杂度。
在邻居关系建立后,BGP 路由器会将自己的全部路由信息通告给邻居;此后,如果路由表有变化,则只将增量部分发送给邻居。这样可以大大减少BGP传播路由所占用的带宽,以利于在Intemet上传播大量的路由信息,并降低路由器CPU 与内存资源的消耗。
与IGP不同,BGP最重要的特性是丰富的路由属性以及强大的路由过滤和路由策略。通过使用路由策略等方法来更改路由属性,或根据路由更新信息中的属性来实现路由过滤和路由策略,从而使BGP的使用者可以非常灵活地对路由进行选路和控制。

BGP基本术语

相关的BGP术语主要有:

BGP 发言者(BGP Speaker):运行 BGP 协议的路由器称为BGP 发言者(BGP Speaker),它接收或产生新的路由信息,并发布给其它BGP发言者。图中,RTA、RTB、RTD、RTE都运行了BGP 协议,它们都发送BGP 消息,所以都是BGP发言者。

Router ID(RID):Router ID是一个32比特无符号整数,用来在自治系统中唯一标识一台路由器。路由器如果要运行BGP协议,则必须存在Router ID。 Router ID可由管理员手工指定或由协议自动选举。上图中,RTB的RID是10.10.10.253,RTA的RID是192.168.0.253。

BGP对等体(BGP Peer):相互之间存在TCP连接、相互交换路由信息的BGP发言者之间互称对等体(Peer)。上图中 RTA 和RTB是BGP 对等体,RTB和RTD也是BGP对等体。

IBGP 对等体(Internal BGP peer):如果BGP对等体处于同一自治系统内,被称为IBGP 对等体。上图中RTB和RTD是IBGP对等体。

EBGP 对等体(External BGP peer): BGP 对等体处于不同自治系统时,被称为EBGP 对等体。上图中RTA和RTB是EBGP 对等体,RTD和RTE是EBGP 对等体。

注:BGP对等体也叫BGP邻居。EBGP对等体也叫EBGP邻居,IBGP对等体也叫IBGP邻居。

EBGP对等体

处于不同AS的BGP对体为EBGP对等体(或者EBGP 邻居)。尽管BGP连接是基于TCP的,但通常情况下,协议要求建立EBGP连接的路由器之间具有直连的物理链路。如果路由器之间不是物理直达,则可以配置BGP 以允许它们之间经过物理多跳而建立EBGP连接。上图中,RTA和 RTB是EBGP对等体,RTD 和RTE 是EBGP 对等体,它们都是物理直达的。如果要想在RTA与RTE之间建立EBGP连接,则必须在路由器 RTA和RTE 上增加配置以允许它们之间经过多跳而建立EBGP连接。

BGP 发言者从EBGP 对等体获得路由后,会向所有的BGP对等体(包括EBGP和IBGP 对等体)通告这些路由;与此同时,为了防止环路,它不会将学习到的路由再向原发布者发布。上图中,RTB 从对等体RTA 获得路由信息192. 168.0.0/16后,会把此路由信息发送给它IBGP 对等体RTD;同理,RTD也会把路由192.168.0.0/16发布给它的EBGP 对等体RTE,这样路由192.168.0.0/16 就能在AS间传递。但是,RTB 不能告诉RTA这条路由信息。

IBGP对等体

 处于同一个AS的BGP对等体为IBGP对等体(或者IBGP 邻居)。IBGP对等体不一定是物理直连,但是一定要TCP 可达。上图中RTA和RTC是IBGP 对等体,但是RTA与RTC并

不是物理上直连。

为了防止产生环路,BGP 协议规定,BGP发言者从IBGP获得的路由不向它的IBGP 对等体发布;另外,为了防止产生路由黑洞,协议还规定BGP发言者从IBGP 获得的路由是否发布给它的EBGP 对等体与是否同步相关。上图中,RTA从其IBGP 对等体RTB 获得的路由信息不向RTC发布。

IBGP全连接

TCP的可靠传输机制和滑动窗口机制可以确保承载于TCP之上的BGP可以可靠传递大量路由。但是,TCP连接是以点到点的单播方式来进行报文传输的,因此BGP连接只能是基于点到点的连接。同时,BGP 是种距离矢量型的路由协议,为了防止产生路由环路,协议规定BGP 发言者从IBGP 对等体获得的路由不能向其他的IBGP对等体发布。这样,在运行了BGP 协议的AS内,为了确保所有BGP路由器的路由信息相同,则需要使所有的IBGP路由器保持全连接。

在上图的IBGP 部分连接中,RTA从RTB接收到路由信息后,它不会将这些路由信息发布给另一个IBGP邻居RTC。这样,RTB 与RTC 就无法互相学习到路由。而在上图中的全连接方式下,RTB 与RTC 间有IBGP连按建立,所以可以互相学习路由。

BGP消息及状态机

BGP消息种类

BGP所有的消息的格式都是“消息头+消息体”的形式,其消息头的长度为19个字节。

BGP 消息共有五种类型:
Open 消息:Open 消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系并进行参数协商。内容包括使用的BGP版本号、自己所属的AS号、路由器ID、Hold Time 值、认证信息等信息。

Keepalive 消息:BGP 会周期性地向对等体发出Keepalive 消息,主要作用是让BGP 邻居知道自己的存在,保持邻居关系的稳定性:还有一个作用是对收到的Open 消息的回应。其消息格式中只包含消息头,没有附加其他任何字段。长度共19 个字节,消息中只有标记、长度、类型,不包括数据域。

Update 消息:Update 消息用于在对等体之间交换路由信息。它既可以发布可达路由信息,也可以撤销不可达路由信息, 一条Update 消息可以通告一类具有相同路径属性的可达路由,同时Update 消息还可以携带多条不可达路由。

Notification 消息:Notification 消息的作用为错误通知。BGP发言者如果检测到对方发过来的消息有错误或者主动断开BGP连接,都会发出 Notification 消息来通知BGP 邻居,并关闭连接且回到idle 状态;如果收到邻居发来的Notification 消息,也会将连接状态变为idle。Notfication 消息的内容包括错误代码和错误子代码及错误数据等信息。

Route-refresh 消息:Route-refresh用来要求对等体重新发送指定地址族的路由信息

BGP协议状态机

BGP协议有限状态机共包含有6个状态,他们之间的转换过程实际上描述了BGP对等体关系建立的过程:
ldle 状态(空闲状态):此状态为初始状态,不接受任何BGP连接,等待start事件的产生。如果有start 事件产生则系统开启ConnectRetry 定时器,向邻居发起TCP 连接,将状态变为Connect。

Connect状态(连接状态):在Connect状态,系统会等待TCP连接建立完成。如果TCP 状态为Established,则拆除ConnectRetry 定时器,并发送Open 消息,将状态变为OpenSent;如果TCP连接失败则重置ConnectRetry 定时器并转为Active状态;如果ConnectRetry timer expired(重传定时器)超时,则重新连接,仍处于Connect状态。

Active 状态(活跃状态):如果已经有启动事件但TCP连接未完成则处于Active状态。在Active 状态系统会响应ConnectRetry timer expired 事件,重新进行TCP连接,同时重置ConnectRetry 定时器,变为Connect 状态;如果与对方的TCP连接成功建立则发送Open 消息,将状态变为OpenSend,并清除ConnectRetry 定时器,重置HoldTime定时器。

OpenSent 状态(OPEN 消息已发送):此状态表明系统已经发出Open 消息,在等待BGP 邻居发给自己的Open 消息。如果收到BGP 邻居发来的Open消息,且没有错误的话则转向OpenConfim 状态,同时将HoldTime 定时器的值置为协商值,发送Keepalive 消息并置KeepAlive 定时器;如果有错误则发送Notfication 消息并断开连接。

OpenConfirm 状态(OPEN消息确认):此状态表明系统已经发出 Keepalive 消息,并等待BGP 邻居的Keepalive 消息。如果收到Keepalive 消息则转向 Established状态并重置HoldTime定时器:如果KeepAlive定时器超时则重置并发送KeepAlive 消息;如果收到notification 消息,则断开连接。

Established 状态(连接建立):如果处于Established 状态,则说明BGP连接建立完成, 可以发送Update 消息交换路由信息;如果 KeepAlive 定时器超时则重置KeepAlive定时器并发送KeepAlive 消息;如果收到Keepalive 消息则重置HoldTime 定时器;如果检测到错误或收到Notification 消息则断开连接。

另外,在除Idle 状态以外的其它五个状态出现任何错误的时候,BGP 状态就会退回到ldle状态。

BGP路由属性

BGP路由属性分类

BGP路由属性是路由信息所携带的一组参数,它对路由进行了进一步的描述,表达了每一条路由的各种特性。
路由属性是BGP 协议区分与其它协议的重要特征。BGP通过比较路由携带的属性,来完成路由选择、环路避免等工作。
BGP的每个属性都有特定的含义,具有不同的用途并可以灵活的应用;并且路由属性是基于“TLV”架构的,易于扩展。这些特性使得BGP的功能十分强大。

BGP 路由属性包含有以下四类:
公认必遵(Well-known mandatory):所有BGP路由器都必须能够识别这种属性,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错。
公认可选(Well-known discretionary):所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体倩况来选择。
可选传递(Optional transitive):在AS间具有可传递性的属性。BGP 路由器可以不支持此属性,但它仍然会接收带有此属性的路由,并通告给其他对等体。
可选非传递(Optional non-transitive) :如果BGP 路由器不支持此属性,该属性被忽略,且不会通告给其他对等体。

AS_PATH属性

ASPATR属性为公认必遵属性该属性域指示出该路由更新信息经过了哪些AS路径,主要作用是保证AS之间无环路

AS PATH属性按一定次序记录了某条路由从本地到目的地址所经过的所有AS号。当BGP 将一条路由通告到其他AS时,便会把本地AS号添加在AS PATH列表的最前面。收到此路由的BGP路由器根据AS_PATH属性就可以知道去目的地址所要经过的AS。离本地AS 最近的相邻AS号排在前面,其他AS号按顺序依次排列。如上图所示,路由先经过AS 65101,记录为99.0.3.0/22(65101);路由再经过AS 65330,记录为99.0.3.0/22(65330 65101)。

使用AS 路径属性的目的是保证无路由环路。通常情况下,当一个路由更新到达一个AS 的边界路由器时,如果边界路由器发现这个AS号码在路由的AS路径属性中已经存在,边界路由器会丢弃这个路由。

同时,AS_PATH属性也可用于路由的选择和过滤。在其他因素相同的情况下,BGP会优先选择AS_PATH 最短的路由(选择路径最短)的路由。比如在上图中,AS 100中的BGP路由器会选择经过AS 65330的路径作为到目的地址99.0.3.0/22的最优路由。

BGP发言者在向EBGP 邻居发送路由更新时修改AS_PATH属性,向IBGP 邻居发送时不修改该属性。

在某些应用中,可以使用路由策略来人为地增加AS路径的长度,以便更为灵活地控制BGP 路径的选择。例如,在上图中,可以在RTA上配置将路由 99.0.3.0/22发往RTC时,在其AS_PATH列表中再加上两个AS号65102、 65103。这样当这条路由经过AS 65330被传递到AS100的BGP路由器时,其AS_PATH列表为99.0.3.0/22(65330 65101 65102 65103),这样AS 100的路由器就会选择经过AS 65201的路径作为到目的地址99.0.3.0/22的最优路由,因为它的AS_PATH路径更短。

NEXT_HOP属性

下一跳(NEXT HOP)属性是公认必遵属性,它为BGP发言者指示了去往目的地的下一跳。BGP 的下一跳属性和IGP的有所不同,不一定就是邻居路由器的IP地址。下一跳属性取值情况分为以下几种:
BGP发言者把自己产生的路由发给所有邻居时,将把该路由信息的下一跳属性设置为自己与对端连接的接口地址;

BGP 发言者把从EBGP 邻居得到的路由发给IBGP 邻居时,并不改变该路由信息的下一跳属性,将从EBGP 得到的路由的NEXT HOP 直接传递给IBGP对等体。上图中,RTA通过IBGP向RTF 通告路由8.0.0.0/24的时,NEXT HOP为10.3.1.1;

BGP 发言者把接收到的路由发送给EBGP对等体时,将把该路由信息的下一跳属性设置为本地与对端连接的接口地址。上图中,RTB 通过 EBGP向 RTA 通告路由8.0.0.0/24的时,NEXT HOP为10.3.1.1:

对于可以多路访问的网络(如以太网或赖中继),如果通告路由器和源路由器的接口处于同一网段,则BGP 会向邻居通告路由的实际的来源。在上图中,RTC向EBGP 对等体RTB 通告路由 8.0.0.0/24时,则使用该路由的实际来源地址 10.2.1.3 作为NEXT HOP。

ORIGIN属性

源(ORIGIN)属性是公认必遵属性它指示该条路由的起源,也即这条路由是通过何种方式注入到BGP中的。它有以下三种类型:
IGP:优先级最高,说明路由产生于本AS内。
EGP:优先级次之,说明路由通过EGP学到。
Incomplete:优先级最低,它并不是说明路由不可达,而是表示路由的来源无法确定。例如,引入的其它路由协议的路由信息。

而一般情况下,把路由注入BGP 中有以下三种途径:
BGP 把通过network命令指定注入到BGP中的路由的ORIGIN 属性设置为IGP;

BGP 把通过EGP注入BGP中的路由 ORIGIN 属性设置为EGP;

BGP把由IGP 协议引入到BGP 中的路由的ORIGIN属性设置为Incomplete。
BGP 在其路由判断过程中会考虑ORIGIN属性来判断多条路由之间的优先级,具体来说,他因素相同的情况下,BGP 优先选用具有最小ORIGIN属性值的路面,即IGP 优先于EGP,EGP 优先于Incomplete。

LOCAL_PREF属性

本地优先(LOCAL PREF)属性为公认可选属性,用于在一个AS有多个出口的情况下,判断流量离开AS时的最佳路由。
当BGP的路由器通过不同的IBGP 对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择LOCAL PREF 属性值较高的路由
配置了LOCAL PREF 属性的BGP 发言者或收到带有LOCAL _PREF 属性的路由信息的BGP发言者只将该属性传给IBGP 邻居,因此该属性只在本AS内传播,不传递到AS外
上图所示网络中,从AS 65101 到达目的地8.0.0.0/24 有两个出口,分别为RTB和RTC。当AS 外路由经过RTB时,它被赋予本地优先值100;当经过RTC时,它被赋子本地优先值200。 因经过RTC的路由有较高的本地优先值,所以RTD会将到达目的地8.0.0.0/24的流量发送至RTC, 从而选择路由器 RTC 作为出口。
需要注意的是,LOCAL_PREF 的属性值仅仅会影响离开该AS的流量,不会影响进入该AS的流量
注意:在MSR路由器上,默认情况下LOCAL PREF 属性值为100.

MED(MULTI_EXIT_DISC)属性

MED (MULTL EXIT DISC) 属性为可选非传递属性。MED属性相当于IGP使用的度量值(metric), 用于EBGP邻居有多条路径到达本AS的情况,用途是告诉EBGP邻居进入本
AS 的较优路径
当一个运行BGP 的路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED 值较小者作为最佳路由。在上图所示网络中, RTB向RTA发送关于9.0.0.0/24的路由更新时携带MED 值为0;RTC向RTA发送关于9.0.0.0/24 的路由更新时携带MED值为100,BGP在优选这条路由的时候将 MED作为依据,MED 值最小的将被优先选中。这样,从RTA发向目的地址9.0.0.0/24的流量将被经由RTB而转发到RTD。
MED 属性仅在相邻两个AS之间传递,收到此属性的AS 不会再将其通告给任何第三方AS
通常情况下,BGP 只比较来自同一个AS的路由的MED属性值,不比较来自不同AS的MED 值。若一定要比较,则需进行特别的配置。

Preferred-Value属性

首选值(Preferred-value)为私有BGP 属性。通过为从不同从对等体接收的路由分配不同的Preferred-value值, 可以改变从指定对等体学到的路由的优先级。

系统会给所有从不同EBGP 对等体学来的路由分配一个初始Preferred-value 值0。如果为从某些对等体接收的路由配置了不同的Preferred-value值,那么在从不同邻居学来的相同目的地址/掩码的多条路由中,拥有最高Preferred-value值的路由将被选作到达指定网络的路由

Preferred-value 属性只在本地有效,不随路由信息传播。

如上图所示网络中,RTA有两个EBGP对等体,分别为RTB和RTC。为了提高从RTC 学习到的路由的优先级,在RTA上为从对等体RTC学来的路由分配Preferred-value值为100,而保持从RTB 学来的路由的Preferred-value 值为缺省值。那么RTA从RTB、RTC都学习到了目的网段9.0.0.0/24的路由,但是由于从对等体RTC学到的路由有较高的Preferred-value 值,因此RTA选择RTC 作为下一跳,从RTA发向目的地址9.0.0.0/24的流量将被经由RTC而转发到RTD。

BGP的选路规则

BGP协议对路由的处理流程

对于一个BGP路由器来说,其路由的来源有两种:从对等体接收和从IGP引入

BGP发言者从对等体接收到BGP路由后,其基本的操作过程为:
接收路由过滤与属性设置→路由聚合—>路由优选一>路由安装一>发布策略—>发布路由过滤与属性设置
接收路由过滤与属性设置是BGP 发言者从对等体接收到路由后的第一步工作。BGP 接收到路由后,根据配置的接收策略对接收到的BGP 路由进行匹配与过滤(根据路由携带的属性),并对其设置相关的属性。
完成了接收策略的匹配后,如果需要的话,BGP发言者将对路由进行聚合,合并其中的具体路由, 以此减少路由表的规模。
完成了具体路由合并后,BGP将对接收到的路由进行优选。对于到达同一目的地址的多条BGP路由,BGP 发言者只选择最佳的路由给自己使用,并将此最佳路由安装到IP路由表,成为有效路由。
在向BGP对等体发布路由的时候,BGP 发言者需要依据一定的发布策略,对已经安装到自己IP路由表的部分有效路由进行发布。
同时, BGP路由器需要执行发布路由过滤与属性设置,然后将通过过滤的BGP 路由发送给自己的BGP 对等体。

而对于IGP路由,则需要先经过引入策略的过滤和属性设置,将IGP路由表中的有效路由引入到BGP路由表中,然后才能进行发布路由过滤与属性设置,并将过滤后的路由发送给自己的BGP对等体。

BGP的路由优选

在MSR上,BGP 会丢弃下一跳不可达的路由。如果到相同目的有多条路由,BGP 会按照如下顺序选择最优路由:
  1. 首先丢弃下一跳(NEXT_HOP) 不可达的路由;
  2. 优选Preferred-value 值最大的路由;
  3. 优选本地优先级(LOCAL PREF) 最高的路由;
  4. 依次选择network命令生成的路由、import-route命令引入的路由、聚合路由;
  5. 优选AS路径(AS PATH) 最短的路由;
  6. 依次选择ORIGIN 属性为IGP、EGP、Incomplete 的路由;
  7. 优选MED 值最低的路由;
  8. 依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP 学来的路由;
  9. 优选下一跳度量值(Metric) 最低的路由;
  10. 优选CLUSTER LIST 长度最短的路由;
  11. 优选ORIGINATOR ID 最小的路由:
  12. 优选Router ID最小的路由器发布的路由;
  13. 优选IP地址最小的对等体发布的路由。

应用BGP负载分担时的选路

依据BGP选择路由的策略可以得知,BGP协议本身一定能够选出唯一的一条到达目的网段的最优路由,那么要实现BGP负载分担,就需要在路由器配置允许BGP进行负载分担。
BGP的负载分担与IGP 的负载分担有所不同:

  • IGP通过协议定义的路由算法,对到达不同目的地址的不同路由,根据计算结果,将度量值(metric)相等的(如RIP、OSPF)路由进行负载分担。
  • BGP本身并没有路由计算的算法,它只是一个选路的路由协议,因此,不能根据一个明确的度量值决定是否对路由进行负载分担,但BGP 有丰富的选路规则,可以在对路由进行 一定的选择后, 有条件地进行负载分担,也就是将负载分担加入到BGP的选路规则中去。

另外,在BGP中,由于协议本身的特殊性,它产生的路由的下 一跳地址可能不是当前路由器直接相连的邻居。常见的一个原因是, BGP之间发布路由信息时不改变下一跳。这种情况下,为了能够将报文正确转发出去,路由器必须先找到一个直接可达的地址(查找IGP建的路由表项),通过这个地址到达路由表中指示的下 一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP 路由依赖于这些路由指导报文转发。根据下 一跳地址找到依赖路由的过程就是路由迭代(recursion) 。路由器支持基于迭代的BGP负载分担,即如果依赖路由本身是负载分担的(假设有三个下一跳地址),则BGP也会生成相同数量的下一跳地址来指导报文转发。需要说明的是,基于迭代的BGP 负载分担并不需要命令配置,这一特性在系统上始终启用。

注意:
BGP只对 AS PATH属性、ORIGIN属性、 LOCAL PREF 和 MED 值完全相同的路由进行负载分担。
同为经过路由反射器反射的路由,或同为未经路由反射器反射的路由如果有多条到达同一目的地的路由,则根据配置的路由条数选择多条路由进行负载分担。

BGP路由的发布策略

BGP发布路由时采用如下策略:
存在多条有效路由时, BGP 发言者只将最优路由发布给对等体。如果配置了advertise-rib-active 命令,则BGP 发布IP路由表中的最优路由;否则,发布BGP路由表中的最优路由。
BGP 发言者只将自己使用的路由发布给对等体。
BGP 发言者从EBGP 获得的路由会向它所有BGP 对等体发布(包括EBGP 对等体和IBGP 对等体)。
BGP 发言者从IBGP 获得的路由不向它的IBGP对等体发布。BGP 发言者从IBGP 获得的路由会发布给它的EBGP 对等体。
BGP连接一旦建立,BGP发言者将把满足上述条件的所有BGP路由发布给新对等体。之后,BGP 发言者只在路由变化时,向对等体发布更新的路由。

注:本文参考H3C文档。

posted @ 2022-07-08 10:10  小蟋帅  阅读(3616)  评论(0编辑  收藏  举报