RFC1771边界网关协议版本4(BGP-4)_第1页
RFC1771边界网关协议版本4(BGP-4)_第2页
RFC1771边界网关协议版本4(BGP-4)_第3页
RFC1771边界网关协议版本4(BGP-4)_第4页
RFC1771边界网关协议版本4(BGP-4)_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 / 57 组织:中国互动出版网(http:/www.china- RFC 文档中文翻译计划(http:/www.china- E-mail:ouyangchina- 译者:kevin73(kevin73,panzhenyu_) 译文发布时间:2001-4-26 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必 须 保留本文档的翻译及版权信息。 Network Working Group Y. Rekhter Request for Comments: 1771 T.J. Watson Research Center, IBM Corp. Obsoletes:

2、1654 T. Li Category: Standards Track cisco Systems Editors March 1995 边界网关协议版本边界网关协议版本 4 4(BGP-4BGP-4) (RFC1771 A Border Gateway Protocol 4 (BGP-4) 本备忘录的状态 本文档讲述了一种 Internet 社区的 Internet 标准跟踪协议,它需要进一步进行讨论 和建议以得到改进。请参考最新版的“Internet 正式协议标准” (STD1)来获得本协议的 标准化程度和状态。本备忘录的发布不受任何限制。 摘要 本文档,以及随同文档,“边检网关协议在互

3、联网中的应用”,定义了互联网的自治 系统间路由协议。 目录目录 1.1. 致谢致谢.3 3 2.2. 介绍介绍.3 3 3.3. 操作总结操作总结.4 4 3.1 路由:通告和存储.5 3.2 路由信息库.5 4.4. 消息格式消息格式.5 5 4.1 消息头格式.6 4.2 OPEN 消息格式 .6 4.3 UPDATE 消息格式 .8 4.4 KEEPALIVE 消息格式 .13 4.5 NOTIFICATION 消息格式 .13 5.5. 路径属性路径属性.1515 5.1 路径属性使用.16 5.1.1 ORIGIN.16 5.1.2 AS-PATH.16 5.1.3 NEXT-HOP

4、.16 5.1.4 MULTI-EXIT-DISC.17 5.1.5 LOCAL_PREF.17 5.1.6 ATOMIC_AGGREGATE.17 5.1.7 AGGREGATOR.18 6.6. BGPBGP 错误处理错误处理 .1818 6.1 消息头错误处理.18 6.2 OPEN 消息错误处理.19 6.3 UPDATE 消息错误处理.19 6.4 NOTIFICATION 消息错误处理.20 6.5 HOLD TIMER 溢出错误处理 .20 6.6 有限状态及错误处理.20 6.7 终止.21 6.8 连接冲突检测.21 7.7. BGPBGP 版本商议版本商议 .2121 8.

5、8. BGPBGP 有限状态机有限状态机.2222 9.9. UPDATEUPDATE 消息处理消息处理.2525 9.1 决策过程.26 9.1.1 Phase 1: 优先级的计算.26 9.1.2 Phase 2: 路由选择.27 9.1.3 Phase 3: 路由分发.28 9.1.4 路由覆盖.29 9.2 UPDATE发送过程 .29 9.2.1 内部更新.30 9.2.2 外部更新.31 9.2.3 控制路由流量开销.31 9.2.4 路由信息的有效组织.32 9.3 路由选择标准.34 9.4 产生 BGP 路由 .34 附录附录 1.1. BGPBGP FSMFSM 状态转换和

6、行为状态转换和行为.3434 附录附录 2.2. 对比对比 RFC1267RFC1267 .3737 附录附录 3.3. 对比对比 RFC1663RFC1663 .3838 附录附录 4.4. 对比对比 RFCRFC 11051105 .3838 附录附录 5.5. BGPBGP 可能使用的可能使用的 TCPTCP 选项选项.3939 附录附录 6.6. 应用建议应用建议 .3939 6.1 每个消息的多网络前缀.39 6.2 使用流协议.40 6.3 减少路由抖动.40 6.4 BGP 计时器.40 6.5 路径属性顺序.40 6.6 AS_SET 排序.41 6.7 版本商议控制.41 6

7、.8 复杂 AS_PATH 聚合 .41 参考参考.4141 安全考虑安全考虑.4242 作者地址作者地址.4242 1.1. 致谢致谢 本文档初版是1991年10月的RFC1267,由Kirk Lougheed (cisco 系统) 和 Yakov Rekhter (IBM)合作。 我们意欲感谢Guy Almes (ANS), Len Bosack(cisco 系统), 和Jeffrey C. Honig (Cornell 大学) 对本文档早期版本的贡献。 我们特别感谢Bob Braden (ISI) 回顾本文档的早期版本并作出了建设性有价值的评 论。 我们同时感谢Bob Hinden, I

8、nternet Engineering Steering Group路由主管, 以及 他组织回顾早期版本(BGP-2)的小组。本小组,包括Deborah Estrin, Milo Medin, John Moy, Radia Perlman, Martha Steenstrup, Mike St. Johns, 和 Paul Tsuchiya, 工作顽强专业谦逊。 本文档作为更新版本是编者Yakov Rekhter and Tony Li 的IETF IDR 工作组的产品。 本文档某些部分广泛参考了IDRP7,BGP的OSI对等协议。为此感谢ANSI X3S3.3 组,主 席是Lyman Ch

9、apin (BBN), 编辑是Charles Kunzinger(IBM Corp.)。 同时感谢Mike Craren (Proteon, Inc.), Dimitry Haskin (Bay Networks, Inc.), John Krawczyk (Bay Networks, Inc.), 和 Paul Traina (cisco Systems) 的深刻评论。 我们特别感谢 Dennis Ferguson (MCI)的巨大贡献。 Yakov Rekhter 的工作资金部分来自National Science Foundation ,批号NCR- 9219216. 2.2. 介绍介绍

10、 边界网关协议(BGP)是自治系统间路由协议。它的建立来源于RFC9041中定义的 EGP以及RFC10922和RFC10933中描述的EGP在NSFNET骨干网中的使用。 BGP交互系统的主要功能是和其他的BGP系统交换网络可达信息。网络可达信息包括可 达信息经过的自治系统(AS)清单上的信息。这些信息有效地构造了AS互联的图像并由此 清除了路由环路同时在AS级别上实施了策略决策。 BGP-4提供了一套新的机制支持无类域间路由。这些机制包括支持网络前缀的广播取 消BGP网络中“类”的概念。BGP-4也引入机制支持路由聚合,包括AS路径的聚合。这些改 变为8, 9建议的超网方案提供了支持。 为

11、了刻画BGP执行的路由决策,集中讲述BGP发言者通告他自己使用的路由到相邻AS中 对端(与之通信的别的BGP发言者)的规则。这些规则反映了当今互联网广泛使用的“一 跳一跳”路由范例。注意一些策略不被“一跳一跳路由范例支持所以需要比如源路由之类 的技术来增强。例如,BGP不支持AS发送流量到相邻的AS但是路由和源自相邻AS流量有不 同的路由。另一方面,BGP支持任何与“一跳一跳”一致的策略。由于当前互联网只使用 “一跳一跳”路由范例同时BGP支持与范例一致的策略,BGP作为AS间路由协议非常适用于 当今互联网。 BGP能否执行哪些策略超出了本文档的讨论范围(请参考讨论BGP使用的随同文档5) 。

12、 BGP运行在稳定的传输协议上。这样就不用再更新分段,重传,应答和排序。传输协 议使用的认证机制可以作为BGP自己的认证机制的附加。BGP的错误通知机制假定传输协议 支持“体面”关闭,也就是说,说有没有传到的数据在联接关闭之前要被送到。 BGP使用TCP4作为传输协议。TCP满足BGP的传输需求并在所有的商业路由器和主机 上使用。在后面的叙述中,术语“传输协议连接”可以理解为TCP连接。BGP使用TCP端口 179建立连接。 本文档使用术语自治系统(AS)。自治系统的经典定义是在统一技术管理下的一系列 路由器,在AS内部使用内部网关协议和通用的度量路由数据包,在AS外部使用外部网关协 议路由数

13、据包。由于本定义的发展,通常一个AS可以使用几个内部网关协议同时在AS内部 使用多种度量。使用自治系统这个术语强调了以下事实,即使使用了多个IGP和度量,对 别的AS而言,AS的管理表现出一致的路由计划和一致的目的地可达。 在互联网中使用BGP的计划,包括拓扑问题,BGP和IGP的交互,路由策略规则的实施, 在随同文档5中表述。本文当是一系列探究BGP应用各方面问题计划的开始。请发表评论 到BGP邮件列表(). 3.3. 操作总结操作总结 两个系统通过传输协议互联。他们交换消息来打开和确认连接参数。初始的数据流是 整个BGP路由表。增加的更新作为路由表改变发送。因此,BGP发言者必须保存在连接

14、期间 所有对等体的整个BGP路由表的当前版本。KeepAlive心跳消息周期性发送来保证连接的存 在。发送通知消息报错或者特别情况。如果一个连接遇到一个错误情况,要发送通知消息 并且关闭连接。 执行边界网关协议的主机不一定是路由器。一个非路由主机可以通过EGP甚至内部网 关协议和路由器交换路由信息。然后非路由主机可以通过BGP和别的AS中的边界路由器交 换路由信息。 这种应用构架可以用于更进一步的研究。 如果一个特定AS有多个BGP发言者同时为别的AS提供中转业务,应该注意保证本AS中 对路由有一致的观点。AS内部路由的一致看法由内部路由协议提供。AS外部对路由的一致 看法由所有AS内部的BG

15、P发言者保持BGP一一互联。使用通常的策略,BGP发言者对哪一个 边界路由器服务为和别的AS的外出/进入点达成一致。这些信息可能通过内部网关协议通 信到AS的内部路由器。注意在BGP发言者把中转业务通告到别的AS之前所有的内部路由器 需要更新中转信息。 不同AS之间的BGP发言者的连接被称为“外部”链路。同一个AS内部的BGP连接被称为 “内部”链路。同样不同AS之间的对端被称为外部对端,相同AS之间的对端被称为内部对 端。 3 3.1.1 路由:通告和存储路由:通告和存储 从协议的用途出发路由被定义为组合了一个目的地和到这个目的地的路径属性的信息 单位。 -路由在一对BGP发言者之间通过UP

16、DATE消息广播。目的地也就是在网络层可达信息 (NLRI)内报告的IP地址,路径是在UPDATE消息路径属性域内报告的信息。 -路由存储在路由信息库(RIB)内:也就是the Adj-RIBs-In, the Loc-RIB, and the Adj-RIBs-Out. 将被广播到别的BGP发言者的路由放在Adj-RIB-Out内部;在本地BGP 发言者使用的路由放在Loc-RIB, 这些路由的下一跳信息保存在BGP发言者的转发信息库内; 别的BGP发言者收到的路由信息保存在Adj-RIBs-In内部。 如果一个BGP发言者选择路由通告,他可以在通告路由到对端之前加入和修改路由的 路径属性。

17、 BGP提供机制告诉对端先前的路由通告不再能使用。有三种方式供BGP发言者指示撤销 某条路由的服务。 a)在UPDATE消息的WITHDRAWN ROUTES域内通告先前广播的路由目的地IP前缀,这样相 应的路有被标志为不再使用, b)使用了相同网络层可达信息的替代路由被通告, c)BGP发言者-发言者的连接被关闭,强制撤销这一对发言者通高的所有的路由服务。 3 3.2.2 路由信息库路由信息库 BGP发言者的路由信息库(RIB)包括三个不同部分: a)Adj-RIBs-In: Adj-RIBs-In 保存了从输入UPDATE消息学习到的路由信息,这是决 策过程的输入。 b)Loc-RIB:

