BGP协议分析---报文和状态机
2008-02-23 04:53:18来源:互联网 阅读 ()
BGP是一种自治系统间的动态路由发现协议,它的基本功能是在自治系统间自动交换无环路的路由信息。与OSPF和RIP等在自治区域内部运行的协议对应,BGP是一类EGP(Edge Gateway Protocol)协议,而OSPF和RIP等为IGP(Interior Gateway Protocol)协议。
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字节路由属性长度和路径属性数据组成。
属性标志位:
位0:0 表示此属性必选,1 表示此属性可选。
位1:0 表示此属性为非过渡属性,1表示此属性为过渡属性。
位2:0 表示所有属性均为路由起始处生成,1 表示中间AS加入了新属性。
位3:0 表示路由属性长度由1字节指示,1表示由2字节指示。
位4至位7:未用置0
位0和位1标识了BGP的4类路由属性:
-(01) 公认必选:BGP的UPDATE报文中必须存在的属性。它必须能被所有的BGP工具识别。公认必选属性的丢失意味着UPDATE报文的差错。这是为了保证所有的BGP工具统一于一套标准属性。
-(01) 公认自决:能被所有BGP识别的属性,但在UPDATE报文中可发可不发。
-(11) 可选过渡:如果BGP工具不能识别可选属性,它就去找过渡属性位。如果此属性是过渡的,BGP工具就接受此属性,并把它向前传递给其它BGP路由器。
-(10) 可选非过渡:当可选属性未被识别,且过渡属性也未被置位时,此属性被忽略,不传递给其它BGP路由器。
路由属性类型:
⑴ORIGIN (Type Code = 1,公认必选属性)
指示此路由起始类型:
⑵AS_PATH (Type Code = 2,公认必选属性)
AS路径属性由一系列AS路径段(Segment)组成。每个AS路径段为一三元组<路径段类型,路径段长度,路径值>。
路径类型有:
路径段长度用1字节表示AS号的数量,即最长为255个AS号。
路径值为若干AS号,每个AS号为2字节。
⑶NEXT_HOP (Type Code = 3,公认必选属性)
此属性为UPDATE消息中的信宿地址所使用的下一跳。
⑷MULTI_EXIT_DISC (Type Code = 4,公认自决属性)
简称MED属性。为一4字节无符合整数。它在AS区域间传播,用来帮助一个其它AS区域的BGP伙伴选择进入本AS区域的人口。
⑸LOCAL_PREF (Type Code = 5,公认自决属性)
本地优先级属性。为一4字节无符合整数。它在AS区域内传播,用来帮助一个本AS区域内BGP伙伴选择进入其它AS区域的出口。
⑹ATOMIC_AGGREGATE (Type Code = 6,公认自决属性)
元聚合属性。长度为零。它表示本地BGP在若干路由中选择了一个较抽象的(less specific)路由,而没有选择较具体(specific)的路由。
⑺AGGREGATOR (Type Code = 7,可选过渡属性)
聚合者属性。长度为6字节,分别为最后进行路由聚合的路由器的AS号(2字节)和IP地址(4字节)。
4、BGP协议的特点
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash