BGP工作原理(5)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BGP工作原理(5)相关的知识,希望对你有一定的参考价值。

一、BGP路由信息决策过程

1、Adj-RIB-In    存放从对等体接收到的更新

当从对等体接收到Update报文时,路由器会把Update报文存储到路由信息库RIB,并指明是来自哪个对等体的;

Update报文经过BGP输入策略引擎路由过滤或修改属性;

路由器执行路径选择算法,来为每一条前缀确定最佳路径;

2、Loc-RIB    存放经过输入策略引擎、路径选择处理过的路由

得出的最佳路径被存储到本地BGP RIB中,然后将loc-RIB的路由加载到IP-RIB中;

3、Adj-RIB-Out    存放经过输出策略引擎处理过的路由

Loc-RIB中的路由在被通告给其他对等体之前,必须通过输出策略引擎,只有那些成功通过输出策略引擎的路由,才会被安装到输出RIB中;

二、BGP选路规则

1、忽略下一跳不可达的路由;

2、优选prefer-value数值大的路由;                缺省值0

3、优选Local-preference数值大的路由;        缺省值100

----------------------------------------------------4、5、6三条规则用于比较自身产生的路由

4、聚合路由优于非聚合路由;                             

5、手工聚合路由优于自动聚合路由;

6、network发布的路由优于import发布的路由;

7、优选as-path长度短的路由;

8、IGP起源的路由优于EGP起源的路由优于未知起源的路由;

9、优选MED数值小的路由;     缺省值0,命令compare-different-as-med修改缺省比较行为

10、EBGP路由优于IBGP路由;

11、优选下一跳IGP开销小的路由;

============================满足以上条件可选实现负载分担;

12、优选cluster-list长度短的路由;            有的有,有的没有,没有的优先

13、优选Originator-ID或RouterID小的路由;        二选一,优先比较Originator-ID

14、优选对等体地址小的路由;

三、BGP的负载分担

1、BGP路由的负载分担

到达同一目的地通常会存在多条有效路由,但是BGP只将最优路由发布给对等体;

前11个属性完全相同的情况下,可通过命令maximum load-balancing ebgp|ibgp配置BGP负载分担的最大等价路由条数,实现下发多条不同下一跳的BGP路由到IP路由表中,缺省值为1,不进行BGP路由负载分担;

如果满足负载分担条件的BGP路由数大于定义的BGP负载分担规格,继续从第12条规则比较下去;

到达同一目的地的eBGP路由和iBGP路由不能形成负载分担,如果最优路由是ibgp路由,则只是ibgp路由形成负载分担;如果最优路由是ebgp路由,则只是ebgp路由形成负载分担;

缺省情况下,BGP只对AS-path属性完全相同的路由进行负载分担,也适用于联盟内部的自治系统之间,可通过命令load-balancing as-path-ignore配置路由在形成负载分担时不比较路由的as-path属性,但是该方式可能会引起路由环路;

2、下一跳路由的负载分担

BGP区别于IGP协议的一点是其下一跳地址可以是非直连路由的接口IP,非直连的下一跳在路由器上会执行迭代路由进行查找路由表,BGP依赖下一跳路由来转发数据,所以如果下一跳地址所对应路由在IP路由表中是负载分担的(IGP的ICMP),也就间接实现了BGP报文转发的负载分担;

BGP同步

在华为VRP平台中,BGP同步默认是关闭的,并且不能手动开启;

BGP同步指BGP路由器必须与IGP同步,AS内的路由器不仅要通过BGP学习到此路由,并且要从IGP协议学习到该路由,才会将该路由通告给eBGP邻居;

除了BGP同步外,避免路由黑洞问题的方法还有IBGP全互连、RR、联盟、MPLS VPN;

四、BGP路由及默认路由

1、生成BGP路由,BGP协议自身是不能发现路由的

(1)通过network方式生成来自IGP的路由

将IP路由表中存在的路由注入进BGP,注入的路由要和IP路由表中路由的前缀和掩码一致;

network方式注入的路由,origin属性为igp;

(2)通过import-route方式引入外部路由

import-route方式引入外部路由,origin属性为incomplete;

(3)通过aggregate进行聚合的路由

自动聚合

自动聚合只能对import引入的路由进行有类聚合,不能对network方式注入的路由进行自动聚合;

自动聚合通过命令summary automatic实现,只能在引入路由的设备上生效,缺省未启用;

手动聚合