18、Loc-RIB保存了BGP发言者根据本地策略在Adj-RIBs-In内选择的本地路由 息。 c)Adj_RIBs_Out: Adj_RIBs_Out保存了本地BGP发言者通告到对端的路由。 Adj_RIBs_Out内部的消息被放在UPDATE消息内部发送的对端。 总之,Adj_RIB_In包括了被对端广播到BGP发言者的路由信息;Loc_RIB包括了被本地 决策过程选择的路由信息;Adj_RIBs_Out组织路由使用UPDATE消息通告到特定对端。 尽管本概念模型区分Adj-RIBs-In,Loc-RIB,和 Adj-RIBs-Out,这并不意味着也没 有必要具体应用中维护路由信息的独立拷贝。

19、应用的选择(例如,信息库的三份拷贝或者 一个拷贝的指针)不受协议限制。 4.4. 消息格式消息格式 本章描述BGP的消息格式。 消息通过一个稳定的传输协议互联发送。消息只有在被完整收到之后才会处理。最大 的消息是4096字节。最小的消息就是一个不包括消息体的BGP消息头,19字节。 4.14.1 消息头格式消息头格式 每一个消息包括一个定长的消息头。消息头后面可以/可以不包含数据部分,这取决 于消息类型。这些域设计如下: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+

