网络原理之使用BGP属性(MED等属性)进行路由选路


前言

 我在前一篇博客的 【2.2.2 实验二】中使用BGP实现了两个AS之间 的通信,但是为什么 AR1的路由表中访问AR5 不走AR3,确走的AR2 ?(原因是因为对于等价路由 2.2.2.2 的地址 比 3.3.3.3 小,所以优先级高)
在这里插入图片描述
在这里插入图片描述
 那么能不能通过手动配置来控制走哪一条路呢?本篇博客将对这些属性进行学习。

一、BGP选路

1.1 BGP路由表

 了解路由表与BGP路由表的关系:

  • 当BGP设备学习到去往同一个目的网络的多条BGP路由(路径)时,设备将这些路由都装载到BGP路由表,并在这些条目中进行路由优选,最终决策出最优(Best )的路由,将该BGP路由加载到全局路由表中,作为数据转发的依据。
  • 当存在多路径时,BGP只会将其选择出来的最优路由通告给其他对等体。
  • BGP定义了一系列路由优选规则,从而使得设备能够在多条路由中选择出最优的路由。BGP在选择路由时严格按照先后顺序比较路由的属性,如果通过当前的属性就可以选出最优路由,BGP将不再进行后面的比较。
查看BGP路由表命令:
display bgp routing-table

 R1 执行 查看BGP路由表命令:
在这里插入图片描述
 红框中的大于号表示 R1 1.1.1.1 到 5.5.5.5的最佳路径是 2.2.2.2。


路由器的路由表 与 BGP路由表之间的关系

  • BGP路由表中存的是所有有可能有效的路由,像图中的 2.2.2.2 3.3.3.3。
  • 最终路由器会选择一条最佳的路由,放到路由器的路由表当中,如 2.2.2.2,最终路由转发是从这张表中取的。
    在这里插入图片描述

1.2 BGP选路规则

 BGP路由优选规则也被称为BGP选路规则,不同厂商的设备在BGP选路上存在细微差异。

  1. 如果此路由的下一跳不可达,忽略此路由;
  2. Preferred-Value 值 数值越高越优先,华为私有属性,仅本地有意义;
  3. Local-Preference值最高的路由优先
  4. 聚合路由(路由汇总后的路由)优先于非聚合路由;
  5. 本地手动聚合路由的优先级高于本地自动聚合的路由;
  6. 本地通过Network命令引入的路由的优先级高于本地通过 Import-route命令引入的路由;(Network 和 Import-route 都是BGP宣告路由的方式)
  7. AS-Path 的长度最短的路径优先
  8. 比较Origin属性,IGP优于EGP,EGP优于Incomplete;
  9. 选择MED较小的路由;
  10. EBGP路由优于IBGP路由;
  11. BGP优先选择到BGP下一跳的IGP度量值最低的路径;

当以上全部相同,则为等价路由,可以负载分担(注意:AS_Path必须一致,当负载分担时,以下3条原则无效)

  1. 比较Cluster_list长度,短者优先;
  2. 比较Originator_ID(如果没有Originator_ID,则用Router_ID比较),选择数值较小的路径;
  3. 比较对等体的IP地址,选择IP地址数值最小的路径。(也就是前言中,为什么走的是 2.2.2.2 的原因)

1.3 路径属性


二、BGP选路三大属性及实验

 都是根据比较值/长度大小来选路的。

选路常用命令:

display bgp peer #查看bgp的对等信息Established为成功建立
display bgp routing-table #查看bgp的路由表信息

[R3] route-policy lop permit node 10  #创建名为lop的路由策略

<R3>reset bgp all  #重启BGP,需要在用户模式
<R3>refresh bgp all #软复位,需要在用户模式
<R3>refresh bgp all import/export  #软复位,需要在用户模式

2.1 根据Local-Preference控制选路

介绍

Local-Prefernce属性介绍:

  • 优先级值越大越优先;
  • Local-Preference 为公认自由属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径;
  • Local-Preference 属性只能在 IBGP对等体间传递,而不能在 EBGP对等体间传递,如果在 EBGP对等体间收到的路由的路径属性中携带了 Local-Preference,则会触发 Notifacation报文,造成会话中断;
  • 但是可以在AS边界路由器上使用 Import 入站方向 / export 出站方向 的策略来修改 Local-Preference属性值。也就是在收到路由之后,在本地为路由赋予 Local-Preference。
