一、BGP简介
BGP(Border Gateway Protocol,边界网关协议)是一种实现AS(Autonomous System,自治系统)之间的路由可达,并选择最佳路由的距离矢量路由协议。当前BGP使用的版本是BGP-4和MP-BGP。
- BGP采用认证和GTSM的方式,保证了网络的安全性。
- BGP提供了丰富的路由策略,能够灵活的进行路由选路。
- BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。
- BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动、BGP Tracking和BGP GR,提高了网络的可靠性。
二、BGP工作原理
1、报文类型
- Open报文
用于建立BGP对等体连接。- Update报文
用于在对等体之间交换路由信息。- Notification报文
用于中断BGP连接。- Keepalive报文
用于保持BGP连接。- Route-refresh报文
用于在改变路由策略后请求对等体重新发送路由信息。
2、BGP邻居建立
1)BGP初始状态是Idle状态,在Start事件触发下后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。
2)在Connect状态下,等待TCP完成连接。如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。如果TCP连接失败,那么BGP转至Active状态。
3)在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。
4)在OpenConfirm状态下,如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。
3、BGP路径属性
1)Origin属性
Origin属性用来定义路径信息的来源,有3种类型:
- IGP
通过network命令注入到BGP路由表的路由- EGP
通过EGP得到的路由信息- Incomplete
通过其他方式学习到的路由信息。比如BGP通过import-route命令引入的路由2)AS_Path属性
AS_Path属性记录了某条路由从本地到目的地址所要经过的所有AS编号。在接收路由时,如果AS_Path列表中有本AS号,则不接收该路由3)Next_Hop属性
Next_Hop属性记录了路由的下一跳信息。
- BGP Speaker在向EBGP对等体发布某条路由时,下一跳属性为本地与对端建立BGP邻居关系的接口地址。
- BGP Speaker将本地始发路由发布给IBGP对等体时,下一跳属性为本地与对端建立BGP邻居关系的接口地址。
- BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,不改变下一跳属性。
4)Local_Pref属性
Local_Pref属性表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。当BGP的设备通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由。Local_Pref属性仅在IBGP对等体之间有效,不通告给其他AS。5)MED属性
MED属性用于判断流量进入AS时的最佳路由,当一个运行BGP的设备通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。MED属性仅在相邻两个AS之间传递。6)团体属性
团体属性用于标识具有相同特征的BGP路由,团体属性分为自定义团体属性和公认团体属性7)Cluster_List属性
路由反射器和它的客户机组成一个集群,使用AS内唯一的Cluster ID作为标识。为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集群的Cluster ID。8)Originator_ID属性
Originator ID由RR产生,使用的Router ID的值标识路由的始发者,用于防止集群内产生路由环路。
4、BGP选路
1)优选协议首选值(PrefVal)最高的路由。
协议首选值(PrefVal)是华为设备的私有有属性,仅在本地有效。
2)优选本地优先级(Local_Pref)最高的路由
3)依次优选手动聚合路由、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由。
4)优选AS路径(AS_Path)最短的路由。
5)依次优选Origin类型为IGP、EGP、Incomplete的路由。
6)对于来自同一AS的路由,优选MED值最低的路由。
7)优选EBGP路由
8)优选到BGP下一跳IGP度量值(metric)最小的路由。
9)优选Cluster_List最短的路由。
10)优选Router ID最小的设备发布的路由。
11)优选从具有最小IP Address的对等体学来的路由。
5、路由反射器
路由反射器RR允许把从IBGP对等体学到的路由反射到其他IBGP对等体
基本概念:
- 客户机
同路由反射器形成反射邻居关系的IBGP设备- 非客户机
既不是RR也不是客户机的IBGP设备。在AS内部非客户机与RR之间,以及所有的非客户机之间仍然必须建立全连接关系路由反射器发布路由规则:
- 从非客户机学到的路由,发布给所有客户机
- 从客户机学到的路由,发布给所有非客户机和客户机
- 从EBGP对等体学到的路由,发布给所有的非客户机和客户机。
基本配置
// 配置peer-group作为RR 客户端
peer peer-group reflect-client
6、BGP联盟
联盟将一个AS划分为若干个子AS。每个子AS内部建立IBGP全连接关系,子AS之间建立联盟EBGP连接关系,但联盟外部AS仍认为联盟是一个AS。原AS号将作为每个路由器的联盟ID同时保留原IBGP属性,如Local Preference属性、MED属性和NEXT_HOP属性
基本配置:
// 配置BGP联盟ID
confederation id as-number
// 配置BGP联盟内部子AS
confederation peer-as as-number
7、路由聚合
BGP支持手动聚合和自动聚合两种方式,自动聚合对引入的BGP路由进行聚合操作,手动聚合对BGP本地路由表中的路由条目进行聚合操作。
基本配置:
- 自动聚合
summary automatic- 手动聚合
aggregate ip-address netmask [ detail-suppressed ]
其中detail-suppressed表示是否发布明细路由
来源:51CTO
作者:up4ever
链接:https://blog.51cto.com/12631595/2484961