20、-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + + | Marker | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Marker(标记): 本16字节的域包含消息接收者可以预测的值。如果消息类型是OPEN,或者OPEN消 息承载了认证信息(作为可选参数),标记必须是全1。否者

21、,标记的值要使用认证机制 来计算(认证机制是通过认证信息的一部分来指定的)。标记可以用来探测BGP对端的同 步丢失,认证进入的BGP消息。 长度(Length): 两字节无符号整数指定了消息的字节全长,包括头部的字节。这也就是说,允许 在传输层数据流定位下一个消息(的标记域)。长度的值必须最少19字节最大4096字节, 同时由于不同的消息有更多的约束。不允许“填充”多余的数据在消息后,所以长度域是 需要的最小值。 类型(Type): 一字节的无符号整数制定了消息类型编码。如下定义: 1 - OPEN 2 - UPDATE 3 - NOTIFICATION 4 - KEEPALIVE 4.4.2

22、 2 OPENOPEN 消息格式消息格式 在传输协议连接建立之后,两边发送的第一个消息是OPEN消息。如果OPEN消息可以接 受,需要发回一个KEEPALIVE消息来确认OPEN消息。一旦确认了OPEN消息, UPDATE,KEEKPALIVE和NOTIFICATION消息可以交换。 在定长的BGP消息头后面,OPEN消息包含下列域: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+ | Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+

