打印本文 打印本文  关闭窗口 关闭窗口  
BGP协议分析---报文和状态机
作者:佚名  文章来源:不详  点击数1658  更新时间:2007-5-18 3:18:23  文章录入:啊祖  责任编辑:啊祖

>  BGP是一种自治系统间的动态路由发现协议,它的基本功能是在自治系统间自动交换无环路的路由信息。与OSPF和RIP等在自治区域内部运行的协议对应,BGP是一类EGP(Edge Gateway Protocol)协议,而OSPF和协议。
  BGP是在EGP应用的基础上发展起来的。EGP在此以前已经作为自治区域间的路由发现协议,广泛应用于NFSNET等主干网络上。但是,EGP被路由环路问题所困扰。BGP通过在路由信息中增加自治区域(AS)路径的属性,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的策略。同时,随着INTERNET的飞速发展,路由表的体积也迅速增加,自治区域间路由信息的交换量越来越大,都影响了网络的性能。BGP支持无类型的区域间路由CIDR(Classless Interdomain Routing),可以有效的减少日益增大的路由表。
  BGP运行时刻分别与本自治区域外和区域内的BGP伙伴建立连接(使用Socket)。与区域内伙伴的连接称为IBGP(Internal BGP)连接,与自治区域外的BGP伙伴的连接称为EBGP(External BGP)连接。本地的BGP协议对IBGP和EBGP伙伴使用不同的机制处理。
  1、BGP协议的层次位置

  BGP使用Socket服务建立连接,端口号为179。
  2、BGP的消息结构
  BGP有4种类型的消息。分别为OPEN,UPDATE,KEEPALIVE和NOTIFY。它们有相同的消息头。
  ⑴消息头结构:
  Marker : (16字节) 鉴权信息
  Length : (2字节) 消息的长度
  Type : (1字节) 消息的类型
  0 :OPEN
  1 :UPDATE
  2 :NOTIFICATION
  3 :KEEPALIVE
  ⑵OPEN消息结构:
  消息头加如下结构 :

  Version :(1字节) 发端BGP版本号
  My Autonomous System :(2字节无符号整数) 本地AS号
  Hold Time :(2字节无符号整数) 发端建议的保持时间
  BGP Identifier :(4字节) 发端的路由器标识符
  OptParmLen :(1字节) 可选的参数的长度
  Optional Parameters :(变长) 可选的参数
  ⑶KEEPALIVE消息结构
  KEEPALIVE消息只有一个消息头。
  ⑷NOTIFY消息结构
  消息头加如下结构:

  Errsubcode :(1字节) 辅助错误代码,略。
  Data :(变长) 依赖于不同的错误代码和辅助错误代码。用于诊断错误原因。
  ⑸UPDATE消息结构
  消息头加如下结构:

  Unfeasible Routes Len :(2字节无符号整数) 不可达路由长度
  Withdrawn Routes :(变长) 退出路由
  Path Attribute Len :(2字节无符号整数) 路径属性长
  Path Attributes :(变长) 路径属性(以下详细说明)
  Network Layer Reachability Information :(变长) 网络可达信息(信宿)
  其中退出路由和信宿地址的表示方法为一 的二元组。length一个字节,指示地址前缀的长度。prefix为地址前缀,长度1至4字节。
  3、BGP路径的属性
  每个路径属性由1字节的属性标志位,1字节的属性类型,1或2字节路由属性长度和路径属性数据组成。
  属性标志位:

打印本文 打印本文  关闭窗口 关闭窗口