BGP路由协议

您所在的位置:网站首页 as之间的路由协议 BGP路由协议

BGP路由协议

2024-06-10 03:14| 来源: 网络整理| 查看: 265

IGP和EGP

路由协议通常分为内部网关协议(IGP: Interior Gateway Protocol)和外部网关协议(EGP: Exterior Gateway Protocol)两大类。一般来讲,IGP 用于自治系统AS(Autonomous System)内部,EGP用于AS之间。最早的IGP是一种称为GGP(Gateway-to-Gateway Protocol)的路由协议,而最早的EGP 是一种称为EGP(Interior Gateway Protocol,注意,它与类别名EGP同名,现已被废除)的路由协议。

目前,常见的IGP包括RIP、OSPF、IS-IS 等,而常见的EGP只有BGP(Border Gateway Protocol)。

BGP概述(无类别路径矢量型协议)

BGP(Border Gateway Protocol,边界网关协议)是一种用于AS(Autonomous System,自治系统)之间的动态路由协议。AS是拥有同一选路策略,在同一技术管理部门下运行的一组路由器。

BGP用于在不同的自治系统(AS)之间交换路由信息。当两个AS需要交换路由信息时,每个AS都必须指定一个运行BGP的节点,来代表AS与其他的AS交换路由信息。通常是路由器来执行BGP。两个AS中利用BGP交换信息的路由器也被称为边界网关(Border Gateway)或边界路由器(Border Router)。

早期发布的三个版本分别是BGP-1(RFC 1105)、BGP-2(RFC 1163)和BGP-3(RFC 1267),当前使用的版本是BGP-4(RFC 1771,已更新至RFC 4271)。BGP-4作为事实上的Internet外部路由协议标准,被广泛应用于ISP(Internet Service Provider,因特网服务提供商)之间。

BGP虽然是一种动态路由协议,但它实际上本身并不产生路由、不发现路由、不计算路由,其主要功能是完成最佳路由的选择并在BGP邻居之间进行最佳路由的传递。BGP选择了TCP作为其传输协议,端口号是179。

BGP的基本概念 1、AS(自治系统)

(1)BGP的AS是指在一个组织机构管辖下拥有相同选路策略的IP网络,在一个自治系统中的所有路由器必须相互连接,运行相同的路由协议,BGP网络中的每个AS都被分配了一个唯一的AS号,用于区域不同的AS。(2)BGP的AS号分为2字节和4字节的AS号,2字节AS号范围1----65535的整数,4字节AS号范围2----4 294 967 295的整数(可以有不同的表示格式)

AS的类别 2字节AS号 4字节AS号 公有AS号 1---64511 1---64511,65536-----4294967295 私有AS号 64512---65535 64512---65535

中国电信163AS号(4134)、中国电信CN2(4809)、中国网通(9929)。

AS同时在BGP中还有关键的作用:最佳路由选择、避免环路、路由过滤。

2、BGP发言者(BGP Speaker)

发送BGP消息的路由器称为BGP发言者(BGP Speaker),它接收或产生新的路由信息,并发布(Advertise)给其它BGP发言者。当BGP发言者收到来自其它自治系统的新路由时,如果该路由比当前已知路由更优、或者当前还没有该路由,它就把这条路由发布给自治系统内所有其它BGP发言者。

运行了BGP协议的路由器,就是BGP发言者。

当R1、R2、R3、R5都运行了BGP协议,他们都发送BGP消息,这些路由器就是BGP发言者。

3、Router ID(RID)

用来在自治系统中唯一标识一台路由器。Router ID可以是手工配置或这是路由协议自动选举。

4、BGP对等体(BGP Peer)

相互交换消息的BGP发言者之间互称对等体(Peer),若干相关的对等体可以形成对等体组(Peer Group),BGP传输层协议TCP,所以在BGP对等体建立前,首先进行TCP连接,也表明对等体之间首先路由可达。也有人叫BGP邻居。