23、-+-+ | My Autonomous System | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Hold Time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BGP Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opt Parm Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

24、+-+-+-+-+-+ | | | Optional Parameters | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Version(版本): 1字节无符号整数指示消息的协议版本号。当前的BGP版本号是4。 My Autonomous System(我的自治系统): 2字节无符号整数指示发送者自治系统号。 Hold Time(保持时间): 2字节的无符号整数指示了发送者期望的Hold计时器的秒数。在接收OPEN消息后, BGP发言者必须使用配置的Hold计时器和收到的Hold计时器来计算Hol

25、d计时器的值。 Hold计时器必须要末是0要末最少3秒。应用可以根据Hold计时器来拒绝连接。计算好 的值指示了在连续的KEEPALIVE和/或UPDATE消息之间可以流逝的最大秒数。 BGP Identifier (BGP标示符): 4字节无符号整数指示了BGP发言者的标示符。给定的BGP发言者设置BGP标示符为 IP地址。在启动的时候决定BGP表示符,对每一个本地端口和每一个对端是一样的。 Optional Parameters Length(可选参数长度): 1字节无符号整数指示可选参数域的字节总长度。如果这个域是0,说明没有可选 参数。 Optional Parameters(可选参数

26、): 这个域包含了可选参数清单,每一个参数编码为 三元组。 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-. | Parm. Type | Parm. Length | Parameter Value (variable) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-. 参数类型是1个字节明确指示了参数的类型。参数长度1子节包含参数值的字节长 度。参数值是变长域根据参数类型有不同的解释。 本文档定义了下列可选参数: a)认证消息(参数类型1): 选参数用

27、来认证BGP对端。参数值包含1字节认证编码后面是变长的认证数据。 0 1 2 3 4 5 6 7 8 +-+-+-+-+-+-+-+-+ | Auth. Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Authentication Data | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Authentication Code(认证编码): 1字节无符号整数指示了使用的认证机制。当指定认证机制的时候,需要说明三 件事情: -认证编

28、码的值用来指示认证机制, -认证数据的格式和含义, -Marker标示域计算值的算法。 注意可以使用另外的认证机制在建立传输层连接时。 Authentication Data(认证数据): 这个域的格式和含义取决于认证编码。 OPEN消息的最小长度是29字节(包括消息头)。 4.4.3 3 UPDATEUPDATE 消息格式消息格式 UPDATE消息用来发送路由信息到BGP对端。UPDATE消息报内的信息可以被用来构造AS 之间的关系描述。通过应用以下讨论的规则,路由环路和别的异常可以测出并清除出AS间 路由。 UPDATE消息用来广播一条可用路由到对端,或者撤销多条不可用路由(见3。1)。

29、UPDATE消息可以同时广播可用路由并撤销多个不可用路由。UPDATE消息总是包括定长消息 头,同时可选的包括下面的域: +-+ | Unfeasible Routes Length (2 octets) | +-+ | Withdrawn Routes (variable) | +-+ | Total Path Attribute Length (2 octets) | +-+ | Path Attributes (variable) | +-+ | Network Layer Reachability Information (variable) | +-+ Unfeasible Rout

30、es Length(不可用路由长度): 2字节无符号整数指示了撤销路由的字节总长度。这个值必须保证网络层可达信 息域的长度被确定。 0说明没有撤销路由, UPDATE消息内部没有撤销路由。 Withdrawn Routes(撤销路由): 可变长路由域包括一系列的IP前缀说明撤销服务的路由。每一个IP前缀编码为 长度,前缀二元组,如下描述: +-+ | Length (1 octet) | +-+ | Prefix (variable) | +-+ 使用和含义如下: a) Length(长度): 长度指示了IP前缀的比特数。0长度指示了匹配所有IP地址的前缀(前缀本 身为0字节) b) Pref

31、ix(前缀): 前缀包含了IP地址前缀后面是填充比特保证域结尾符合字节边界。注意填充 比特的值无意义。 Total Path Attribute Length(总的路径属性长度): 2字节无符号整数值时路径属性域字节总长度。值必须使下文中网络层可达域的 长度能够被探测到。 值0指示在UPDATE消息中没有网络层可达信息域。 Path Attributes(路径属性): 在每一个UPDATE消息中有变长的路径属性序列。每一个路径属性是变长三元组 属性类型是2字节域包括了属性标志字节和属性类型码字节。 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-

