BGP 技术连载:BGP 选路规则

简介: 【4月更文挑战第23天】

1、优选协议首选值(PrefVal)

优选协议首选值(PrefVal)是华为设备上的一个属性,用于衡量 BGP 路由的优先级。该属性仅在本地有效,不会在 BGP 路由传播中被传递。在 BGP 设备上,网络管理员可以配置每条路由的优选协议首选值,以指定其在路由选择中的优先级。

当 BGP 路由器收到多条路由到达同一目的地时,它们会根据一系列规则进行选择,其中包括优选协议首选值。具有较高优选协议首选值的路由将被视为更优先的路径。这意味着,即使其他条件相同,拥有更高优选协议首选值的路由也将优先被选择。

网络管理员可以通过配置 BGP 路由器上的优选协议首选值来影响路由选择过程。通过为每条路由指定适当的优选协议首选值,管理员可以控制路由的优先级,从而影响流量的路径选择。这为网络管理提供了更多的灵活性,可以根据实际需求进行定制化的路由选择策略。

2、优选本地优先级(Local_Pref)

本地优先级(Local_Pref)是 BGP 路由器上的一个属性,用于指定路由的优先级。该属性仅在本地有效,不会在 BGP 路由传播中被传递。如果路由未指定本地优先级,则会使用默认值,通常为100。通过设置不同的本地优先级,管理员可以影响 BGP 路由选择中的路径优先级。

当 BGP 路由器收到多条路由到达同一目的地时,它们会根据一系列规则进行选择,其中包括本地优先级。具有较高本地优先级的路由将被视为更优先的路径。因此,在路由选择过程中,BGP 路由器倾向于选择具有最高本地优先级的路由,以确保流量走最优路径。

网络管理员可以通过执行命令来修改 BGP 路由的默认本地优先级。通过执行 default local-preference 命令,管理员可以指定新的默认本地优先级值,从而影响未指定本地优先级的路由的选择。这为管理员提供了更多的灵活性,可以根据网络需求定制化路由选择策略。

3、优选本地生成的路由

本地生成的路由是指由 BGP 路由器本身生成的路由,而不是从邻居路由器学习到的路由。这包括通过 network 命令或 import-route 命令引入的路由,以及手动聚合路由和自动聚合路由。

在 BGP 路由选择过程中,本地生成的路由优先级高于从邻居学来的路由。这意味着,当存在相同目的地的多条路由时,BGP 路由器会优先选择本地生成的路由作为最佳路径。

在本地生成的路由中,聚合路由的优先级高于非聚合路由。聚合路由可以通过手动聚合和自动聚合两种方式生成。

手动聚合路由是通过 aggregate 命令手动配置的路由聚合,而自动聚合路由是通过 summary automatic 命令自动聚合的路由。在路由选择中,手动聚合路由的优先级高于自动聚合路由。

通过 network 命令引入的路由的优先级高于通过 import-route 命令引入的路由。这意味着,当存在相同目的地的多条路由时,BGP 路由器会优先选择通过 network 命令引入的路由作为最佳路径。

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

AS_Path 是 BGP 路由更新中的一个字段,用于记录路由经过的 AS 序列。AS_Path 的长度不包括 AS_CONFED_SEQUENCE 和 AS_CONFED_SET,而 AS_SET 的长度始终为 1,无论其中包含多少个 AS 号。

在 BGP 路由选择中,BGP 路由器倾向于选择 AS_Path 最短的路由作为最佳路径。较短的 AS_Path 长度通常表示距离目的地更近,因此更具优势。

执行 bestroute as-path-ignore 命令后,BGP 路由选择过程中将忽略 AS_Path 的比较。这意味着,不再考虑 AS_Path 的长度,而是依赖其他路由选择规则来确定最佳路径。

配置 load-balancing as-path-ignore 命令后,即使 AS_Path 不同,BGP 路由器也可以将流量在不同的路径之间进行负载均衡。这使得即使存在多条 AS_Path 不同的路由,也可以有效地分担流量,提高网络利用率。