两个BGP发言者通过TCP建立邻居成功,就叫BGP对等体。

BGP邻居

邻居关系建立在TCP连接基础上,因此邻居不一定需要直连,可以通过IGP或静态邻居路由来提供TCP连接的可达性(区别于其他IGP) 邻居必须手动指定,而非自动建立(区别于其他IGP) 一台BGP路由器只能运行在一个AS内(区别于其他IGP) 邻居类型分为IBGP和EBGP 类型 备注 IBGP Internal/Interior BGP,内部BGP邻居,位于相同AS EBGP External/Exterior BGP,外部BGP邻居,位于不同AS

BGP邻居建立条件

邻居地址可达(有路由) 本地配置中的邻居所在AS号=邻居配置中的声明所在AS号 报文源IP=对方配置的邻居IP(这个源IP也叫更新源,也将作为路由的下一跳)。

BGP邻居建立优化:为了增加稳定性,通常建议使用回环口来建立邻居

更新源:建立邻居和邻居学习到的路由的下一跳 多跳:EBGP邻居建立默认需要直连,因为TTL=1,如果非直连,必须修改TTL

建立EBGP邻居关系时,一般使用直连口的IP地址。

建立IBGP邻居关系时,一般使用Loopback接口的IP地址。

命令 备注 peer 2.2.2.2 connect-interface loopback1 配置更新源 peer 2.2.2.2 ebgp-max-hop [2] 配置TTL,默认为1 5、IBGP对等体(Internal BGP Peer)

如果BGP对等体处于同一自治系统内,被称为IBGP对等体,IBGP对等体不一定要物理相连,但是要求TCP可达。为了防止环路,BGP协议规定BGP发言者从IBGP获得的路由不向它的IBGP对等体发布。从IBGP对等体获得的路由是否发布给它的EBGP对等体与BGP是否同步相关。另外为了防止路由黑洞的产生,协议还规定BGP发言者从IBGP获得的路由是否发布给它的EBGP对等体与BGP是否同步相关。

如果BGP路由器都在一个AS里,就叫IBGP对等体。

AR1和AR2、AR3和AR5它们之间都是EBGP对等体,都是有物理直连链路,如果在AR1和AR5上建立EBGP连接,则必须手工在AR1和AR2的路由器上设置多跳,允许它们经过多跳物理链路建立EBGP连接。

IBGP对等体不一定是物理直连,但是一定TCP可达,也就是建立IBGP对等体的路由必须要IGP协议互通。

AR2从EBGP对等体获得路由192.168.1.0/24后,会把此路由信息发送给它的IBGP对等体AR3,同理,AR3也会把这条路由信息发送给它的EBGP对等体AR5,这样的话,192.168.1.0/24就能再AS间传递。但是AR2不能再将这条路由发布给AR1。

6、IBGP全连接

BGP会话是基于TCP的点到点的单播链接,TCP的可靠传输机制和滑动窗口机制可以确保承载与TCP之上的BGP可以可靠传递大量路由。

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

7、EBGP对等体(External BGP Peer)

BGP对等体处于不同自治系统时,被称为EBGP对等体,一般物理直连。BGP Speaker从EBGP对等体获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP);同时为了防止环路,他不会将学习到的路由再向原发布者发布。

如果BGP路由器处在两个AS间,就叫EBGP对等体。

8、AS-PATH

BGP的路由可能会从一个AS发往另外一个AS,从而穿越多个AS,可能在经过转发之后,又回到了最初的AS之中,最终形成路由环路,出于防止环路的目的考虑,BGP在将路由发往其它AS(EBGP邻居)时,需要在路由中写上自己的AS号码,下一个AS收到路由后,除了保留之前的AS号码之外,也要添加上自己的AS号码,这样的写在路由中的AS被称为AS-path,如果BGP收到的路由的AS_PATH中包含自己的AS号码,就认为路由被发了回来,以此断定出现了路由环路。

