BGP
2021-04-03 22:43:07 1 举报
AI智能生成
BGP
作者其他创作
大纲/内容
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
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报文,状态转为OpensentTCP连接失败,状态转为Active状态重连定时器超时,对等体没有响应,继续发TCP连接,状态停留在Connect。
Active
TCP连接失败,BGP尝试发起TCP连接。TCP连接成功,发Open报文,关闭重连定时器,状态转为OpenSent.TCP连接失败,BGP状态停留在Active重连定时器超时,对等体没有响应,状态转为Connect。
OpenSent
BGP等待对端的Open报文,对收到的Open报文中AS号、版本号、认证进行检查Open报文正确,发Keeplive报文,状态转为OpenconfirmOpen报文错误,发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属性
公认任意
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表中的路由缺省不抑制明细,可配置抑制明细。
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
MP_UNREACH_NLRI
0 条评论
回复 删除
下一页