BGP
2021-04-03 22:43:07 1 举报
AI智能生成
BGP
作者其他创作
大纲/内容
一、基本概念
自治系统AS
AS指拥有相同选路策略的IP网络。BGP网络中每个AS号唯一,AS号有两字节和四字节AS号,2字节范围为1至65535,4字节AS号范围1至42.9亿,四字节兼容2字节AS号
BGP分类
IBGP:路由器运行在同一个AS号里面,AS内防环机制是通过“IBGP水平分割”
EBGP:
BGP报文交互的角色
BGP发言者:指发送BGP报文的设备,接收或产生新的报文
BGP对等体:指的是相互交换报文报文的BGP设备
BGP的路由器号(router id)
标识BGP设备的32位值
二、工作原理
(5种报文、6种状态机和5个原则)
2.1 报文类型
(5种报文)
BGP报头
Marker(标记):16字节,固定为1。
Length(长度):两字节无符号整数。指定了消息的全长,包括头部。
Type(类型):1 字节,指示报文类型:
Open
Update
Keepalive
Notification
Route-Refresh
Open报文:用于BGP之间的连接。
报文中重要5参数:
①version
②bgp router id:不能冲突
③my as number:报文中AS与指定对端AS要一致。
④hold timer:不一致则用协商较小的
⑤optional parameters:BGP验证或多协议扩展
扩展到支持VPNv4
路由刷新能力
4字节AS号
分支主题
Keepalive报文:用于保持BGP连接
分支主题
Update报文:用于BGP之间交换路由信息
报文中重要参数:
①Unfeasible Routes Length:不可达路由字段的长度,如果为0 则说明没有
②Withdrawn Routes:不可达路由的列表。
Length
Prefix
③Total Path Attribute Length:路径属性字段的长度
④Path Attributes:与NLRI 相关的所有路径属性列表
例如Origin、AS-path、Next-hop、Local-Pre、MED、Cluster_List、Origin id
Type
Length
Value
⑤NLRI(路由前缀及掩码)
可以只用于撤销路由,就不需要包括路径属性或者NLRI
分支主题
分支主题
Notification报文:用于中断BGP连接
主要参数
①消息type②主要错误代码③具体错误代码
分支主题
Route-refresh报文:告知邻居需要进行路由刷新
分支主题
2.2 状态机
(6种状态)
Idle
BGP邻居拒绝连接请求,配置BGP邻居时,BGP发起TCP连接,状态转为Connect。
注:Start事件指操作者配置BGP过程,
收到Notification报文或TCP拆链通知等Error事件后,就把状态变为Idle
Connect
等待TCP完成连接,启动重传定时器。
TCP连接成功,发Open报文,状态转为Opensent
TCP连接失败,状态转为Active状态
重连定时器超时,对等体没有响应,继续发TCP连接,状态停留在Connect。
Active
TCP连接失败,BGP尝试发起TCP连接。
TCP连接成功,发Open报文,关闭重连定时器,状态转为OpenSent.
TCP连接失败,BGP状态停留在Active
重连定时器超时,对等体没有响应,状态转为Connect。
OpenSent
BGP等待对端的Open报文,对收到的Open报文中AS号、版本号、认证进行检查
Open报文正确,发Keeplive报文,状态转为Openconfirm
Open报文错误,发Notification报文,状态转为Idle
OpenConfirm
发送Keepalive报文,等待Keepalive或Notification报文。
收到Keepalive报文,变为Established状态
收到Notification报文,变为Idle状态。
Estabished
如收到正确的Update或Keepalive报文,则保持BGP连接.
如收到错误的Update或Keepalive报文,则发送Notification报文给对端,状态转为Idle
如收到Route-refresh报文,不改变BGP状态
如收到Notification报文,则BGP状态转为Idle
如收到TCP链路拆除通知,则BGP断开连接,状态转为Idle
2.3 BGP之间路由交互原则
(5原则)
①IBGP路由只发给EBGP
②EBGP路由发给所有EBGP和IBGP
③BGP只传最优路由
④路由更新时,只发更新的BGP路由
⑤所有对等体的路由,BGP都会接收
⑥IBGP与IGP同步
同步可以取消的情况:
①本AS不是过渡AS。
②本AS内所有路由器建立IBGP全连接。
数据库
分支主题
三、邻居关系
3.1 IBGP
可跨链路,一般使用环回扣建立,只要TCP可达即可。
缺省以出接口建立邻居
3.2 EBGP
可跨链路建邻居,EBGP用回环扣建邻居要配置BGP多跳。
邻居关系建立的条件
①邻居地址路由可达,179端口可达
②BGP roeter id 不能冲突
③邻居AS号与本端Peer配置的AS号要一致
④邻居BGP报文源地址和本端配置BGP邻居要一致
⑤双方激活的地址族要一致
BGP与IGP交互路由
在BGP中引入IGP路由
方式:Import和Network方式
用路由策略进行路由过滤和路由属性设置,也可设置MED告知邻居怎样最优进入本AS
在IGP中引入BGP路由
为避免大量BGP路由对AS内设备造成影响,当IGP引入BGP路由时,可以使用路由策略,进行路由过滤和路由属性设置。
四、选路规则
BGP属性
公认必遵
释义:BGP设备必须识别该属性,必须在Update报文中携带
AS-path属性
记录路由经过的AS号
①当发送的是本地始发的路由时
发给EBGP时,在Update报文中创建一个携带本AS号的AS-path列表
发给IBGP时,在Update报文中创建一个空的As-path列表
②当发送的是从其他BGP学来的路由时
发给EBGP时,会把本地AS编号添加在AS_Path列表的最前面
发给IBGP时,不改变这条路由的AS-path属性
Next_Hop属性
记录路由的下一跳信息,因为BGP的下一跳属性和IGP的有所不同,
不一定就是邻居设备的IP地址
Next-hop遵循如下规则:
①从IBGP学到的路由发给EBGP时,Nexthop改变,地址为建邻居的接口地址
②从EBGP学到的路由发给EBGP时,Nexthop改变,地址为建邻居的接口地址
③从EBGP学到的路由发给IBGP时,Nexthop不改变(目的是防止次优路径,右图次优路径场景)
④RR反射路由时,Nexthop不改变。
⑤自己始发的BGP路由,Nexthop为建邻居接口的地址
分支主题
Origin属性
定义路径信息的来源,标记怎么变成BGP路由的,IGP>EGP>Incomplete, IGP指network命令注入的,EGP指通过EGP学到的,Incomplete指引入的
可以在AS内、AS间修改,默认不修改。
公认任意
Local_Pref属性:值越大越优先
释义:BGP设备可以识别该属性,没有强制要求在Update报文中携带
功能:告知本AS内路由器选择一个更好出口访问其他AS
场景:BGP设备从不同的IBGP得到多条相同的路由但下一跳不同时,选择Local_Pref高的
有效范围:在IBGP之间有效,不传给其他AS,缺省值100
场景
分支主题
Atomic-aggregate :原子聚合
用于告知其他路由器该路由是一条聚合路由,可能出现了路径的丢失。
可选过渡(可传递)
释义:能不能识别该属性,如不能识别也能接收该类属性,并通告给其他对等体
团体属性
公认团体属性
(限制路由传递范围)
Internet: 可以传递给任何BGP邻居的路由
no-advertise:不传递给任何BGP邻居的路由
no-export:不能传出本AS(可以传给联盟中其他子AS)
no-export-subconfed:不能传出AS,也不能传递联盟中其他子AS
自定义团体属性
用于标识一类路由,标识方式为AA:NN
可选非过渡(不能传递)
释义:可以选择性识别,能识别就可以传给其他邻居;不能识别,就不能传给其他邻居
MED属性:值越小越优先
功能:告知邻居怎样最优进入本AS
场景:BGP设备从不同的EBGP得到多条相同的路由但下一跳不同时,MED值小的为最佳路由
有效范围:邻居AS及其他IBGP邻居间可传递,不传递给其他第三方AS。缺省值为0
缺省不比较不同AS的MED值。
场景
分支主题
Originator_ID属性(RR场景,客户机收到路由做防环)
RR产生,用始发该路由的路由器 rouer id标识,
RR反射路由时,如果该路由没有Originator_ID属性,则创建该属性
当客户机收到RR反射的路由时,比较收到的Originator和本地的Router ID,相同就不接收该路由
场景
分支主题
Cluster_List属性(RR场景,反射器之间防环)
RR反射路由时,如果该路由没有Cluster_List,RR就创建一个,用自身Router ID作为Cluster ID标识
RR接收路由时,比较收到的Cluster ID和本地的Router ID是否相同?相同则丢弃。
如果没有本地Cluster ID,则把自身Router ID放到Cluster List列表中。
场景
分支主题
BGP选路策略
(13条选路原则)
1. 协议首选值,越高越优(本台路由器有效)
举例
分支主题
2.本地优先级,值越大越优(本AS内有效)
举例
分支主题
3.本地始发的(手工汇总>自动汇总>network>import-route>从对等体学到的)
举例
分支主题
如果R1,R2都将10.1.12.0/24宣告进BGP的话,R2能收到R1发过来的10.1.12.0的路由,
prefer-value和local-preference都一样,但是本地发起的优先,所以bgp表中自己宣告
的路由为最优路径。
4.AS-path短的优选
举例
分支主题
5.Origin属性:IGP>EGP>Incomple
6. MED值小的优选(EBGP多出口)
举例
分支主题
7. 优选EBGP邻居学来的路由(EBGP路由高于IBGP路由)
举例
分支主题
8.优选BGP路由下一跳递归 IGP开销小的(同一AS,从不同IBGP学到的)
注:在IGP中,对到达同一目的地址的不同路由,IGP根据本身的路由算法计算路由的开销值。
举例
分支主题
9. 如果1至8条一致,则负载分担
10. 优选Cluster-List短的路由(RR场景,集群间指RR之间)同AS内
举例
分支主题
11.优选 Originator-id 小的(RR场景,集群内指客户机)同AS内不同反射器
举例
分支主题
AS外部路由,originator-id就是边界路由器5和6,虽然邻居R3路由器ID小,
但是由于originator-id是4那边小,所以选择右侧过来的路由为最优。
12. 优选Router ID小的(同AS内)
举例
分支主题
13.优选对等体地址小的
举例
分支主题
路由决策
分支主题
BGP负载分担
“BGP选择路由的策略”的1至8条规则中需要比较的属性完全相同
五、路由发发布与传递
路由的发布方式
①Network
②Import
③路由聚合
路由的传递原则
①只传最优路由
②从IBGP学到路由不传给IBGP邻居
③从EBGP学到的路由发布给IBGP和EBGP邻居
④从IBGP学到的传给EBGP是根据同步情况决定。
黑洞路由场景
分支主题
六、防环机制
IBGP之间防环:水平分割防环
EBGP之间防环:AS-path防环
反射器中防环:Originator-id和cluster-id防环
联盟中防环:联盟内AS-path防环
七、BGP安全
认证
BGP认证分为MD5认证和Keychain认证,保证BGP对等体间的交互安全
区别:MD5认证只能为TCP连接设置认证密码,Keychain认证可以为TCP连接设置认证密码、BGP协议报文进行认证。
GTSM
GTSM检测IP报文头中的TTL值做检查,检查该IP报文TTL只是否在我设定的范围内,对不符合TTL值范围的报文进行允许通过或丢弃的操作。
目的:保护IP层以上业务,增强系统安全性的目的。
八、路由汇总
为什么要有路由汇总?
现实原因:BGP路由表庞大,对设备有很大负担,发生路由震荡概率大,影响网络稳定性。
汇总的优点:
路由表减少,减轻设备负担,减少路由震荡对网络的影响,提高网络稳定性。
汇总的缺点:可能产生的路由环路。因为汇总后AS-path属性会丢失,可通过As-set命令保持汇总路由后as-path属性不丢失。
注意:IPv4网络支持自动、手动汇总,IPv6网络仅支持手动汇总
从聚合后明细路由发布和属性继承问题来看
自动汇总
①只能聚合本地 import 引入的 IGP路由
②自动聚合成主类网络
③抑制明细,只发聚合路由
④明细路由属性继承
Next-hop:做聚合路由的地址
AS-path:不继承,会添加一个空的AS号
Origin:不继承
手动聚合
释义:可以聚合BGP表中的路由
缺省不抑制明细,可配置抑制明细。
Next-hop:做聚合路由的地址
As-path :不继承,会添加一个空的AS号
Origin:继承明细起源最差的
Community:继承所有明细的团体属性,配置抑制命令后就不继承团体属性。
九、反射器
反射器示意图
分支主题
解决的问题:
基本概念
路由反射器RR、客户机、非客户机
Originator(始发者)AS内部始发路由的设备,Originator集群内防环
Cluster(集群),反射器和反射器之间,Cluster_List用于集群间防环
反射原则
(4原则)
①只反射最优的路由
②非客户机的路由,发给所有客户机。
③客户机的路由,发布给所有非客户机和客户机(发起此路由的客户机除外)。
④EBGP的路由,发给所有客户和非客户机。
防环机制
Originator_ID(集群内防环)
Originator ID由RR产生,使用Router ID标识路由的始发者,集群内防环。
工作机制:
RR产生,用始发该路由的路由器 rouer id标识,
RR反射路由时,如果该路由没有Originator_ID属性,则创建该属性
当客户机收到RR反射的路由时,比较收到的Originator和本地的Router ID,相同就不接收该路由
Cluster_List(集群间防环)
路由反射器和它的客户机组成一个集群(Cluster),Cluster ID在AS内唯一
Cluster_List属性,记录路由经过的所有集群的Cluster ID,集群间防环
工作机制:
RR反射路由时,如果该路由没有Cluster_List,RR就创建一个,用自身Router ID作为Cluster ID标识
RR接收路由时,比较收到的Cluster ID和本地的Router ID是否相同?相同则丢弃。
如果没有本地Cluster ID,则把自身Router ID放到Cluster List列表中。
可靠性机制
备份路由反射器
示意图
分支主题
场景部署
多集群路由反射器
分级路由反射
示意图
分支主题
同级路由反射
示意图
分支主题
十一、反射器和联盟的区别
反射器
不改变现网拓扑,兼容性好
方便配置,只在反射器上做配置
适合中大规模网络
集群间要全连接
联盟
改变逻辑拓扑
所有设备重新配置
适合大规模网络
子AS之间不需要全互联
保留原有的IBGP属性,包括Local Preference、MED、NEXT_HOP属性
十二、路由衰减
针对什么问题产生?
防止频繁的路由震荡带来的不利影响,所以BGP使用路由衰减来抑制不稳定的路由
重要参数(5参数)
惩罚值:发生震荡的路由增加一次惩罚值
抑制阀值:惩罚值超过抑制阀值时,该路由被抑制
半衰期:被抑制的路由,经过一段时间,惩罚值会减半,叫半衰期
重用阀值:惩罚值降到再使用阀值时可以把该路由放入路由表中,并发布更新报文
抑制时间:从被抑制到恢复使用的时间称为抑制时间
注:只对EBGP路由起作用,对IBGP路由不起作用
BGP可靠性机制
BGP与BFD联动
BGP Tracking
配置上,BGP Tracking配置简单,本地配置而不需要全网配置,
层面上,BGP Tracking是路由层面的感知,BFD是链路层面的感知
速度上,BFD更快
BGP GR和NSR
平滑重启GR和不间断路由NSR作为高可靠性的解决方案
在实际应用中,通常在双主板的硬件环境下配置BGP GR才有意义。
NSR是一种控制平面倒换而邻居不感知的可靠性技术,适用于设备具有主用主控板和备用主控板的场景
与GR相比,NSR具有不需要邻居协助,不存在互通性问题的优点
分支主题
NSR使用情况:
①系统故障触发主备倒换
②软件升级或系统维护时网络管理员手动触发主备倒换
优化BGP性能
BGP ORF
当本端设备希望BGP邻居只发送它需要的路由,而BGP邻居又不愿意针对不同设备维护不同的出口策略时,可以运用BGP ORF特性。
BGP按组打包
BGP4+
概述
扩展版本
扩展能力自协商机制
多地址族协商
4字节AS号能力
Route-Refresh 支持能力
多层标签能力
支持传递多种地址族地址
新增属性用于支持多地址族的地址传递
扩展属性
MP_REACH_NLRI:
该属性用于通告IPv6 路由时:
内容:
*地址族信息
*下一跳长度
*下一跳地址
*保留字段
*NLRI
该属性用于传递IPv6 路由时:
*AFI=2 ,SAFI=1(Unicast) ,SAFI=2(Multicast)
*下一跳地址长度字段决定了下一跳地址的个数
长度字段=16,下一跳地址为下一跳路由器的全球单播地址
长度字段=32,下一跳地址为下一跳路由器的全球单播地址和链路本地地址
*保留字段,恒等于0
*NLRI字段,可变长字段,表示路由前缀和掩码信息。
分支主题
MP_UNREACH_NLRI
用该属性撤销路由
AFI=2 ,SAFI=1(Unicast) ,SAFI=2(Multicast)
Withdrawn Routes 字段代表需要撤回的路由前缀及掩码。
分支主题
0 条评论
下一页