BGP特性描述 BGP是一种外部网关协议(Exterior Gateway Protocol,EGP),与OSPF、RIP等内部网关协议(Interior Gateway Protocol,IGP)不同,它并不产生路由、不发现路由、不计算路由,其主要功能是完成最佳路由的选择并在 BGP邻居之间进行最佳路由的传递。 BGP采用了认证和GTSM的方式,保证了网络的安全性 BGP使用TCP作为其传输层协议(端口号179),与每个BGP对等体形成独特的基于单播的连接 并支持BGP于BFD联动,提高了网络的可靠性。 BGP支持CIDR(Classless Inter-Domain Routing,无类别域间路由)。 路由更新时,BGP只发送更新的路由,采用触发增量更新方式,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。 BGP路由通过携带AS路径信息彻底解决路由环路问题。 AS之间:BGP通过携带AS路径信息来标记途经的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路 AS内部:BGP在AS内学到的路由不再通告给AS内的BGP邻居,避免了AS内产生环路 BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。 BGP拥有丰富的选路参考属性,灵活组合可以实现路由的优选和避免路由环路,能够高效率的传递路由和维护大量的路由信息; BGP易于扩展,能够适应网络新的发展。 BGP提供了路由聚合和路由衰减功能用于防止路由震荡,有效提高了网络的稳定性。 BGP在邻居数目多、路由量大且大部分邻居具有相同的出口策略的场景下,使用按组打包技术极大的提高了打包发包性能。 使用BGP的三大理由

1、大量路由需要承载,IGP只能容纳千条,而BGP可以容纳上万条

2、支撑MPLS/VPN的应用,传递客户VPN路由。

3、策略能力强,可以很好的实现路由决策和数据控制。 

BGP建链交互过程报文

BGP的消息类型

1、消息头格式

BGP有5种消息类型:Open、Update、Notification、Keepalive和Route-refresh。这些消息有相同的报文头,其格式如图1所示。

BGP消息的报文头格式

主要字段的解释如下:

Marker:16字节,用于标明BGP报文边界,所有比特均为“1”。

Length:2字节,BGP消息总长度(包括报文头在内),以字节为单位。

Type:1字节,BGP消息的类型。其取值从1到5,分别表示Open、Update、Notification、Keepalive和Route-refresh消息。其中,前四种消息是在RFC 1771中定义,而Type为5的消息则是在RFC 2918中定义的。

2. Open

Open消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。Open 仅负责邻居关系的建立,正常进收发一次即可;携带route-id;其消息格式如图2所示。

BGP Open消息格式

主要字段的解释如下:

Version:BGP的版本号。对于BGP-4来说,其值为4。

My autonomous system:本地AS号。通过比较两端的AS号可以确定是EBGP连接还是IBGP连接。

Hold time:保持时间。在建立对等体关系时两端要协商Hold Time,并保持一致。如果在这个时间内未收到对端发来的Keepalive消息或Update消息,则认为BGP连接中断。

BGP identifier:BGP标识符。以IP地址的形式表示,用来识别BGP路由器。

Opt Parm Len(Optional Parameters Length):可选参数的长度。如果为0则没有可选参数。

Optional parameters:可选参数。用于多协议扩展(Multiprotocol Extensions)等功能。

3、Update

Update消息用于在对等体之间交换路由信息。它既可以发布可达路由信息,也可以撤销不可达路由信息。其消息格式如图3所示。

一条Update报文可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI(Network Layer Reachable Information,网络层可达信息)字段中,Path Attributes字段携带了这些路由的属性,BGP根据这些属性进行路由的选择;同时Update报文还可以携带多条不可达路由,被撤销的路由放在Withdrawn Routes字段中。

BGP Update消息格式 

主要字段的解释如下:

