> 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字节路由属性长度和路径属性数据组成。 属性标志位: |