5、比较 Origin 属性

  • IGP(Interior Gateway Protocol):指示路由信息来自于自治系统内部的路由协议,如 OSPF(开放最短路径优先)或 RIP(路由信息协议)。
  • EGP(Exterior Gateway Protocol):指示路由信息来自于自治系统间的路由协议,如 BGP。
  • Incomplete:指示路由信息来源不明确,可能是手动配置的静态路由或其他未知来源。
  1. IGP:优先选择 Origin 类型为 IGP 的路由,因为这表示该路由是由自治系统内部的动态路由协议学习而来,通常是最可靠和最具优先级的路由。
  2. EGP:若没有 Origin 类型为 IGP 的路由可选,则选择 Origin 类型为 EGP 的路由,因为它也表示来自自治系统间的路由协议,相对于 Incomplete 类型的路由更为可靠。
  3. Incomplete:若没有 Origin 类型为 IGP 或 EGP 的路由可选,则选择 Origin 类型为 Incomplete 的路由。虽然其来源不明确,但仍然是一个备选路径。

BGP 路由器在进行路由选择时,会依次考虑 Origin 属性的优先级,即先考虑 Origin 类型为 IGP 的路由,然后是 EGP 类型的路由,最后是 Incomplete 类型的路由。

6、优选 MED 值最低的路由

MED(Multi Exit Discriminator)是 BGP 路由更新中的一个字段,用于表示到达同一目的地的不同出口路由的首选顺序。较低的 MED 值通常表示更优先的路由。

在 BGP 路由选择过程中,BGP 路由器会优先选择 MED 值最低的路由作为最佳路径。这意味着,如果存在多条 MED 值不同的路由到达同一目的地,则优先选择 MED 值最低的路由。

  1. bestroute med-plus-igp 命令:如果配置了该命令,BGP 路由器会将 MED 值与 IGP Metric 分别乘以对应系数相加,然后比较结果较小的路由。这种配置可用于在考虑 MED 值的同时,考虑路由的 IGP Metric,以更综合地选择最佳路径。

  2. med-none-as-maximum 命令:如果路由没有 MED 属性,执行该命令后,BGP 路由器将该路由的 MED 值按照最大值 4294967295 来处理,以确保 MED 值比其他具有 MED 属性的路由更高。

  3. compare-different-as-med 命令:如果执行了该命令,BGP 将强制比较来自不同自治系统中的邻居的路由的 MED 值。然而,使用此命令需要注意,除非可以确认不同的自治系统采用了相同的 IGP 和路由选择方式,否则可能会产生环路。

  4. deterministic-med 命令:执行该命令后,BGP 路由器将消除路由接收顺序对选路结果的影响,确保选路结果的可预测性。

7、学习的路由

在 BGP 中,EBGP(外部 BGP)路由和 IBGP(内部 BGP)路由之间存在优先级差异。当存在来自不同 AS 的多条路由时,BGP 路由器会优先选择 EBGP 路由,因为 EBGP 路由通常表示跨越不同自治系统的外部路由。

对于 VPNv4、EVPN 和 VPNv6 地址族,在 BGP 路由选择中,本地 VRF(虚拟路由转发)上送的路由优先级高于从邻居学习的路由。这意味着,如果存在相同目的地的多条路由,本地 VRF 上送的路由将优先被选择。

8、IGP Metric

在默认情况下,BGP 路由器会优先选择到 BGP 下一跳的 IGP Metric 较小的路由。这意味着,如果存在多条路由到达同一目的地,BGP 路由器会倾向于选择到达 BGP 下一跳的 IGP Metric 较小的路由。

执行 bestroute igp-metric-ignore 命令后,BGP 路由选择过程中将忽略到 BGP 下一跳的 IGP Metric 的比较。这意味着,即使存在不同的 IGP Metric,BGP 路由器仍会根据其他属性选择最佳路径。

配置 load-balancing igp-metric-ignore 命令后,即使存在不同的 IGP Metric,BGP 路由器也可以将流量在不同的路径之间进行负载均衡。这意味着,即使存在 IGP Metric 不同的路由,流量也可以有效地分担在这些路径之间,以提高网络的利用率和容错性。

9、Cluster_List