【Local-Prefernce策略命令】

[R3] route-policy lop permit node 10  #创建名为lop的路由策略
[R3-route-policy] apply local-prefernce 222  #设置本地优先级为222,默认是100
[R3-route-policy] quit

[R3] bgp 200
#在R3上对R4执行出站 export方向的路由策略,使得其在收到对方通告的路由后,在路由的Local-Prefernce的属性值改为222, 使得R4优选R3通告的路由;如果此路由策略在R4配置则方向为入站import
[R3-bgp]peer 4.4.4.4 route-policy lop export

2.1.1 出站配置

如果想要在上图中,实现 指定 R1 经过 R3 → R4 到达R5(现在是 R1 经过 R2 → R4 到达R5)。则可以在R3的出站做配置:
在这里插入图片描述

【R3】
[R3]route-policy lop permit node 10
[R3-route-policy]apply local-preference 200 #设置本地优先级200
[R3-route-policy]q

[R3]bgp 200
#在R3的出站配规则 出站方向是 4.4.4.4,lop为上面定义好的【路由策略名】
[R3-bgp]peer 4.4.4.4 route-policy lop export 

<R3>refresh bgp all export  #软复位,等待一会
#执行软复位后 对等体4.4.4.4 的State是 Established 

 此时在 R4 执行 dis bgp routing-table,结果如下:
在这里插入图片描述
  可以看到BGP路由表中, 4.4.4.4 往 1.1.1.1 方向首先走的是 3.3.3.3,因为 LocPrf 是 200,比 2.2.2.2 默认的 100 优先级高。

  然后再执行 R4 : dis ip routing-table,结果:
在这里插入图片描述
 可以看到 最终路由表中,走的也是 3.3.3.3 (没配置之前的是2.2.2.2)。

2.1.2 入站配置

 上面R3 R4,是在R3的出站规则配置的,也可以在R4的入站规则进行配置。
在这里插入图片描述

#先把之前R3配置的出规则去掉
[R3]bgp 200
[R3-bgp]un peer 4.4.4.4 route-policy lop export

<R3>refresh bgp all export 

【R4】
[R4]route-policy localp permit node 10
[R4-route-policy]apply local-preference 210
[R4-route-policy]q

[R4]bgp 200
[R4-bgp]peer 3.3.3.3 route-policy localp import 
q
q
refresh bgp all import

dis bgp routing-table

执行结果:同 出站配置 的配置,效果一样。

2.2 使用AS-Path属性控制选路

介绍

 AS-Path属性介绍:

  • 长度越少越优先;
  • 为公认必遵属性,是前往目标AS网络的路由经过的AS号列表;
  • 确保路由在EBGP对等体之间传递无环;
  • 路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号;路由被通告给IBGP对等体时,AS_Path不会发生改变。
#使用route-policy修改BGP路由的AS-Path:
apply as-path xxx additive   #在已有As_Path基础上追加xxx
apply as-path xxx overwrite  #将已有AS_Path值替换(覆盖)成xxx
apply as-path none overwrite #清空路由的AS-Path属性

Bestroute as-path-ignore
#用来配置BGP在选择最优路由时忽略AS路径属性。配置该命令后,BGP将不比较AS路径的长度。

 可以使用 route-policy 在EBGP对等体之间修改BGP路由的AS-Path属性,从而影响BGP路由的优选。

2.2.1 入站配置

 将R2的AS-Path加长,降低其优先级,让R1 到 R4 走R3。而 R2 的AS-Path首先是从R1 给的(R1把自己的AS号先给R2和R3),

也要选出站和入站

 由于R5 的AS-Path是R2或R3给R1的,所以R1是入站,R2是出站。

在R1上配置

[R1]route-policy as permit node 10
[R1-route-policy]apply as-path 100 100 100 additive 
[R1-route-policy]q

[R1]bgp 100
[R1-bgp]peer 2.2.2.2 route-policy as import 
[R1-bgp]q
[R1]q

<R1>refresh bgp all import 
<R1>dis bgp routing-table 