Unfeasible routes length:不可达路由字段的长度,以字节为单位。如果为0则说明没有Withdrawn Routes字段。

Withdrawn routes:不可达路由的列表。

Total path attribute length:路径属性字段的长度,以字节为单位。如果为0则说明没有Path Attributes字段。

Path atributes:与NLRI相关的所有路径属性列表,每个路径属性由一个TLV(Type-Length-Value)三元组构成。BGP正是根据这些属性值来避免环路,进行选路,协议扩展等。

NLRI(Network Layer Reachability Information):可达路由的前缀和前缀长度二元组。

触发路由更新可以在BGP下network或删除network

Update的优先级一般为100

4、Notification

当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。其消息格式如图4所示。

BGP Notification消息格式

主要字段的解释如下:

Error code:差错码,指定错误类型。

Error subcode:差错子码,错误类型的详细信息。

Data:用于辅助发现错误的原因,它的内容依赖于具体的差错码和差错子码,记录的是出错部分的数据,长度不固定。

5、Keepalive

BGP会周期性地向对等体发出Keepalive消息,用来保持连接的有效性。其消息格式中只包含报文头,没有附加其他任何字段。

 6. Route-refresh

BGP Route-refresh消息格式

Route-refresh消息用来要求对等体重新发送指定地址族的路由信息。其消息格式如图5所示。

主要的字段解释如下:

AFI:Address Family Identifier,地址族标识。

Res.:保留,必须置0。

SAFI:Subsequent Address Family Identifier,子地址族标识。

 当执行refresh bgp all 时会发送Route-refresh报文

BGP的路由属性 1、路由属性的分类

BGP路由属性是一组参数,它对特定的路由进行了进一步的描述,使得BGP能够对路由进行过滤和选择。

事实上,所有的BGP路由属性都可以分为以下四类:

公认必须遵循(Well-known mandatory):所有BGP路由器都必须能够识别这种属性,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错。

公认可选(Well-known discretionary):所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来选择。

可选过渡(Optional transitive):在AS之间具有可传递性的属性。BGP路由器可以不支持此属性,但它仍然会接收带有此属性的路由,并通告给其他对等体。

可选非过渡(Optional non-transitive):如果BGP路由器不支持此属性,该属性被忽略,且不会通告给其他对等体。

BGP路由几种基本属性和对应的类别如下表所示。

属性名称 类别 ORIGIN 公认必须遵循 AS_PATH 公认必须遵循 NEXT_HOP 公认必须遵循 LOCAL_PREF 公认可选 ATOMIC_AGGREGATE 公认可选 AGGREGATOR 可选过渡 COMMUNITY 可选过渡 MULTI_EXIT_DISC (MED) 可选非过渡 ORIGINATOR_ID 可选非过渡 CLUSTER_LIST 可选非过渡 2、几种主要的路由属性

(1)  源(ORIGIN)属性

ORIGIN属性定义路由信息的来源,标记一条路由是怎么成为BGP路由的。它有以下三种类型:

IGP:优先级最高,说明路由产生于本AS内。

EGP:优先级次之,说明路由通过EGP学到。

incomplete:优先级最低,它并不是说明路由不可达,而是表示路由的来源无法确定。例如,引入的其它路由协议的路由信息。

(2)  AS路径(AS_PATH)属性

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

AS_PATH属性

路由到达一个目的地所经过的一系列自制系统号码的有序列表,用于防止环路。BGP发言者在向EBGP邻居发送路由更新时修改AS_PATH属性,向IGP邻居发送时不修改该属性。

通常情况下,BGP不会接受AS_PATH中已包含本地AS号的路由,从而避免了形成路由环路的可能。

同时,AS_PATH属性也可用于路由的选择和过滤。在其他因素相同的情况下,BGP会优先选择路径较短的路由。比如在图6中,AS 50中的BGP路由器会选择经过AS 40的路径作为到目的地址8.0.0.0的最优路由。

