DA000011 BGP路由协议 ISSUE2.0 错误!未找到引用源。错误!未找到引用源。BGP的报文和状态机边界网关协议
1.1 报文种类
BGP报文种类
●BGP报文有四种类型:
→Open:打招呼“你好,跟我交个朋友吧!”
→KeepAlive:我还活着呢,别不理我
→Update:有新闻......
→Notification:我不跟你玩了!
EGP 内部网关协议
BGP 控制路由划分边界
BGP 采用的TCP路由协议
Ospf 采用的是ipv4
Ospf 的端口号是89
BGP的端口号是179
运行两个层次之间的
IBGP LOOPBACK
EBGP 物理接口
BGP有4种类型的报文,分别为OPEN、UPDATE、NOTIFICATION和KEEPALIVE。
BGP对等体间通过发送OPEN报文来交换各自的版本、自治系统号、保持时间、BGP标识符等信息,进行协商。
UPDATE报文携带的是路由更新信息。其中包括撤销路由信息和可达路由信息及其路径属性。
当BGP检测到差错(连接中断、协商出错、报文差错等)时,发送NOTIFICATION 报文,关闭同对等体的连接。
KEEPALIVE报文在BGP对等体间周期地发送,以确保连接保持有效。
OPEN报文主要用于建立邻居(BGP对等体)关系,它是BGP路由器之间的初始握手消息,应该发生在任何通告消息之前。其他在收到OPEN消息之后,即以KEEPALIVE消息作为响应。一旦握手成功,则这些BGP邻居就可以进行UPDATE(更新)、KEEPALIVE(保持激活)以及NOTIFICATION (通知)等消息的交换操作。
DA000011 BGP路由协议 ISSUE2.0 错误!未找到引用源。错误!未找到引用源。
1.2 报文内容及格式
BGP报文头
BGP报文的格式是一样的,都是”报文头+报文体“的格式,下面
给出的是BGP报文头:
Marker(16 byte)
Length(2 byte)Type(1 byte)
BGP报文头的格式如图所示,每行的宽度为4个字节。
BGP 是发现控制路由协议
Marker 鉴权信息:16 字节,全1。这个标记的作用主要是用来检测BGP对等体之间的同步是否丢失,并对进来的BGP消息进行验证。
Length 消息的长度:2 字节,指示整个消息的长度,包括头标长度,最小的BGP消息长度是19字节(Keepalive报文),最大的长度是4096字节。
Type 消息的类型:1 字节,指示报文类型,如OPEN、UPDATE报文等。
1 :OPEN
2 :UPDATE
3 :NOTIFICATION
4 :KEEPALIVE
Open报文
Open报文是由报文头加如下结构构成的。
Vision
My Autonomous System
Hold Time
BGP Identifier
Optional Paramenters
Length
Optional Paramenters
Version :(1字节)发端BGP版本号
My Autonomous System :(2字节无符号整数)本地AS号
Hold Time :(2字节无符号整数)发端建议的保持时间 BGP Identifier :(4字节)发端的路由器标识符
Optional parameters Len :(1字节)可选的参数的长度
Optional Parameters :(变长)可选的参数
消息的开始部分包括BGP的版本号和发送方的自治系统编号。接下来是保持时间(HOLD TIME)字段,这是发送方提供建议的保持定时器的设定秒数。保持定时器规定了BGP邻居认为发送方信息有效的时间长度。再下一个字段是BGP标识(BGP ID),也就是BGP发送方的标识。该值是在BGP对等体之间进行握手操作的过程中确定的,并且在每个本地接口及每个BGP对等体之间是保持不变的。
DA000011 BGP路由协议 ISSUE2.0 错误!未找到引用源。错误!未找到引用源。
KeepAlive报文
KeepAlive报文只有报文头。
Marker(16 byte)
Length(2 byte)Type(1 byte)
KeepAlive 报文主要用于对等体路由器间的运行状态以及链路的可用性确认。KeepAlive 报文的组成只包括一个BGP数据报头。KeepAlive 消息在对等路由器间的交换频度以保证对方保持定时器不超时为限。
当一台路由器与其邻居建立BGP连接之后,将以Keepalive-interval设定的时间间隔周期性地向对等体发送Keepalive 报文,表明该连接是否还可保持。
缺省情况下,发送Keepalive 的时间间隔为 60 秒。
Update报文
Update报文由报文头加如下结构构成。
Unfeasible Routes Length
Withdrawn Routes
Path Attribute Length
Path Attribute
Network Layer Reachability Information
Unfeasible Routes Len :(2字节无符号整数)不可达路由长度
Withdrawn Routes :(变长)撤消路由
Path Attribute Len :(2字节无符号整数)路径属性长
Path Attributes :(变长)路径属性(以下详细说明)
Network Layer Reachability Information :(变长)网络可达信息(目标)
其中撤消路由和目标地址的表示方法为一
UPDATE 报文是BGP系统中最重要的信息,用于在同伴之间交换路由信息,它最多由三部分构成:不可达路由(unreachable)、路径属性(path attributes)、网络可达性信息(NLRI,network layer reachability information)。
UPDATE 消息可以向BGP对等体通告一条路由,也可以撤消多条“行不通”的路由。不可达路由字段包括一个所撤消路由的IP地址前缀列表。路径属性字段是一个路径属性的列表,包括:属性类型、属性长度和属性值等。网络可达字段包括了BGP路由器所知道的且可到达的IP地址前缀列表。
一个UPDATE 消息一次只能通告一个路由,但它可以携带多个路径属性。
一个UPDATE 消息一次也可通告多条路由,但它的路径属性必须相同。