在默认情况下,BGP 路由选择器会优先选择 Cluster_List 最短的路由。这意味着,如果存在多条路由到达同一目的地,并且它们都通过了一个或多个集群路由器,BGP 路由器会倾向于选择 Cluster_List 最短的路由作为最佳路径。

配置 bestroute routerid-prior-clusterlist 命令后,BGP 在选择最佳路由时会优先考虑 Router ID 而不是 Cluster_List。这意味着,即使存在多条 Cluster_List 不同的路由,BGP 路由器也会选择具有较小 Router ID 的路由作为最佳路径。

10、Router ID

在默认情况下,BGP 路由选择器会优先选择 Router ID 最小的设备发布的路由。这意味着,如果存在多条路由到达同一目的地,并且它们来自不同的 BGP 路由器,BGP 路由器会倾向于选择具有最小 Router ID 的路由作为最佳路径。

执行 bestroute router-id-ignore 命令后,BGP 在选择最佳路由时会忽略 Router ID 的比较。这意味着,即使存在多个路由来自不同的 BGP 路由器,BGP 路由器也不会考虑其 Router ID,而是根据其他规则选择最佳路径。

如果路由携带 Originator_ID 属性,则选路过程中将比较 Originator_ID 的大小而不再比较 Router ID,并优选 Originator_ID 最小的路由。Originator_ID 属性用于防止 BGP 路由器在 BGP route reflection 中接收自身反射的路由。

11、较小 IP Address 的对等体

默认情况下,BGP 路由选择器会优先选择来自具有较小 IP 地址的对等体学来的路由。这意味着,当存在多个对等体学来的路由时,BGP 路由器会倾向于选择来自 IP 地址较小的对等体的路由作为最佳路径。这种规则的背后是考虑到较小的 IP 地址可能意味着对等体的地理位置更接近或者网络拓扑更优。

这种路由选择规则在许多情况下都是有效的。例如,在多个对等体连接到同一个 BGP 路由器的情况下,BGP 路由器通常会选择来自 IP 地址较小的对等体的路由。这种选择有助于减少延迟和网络拓扑的复杂性,提高网络性能和可靠性。

12、优选 RM 路由表中的本地引入路由

在 BGP 网络中,本地引入的路由指的是由本地设备直接配置或生成的路由,通常是直连路由、静态路由和 IGP 路由。对于这些本地引入的路由,BGP 路由选择过程可能会优先选择 RM(Routing Information Base Management)路由表中的路由。同时,如果存在直连路由、静态路由和 IGP 路由,则根据一定的优选顺序进行选择。

13、优选 RM 路由表中的本地引入路由

RM 路由表中通常存储着经过筛选和优化后的路由信息,这些路由信息可能会包含本地引入的路由。BGP 路由选择器可能会优先选择 RM 路由表中的本地引入路由,因为这些路由可能经过了更加精细的处理和过滤,具有更高的可靠性和优先级。

如果同时存在直连路由、静态路由和 IGP 路由,通常会根据以下优选顺序进行选择:

  1. 直连路由: 直连路由是指直接连接到本地设备的网络,通常具有最高的优先级。因此,如果存在直连路由,则优先选择直连路由作为最佳路径。

  2. 静态路由: 静态路由是由网络管理员手动配置的路由,其优先级次于直连路由。如果没有直连路由,则会考虑静态路由。

  3. IGP 路由: IGP 路由是通过内部网关协议(如 OSPF 或 RIP)学习到的路由,优先级最低。如果既没有直连路由也没有静态路由,则会考虑 IGP 路由。

这种路由选择规则适用于需要根据网络拓扑和配置策略进行路由选择的情况。

14、recv pathID

ADD-PATH 功能允许 BGP 路由器在 BGP 更新中携带多条路径信息,使得 BGP 路由器可以同时维护多条到达同一目的地的路径。这些路径可以来自不同的对等体,也可以是同一对等体提供的多条路径。

当 BGP 路由器收到来自同一对等体的多条路径时,可以通过比较 recv pathID 的大小来选择最佳路径。recv pathID 是 BGP 路由器为每条接收到的路径分配的唯一标识符。较小的 recv pathID 表示较早收到的路径,因此通常认为具有较小 recv pathID 的路径是较早学习到的,可能是更稳定或更可靠的路径。

