Datacom-HCIE-06 BGP基础原理


为了满足大规模路由的需求,需要通过BGP(Border GatewayProtocol)在AS之间传递数量庞大的IPv4、v6路由,并且通过各种策略进行路径的选取,控制等;此外,为了满足MPLS VPN的业务,在AS内及AS间需要MP-BGP。针对上述需求,
本文将介绍BGP原理以及BGP对IPv6的扩展特性—BGP4+。

BGP概述

外部网关协议
使用TCP作为其传输层协议 (TCP 179)
支持CIDR
增量更新 (且无周期更新)
路径矢量路由协议 (AS_path)
无环路 (AS号,IBGP水平分割)
路由策略丰富
可防止路由振荡
易于扩展 (TLV)

BGP基本工作原理


邻居发现
ibgp和ebgp
引入路由
network和import-route
通告原则
最优路由,ibgp水平分割
路由属性
十三条选路原则

BGP工作原理-报头格式


Marker:16字节,该字段是为了兼容性考虑,必须全部设置为1.
Length:2字节,BGP消息长度,范围19~4096。
Type:1字节,BGP消息的类型,Type有5个可选值。

BGP工作原理—报文类型

Open报文 协商BGP参数
Update报文 交换路由信息
Notification报文 差错通知
Keepalive报文 保持邻居关系
Route-Refresh报文 用于在改变路由策略后请求对等体重新发送路由信息

Open

Update

Notification

错误子代码

报文头部错误子代码

  1. 连接不同步
  2. 错误的报文长度
  3. 错误的报文类型

OPEN消息错误子代码

  1. 不支持的版本号
  2. 错误的对等体AS号
  3. 错误的BGP-ID
  4. 不支持的选项参数
  5. 认证失败(已更改,不推荐)
  6. 不可接受的保持时间

UPDATE消息错误子代码

  1. 属性列表格式不正确
  2. 无法识别的公认属性
  3. 缺少公认属性
  4. 属性flag错误
  5. 属性长度错误
  6. 无效的起源属性
  7. AS路径环路(已更改,不推荐)
  8. 无效的下一跳属性
  9. 可选属性错误
  10. 无效的网络字段
  11. AS_path格式错误

CEASE子代码

  1. 已达到最大前缀数
  2. 管理关闭
  3. 对等体取消配置
  4. 管理重置
  5. 连接拒绝
  6. 其他配置更改
  7. 解决连接冲突
  8. 资源不足

Keepalive

Route-refresh

<用户视图>refresh bgp all import
\手动刷新bgp路由
改变路由策略后自动刷新,请求对等体重新发送路由信息。

BGP工作原理

BGP工作原理—状态机

BGP工作原理—数据库

IP路由表 (IP-RIB)
全局路由信息库,包括所有IP路由信息
BGP路由表 (Loc-RIB)
BGP路由信息库,包括本地BGP Speaker选择的路由信息
邻居表
对等体邻居清单列表
Adj-RIB-In
对等体宣告给本地BGP Speaker的未处理的路由信息库
Adj-RIB-Out
本地BGP Speaker宣告给指定对等体的路由信息库

BGP工作原理—BGP路由信息处理

BGP工作原理—对等体之间的交互原则

BGP对等体交互路由原则:
从IBGP对等体获得的路由,只发布给EBGP对等体
从EBGP对等体获得的路由,发布给所有EBGP和IBGP对等体
只将BGP的最优路由发布给对等体
只发送更新的BGP路由
IBGP与IGP的同步(已淘汰)

GP工作原理—同步

同步(Synchronization)
在IBGP路由加入路由表并发布给EBGP对等体之前,会先检查IGP路由表。只有在IGP也知道这条IBGP路由时,它才会被加入到路由表,并发布给EBGP对等体。

BGP属性特点

BGP属性特点—概述

BGP路由属性是一套参数,它是对路由的进一步的描述
公认必遵
所有BGP路由器都必须识别,且必须存在于Update消息中
如果缺少这种属性,路由信息就会出错
公认任意
所有BGP路由器都可以识别,但不要求必须存在于Update消息中
即就算缺少这类属性,路由信息也不会出错
可选过渡
在BGP对等体之间具有可传递性的属性
BGP路由器可以不支持此属性,但它仍然会接收这类属性,并传递给其他对等体
可选非过渡
如果BGP路由器不支持此属性,则相应的这类属性会被忽略,且不会传递给其他对等体

Origin为公认必遵属性
AS_Path为公认必遵属性
Next_Hop为公认必遵属性
Local_Pref为公认任意属性
community为可选过渡属性
MED为可选非过渡属性
Originator_ID为可选非过渡属性
Cluster_List为可选非过渡属性

BGP属性特点—Origin

Origin属性用来定义路径信息的来源,该属性为公认必遵
IGP
通过路由始发AS的IGP得到的路由信息,如通过network命令注入BGP的路由标识符为“i”
EGP
通过EGP得到的路由信息标识符为“e”
Incomplete
通过其他方式学习到的路由信息,如通过import-route命令注入BGP的路由标识符为“?”

BGP属性特点—PrefVal

协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效,不会传递给BGP邻居。因为协议首选值是人为主动设置的,代表本地用户的意愿,因而在BGP进行选路时会优先比较协议首选值。

BGP属性特点—AS_Path

AS_Path属性按矢量顺序记录某条路由从本地到目的地址所要经过的所有AS编号。该属性为公认必遵。

BGP属性特点—Next_Hop

Next_Hop属性记录了路由的下一跳信息,该属性为公认必遵

在IBGP邻居之间传递路由时,默认不会修改下一跳地址。next-hop-invariable
在EBGP邻居之间传递路由时,默认会修改下一跳地址。next-hop-local

BGP属性特点—Local_Pref

Local_Pref属性表明BGP路由器的优先级,该值越大越优先。该属性为公认任意。

BGP属性特点—MED

MED属性类似于IGP的代价值,用于AS间的路由选路。该属性为可选非过渡

BGP路由计算—选路规则

当到达同一目的地存在多条路由时,BGP依照如下策略顺序进行路由选择:
• 如果此路由的下一跳不可达,忽略此路由

  1. 优选协议首选值(PrefVal)最高的路由。
  2. 优选本地优先级(Local_Pref)最高的路由。
  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. 以上8条相同时的可以开启负载均衡。默认最大下一跳个数为1,即不使用负载均衡。
  10. 优选Cluster_List最短的路由。
  11. 优选Originator_ID最小的路由。
  12. 优选Router ID最小的设备发布的路由。若携带OID,则不比这一条。
  13. 优选从具有最小IP Address的对等体学来的路由。
posted @ 2024-12-07 18:35  Liam-Wu  阅读(18)  评论(0编辑  收藏  举报