在某些应用中,可以使用路由策略来人为地增加AS路径的长度,以便更为灵活地控制BGP路径的选择。

通过AS路径过滤列表,还可以针对AS_PATH属性中所包含的AS号来对路由进行过滤。

(3)下一跳(NEXT_HOP)属性

BGP的下一跳属性和IGP的有所不同,不一定就是邻居路由器的IP地址。

下一跳属性取值情况分为三种,如所示。

1、BGP发言者把自己产生的路由发给所有邻居时,将把该路由信息的下一跳属性设置为自己与对端连接的接口地址;

2、BGP发言者把接收到的路由发送给EBGP对等体时,将把该路由信息的下一跳属性设置为本地与对端连接的接口地址;

3、BGP发言者把从EBGP邻居得到的路由发给IBGP邻居时,并不改变该路由信息的下一跳属性。如果配置了负载分担,路由被发给IBGP邻居时则会修改下一跳属性。

(4)MED(MULTI_EXIT_DISC)

MED属性仅在相邻两个AS之间交换,收到此属性的AS一方不会再将其通告给任何其他第三方AS。

MED属性相当于IGP使用的度量值(metrics),它用于判断流量进入AS时的最佳路由。当一个运行BGP的路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。如图8所示,从AS 10到AS 20的流量将选择Router B作为入口。

MED属性

通常情况下,BGP只比较来自同一个AS的路由的MED属性值。

(5)本地优先(LOCAL_PREF)属性

LOCAL_PREF属性仅在IBGP对等体之间交换,不通告给其他AS。它表明BGP路由器的优先级。

LOCAL_PREF属性用于判断流量离开AS时的最佳路由。当BGP的路由器通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择LOCAL_PREF属性值较高的路由。如图9所示,从AS 20到AS 10的流量将选择Router C作为出口。

LOCAL_PREF属性

 

(6) 团体(COMMUNITY)属性

团体属性用来简化路由策略的应用和降低维护管理的难度。它是一组有相同特征的目的地址的集合,没有物理上的边界,与其所在的AS无关。公认的团体属性有:

INTERNET:缺省情况下,所有的路由都属于INTERNET团体。具有此属性的路由可以被通告给所有的BGP对等体。

NO_EXPORT:具有此属性的路由在收到后,不能被发布到本地AS之外。如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他子AS。

NO_ADVERTISE:具有此属性的路由被接收后,不能被通告给任何其他的BGP对等体。

NO_EXPORT_SUBCONFED:具有此属性的路由被接收后,不能被发布到本地AS之外,也不能发布到联盟中的其他子AS。

(7)BGP身份验证:会在所有的包内启用

命令 备注 peer 2.2.2.2 password cipher 123 配置身份验证,MD5形式

 

 双方密码需要一致,密码默认基于MD5计算后转发

# bgp 65009 router-id 2.2.2.2 peer 1.1.1.1 as-number 65008 peer 1.1.1.1 ebgp-max-hop 255 peer 1.1.1.1 connect-interface LoopBack1 peer 1.1.1.1 password cipher q7@b)0n2rL939O4.`(ZGb_C# # ipv4-family unicast undo synchronization peer 1.1.1.1 enable # return

如果一端配置password,一端未配置的话,显示的状态为connect

BGP的选路规则 一、BGP选择路由的策略

1、首先丢弃下一跳(NEXT_HOP)不可达的路由;

2、优选Preferred-value值最大的路由;

3、优选本地优先级(LOCAL_PREF)最高的路由;

4、优选聚合路由;

5、优选AS路径(AS_PATH)最短的路由;

6、依次选择ORIGIN类型为IGP、EGP、Incomplete的路由;

7、优选MED值最低的路由;

8、依次选择从EBGP、联盟、IBGP学来的路由;

9、优选下一跳Cost值最低的路由;

10、优选CLUSTER_LIST长度最短的路由;

