首页 > 其他分享 >BGP的选路原则

BGP的选路原则

时间:2023-06-26 17:00:39浏览次数:42  
标签:邻居 原则 route BGP 选路 path 路由 属性

在学习BGP的选路原则前,我们需要先了解下BGP的属性

BGP属性

BGP的选路原则_原则

公认属性:所有BGP路由器都必须识别用支持的属性

公认必遵属性:BGP的Update消息中必须包含的属性

公认任意属性:不必存在于BGP的update消息中,可以根据需求自由选择的属性

可选属性:不要求所有BGP路由器都能识别的属性

可选过渡属性:BGP不能识别该属性,但是可以接受该属性并将其发布给其他邻居的属性

可选非过渡属性:BGP可以忽略包含该属性的消息并且不向它的邻居发布。

BGP的选路原则(优选原则)

BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:

1.该路由是到达目的地的唯一路由,直接优选。

2.对到达同一目的地的多条路由,优选优先级最高的。

3.对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。

一般来说,BGP计算路由优先级的规则如下:

1.丢弃下一跳不可达的路由。

2.优选Preference_Value值最高的路由(私有属性,仅本地有效)。

3.优选本地优先级(Local_Preference)最高的路由。

4.优选手动聚合>自动聚合>network>import>从对等体学到的。

5.优选AS_Path短的路由。

6.起源类型IGP>EGP>Incomplete。

7.对于来自同一AS的路由,优选MED值小的。

8.优选从EBGP学来的路由(EBGP>IBGP)。

9.优选AS内部IGP的Metric最小的路由。

10.优选Cluster_List最短的路由。

11.优选Orginator_ID最小的路由。

12.优选Router_ID最小的路由器发布的路由。

13.优选具有较小IP地址的邻居学来的路由。 

从上到下依次选择,匹配后就停止选择。


BGP的选路原则_BGP_02


1.next-hop属性,下一跳属性

这是公认必遵属性,BGP本身不产生路由,它只是路由的搬用工,所以BGP路由在传递的时候,需要携带下一跳地址,同时并根据实际情况修改下一跳地址。

从EBGP邻居收到的路由传到IBGP邻居时,下一跳不变,需要手动peer x.x.x.x next-hop-local来修改下下一跳

从EBGP邻居收到的路由传到EBGP邻居时,自动修改下一跳

从IBGP邻居收到的路由传递到EBGP邻居时,自动修改下一跳

从自身始发的路由传递给所有BGP邻居时都会自动修改下一跳地址

下一跳的取值:为本设备与邻居建立BGP邻居的peer ip的地址。

BGP的选路原则_选路_03


2.Preference_Value

这是协议首选值,华为的私有属性,只具有本地意义(本台路由器有效),缺省值是0,取值范围在0-65535,数值越大越优先。

针对发送给BGP邻居的路由,无法修改这个属性,因为只对本地有效,该属性不会在update报文中传递

针对接收的BGP邻居的路由是可以修改该属性


做个实验

现在去往192.168.1.0的路由可以有2条路12.1.1.1和4.4.4.4 现在优选的是12.1.1.1 那么现在我们修改下协议优选值来改变这个路径。

BGP的选路原则_选路_04

R2上修改从4.4传来的192.168.1.0的pre优选值就可以改变R2的选路路径

BGP的选路原则_BGP_05

BGP的选路原则_选路_06

BGP的选路原则_选路_07

我们在R2上可以看到pre的值已经改成1000 并且选路也选择了4.4的路径。

BGP的选路原则_BGP_08

但是从R4上看到从2.2传来的192.168.1.0的路由pre首选值还是0,没有修改.


3.local-preference本地优先级

这个本地指的是本AS自治区域内。

这是公认任意属性,该属性只能在一个AS内部传递,跨AS无效。缺省值是100,数值越大越优,取值范围是0-42.94亿(4字节)

从EBGP邻居收到的路由该属性默认是空,按照100对待。

做个实验

R1:
route-policy 1 permit node 10
 if-match ip-prefix 192.168.1.0
 apply local-preference 1000