32、+-+-+-+-+-+-+-+-+-+-+ | Attr. Flags |Attr. Type Code| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 属性标志字节第一高位比特(比特0)是可选比特。定义了属性是否是可选 的(设为1)或者是公认的(设为0)。 属性标志字节第二高位比特(比特1)是转发比特。定义一个可选的属性是 否是转发的(如果设置为1)或者不是转发的(设为0)。公认属性的转发位必须 设为1。(参看部分5讨论转发属性)。 属性标志字节的第三比特(比特2)是部分比特。定义是否包括在可选转发 属性内的信息是部分的(设置为1)或者是完整的(设置为0)。公认属性和可

33、选 非转发的部分位必须是0。 属性标志字节的第四比特(比特3)是扩展长度比特。定义了是否属性长度 是1字节(如果设置为0)或者是2字节(如果设置为1)。仅仅当属性值超过255 字节的时候,扩展长度可以使用。 属性标志字节低字节顺序4比特没有被使用。必须填0(接收不处理)。 属性类型编码字节包含了属性类型码。当前定义的属性类型码在部分5讨论。 如果属性标志字节的扩展长度比特被设置为0,路径属性的第三个字节包含 了属性数据的字节长度。 如果属性标志字节的扩展长度比特设置为1,那末路径属性的第三和第四个 字节包含了属性数据的字节长度。 路径属性剩下的字节代表属性值应该通过属性标识和属性类型码翻译。支

34、持 的属性类型码,它们的属性值和使用如下定义: a) ORIGIN (类型码 1): ORIGIN是公认强制属性定义了路径信息的来源。本数据字节假定如下值: 值 含义 0 IGP 网络层可达信息和来源AS同内部 1 EGP 网络层可达信息通过EGP学习 2 INCOMPLETE 通过别的方式学习网络层可达信息 它的使用在5.1.1定义。 b) AS_PATH (类型编码2): AS-PATH是公认强制属性由一系列AS路径段组成。每一个AS路径段表示为三 元组。 路径段类型是1字节长度域有下列定义值。 值 段类型 1 AS_SET: 在UPDATE消息中的路由经过的AS的无序集 2 AS_SEQ

35、UENCE: 在UPDATE消息中的路由经过的AS的有序集 路径段长度是1字节长度的域包含了在路径段值域的AS的数量。 路径段值域包含了一个或者多个AS号,每一个编码为2字节长度的域。 属性的使用定义在5.1.2。 c) NEXT_HOP (类型码3): 公认强制属性定义了作为到达UPDATE消息网络层可达域地址所用的下一跳的 边界路由器的IP地址 属性的使用定义在5.1.3。 d) MULTI_EXIT_DISC (类型码4): 可选非转发属性4自解非负整数。属性值可以被BGP发言者决策过程在相邻自 治系统中区分多个出口。 它的使用在5.1.4.定义。 e) LOCAL_PREF (类型编码

36、 5): LOCAL-PREF是公认自决属性4自解非负整数。BGP发言者使用它通知别的BGP 在自己的自治系统中源发言者广播路由的优先程度。使用属性在。中描 述。 f) ATOMIC_AGGREGATE (类型编码6) ATOMIC-AGGREGATE是公认自决属性长度为0。BGP发言者使用它通知别的BGP 法颜真本的选择了一条更不特殊的路由而不是选择了一条更特殊的包括在内的路 由。使用这个属性描述在5。1。6。 g) AGGREGATOR (类型编码7) AGGREGATOR是可选转发属性长度为6。属性包含了形成聚合路由最后的AS号码 (编码为2字节),后面是形成聚合路由的BGP发言者的IP

37、地址(编码为4字节)。 使用这个属性描述在5。1。7。 Network Layer Reachability Information(网络层可达信息): 这个变长域包含了IP地址前缀的清单。网络层可达信息的字节长度不是明确 编码的,但是可以计算如下: UPDATE消息长度-23-总的路径属性长度-不可用路由长度。 其中UPDATE消息长度是定长BGP消息头的编码值,总的路径属性长度和不可 用路由长度是作为部分UPDATE消息的编码值。23是定长的BGP消息头,总的路径 属性长度域和不可用路由长度域的组合长度。 可达信息编码时作为一个或者多个二元组格式为长度,前缀,它们的域 描述如下: +-+

38、| Length (长度,1字节 ) | +-+ | Prefix (变量 ) | +-+ 域使用和含义如下: a) 长度: 长度域指示了IP地址前缀的比特长度。0地址指示了匹配所有IP地址的前缀 (前缀本身0字节) b) 前缀: 前缀域包含了IP地址前缀跟随足够的填充比特使=域的结尾能够落在字节边 界。注意填充比特的值不关紧要。 UPDTAE消息的最小长度是23字节19字节定长消息头+2字节不可用路由长度 +2字节总的路径属性长度(不可用路由长度是0同时总的路径属性长度是0)。 UPDATE消息能够广播至少一条路由,路由可用几个路径属性描述。所有的路 径树形包括在一个给定的UPDATE消息适

