BGP
有
5
种
message
1. Open
(
code 1
):用于建立连接,包含版本号(如
BGP3/BGP4
)
Hold Time
=
90s
(
RFC1771
规定的。是一个协商的过程,以较小的
Hold Time
为准),
Router-ID
(
OSPF
和
BGP
可以手动配置),
AS
号
(
范围从
1
~
65535
,其中
64512
~
65535
的
AS
编号范围留作私有
)
;
2. KeepAlives
(
code 4
):周期发送用于维护连接检查路径(这个包是不可靠的)
,T
=
Hold Time/3, Hold Time=0 => No KeepAlive.
,
keepalive
是个
19
字节周期发送的
BGP
消息头标,没有数据域。
3. Update
(
code 2
):消息包含了三个组件:网络层可达性消息(
NLRI
)、路径属
性和被撤销的路由。包括到达目的网络的路径和属性,更新路由信息用,一次更新只
有一条路径,但可以有多条网络。
Update
可以删除(宣告不可达)和增加(宣告可达)
路由
.
其内容是前缀的长度。
4. Notification
(
code 3
):网络中出现错误(
Error
),检测到后断开连接并发送通
知给对方。
5
.
Route-Reflesh message
:一个可选的
message (negotiated during capability advertisement) that is sent to request dynami
c BGP route updates from the Adj-RIB-Out table of a remote BGP speaker
协商过程基本上是:
Idel
,
connect
,
open sent
,
open confirm
,
establish
。
BGP
邻居建立会话的
5
种状态:
1. Idle
:查找路由表,该过程
BGP
对它的资源进行初始化,复位一个连接重试计
时器,发起一条
TCP
连接,并开始倾听远程对等体所发起的连接。
2
.
Connect
:找到路由表后进行
TCP
三次握手,
TCP
连接成功,则转到
OpenSent
状态,
TCP
连接失败,则转到
active
状态
,
将尝试再次连接。
3
.
Open Sent
:握上手后发送
Open message
消息,等待其对等体发送打开消息,
如果出错,则发送一条出错消息并退回空闲状态,如果无错,则开始发送
Keepalive
并复位
keepalive
计时器。
4
.
Open Confirm
:收到对方发来的
Open
消息,如果收到
keepalive
消息,
BGP
就
进入
established
状态,邻居关系协商完成;如果系统收到一条更新或
keepalive
消息,
它将重新启动保持计时器;如果收到
Notification
消息,
BGP
就退回到空闲状态。
5
.
Established
:会话建立,邻居关系协商过程最终状态;这时
BGP
将开始与它的对
等体交换路由更新数据包。