### 华为-BGP选择路由的策略
#### 概述
边界网关协议(Border Gateway Protocol,简称BGP)作为互联网的核心路由协议,在大规模网络环境中起着至关重要的作用。BGP不仅负责在不同的自治系统(Autonomous System,AS)之间交换路由信息,还必须能够从多个可用路径中选择最佳路径。本文将详细介绍华为设备中BGP选择路由的具体策略。
#### BGP选路策略详解
当到达同一目的地存在多条路由时,华为设备遵循以下顺序来进行路由选择:
1. **优选协议首选值(PrefVal)最高的路由**:这是华为设备特有的一个属性,仅在本地生效。当多条路由具有不同的协议首选值时,优先选择具有最高协议首选值的路由。这一属性主要用于优先级的微调。
2. **优选本地优先级(Local_Pref)最高的路由**:如果多条路由的协议首选值相同,则比较其本地优先级。如果没有指定本地优先级,则默认值为100。可以通过`default local-preference`命令来改变默认的本地优先级值。
3. **优选本地生成的路由**:相比于从邻居学习来的路由,本地生成的路由拥有更高的优先级。这包括通过`network`命令或`import-route`命令引入的路由、手动聚合路由和自动聚合路由。
4. **优选聚合路由**:手动聚合路由(通过`aggregate`命令生成)的优先级高于自动聚合路由(通过`summary automatic`命令生成)。聚合路由是指将多个具体的路由条目合并为一个较粗粒度的路由条目,有助于减少路由表的规模。
5. **通过`network`命令引入的路由的优先级高于通过`import-route`命令引入的路由**:当同时存在这两种类型的路由时,优先考虑通过`network`命令引入的路由。
6. **优选AS路径(AS_Path)最短的路由**:AS_Path记录了路由经过的所有自治系统的序列。为了防止路由环路,BGP倾向于选择AS_Path最短的路由。需要注意的是,AS_Path的长度不包括AS_CONFED_SEQUENCE和AS_CONFED_SET,而AS_SET的长度始终为1。
7. **比较Origin属性**:依次优选Origin类型为IGP(内部网关协议)、EGP(外部网关协议)、Incomplete(未知)的路由。IGP表示路由由内部网关协议发现,EGP表示路由由外部网关协议发现,而Incomplete表示起源未知。
8. **优选MED(Multi-Exit Discriminator)值最低的路由**:MED用于衡量从特定AS到达目的地的代价,通常用于选择最优出口。需要注意的是,BGP仅比较来自同一个AS(不包括联盟的子AS)的路由的MED值。
9. **优选从EBGP邻居学来的路由**:相比于IBGP(内部BGP)路由,EBGP(外部BGP)路由具有更高的优先级。此外,华为设备还区分了LocalCross和RemoteCross两种路由类型,分别表示本地区域内的跨VRF路由和远程区域的跨VRF路由。
10. **优选到BGP下一跳IGPMetric较小的路由**:在多条路由的其他属性都相同时,BGP会选择到达下一跳IGPMetric较小的路由。
11. **优选Cluster_List最短的路由**:Cluster_List用于跟踪路由信息传递过程中的BGP集群信息。Cluster_List越短,通常意味着路由信息传递的路径更简单,因此优先级更高。
12. **优选RouterID最小的交换机发布的路由**:在路由信息来源相同的情况下,选择RouterID最小的交换机发布的路由。
13. **比较对等体的IPAddress**:如果上述所有规则仍然无法决定最佳路由,则优选从具有较小IPAddress的对等体学来的路由。
通过上述策略,华为设备能够有效地管理和选择最佳的BGP路由,确保数据包能够高效、可靠地传输。这些策略不仅可以提高网络性能,还可以帮助网络管理员更好地控制和优化网络流量。