BGP知识点总结(一)
动态路由协议(工作范围)
1、自治系统内部的路由协议-IGP:工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换(ospf,rip,isis)
2、自治系统之间的路由协议-EGP:工作在AS和AS之间,着重于控制路由的传播和选择最优的路由,在AS间提供无环路的路由信息交换,BGP是EGP的一种。
自治系统定义:由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
自治系统的编号范围(1~65535);公有编号(1~64511);私有编号(64512~65535)。
BGP特征(增强的距离矢量路由协议)
1、可靠的路由跟新机制
2、丰富的Metric度量方法
3、从设计上避免了环路的发生
为路由附带属性信息
支持CIDR
丰富的路由过滤和路由策略
增量更新计算
BGP路由的传递
因为要先建立TCP连接,所以两端的路由器必须知道对方的IP地址,可以通过直连端口,静态路由或者IGP学习。
BGP路由更新
传输协议:TCP,端口号179(目的端口号),源端口号随机产生(1024~50000).
无需周期性更新
路由更新:只发送增量更新
周期性发生keepAlive报文检测TCP的连通性
BGP报文类型
1、Open:负责和对等体建立连接
2、keepAlive:该消息在对等体之间周期性的发送,用以维护连接
3、Update:该消息被用来在BGP对等体之间传递路由信息
4、Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体
5、Router-refresh:用来通知对等体自己支持路由刷新能力
BGP报文头
1、Header
Marker(16B)
Length(2B)
Type(1B)
2、Message
3、Data
Open报文
Version(1B) #现在用的V4
My Autonomous System(2B) #我自己的AS号码
Hold Time(2B) #建立的时间,180S,超过180S,对等体down了。
BGP Identifier(4B) #router Id
Opt Param Len(1B)#可选字段
Optional Parameters(variable)
Open错误码
1 不支持的版本号
2 错误的对等体AS号
3 错误的BGPid
4 不支持可选参数
keepalive报文 #检测邻居状态,时间间隔60S,开始重置。
只有报文头
Marker(16B)
Length(2B)
Type(1B)
Update报文
Withdrawn Routes Length(2B)#承载不可达路由信息
Withdrawn Routes(可变长度) #承载不可达路由信息,IP地址前缀部分
PathAttribute Length(2B)
PathAttribute(可变长度)# 路径属性
Network Layer Reachability Information(可变长度)#可达信息
Notification报文
Error Code(1B)
Error SubCode(1B)
Data(可变长度)
Error Code 错误类型
1 消息头错误
2 OPEN消息超时
3 UPDATE消息超时
4 保持时间超时
5 状态机错误
6 终止
Router-refresh报文
AFI(2B)
Res.(1B)
SAFI(1B)
BGP协议的应用
1、通过TCP建立BGP连接,发送OPEN消息
2、连接建立后,如果有路由需要发送或路由发生变化时,发送UPDATE消息通告对端
3、稳定后要定时发送KEEPALIVE消息保持BGP连接的有效性
4、当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对等体
5、ROUTE-REFRESH消息来通告对等体自己支持路由刷新
BGP状态机(状态迁移)
BGP数据库
IP路由表(IP-RIB)
全局路由消息库,包括所有IP路由信息。
BGP路由表(Loc-RIB)
BGP路由信息库,包括本地BGP Speaker选择的路由信息
邻居表
对等体邻居清单列表
Adj-RIB-In
对等体宣告给本地Speaker的未处理的路由信息库
Adj-RIB-Out
本地Speaker宣告给指定对等体的路由信息库