39、用于在UPDATE消息的网络层可达信息域内 包含的目的地。 一个UPDATE消息能够列出多个路由撤销服务。每一个路由通过目的地制定 (表示为IP前缀),明白的根据上下文指定了BGP发言者-BGP发言者连接先前广 播过的路由 一个UPDATE消息可以仅仅撤销路由,这样就不需要包括路径属性或者网络层 可达信息。相反,也可以仅仅广播可达路由,这样WITHDRAWN ROUTES不需要 了。 4.44.4 KEEPALIVEKEEPALIVE 消息格式消息格式 BGP 不使用任何基于传输协议的心跳机制来确定对端是否可达。相反, KEEPALIVE 消息在对端之间交换频率要满足 HOLD 计时器不溢出的

40、标准。合理的最 大 KEEPALIVE 消息时间是 HOLD 计时器间隔的 1/3。KEEPALIVE 消息必须不能比每 秒一个更频繁。应用可以调整发送 KEEPALIVE 消息的速率使用 HOLD 计时间隔的 函数。 如果商议哦HOLD计时间隔是0,周期性的KEKPALIVE消息必须不发送。 KEEPALIVE消息只包含消息头长度是19字节。 4.4.5 5 NOTIFICATIONNOTIFICATION 消息格式消息格式 NOTIFACATION消息在探测到错误情况时发送。BGP连接发送他之后要立即关 闭。 除了定长BGP消息头,NOTIFICATION消息包括下面的域。 0 1 2 3

41、 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Error code | Error subcode | Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 错误码: 1字节的无符号整数指示了NOTIFICA

42、TION的类型。下列的错误类型编码定义: 错误码 符号名称 参考 1 消息头错误 部分 6.1 2 OPEN消息错误 部分6.2 3 UPDATE消息错误 部分6.3 4 Hold 计时器溢出 部分6.5 5 FSM错误 部分6.6 6 终止 部分6.7 错误子码: 一个字节的无符号整数提供了更多的信息关于报告的错误的种类。每一个错误可以由一个 或者多个错误子码,如果没有特别的错误子码定义,在错误子码域填充0(不具体)。 Message Header Error subcodes(消息头错误子码): 1 - 连接未同步. 2 - 错误消息长度. 3 - 错误消息类型. OPEN Message

43、 Error subcodes(OPEN 显系错误子码): 1 - 不支持版本号. 2 - 错误对端AS. 3 - 坏的BGP标示符. 4 - 不支持的选项参数. 5 - 认证失败. 6 - 不支持的HOLD时间. UPDATE Message Error subcodes(UPDATE消息错误子码): 1 畸形属性链表. 2 不认识工人属性 3 缺少工人属性 4 属性标志错误 5 属性长度错误 6 无效ORIGION属性 7 AS路由环路 8 无效的NEXT-HOP属性 9 可选参数错误 10 无效网络域 11 畸形AS_PATH. 数据: 变长的域用来诊断NOTIFICATION的原因。数

44、据与的内容依赖于错误码和错误子码。部分6 有详细说明。 注意数据与的长度可以使用公式来计算按消息长度来确定。 Message Length = 21 + Data Length NOTIFICATION消息最小的长度是21字节,(包括消息头) 5.5. 路径属性路径属性 这个部分讨论UPDATE消息的路径属性。 路径属性分为下面四类。 1. Well-known mandatory.(公认强制) 2. Well-known discretionary.(公认自决) 3. Optional transitive.(可选转发) 4. Optional non-transitive.(可选非转发)

45、公认属性是所有BGP应用都要认识的。有一些属性是情之的必须被包括在每一个ATE消息内 部。别的是自觉的可以也可以不在特定的UPDATE消息内部发送。 所有的公认属性必须发送到BGP对端(在必要的更新之后)。 作为公认属性的附加,每一个路径可以包括一个或者多个可选属性。不是所有的BGP应用 都要支持所有的可选属性。如里一个不认识的可选属性是通过设置属性标志字节的转发比 特来确定的。又不认识转发属性的路径应该被接受。如果一个有不认识的转发属性的路经 被接受并且被转发别的BGP,不认识的路径转发可选属性必须和路径一起传递到别的BGP对 端,同时属性标志字节的部分位设置为1。如果一个路径有不认识的转发

46、可选属性被接受 并且转发到别的BGP对端,他的属性标志字节的部分比特被先前的AS设置为1,当前的AS不 能把他设置为0。不认识的非转发可选属性必须默默丢弃不要发送到别的BGP对端。 新的转发可选属性可以被起源者和别的AS附加到路径上。如果不是被其源者附加的,属性 标志的部分位被设置为1。附加新的非转发可选属性依赖于特定属性的特性。每一非转发 可选属性的文档要包括这些法则。(MULTI-EXIT-DISC属性的描述给出了一个例子)所有 可选的属性 (转发和非专发的)可以被路径上的AS更新(如果合适)。UPDATE消息的发送者要排序路 径树形在UPDATE消息内同时准备处理没有顺序的UPDATE消

