BGP协议概况及数据包分析

BGP详细介绍

BGP概述

BGP(BorderGatewayProtocol)边界网关协议,是互联网上一个核心的互联网去中心化自治路由协议。

  • 英文名称:Border Gateway Protocol
  • 中文名称: 边界网关协议
  • 缩写名称: bgp
  • 传输层协议: tcp
  • 服务端口 : 179

BGP理解

如果把广域网抽象成一个城市,其中包含的城域网抽象成城市中的小区,通过接下来的描述,大致就能了解BGP的功能了:

  • 小区中的每栋楼象征着一个个的局域网,他们之间的路由信息由小区物业统一管理,我们要去某栋楼,只需要查物业的路由表就行了;
  • 现在在这个小区的旁边又建了个新小区,新小区内部结构同上一个相同,这样两个小区内部相互访问没什么问题;
  • 接下来问题来了,两个小区之间若想互相访问怎么办?答案是两个小区的物业互相分享一下本小区的路由表,互相都看一下就可以了;
  • 随着越来越多的新小区建立,互相分享路由表,这个过程就是BGP协议的工作原理。

BGP的三个表

  • 路由表:存放本网络中的路由信息表;
  • 邻居表:保存所有BGP邻居的信息;
  • BGP表:保存从每个邻居学到的路由信息。

BGP报文

  • Open报文:用于建立BGP对等体连接。
  • Update报文:用于在对等体之间交换路由信息。
  • Notification报文:用于中断BGP连接。
  • Keepalive报文:用于保持BGP连接。
  • Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。

BGP扫描

请求包

经测试,无论发什么请求包都可以得到BGP服务器的响应包,而且响应信息可以解析。
shodan发的包如下:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x1d\x01\x04\x4b\xb8\x00\xb4\xd8\x75\x02\xb4\x00
BGP协议概况及数据包分析_第1张图片

响应包

目前得到的响应包有如下三种类别:

  • 只有OPEN报文
    BGP协议概况及数据包分析_第2张图片
  • 只有NOTIFICATION报文
    BGP协议概况及数据包分析_第3张图片
  • 有OPEN和NOTIFICATION两种报文
    BGP协议概况及数据包分析_第4张图片

BGP识别

得到BGP服务器的响应信息之后发现,BGP协议的响应报文中有Maker位,即“ffffffffffffffffffffffffffffffff”,可以通过以下识别相应信息中是否以此开头,对BGP协议进行识别。

BGP解析

在识别位后第三个十六进制数表示的是此响应的类型,对照关系如下:

十六进制数 响应类型
01 OPEN
02 UPDATE
03 NOTIFICATION
04 KEEPALIVE
05 ROUTE_REFRESH
06 CAPABILIT

通过判断响应类型确定解析函数(不同响应类型的解析有差异,目前只解析了OPEN类型和NOTIFICATION类型)

OPEN类型解析

以下位数表示以标志位结束位开始进行计数

  • 第1、2位表示响应信息长度
  • 第3位表示相应类型
  • 第4位表示BGP协议版本
  • 第5、6位表示自治系统编号(小区唯一标志)
  • 第7、8位表示连接时间
  • 第9、10、11、12位表示BGP识别码

NOTIFICATION类型解析

以下位数表示以标志位结束位开始进行计数

  • 第1、2位表示响应信息长度
  • 第3位表示响应类型
  • 第4位表示主要错误识别代码
  • 第5位表示辅助错误识别代码
主要错误识别码对应关系:
识别码 错误类型
01 MSG_HDR
02 OPEN_MSG
03 UPDATE_MSG
04 HT_EXPIRED
05 STATE_MACHINE
06 CEASE
07 CAP_MSG
辅助错误识别码对应关系:
识别码 错误类型
01 Maximum Number of Prefixes Reached
02 Administratively Shutdown
03 Peer De-configured
04 Administratively Reset
05 Connection Rejected
06 Other Configuration Change
07 Connection Collision Resolution
08 Out of Resources
09 Hard Reset
00 NULL

你可能感兴趣的:(解析协议的那些事儿)