11、优选ORIGINATOR_ID最小的路由;

12、优选Router ID最小的路由器发布的路由。

13、优选地址最小的对等体发布的路由。

CLUSTER_ID为路由反射器的集群ID,CLUSTER_LIST由CLUSTER_ID序列组成,反射器将自己的CLUSTER_ID加入CLUSTER_LIST中,若反射器收到路由中CLUSTER_LIST中包含有自己的CLUSTER_ID,则丢弃该路由,从而避免群内环路的发生。

如果配置了负载分担,并且有多条到达同一目的地的路由,则根据配置的路由条数选择多条路由进行负载分担。

二、应用BGP负载分担时的选路

在BGP中,由于协议本身的特殊性,它产生的路由的下一跳地址可能不是当前路由器直接相连的邻居。常见的一个原因是:IBGP之间发布路由信息时不改变下一跳。这种情况下,为了能够将报文正确转发出去,路由器必须先找到一个直接可达的地址(查找IGP建立的路由表项),通过这个地址到达路由表中指示的下一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP路由依赖于这些路由指导报文转发。根据下一跳地址找到依赖路由的过程就是路由迭代(recursion)。

目前系统支持基于迭代的BGP负载分担,即如果依赖路由本身是负载分担的(假设有三个下一跳地址),则BGP也会生成相同数量的下一跳地址来指导报文转发。需要说明的是,基于迭代的BGP负载分担在系统上始终启用。

在实现方法上,BGP的负载分担与IGP的负载分担有所不同:

IGP是通过协议定义的路由算法,对到达同一目的地址的不同路由,根据计算结果,将度量值(metric)相等的(如RIP、OSPF)路由进行负载分担,选择的标准很明确(按metric)。

BGP本身并没有路由计算的算法,它只是一个选路的路由协议,因此,不能根据一个明确的度量值决定是否对路由进行负载分担,但BGP有丰富的选路规则,可以在对路由进行一定的选择后,有条件地进行负载分担,也就是将负载分担加入到BGP的选路规则中去。

BGP只对AS_PATH属性、ORIGIN属性、LOCAL_PREF和MED值完全相同的路由进行负载分担。

BGP负载分担特性适用于EBGP、IBGP以及联盟之间。

如果有多条到达同一目的地的路由,则根据配置的路由条数选择多条路由进行负载分担。

BGP负载分担示意图

Router D和Router E是Router C的IBGP对等体。当Router A和Router B同时向Router C通告到达同一目的地的路由时,如果用户在Router C配置了负载分担(如balance 2),则当满足一定的选路规则后,并且两条路由具有相同的AS_PATH属性、ORIGIN属性、LOCAL_PREF和MED值时,Router C就把接收的两条路由同时加入到转发表中,实现BGP路由的负载分担。Router C只向Router D和Router E转发一次该路由,AS_PATH不变,但NEXT_HOP属性改变为Router C的地址,而不是原来的EBGP对等体地址。其它的BGP过渡属性将按最佳路由的属性传递。

IBGP和IGP同步

同步是指IBGP和IGP之间的同步,其目的是为了避免出现误导外部AS路由器的现象发生。

如果一个AS中有非BGP路由器提供转发服务,经该AS转发的IP报文将可能因为目的地址不可达而被丢弃。如图11所示,Router E通过BGP从Router D可以学到Router A的一条路由8.0.0.0/8,于是将到这个目的地址的报文转发给Router D,Router D查询路由表,发现下一跳是Router B。由于Router D从IGP学到了到Router B的路由,所以通过路由迭代,Router D将报文转发给Router C。但Router C并不知道去8.0.0.0/8的路由,于是将报文丢弃。

BGP协议状态机包含6个状态

1、Idle状态(空闲状态):是初始状态,不接受任何BGP连接,等待start时间的产生。如果有start事件产生则系统开启ConnectRetry定时器,向邻居发起TCP连接,将状态变为Connect。

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

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

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

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

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

