目录
一.BGP基本概念
(1).BGP即是协议也是分类
1.早期EGP
2.BGP满足不同需求
3.BGP区域间传输的优势
(1)安全性——只传递路由信息
(2)跨网段建立邻居
4.BGP总结
5.BGP的应用
(1)大企业内部互通
(2)运营商网络(大骨干区域)
二.BGP特点
三.BGP对等体关系
(1).对等体类型
(2)建立Peer关系报文学习
1.Open报文
(2)
2.BGP Update
3.TCP连接接口源地址
四.BGP报文
1.BGP Header——BGP报文头部
2.BGP Packet——报文类型
(1) Open报文参数
(2).BGP Update
(3).Notification
(4)Keepalive
(5).Router—refresh
五.BGP状态组
(1)BGP不同状态
1.Idle
2.connect
3.Established
(2)BGP状态组如何改变
connect有3种可能
actvie有两种状态
一.BGP基本概念
(1).BGP即是协议也是分类
路由协议分类
那么我们可以发现,按照工作区域BGP是属于EGP,但按照工作机制,BGP好像不属于任何类型。那么我们可以了解到,BGP是一个全新的协议。
1.早期EGP
早期EGP在AS间动态传递路由信息(BGP可以看作是EGP的进化体)。哎,RIP也是传递路由信息,RIP是距离矢量路由信息。
BGP是路径矢量路由协议,不仅是协议,也是一个类型。
2.BGP满足不同需求
早期EGP只传递路由信息,产生次优路径问题。不同的网络有不同的需求,如视频要求时延低,传输文件要求带宽高,EGP不能满足根据不同需求筛选不同网络的需求。
BGP代替EGP,加入很多路径属性,如COST,优先级,掩码,路由来源信息。可以筛选出更能满足需求的路径。
3.BGP区域间传输的优势
(1)安全性——只传递路由信息
OSPF传递,会传递路由信息和拓扑信息,使其他区域网络学习到自己区域的内部网络,不安全
BGP只传递路由信息,其他区域不能学习到自己区域的内部网络,而且BGP因为路由属性多,还可以进行筛选,只传想传的。
(2)跨网段建立邻居
OSPF,ISIS建立邻居时,只能与直连网络建立,而且接口的IP地址/掩码必须属于同一网段
但BGP只要可以Ping通就能建立邻居。
4.BGP总结
(1)BGP封装在传输层,TCP协议中,只要能Ping通就能建立邻居
(2)BGP只传递路由信息,不暴露AS内拓扑
(3)触发式更新(根据路由变化更新),不是周期性更新
5.BGP的应用
(1)大企业内部互通
总部分支互联,专线或运营商
(2)运营商网络(大骨干区域)
二.BGP特点
1.BGP使用TCP三次握手(179端口)建立邻居关系,用自己随机端口向对方TCP179发起三次握手,触发式更新
2.BGP承载大量路由信息,百万级别,ISIS十万,OSPF万级别
3.有丰富的路由策略,路由属性多。
三.BGP对等体关系
BGP对等体类似于邻居关系。
(1).对等体类型
(2)建立Peer关系报文学习
1.Open报文
先BGP使能,TCP3次握手(双向),有两个邻接关系,选择Router ID大的保留
open报文用来协商参数。
(2)
2.BGP Update
与对等体建立无关,触发式更新,第一次建立会发,主要是更新BGPLSBD信息
Withdrawn routes(第2个) :不可达路由信息
path attribute(第4个):路由属性,TLV三元组构成
NLRL(最后一个):可达路由信息
3.TCP连接接口源地址
BGP通过TCP3次握手建立连接,自己随机端口向对方TCP179发起三次握手,触发式更新。
那么这个随机端口就是TCP连接接口源地址,一般会选择出接口的IP地址,那么问题来了
假设BGP建立场景是这样
R1向R3发起3次握手,各个物理链路都可以使用,当R2路由器故障时
可以看到,与R2连接的对端接口也down掉了
那么TCP无法正常建立连接。
我们就可以使用环回地址来发起TCP3次握手,这样比较稳定。
EBGP通过直连方式建立连接,AS单链路,环回口没那么重要。
四.BGP报文
1.BGP Header——BGP报文头部
只有3个参数
Marker:没那么重要,全为1
Length,Type:报文类型
2.BGP Packet——报文类型
我们上面已经提到了关于Open :维持对等体关系,keepalive :维持对等体关系,update.:与维持对等体关系无关。
(1) Open报文参数
version:BGP版本,已经更新到BGP 4,现在常用的是GBP 4+
MY Autonomous System用于区分是IGBP/EBGP
Hold Time可以看作是死亡时间,一般为180S,Keepalive用于维护邻接关系
BGP Identifier:要保证ROuter ID不冲突
(2).BGP Update
Withdrawn routes(第2个) :不可达路由信息
path attribute(第4个):路由属性,TLV三元组构成
NLRL(最后一个):可达路由信息
(3).Notification
:差错报文,终止对等体
(4)Keepalive
参数与BGP报文头部一样
Marker:没那么重要,全为1
Length,Type:报文类型
(5).Router—refresh
路由刷新,重新请求update报文
AFI:地址族标识,IPV4 Res,全为0 SAFI:子地址族
五.BGP状态组
(1)BGP不同状态
1.Idle
初始状态
2.connect
连接状态,正在进行TCP连接
3.Established
3次挥手成功,开始update报文,触发更新
(2)BGP状态组如何改变
connect有3种可能
1.成功TCP3次握手,进入opensent
2.对端没收到3次握手,重复TCP,进入active状态
3.对端拒绝TCP3次握手,回到Idle状态
actvie有两种状态
1.重新发送TCP,对端收到,顺利进入opensent
2.重新发送又没收到TCP握手,回到connect
其他的就只有两种可能,成功顺利进行下一阶段,被拒绝回到Idle状态
BGP状态组非常重要,要记住哦,也可以像我一样,自己画一下过程,很方便记忆
现在附上华为教材中的BGP状态机改变的图