47、息的路径属性。 同样的属性不能在UPDATE消息的路径属性消息与内出现两次。 5.15.1 路径属性使用路径属性使用 每一个BGP路径属性的使用描述如下: .1 ORIGINORIGIN ORIGIN式是一个公认强制属性。ORIGIN 属性是产生路由的自治系统产生的。所有选择 通告路由到别的BGP发言者的BGP发言者可以把这个包括在UPDATE消息内。 1.2 AS-PATHAS-PATH AS-PATH是公认强制属性。本属性定义了UPDATE消息那的路由信息经过的AS。列表的元素 可以是AS_SET或者AS_SEQUENCE。 当BGP发言者通告从别的BGP发言

48、者 UPDATE的消息学习到的路由,应该根据路由发送到的 BGP发言者的位置,修改路由 AS-PATH的属性。 a)当给定的BGP发言者通告路由到本AS的别的BGP发言者,通告发言者应该修改路由的AS- PATH属性。 b)当给定的BGP发言者通告路由到邻居AS的BGP发言者,通告发言者因该修改路由的AS- PATH属性。 1)如果AS-PATH的第一个路径属性是AS-SEQUENCE类型,本地系统应该把字节的AS号 码作为序列的最后一个AS号码加在后面(放在最左面)。 2)如果AS-PATH的第一个属性类型是AS-SET类型,本地系统应该添加一个新的路径段 AS-SEQUENCE类型,在段的

49、内部放AS号码。 当BGP发言者产生路由: a)起源发言者应该包括自己的AS号码在发送到邻居AS自治系统的BGP发言者的所有UPDATE 消息的AS-PATH属性中。(在这种情况下,起源发言者的自治系统号因该是AS-PATH属性的 入口)。 b)起源发言者因该包括一个空的AS-PATH属性在发送到本地自治系统的BGP发言者的所有 UPDATE消息的AS-PATH属性中。(空的AS-PATH属性是长度域是0的属性) 1.3 NEXT-HOPNEXT-HOP NEXT-HOP路径属性定义了边界路由器的IP地址,作为到达UPDATE消息的目的地列表的 下一跳。如果边界路由器和对端属于同

50、一个AS,对端是内部边界路由器。否则,是外部边 界路由器。BGP发言者可以通告任何内部边界路由器作为下一跳,如果本边界路由器和IP 地址对应的接口(说明在NEXT-HOP路径属性中)和本地以及远端边界路由器共享公共的子 网。BGP发言者可以通告任何外部边界路由器作为下一跳,如果本边界路由器的IP地址是 通过对端BGP发言者学习到的,同时边界路由器的IP地址相应的接口(在NEXT-HOP路径属 性中说明)和本地以及远端的BGP发言者共享了公共的子网。BGP发言者需要能够支持外部 边界路由器的通告能力不足。 BGP发言者必须不通告对端的一个地址作为NEXT-HOP到这个对端,作为这个发言者产生的

51、路由。BGP发言者必须不能安装路由把自己作为下一跳。 当BGP发言者通告路由到本地AS的BGP发言者,通告发言者不应该修改路由的NEXT-HOP属性。 当BGP发言者通过内部链路受到路由,可以转发包到NEXT-HOP地址,如果属性中包含的地 址是和本地以及远端BGP发言者在公共的子网上。 .4 MULTI-EXIT-DISCMULTI-EXIT-DISC MULTI-EXIT-DISC属性可以被用来在外部(AS间)链路上区分同一个邻居AS的多个出口或 者说入口。MULTI-EXIT-DISC属性的值时四个字节的无符号数称为一个度量。所有别的因 子相等,具有较低的度量的出口或者入

52、口有较高的优先级。如果在外部链路上收到, MULTI-EXIT-DISC属性可以通告到内部链路的同一个AS的别的BGP发言者。MULTI-EXIT- DISC属性不能再通告到邻居AS的别的BGP发言者。 1.5 LOCAL_PREFLOCAL_PREF LOCAL-PREF是公认自决属性,可以包括在发送到本地AS的BGP发言者的UPDATE消息内。BGP 发言者应该为每一条外部路由计算优先级程度同时在通告路由到内部对端的时候包括这个 优先级。优先级高的路由应该使用。BGP发言者因该使用通过LOCAL-PREF学习到的优先级 用于决策过程(见部分9。1。1)。 BGP发言者应该不包