#
route-policy 1 permit node 20

ip ip-prefix 192.168.1.0 permit 192.168.1.0 24

[AR1-bgp]peer 12.1.1.2 route-policy 1 export
//发送给12.1.1.2邻居的路由通过route-policy进行过滤

BGP的选路原则_选路_09

 

通过抓包发现,即使修改了路由条目的本地优先级数值,但是在跨越 AS传递时也不会携带这个属性,因此跨AS无效。

在R2上进行过滤

R2:
route-policy 1 permit node 10
 if-match ip-prefix 192.168.1.0
 apply local-preference 3000
#
route-policy 1 permit node 20

[AR2-bgp]peer 4.4.4.4 route-policy 1 export //发给4.4.4.4的路由条目进行过滤



BGP的选路原则_BGP_10

BGP的选路原则_BGP_11

可以看到R4中的2.2传来的路由就改成了30000,所以在IBGP中传递update报文时候,可以写到本地优先级的属性。

4.本地始发的路由优于邻居传来的路由

R1上把静态宣告进bgp,然后在R2上也宣告进去一个相同的静态。

那么在R2中可以看到,0.0的是本地始发的优于邻居传来的路由

BGP的选路原则_BGP_12

那么如果很多条都是本地始发的怎么办?

多条本地始发的路由,要遵循  手动聚合>自动聚合>network>import-route

自动聚合:只能自动聚合import-route进来的路由,并且这个明细路由必须是best路由。

自动聚合:summary automatic

手动聚合:aggregate  聚合后地址

5.AS_Path短的优先

这是一个公认必遵属性

作用:1.用来记录每条BGP经过的AS,在选路的时候优选个数最少的。

2.还可以用来防环。当路由器接受到BGP路由时候,会检查as-path的属性中是否携带了本AS,若携带则认为环路拒收。

BGP的选路原则_BGP_13

在R5上可以看到192.168.1.0经过了AS1--AS234 

针对IBGP邻居发出和发来的路由都可以进行修改,针对EBGP邻居发来和发出的路由都可以进行修改。

来做个实验

BGP的选路原则_选路_14

在AS1后面再添加一个AS8

BGP的选路原则_BGP_15

[AR2]ip ip-prefix 1 permit 192.168.1.0 24

[AR2]route-policy as-path permit node 10

[AR2-route-policy]if-match ip-prefix 1

[AR2-route-policy]apply as-path 5 5 5 5
                                        ^
Error:Incomplete command found at '^' position.
[AR2-route-policy]apply as-path 5 5 5 5 ?
  INTEGER<1-65535>  AS Number to be appended or replaced
  STRING<3-11>      <1-65535>.<0-65535>
  additive          Append to original As Number  \\增加
  overwrite         Overwrite original As Number   \\覆盖

[AR2-route-policy]apply as-path 5 5 5 5 additive 
[AR2-bgp]peer 4.4.4.4 route-policy as-path import 

BGP的选路原则_BGP_16

所以我们在使用as-path属性选路的时候,会在EBGP邻居接受和发送的时候进行修改,并且修改的as号必须要用本AS号,避免该路由条目在传递过程中被防环机制拒绝。

apply as-path none overwrite     //代表将这条路由的as-path属性清空
apply as-path 5 5 5 5 additive   //代表在原有as-path属性的基础上,在左侧新增as号
apply as-path 4 4 4 4 overwrite  //代表使用新增加的as号覆盖原有的as号
peer 45.1.1.5 allow-as-loop 1    //从该peer收到的路由条目中,as-path属性可以允许存在一个本地as
bestroute as-path-ignore         //忽略as-path优选条件,继续向下进行比较

6.Origin起源属性

这个也是个公认必遵属性

用来描述BGP路由时如何进入BGP的

      network import-route 手动聚合 自动聚合

    i:network

    ?:import-route 聚合

    e:从EGP引入来的(自然情况下见不到了)

    规则:i>e>?

7.同一AS的路由,优选MED值小

MED值可以理解为bgp的cost值或者是度量值