优选具有较小 recv pathID 的 ADD-PATH 路由适用于需要在同一对等体提供的多条路径中进行选择的情况。

15、优选本地收到的路由

在公私网互联的情况下,BGP 路由器可能会收到来自公共网和私有网的路由更新。这些路由更新可能包含了到达公共网和私有网的不同路径信息。

通常情况下,BGP 路由选择器会优先选择本地收到的路由。这是因为本地收到的路由通常具有更高的可靠性和优先级。本地路由更新可能来自直连路由、本地生成的路由、或者是通过其他协议(如静态路由、IGP 路由)学习到的路由。

优选本地收到的路由适用于需要在公私网互联情况下进行路由选择的情况。在这种情况下,本地收到的路由通常是优选的选择,因为它们具有更高的可靠性和优先级,可以提供更好的网络性能和稳定性。

16、优选较早学到的路由

较早学到的路由是指 BGP 路由器最早收到的路由更新。在 BGP 网络中,路由器通常会收到来自不同对等体的路由更新,这些路由更新可能来自不同的路径或者经过不同的网络拓扑。

根据优选较早学到的路由的策略,BGP 路由选择器会优先选择最早学到的路由作为最佳路径。这种策略认为较早学到的路由可能是更稳定和可靠的路径,因此优先考虑选择这些路由。

优选较早学到的路由适用于需要考虑路由稳定性和可靠性的情况。在某些情况下,较早学到的路由可能代表了更短、更直接的路径,或者是更可靠的路径。

目录
相关文章
|
7月前
|
网络协议
使用MPLS LDP解决BGP路由黑洞的问题
MPLS LDP默认不为BGP路由分配标签
|
6月前
|
网络架构 Perl
BGP路由属性与选路
BGP路由属性与选路
|
6月前
|
网络协议 网络虚拟化 网络架构
|
6月前
|
网络架构
|
网络协议 数据库 网络架构
BGP路由技术(一)
⭐本文介绍⭐ BGP(Border Gateway Protocol,边界网关协议)是一个路径矢量路由协议,和传统的基于下一跳的IGP协议不同,它是基于AS(自治系统)的协议。BGP属于外部网关路由协议,它解决的是AS之间的选路问题,也正因为这样,它更适合与互联网。学习BGP的关键在于理解BGP的报文,邻居建立,BGP路由属性,选路原则等。本文将对以上各项知识、工作原理及相关的配置做介绍。
BGP路由技术(一)
|
网络架构
BGP路由技术(二)
⭐本文介绍⭐ BGP(Border Gateway Protocol,边界网关协议)是一个路径矢量路由协议,和传统的基于下一跳的IGP协议不同,它是基于AS(自治系统)的协议。BGP属于外部网关路由协议,它解决的是AS之间的选路问题,也正因为这样,它更适合与互联网。学习BGP的关键在于理解BGP的报文,邻居建立,BGP路由属性,选路原则等。本文将对以上各项知识、工作原理及相关的配置做介绍。
BGP路由技术(二)
|
NoSQL Redis 网络架构
BGP邻居路由黑洞+mpls ip
文章目录 要求: 拓扑: 命令:
116 0
BGP邻居路由黑洞+mpls ip
|
网络协议 算法 数据库
概述、 BGP AS 、BGP 邻居、 BGP 更新源 、BGP TTL 、BGP路由表、 BGP 同步(上)
文章目录 系列文件 概述 BGP AS BGP 邻居 BGP 更新源 BGP TTL BGP路由表 BGP 同步
399 0
概述、 BGP AS 、BGP 邻居、 BGP 更新源 、BGP TTL 、BGP路由表、 BGP 同步(上)
|
网络协议 网络架构 iOS开发
概述、 BGP AS 、BGP 邻居、 BGP 更新源 、BGP TTL 、BGP路由表、 BGP 同步(下)
文章目录 系列文件 概述 BGP AS BGP 邻居 BGP 更新源 BGP TTL BGP路由表 BGP 同步
485 0
概述、 BGP AS 、BGP 邻居、 BGP 更新源 、BGP TTL 、BGP路由表、 BGP 同步(下)