结果:
在这里插入图片描述
3.3.3.3 的 Path/Ogn 比 2.2.2.2 的短,所以优先级高。

2.2.2 出站配置

 先在R1上把BGP上去掉之前的入站配置,在R2上进行出站配置。

【R1】
[R1-bgp]un peer 2.2.2.2 route-policy as import
<R1>refresh bgp all import
#执行完后R1的BGP路由表还原了

【R2】
[R2]route-policy asp permit node 10
[R2-route-policy]apply as-path 123 456 additive 
[R2-route-policy]q
[R2]q

<R2>sys
[R2]bgp 200
[R2-bgp]peer 1.1.1.1 route-policy asp export 
[R2-bgp]q
[R2]q

<R2>refresh bgp all export

  R1 执行:dis bgp routing-table
在这里插入图片描述
效果和出站配置一样。

2.3 使用MED属性控制选路

介绍

  • 值越小越优先;
  • 为可选非传递属性,是一种度量值。
  • 一般情况下,BGP设备默认只比较来自同一AS(不同对等体)的路由的MED属性值。可以通过配置 compare-different-as-med 命令来允许系统比较来自不同AS中对等体的路由的MED值;
  • 也可以选择是配置 出站规则还是入站规则。

2.3.1 出站配置

 对于下图中的两个AS系,已经进行了基础的BGP、OSPF等配置。
在这里插入图片描述
 R1执行 dis bgp routing-table 命令,发现,R1到R4走的是 2.2.2.2(R2)。
在这里插入图片描述
 实验要求:通过修改 MED 优先级,让R1搭配R4走,3.3.3.3(R3)。
命令如下:

【R2】
[R2]route-policy med permit node 10
[R2-route-policy]apply cost + 500   #值越小越优先

[R2]bgp 200
[R2-bgp]peer 1.1.1.1 route-policy med export 

<R2>refresh bgp all export  #软复位,重新加载BGP路由表

 R1再次执行 dis bgp routing-table 命令,发现,因为2.2.2.2的MED比3.3.3.3的大,所以R1到R4走的是 3.3.3.3。(R3)。
在这里插入图片描述

R1入站配置:

[R1]route-policy medp permit node 10
[R1-route-policy]apply cost + 600

[R1-bgp]peer2.2.2.2 route-policy medp import
  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
BGP(Border Gateway Protocol)是一种用于在互联网中交换路由信息的协议。BGP选路规则是根据BGP路由表中的路由信息以及BGP协议的一些特性来选择最优的路径。以下是BGP选路规则的详细解释: 1. 路由前缀长度匹配(Longest Prefix Match):BGP路由器会根据目的地IP地址的最长匹配前缀来选择路由。比如,如果有两个路由前缀,一个是10.0.0.0/16,另一个是10.1.0.0/24,当目的地IP地址为10.1.2.1时,BGP路由器会选择第二个路由前缀。 2. 路径属性的优先级:BGP路由器会依次检查AS路径长度、ORIGIN属性MED(Multi-Exit Discriminator)属性的值,来选择最优的路径。 - AS路径长度:BGP路由器会选择AS路径长度最短的路径。比如,如果有两条路径,一条经过3个AS,另一条经过4个AS,BGP路由器会选择经过3个AS的路径。 - ORIGIN属性:如果AS路径长度相同,BGP路由器会根据ORIGIN属性来选择路径。ORIGIN属性有三个值:IGP、EGP和Incomplete。IGP表示路由信息是由本地路由协议(比如OSPF或RIP)学习到的,EGP表示路由信息是由BGP协议学习到的,Incomplete表示路由信息的来源不确定。BGP路由器会优先选择IGP路径,其次是EGP路径,最后是Incomplete路径。 - MED属性:如果AS路径长度和ORIGIN属性相同,BGP路由器会根据MED属性的值来选择路径。MED属性是用于在同一个AS中选择最近的出口路由器的。BGP路由器会选择MED属性值最小的路径。 3. 路由器ID的优先级:如果上述属性都相同,BGP路由器会选择Router ID(路由器ID)最小的路径。 以上就是BGP选路规则的详细解释。在实际应用中,这些规则可能会有所变化,但大体上都是以这些规则为基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值