取值范围是0~42亿  越小越优

8.EBGP>IBGP

从EBGP邻居发来的路由优于从IBGP邻居发来的路由。




标签:邻居,原则,route,BGP,选路,path,路由,属性
From: https://blog.51cto.com/garrett/6555986

相关文章

  • 微服务CAP原则
    微服务CAP原则 CAP原则又称CAP定理,指的是在一个分布式系统中,存在Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),三者不可同时保证,最多只能保证其中的两者。 一致性(C):在分布式系统中的所有数据备份,在同一时刻都是同样的值(所有的节点无论何时访问都能......
  • BGP Filter
    ......
  • [QML]从零开始QML开发(二)QML开发,浅谈控件、槽函数、锚等基本概念。QML和C++怎么交互?贯
    [QML]从零开始QML开发(二)QML开发,浅谈控件、槽函数、锚等基本概念。QML和C++怎么交互?贯彻落实MVC原则先看代码:importQtQuick2.12importQtQuick.Window2.12importQtQuick.Controls2.5Window{visible:truewidth:320height:480title:qsTr("HelloW......
  • mysql索引及索引创建原则
    1.mysql索引及索引创建原则目录1.mysql索引及索引创建原则1.1.使用场景1.1.1.什么时候用索引1.1.2.索引的弱点1.1.3.MySQL会使用到索引的场景如下:1.2.查看表上的索引1.3.索引类型1.3.1.组合索引1.3.1.1.组合索引生效规则1.3.2.前缀索引1.3.3.函数索引1.3.4.唯一索......
  • BGP联盟内部的路由处理
    联盟的特点:1、在联盟内部将会保留联盟外部的next_hop属性。2、通告给联盟内的路由的MED属性在整个联盟范围内保留。3、LocalPreference属性在整个联盟范围内保留,而不只是在通告的成员AS内。4、在联盟内将成员的AS号加入AS_PATH中,但不会将联盟内的AS号通告到联盟之外。5、在联......
  • 扬州服务器租用,扬州BGP高防IP段43.248.184.X
    扬州高防BGP服务器,大带宽、高防御、低延迟、稳定流畅、免费测试。扬州数据中心介绍1、运河西路机房237号数据中心,机柜数量400-500个,位于4楼6楼,每层200多个标准机柜,机柜42U。2、维扬路107号数据中心,400-500个机柜,位于1楼2楼,每层200多个标准机柜。3、扬子江南路9号电信数据中心 电......
  • 设计模式的原则(一)
    相信自己,无论自己到了什么局面,请一定要继续相信自己。新的世界开始了,接下来,老蝴蝶带领大家学习一下设计模式。我们先了解一下设计原则一.设计模式一.一设计原则设计模式常用的七大原则:单一职责原则接口隔离原则依赖倒转(倒置)原则里氏替换原则开闭原则迪米特法则合成复用原则一.......
  • BGP线路是什么意思?服务器单线、双线、三线以及BGP线路有什么区别?
    随着互联网规模的不断扩大,服务器租赁托管也越来越流行,服务器租赁托管线路有:单线、双线、三线和BGP线路,那么它们有什么区别和联系呢?首先,我们理解它们的含义,再比较它们的优缺点单线:一般指电信单线路或联通单线路或移动单线路(单网卡单IP)。单线服务器是指IDC机房要么是联通线路接入,要......
  • CAP原则(CAP定理)、BASE理论
    一、CAP原则 CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),三者不可得兼。CAP原则是NOSQL数据库的基石。分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:一致性(C):在分......
  • 传奇三端互通手游服务器租用推荐,扬州高防BGP服务器140.210.20.x
    传奇三端互通手游热度在至今是只增不减的,越来越多的GM开始研究传奇三端互通,今天我就和你简单分享下传奇三端互通的引擎和大概开服成本,再详细分享下传奇三端互通手游服务器的配置要求,希望可以帮助到你!传奇三端互通即PC、安卓、IOS三端账号数据的互通,一个账号不管在什么设备都能同步,......