手动聚合通过命令aggregate可以对BGP路由表中的路由进行聚合;

如果聚合路由中所包含的明细路由的origin属性各不相同,那么聚合路由的origin属性按照优先级incomplete>egp>igp;

聚合路由会继承原明细路由中的所有团体属性;

聚合时可以携带关键字:

detail-suppressed    缺省手工聚合后通告所有明细路由,此参数抑制明细路由;

suppress-policy        用来实现部分抑制,部分不抑制,匹配route-policy的明细才抑制;

as-set        聚合路由as-path继承成员明细路由的AS号,缺省聚合路由会丢失明细的AS信息;

与普通as-path的segment类型as-sequence不同的是,as-set类型是一种AS号的无序集合;

对明细路由做聚合时,把所有明细路由AS-Path由前向后相同的部分放在()的前面,其余部分去重后放入();

origin-policy             有条件的聚合,只有满足route-policy匹配条件时,才生成聚合路由;

attribute-policy        用来修改聚合路由的属性;

2、默认路由

如果一台设备在网络中有多个EBGP邻居,或者存在多个路由反射器,那么该设备将会从邻居或者反射器接收全网的路由,该设备也会向本AS内的IBGP对等体发布路由,这样会极大地增加路由表的容量,通过向对等体发布缺省路由,减少对等体路由表的数量。

通过命令peer x.x.x.x default-route-advertise向对等体发布一条默认路由,可以通过route-policy来设置默认路由的属性;

参数conditional-route-match-any/all用来设置匹配条件,如果满足条件则发布默认路由;

(1)any指当匹配任一条件时,发布默认路由;

(2)all指当匹配所有条件时,发布默认路由;
参考技术A BGP
是一种基于路径矢量的 EGP,主要用于 AS 之间的路由传递与控制,而 IGP 主要负责 AS 内部的路由发现和计算。 BGP 是基于 TCP
端口号 179 的路由协议,基于 TCP 的优点体现在:三次握手建立邻居的可靠机制;可以跨链路建立邻居关系; TCP 有确认重传机制,无需在
BGP 中完成; BGP 的认证由 TCP 完成的,认证字段在 TCP 头部的 option 中。
BGP的状态机
Idle 状态是 BGP 初始状态。在 Idle 状态下, BGP 拒绝邻居发送的连接请求。只有在收到本设备的 Start 事件后, BGP 才开始尝试和其它 BGP 对等体进行 TCP 连接,并转至 Connect 状态。
在 Connect 状态下, BGP 启动连接重传定时器(Connect Retry),等待 TCP 完成连接。
如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,并转至 OpenSent状态。
如果 TCP 连接失败,那么 BGP 转至 Active 状态。
如果连接重传定时器超时, BGP 仍没有收到 BGP 对等体的响应,那么 BGP继续尝试和其它 BGP 对等体进行 TCP 连接,停留在 Connect 状态。
在 Active 状态下, BGP 总是在试图建立 TCP 连接。
如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,关闭连接重传定时器,并转至 OpenSent 状态。
如果 TCP 连接失败,那么 BGP 停留在 Active 状态。
如果连接重传定时器超时, BGP 仍没有收到 BGP 对等体的响应,那么 BGP转至 Connect 状态。
在 OpenSent 状态下, BGP 等待对等体的 Open 报文,并对收到的 Open 报文中的 AS 号、版本号、认证码等进行检查
如果收到的 Open 报文正确,那么 BGP 发送 Keepalive 报文,并转至OpenConfirm 状态。
如果发现收到的 Open 报文有错误,那么 BGP 发送 Notification 报文给对等体
,并转至 Idle 状态。
在 OpenConfirm 状态下, BGP 等待 Keepalive 或 Notification 报文。如果收到Keepalive 报文,则转至 Established 状态,如果收到 Notification 报文,则转至Idle 状态。
在 Established 状态下, BGP 可以和对等体交换 Update、 Keepalive、 Routerefresh 报文和 Notification 报文。
如果收到正确的 Update 或 Keepalive 报文,那么 BGP 就认为对端处于正常运行状态,将保持 BGP 连接。
如果收到错误的 Update 或 Keepalive 报文,那么 BGP 发送 Notification 报文通知对端,并转至 Idle 状态。
Route-refresh 报文不会改变 BGP 状态。
如果收到 Notification 报文,那么 BGP 转至 Idle 状态。
如果收到 TCP 拆链通知,那么 BGP 断开连接,转至 Idle 状态。