53、括这个属性在发送到邻居AS的发言者的UPDATE消息中。如果BGP发言者 受到一条不在同一个AS内的BGP发言者的UPDATE消息包括了这个属性,这个属性应该被忽 略掉。 .6 ATOMIC_AGGREGATEATOMIC_AGGREGATE ATOMIC-AGGREGATE是公认自决属性。如果BGP发言者,当得到一个对端的一些重叠的路由 (见9。1。4),选择了一条更不特殊的路由而不是选择一条更特殊的路由,那末本地系 统应该附加ATOMIC-AGGREGATE属性到路由,当通告道别的BGP发言者的时候(如果属性没 有表示在接收的更不特殊的路由中)。BGP发言者接收具有ATOM

54、IC-AGGREGATE属性的路由 不应该从路由中去掉这个属性,当通告路由到别的BGP发言者的时候。收到具有ATOMIC- AGGREGATE属性的路由的BGP发言者需要知道如下事实:实际的到达目的地的路由,在NLRI 内说明,有自由环回特性,可以通过AS-PATH属性内没有列出的AS。 .7 AGGREGATORAGGREGATOR AGGREGATOR是可选转发属性,可以包括在聚合形成的更新中,(见9。2。4。2)。执行聚 合的BGP发言者可以加入AGGREGATOR属性,里面包括自己的AS号和IP地址。 6.6. BGPBGP 错误处理错误处理 本部分讨论当处理BGP消息

55、探测到错误的时候采取的行动。 当下面描述的任何情况被探测到,NOTIFICATION消息包括制定的错误码,错误子码,数据 域,被发送出去,BGP连接断开。如果错误子码没有指定,必须要使用0。 术语“BGP连接关闭”意思是传输协议连接被关闭同时BGP连接的所有资源被释放。远端对 应的路由表入口被标记无效。在路由被系统探测出来之前,路由无效的事实被发送到BGP 对端。 除非特别说明,发送指示错误的NOTIFICATION消息的数据域是空的。 6.16.1 消息头错误处理消息头错误处理. . 当处理消息头时所有探测的错误在发送NOTIFICATION消息时用错误码Message Header Err

56、or指示.错误子码依赖于具体的错误。 消息头的Marker域的期望值是全1,如果消息类型是OPEN。别的BGP消息的消息头的 Marker于的期望值决定于BGP OPEN消息的认证信息可选参数的表达和实际的认证机制(如 果BGP OPEN消息表达了认证信息)。如果消息头的Marker域不是期望的,就发生了同步错 误,错误子码设置为 Connection Not Synchronized。 如果消息头的长度域小于19字节或者大于4096字节,或者OPEN消息的长度域小于最小 的OPEN消息长度,或者UPDATE消息的长度域小于UPDATE消息的最小长度,或者KEEPALIVE 消息的长度域小于K

57、EEPALIVE消息的最小长度,或者NOTIFICATION消息的长度小于最小的 NOTIFICATION消息的长度。错误子码设置为Bad Message Length。数据域包含了错误的长 度。 消息头的pe 域不认识,错误子码设置为Bad Message Type。数据域包含了错误的Type域。 6.26.2 OPENOPEN 消息错误处理消息错误处理 处理OPEN消息探测到的错误通过发送NOTIFACAITION指示,错误子码是OPEN Message Error。错误子码取决于特定的错误。 如果OPEN消息Version域内的版本号不支持,错误子码设置为Unsupported Vers

58、ion Number。数据域是2字节的无符号整数,说明最大的本地支持的小于对端BGP提出的版本。 (在OPEN消息中收到) 如果OPEN消息的Autonomous System域不支持,错误子码设置为Bad Peer AS。可接受 的AS号码的确定超出了文档的范围。 如果OPEN消息的Hold Time域不可接受,错误子码必须设置为Unacceptable Hold Time。应用必须拒绝一到两秒的Hold Time值。应用可以拒绝任何建议的Hold Time。接受 Hold Time的应用必须使用Hold Time的商议值。 如果OPEN消息的BGP Identifier域语法错误。错误子码

59、设置为Bad BGP Identifier。 语法错误意味着BGP Identifier 是错误的标示符。 如果OPEN消息的一个Optional Parameter不认识,错误子码设置为Unsupported Optional Parameters。 如果OPEN消息承载了Authentication Information (作为可选参数), 激活相应的认 证过程。如果认证过程(基于认证码和认证数据)失败,错误子码设置为 Authentication Failure。 6.36.3 UPDATEUPDATE 消息错误处理消息错误处理 处理UPDATE消息探测的错误通过发送NOTIFACAT

60、ION说明,错误码是UPDATE Message Error。错误子码决定于具体的错误。 UPDATE消息的错误检查开始是路径属性检查。如果不可用路由长度或者整个属性长度太大 (也就是说,如果Unfeasible Routes Length + Total Attribute Length + 23 ) message Length), 错误子码是Malformed Attribute List。 如果认识的属性的属性标志和属性类型码矛盾,错误子码设置为Attribute Flags Error。数据域包含了错误的属性 (类型,长度和值)。 如果认识的属性的属性长度和期望的长度矛盾(根据属性类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论