BGP的工作过程

1、基于IGP协议实现IP可达

2、指定邻居关系,通过三次握手,建立TCP的会话通道。之后所有BGP的数据报都将基于TCP会话通道来进行传递。

3、使用open报文和keepalive报文进行邻居关系的建立。之后将邻居关系收集到一张表中—邻居表。

4、通过update报文传递路由信息。传递的路由条目信息中主要包含目标网络号,掩码信息,以及各种路径属性。之后,设备会将所有自己发出的以及收到的路由信息记录在一张表中—BGP表。

5、之后将BGP表中的最优路径加载到路由表中。

6、收敛完成后,BGP将周期使用keeplive报文进行保活。保活时间默认为180S,周期发送时间默认为保活时间的1/3,即60S。

7、若出现错误信息,将使用notification报文进行告警。8,若发生结构突变,则将使用update报文进行触发更行。

Idle状态:初始空闲状态,不接受任何BGP连接,等待start事件的产生。

Connect状态:连接状态。

Active状态:活跃状态。

Opensent状态:OPEN消息已发送。

OpenConfirm状态:OPEN消息确认。

Established状态:连接建立

类型 备注 Idle 初始,路由器查找路由表,是否有到达邻居的路由 Connect 发起TCP连接,等待TCP连接完成 Active TCP连接失败,继续尝试TCP连接 Open Sent TCP连接成功,已发送Open包 Open Confirm 已收到对方正确的Open包,如果没有收到,会进入Active Established 收到Keepalive后,邻居建立完成,开始传递路由

 

 

 

参考文献:

https://blog.csdn.net/qq_57637328/article/details/126220869

https://blog.csdn.net/zzj244392657/article/details/124317582?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-124317582-blog-124805022.pc_relevant_landingrelevant&spm=1001.2101.3001.4242.1&utm_relevant_index=3

https://blog.csdn.net/weixin_53308294/article/details/119459448?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4-119459448-blog-124805022.pc_relevant_landingrelevant&spm=1001.2101.3001.4242.3&utm_relevant_index=7

https://blog.csdn.net/zzj244392657/article/details/124317582?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-124317582-blog-124805022.pc_relevant_landingrelevant&spm=1001.2101.3001.4242.1&utm_relevant_index=3

https://blog.csdn.net/u012451051/article/details/125397172?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-125397172-blog-124805022.pc_relevant_landingrelevant&spm=1001.2101.3001.4242.2&utm_relevant_index=4

https://blog.csdn.net/zzj244392657/article/details/124317582?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-124317582-blog-124805022.pc_relevant_landingrelevant&spm=1001.2101.3001.4242.1&utm_relevant_index=3

https://blog.csdn.net/weixin_45804031/article/details/125017607

https://blog.csdn.net/zzj244392657/article/details/124317582

https://blog.csdn.net/luochu000/article/details/115285440

https://blog.csdn.net/zzj244392657/article/details/124317582?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-124317582-blog-124805022.pc_relevant_landingrelevant&spm=1001.2101.3001.4242.1&utm_relevant_index=3

https://blog.csdn.net/qq_35002542/article/details/127735788?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EAD_ESQUERY%7Eyljh-1-127735788-blog-115285440.pc_relevant_3mothn_strategy_and_data_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EAD_ESQUERY%7Eyljh-1-127735788-blog-115285440.pc_relevant_3mothn_strategy_and_data_recovery&utm_relevant_index=2

https://blog.csdn.net/weixin_45804031/article/details/125017607

https://blog.csdn.net/xiaobai729/article/details/124951694

https://blog.csdn.net/zzj244392657/article/details/124317582

https://blog.csdn.net/qq_41959899/article/details/107882922/

https://blog.csdn.net/zhongbeida_xue/article/details/125206975

https://blog.csdn.net/qq_53012201/article/details/125880515



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3