设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 3429|回复: 109
收起左侧

[分享] BGP报文类型/特性/数据结构

[复制链接]
 成长值: 62320
发表于 2017-10-25 09:26:31 | 显示全部楼层 |阅读模式




一、BGP应用场景
1.用在中转的AS,如:ISP网络
2.在末端AS(例如企业的AS中),如果存在多个出口,需要做路径控制时可以采用BGP

二、BGP特性
1.路径矢量算法(可以认为是距离矢量)。BGP使用Path-Vector算法保证计算的路由是无环
2.BGP协议是承载在TCP之上,端口号为179
3.BGP采用触发、增量的更新
4.BGP路由具有丰富的路径属性(Path Attribute,可以认为是Metrics),可进行丰富的路由策略功能
5.BGP能够处理大量的路由(典型的网络:Internet)

三、BGP数据结构
1.Neighbor表
  –存放BGP邻居信息
2.BGP表(亦称为转发数据库)
  –存放从每个BGP邻居学习到的所有路由信息
  –允许存放到达同一个目标网络的多条路径
  –每条路径中都包含BGP路径属性
3.IP路由表
  –所有路由协议通用

四、BGP报文类型
BGP在建立对等连接之前,两个邻居必须先执行标准的TCP三次握手进程,并在端口179打开TCP连接。TCP为一条可靠连接提供了分段,重传,确认以及排序等功能,从而将BGP从这些功能中解放出来。所有的BGP消息均采用单播方式经TCP连接传递给邻居。
BGP使用以下四种消息类型:
Type 1——Open(打开)消息
Type 3——Keepalive(保持激活)消息
Type 2——Update(更新)消息
Type 4——Notification(通告)消息
1.Open消息

在TCP会话建立之后,两个邻居都将发送Open消息,每个邻居都利用该消息标识自己并指定BGP操作参数。Open消息包括以下信息:
①BGP版本号。(BGP version number)
1字节,该字段用于指定发起方正在运行的BGP版本号(一般情况下的BGP版本号位4)如果邻居运行较早的版本的BGP,则邻居会拒绝指定版本为4的Open消息;此时BGP-4路由器将更改到BGP-3并在发送一次指定版本的Open消息。最终双方将持续协商至双方都可接受的版本为止。
②自治系统号 (AS number)
2字节,该字段表示会话发起的路由器的AS号,该消息用于确认该BGP会话是eBGP(不同的AS号)或是iBGP邻居(相同的AS号)
③保持时间 (Hold time)
2字节,该字段表示路由器收到Keepalive消息或是Update消息之前可以等待的最长时间(以秒为单位)。Cisco默认时间为180s,但如果双方的保持时间不一致的话,协商时,采用OPEN消息中较小的那个Hold Time作为双方的Hold Time。Hold Time是设备收到一个KEEPALIVE之前允许经过的最大秒数。这个时间或者是0秒(不发送KEEPALIVE),或者是至少3秒。一般默认KEEPALIVE每60秒发送一次,HoldTime为180秒。
④BGP Identiffer(标识)
4字节,Router ID。
⑤optional parameters length
可变长度(可选内容),公布本路由器能够支持的一些能力参数,如认证、多协议支持等等。
注:OPEN报文中Marker、Length、Type三个字段为BGP报文头部分。
2.Keepalive 消息

当路由器接受了由邻居发送来的Open消息中的指定参数,它将响应一条Keepalive消息,此后路由器每60s发送一条Keepalive消息(Cisco默认),或是以协商的保持时间的1/3为周期发送Keepalive消息。由于KEEPALIVE纯粹是一个通信知会,不需要携带什么信息,因此KEEPALIVE报文实际上是不带数据的BGP报文头。
3.Update消息
Update消息被用来宣告可行路由、撤销的路由。Update消息将包括以下信息:
①增量更新报文

a)unfeasible routes length(2字节):不可到路由长度,如没有则为0
b)total path attribute length(2字节):BGP属性长度
c)path attributes(可变长):BGP路径属性。该属性提供了允许BGP选择最短路径,检测环路,确定路由策略等相关信息。
d)nework layer reachability information(可变长):网络层可达性信息。该字段有一个或是多个IP地址前缀及长度的二元组。
②路由撤销报文(Withdrawal Routes)

a)unfeasible routes length(2字节):不可到路由长度,这路由有不可达路由
b)withdrawn routes:撤消路由条目,包括前缀长度和网络号的二元组
c)total path attribute length(2字节):这里为0,没有数据
注:①在通告路由的可达性信息时,通常一个Update报文只能通告一个网段,除非多个网段的路径属性是完全相同的,此时允许在一个Update中通告多个网段。
②在通告路由的不可达信息时,允许在一个Update报文中撤销多个网段。因为在通告路由的不可达信息时,并不包含路径属性。
4.Notification消息

只要路由器检测到差错就会发送Notification消息并关闭BGP进程,随后我们将看到BGP邻居断开,然后试图重新建立BGP邻居。关于Notification消息的错误代码请查阅相关RFC文档。
5. Route-Reflesh message消息



思科知识点汇总贴
http://bbs.hh010.com/thread-529979-1-1.html
(出处: 鸿鹄论坛)


发表于 2022-3-11 20:29:43 | 显示全部楼层
简单明了!学习了
8# 2022-3-11 20:29:43 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2023-10-4 13:54:37 | 显示全部楼层
學習中!!感謝分享
9# 2023-10-4 13:54:37 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-11-22 05:04 , Processed in 0.062022 second(s), 9 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表