BGP路由协议原理

参考技术A 我大概说一下吧
BGP用于AS之间,如电信各运营商之间都是使用BGP协议。
1、BGP不同于OSPF/IS-IS/RIP等协议,它是一种AS之间的路由选择协议,而OSPF/RIP等属于AS内部路由选择协议;
2、BGP是用来管理路由的,本身不能发现路由,而域内路由选择协议是可以及时发现路由的,并根据不同的算法计算路由。
3、BGP对路由的管理体现在:BGP有丰富的路由属性,如:下一跳、metric、优先级、团体等,通过这些属性控制路由在as内的出入。

BGP的几个工作原则:
1, 忽略下一跳不可达的路由
2, 忽略不同步的IBGP路由
3, 首选具有最大权重优先,思科私有。(local to router)
4, 首选具有最大本地优先级优先。(global within AS)
5, 首选具有始发本地的路由的路由器优先,(next hop=0.0.0.0)
6, 首选具有最短AS-PATH的路由。
7, 首选具有最小的源码的路由,IGP〈EBP〈incomplete
8, 当所有路由的AS号都相同的时候,首选MED最低的路由,在所有AS号码相同的时候比较MED
9, 首选具有EBGP〉联盟EBGP>IBGP
10,首选具有最近的IGP邻居路由器优先,metric
11 首选具有最老的路由优先(注意:现在这条基本不用)
12,首选具有最低ROUTER-ID的路由。(2个BGP地址不能建邻)
13,首选具有最低的neighbor的IP地址
赞同0|评论
参考技术B BGP的工作原理看书就行了,主要是了解BGP选路的11个规则,学好11个规则,BGP也算差不多了
1, 忽略下一跳不可达的路由
2, 忽略不同步的IBGP路由
3, 首选具有最大权重优先,思科私有。(local to router)
4, 首选具有最大本地优先级优先。(global within AS)
5, 首选具有始发本地的路由的路由器优先,(next hop=0.0.0.0)
6, 首选具有最短AS-PATH的路由。
7, 首选具有最小的源码的路由,IGP〈EBP〈incomplete
8, 当所有路由的AS号都相同的时候,首选MED最低的路由,在所有AS号码相同的时候比较MED
9, 首选具有EBGP〉联盟EBGP>IBGP
10,首选具有最近的IGP邻居路由器优先,metric
11 首选具有最老的路由优先(注意:现在这条基本不用)
12,首选具有最低ROUTER-ID的路由。(2个BGP地址不能建邻)
13,首选具有最低的neighbor的IP地址
参考技术C BGP(Border
Gateway
Protocol)是一种自治系统间的动态路由发现协议,
它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自
治系统号(AS)序列属性的路径可达信息,来构造自治区域的拓扑图,从而
消除路由环路并实施用户配置的路由策略。与OSPF
和RIP
等在自治区域内
部运行的协议对应,BGP
是一类EGP(Exterior
Gateway
Protocol)协议,
而OSPF
和RIP
等为IGP(Interior
Gateway
Protocol)协议。BGP
协议经常
用于ISP
之间。
BGP
协议从1989
年以来就已经开始使用。它最早发布的三个版本分别是
RFC1105(BGP-1)、RFC1163(BGP-2)和RFC1267(BGP-3),当前
使用的是RFC1771(BGP-
4)。
随着INTERNET
的飞速发展,路由表的体
积也迅速增加,自治区域间路由信息的交换量越来越大,影响了网络的性能。
BGP
支持无类别域间选路CIDR(Classless
Interdomain
Routing),可以有
效的减少日益增大的路由表。BGP-4
正迅速成为事实上的Internet
边界路由
协议标准。特性描述如下:
BGP
是一种外部路由协议,与OSPF、RIP
等的内部路由协议不同,其着眼
点不在于发现和计算路由,而在于控制路由的传播和选择最好的路由。
通过携带AS
路径信息,可以彻底解决路由循环问题。
为控制路由的传播和路由选择,它为路由附带属性信息。

以上是关于BGP工作原理(5)的主要内容,如果未能解决你的问题,请参考以下文章

网络层-第六节4:边界网关协议BGP的基本工作原理

k8s网络之Calico网络-工作原理

网络层-第六节4:边界网关协议BGP的基本工作原理

ospf的工作原理

华为路由器之BGP路由技术总结及配置命令

华为路由器之BGP路由技术总结及配置命令