前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【BGP】面试及项目排错中必不可少的知识点

【BGP】面试及项目排错中必不可少的知识点

作者头像
Ponnie
发布2021-05-27 16:05:20
1.3K0
发布2021-05-27 16:05:20
举报
文章被收录于专栏:玉龙小栈玉龙小栈

当到达同一目的地存在多条路由时,BGP 依次对比下列属性来选择路由:

(1)优选协议首选值(PrefVal)最高的路由。协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。

(2)优选本地优先级(Local_Pref)最高的路由。如果路由没有本地优先级,BGP 选路时将该路由按缺省的本地优先级100 来处理。

(3)依次优选手动聚合路由、自动聚合路由、network 命令引入的路由、 import-route 命令引入的路由、从对等体学习的路由

(4)优选 AS 路径(AS_Path)最短的路由。

(5)依次优选 Origin 类型为 IGP、EGP、Incomplete 的路由。

(6)对于来自同一AS的路由,优选MED值最低的路由。

(7)依次优选 EBGP 路由、IBGP 路由、LocalCross 路由、RemoteCross 路由。

(8)优选到 BGP 下一跳 IGP 度量值(metric)最小的路由。

(9)优选 Cluster_List 最短的路由。

(10)优选 Router ID 最小的设备发布的路由。

如果路由携带 Originator_ID 属性,选路过程中将比较 Originator_ID 的大小

(不再比较 Router ID),并优选 Originator_ID 最小的路由。

(11)优选从具有最小 IP Address 的对等体学来的路由

BGP的选路规则,举例说明每条规则的具体使用

首先,路由的下一跳必须可达:

(1)prefer-value

首选值,默认为0,数值越大越优先,本地有效

(2)local-pre

本地优先级,数值越大越优先,可传递给IBGP邻居,如果没有配置默认为100

(3)本地始发

本地生成路由优先,aggregate手工生成聚合路由>summary automatic自动聚合路由>network命令宣告路由>import-route引入的路由>从邻居学习到的路由。

如上图,如果R1,R2都将10.1.12.0/24宣告进BGP的话,R2能收到R1发过来的10.1.12.0的路由,prefer-value和local-preference都一样,但是本地发起的优先,

所以bgp表中自己宣告的路由为最优路径。

(4)as-path

as-path最短的路由(单个AS计数为1)。AS_CONFED_SEQUENCE和AS_CONFED_SET(联盟内部AS号)不计入as-path长度。AS_SET长度计为1。(此条选路法则可以用命令忽略: bestroute as-path-ignore)

上图左侧路径路由传递过来as-path为200, 100 长度为2,右侧传递过来as-path为400, 长度为1。优选右侧传递过来的路由为最优路径。

(5)origin(i>e>?)

IGP>EGP>Incomplete

(6)med

数值越小越优先,默认为0。(bestroute med-none-as-maximum可以将med默认值改到最大4294967295)

默认只比较as-path中最近一个as号相同的路由,否则忽略此条。

compare-different-as-med命令后,强制比较不同as的路由med。

(7)ebgp>ibgp

ebgp>ibgp>localcross路由>remotecross路由

(8)优选BGP的下一跳在IGP中metric值小的

II、是否支持负载均衡<maxmum load-balance>

前8条一样,且as-path完全相同(都是聚合路由或都不是)。如果配置了多路径负载均衡的话,进行负载均衡(默认IBGP和EBGP路由都参与负载均衡)

(9)cluster-list

每一个cluster-id计数为1,长度最小的优先

(10) 优选Router ID最小的设备发布的路由。

1、如果路由携带Originator_ID属性,选路过程中将比较Originator_ID的大小(不再比较Router ID),并优选Originator_ID最小的路由

as外部路由,originator-id就是边界路由器5和6,这里虽然邻居R3路由器ID小,但是由于originator-id是4那边小,所以选择右侧过来的路由为最优。

2、router-id越小越优先。

(11)peer ip address

peer命令后的地址,地址小的发来路由优先。

如图,下方路由器与上面路由器的2个地址10.1.12.2和10.1.22.2分别建立2个邻居,2个链路igp开销也相同,由于这2个邻居其实是同一个路由器,所以路由器id一样,至此前面所有的法则都无法打破僵局,最终只能根据建邻居地址越低越优先,选择了10.1.12.2的邻居关系发来的BGP路由。

问题1:如图所示,控制AS10访问AR4的lo0,Local-preference可以怎么配置,有什么区别?

比如在R2上,

1.可以peer R4的import加上router-policy。改变local-preference,这样可以影响整个AS的选路;

2.可以peer R1的export加上router-policy,改变local-preference,这样影响AS内除R2外的所有路由器。

问题2:第3条选路原则和第5条选路原则有什么区别?

第3条选路原则,是针对自己产生的路由,当设备通过network和import产生相同的路由时,只会将network产生的路由发给BGP对等体。

第5条选路原则,是针对邻居产生的路由,路由器从两个不同的邻居处收到,通过network和import产生相同的路由,那么路由器会优选network产生的路由。

问题3:来自不同AS的相同BGP路由,会比较MED值吗?

不会比较MED。当然也可以通过配置一条命令:compare-different-as-med使设备即使从不同AS收到相同路由时,也会比较MED值;

问题4:BGP比较到哪一条就可以实现负载分担?

如果在前八条都一致,配置maximum load-balancing >=2 命令后,满足如下所有条件的多条BGP路由会成为等价路由,形成负载分担:

  1. 原始下一跳不相同。
  2. 都是聚合路由,或者都不是聚合路由;
  3. AS_Path属性完全相同;

问题5:为什么设计者要让EBGP优于IBGP?

此时属于选路规则第7条,证明上面的选路规则是一样的。

IBGP过来的路由是在本AS内传递了之后才传递给本台路由器的,(经过域内其他

设备)

EBGP邻居传来的路由是离目的网络更近的路径,

而就是说,这样设计,可以在一定程度上防止次优路径

问题6:为什么负载均衡要求as-path的内容一定要相同,为什么负载均衡默认不开启?

保证数据在传递的时候经过的AS相同,如果负载经过的AS不同,不同AS内的路径开销以及经过设备的数量不同,可能会导致次优路径;

BGP的路径属性不代表链路的开销及带宽情况(以及延迟和抖动);

环境描述:R1、R2、R3都属于AS10,R4、R5属于AS40,R1、R2、R3和R4建立

EBGP,R4和R5建立IBGP,R1、R2、R3上宣告了网络10.10.10.0/24,R4上的

maximum load-balancing为2,

问题:

此时R4会选择哪两条路由下放到路由表?

R4是否会把所有的路由都通告给R5?

R4会根据选路规则往下比,选择router-id小的那两条BGP路由放到路由表,R4

不会通告所有的路由给邻居,当R4使用命令maximum load-balancing后,R4会

把下一跳改为自己的更新源,所以只会传递一条最优的路由给R5。

问题7:如图所示,R1去往10.1.4.4/32的下一跳分别为R2(10.1.2.2)、R3(10.1.3.3),此时R1和R2之间运行ospf,cost=10。R1和R3之间运行rip,metric=1,那么R1去往10.1.4.4/32的下一跳是谁?

R1去往10.1.4.4/32时,下一跳为R3。

根据BGP选路规则,比较到第八条,metric值小的(不关心路由协议优先级)。

因此R1去往10.1.4.4/32时,下一跳为R3。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玉龙网络新知社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档