⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1771.txt

📁 283个中文RFC文档
💻 TXT
📖 第 1 页 / 共 5 页
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:kevin73(kevin73,panzhenyu_2@263.net)
译文发布时间:2001-4-26
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。




Network Working Group                                         Y. Rekhter
Request for Comments: 1771        T.J. Watson Research Center, IBM Corp.
Obsoletes: 1654                                                    T. Li
Category: Standards Track                                  cisco Systems
                                                                 Editors
                                                              March 1995


边界网关协议版本4(BGP-4) 
(RFC1771 A Border Gateway Protocol 4 (BGP-4))

本备忘录的状态
本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和
建议以得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准
化程度和状态。本备忘录的发布不受任何限制。

摘要
	本文档,以及随同文档,“边检网关协议在互联网中的应用”,定义了互联网的自治系
统间路由协议。
目录
1.  致谢	3
2. 介绍	3
3.  操作总结	4
3.1 路由:通告和存储	5
3.2 路由信息库	5
4. 消息格式	5
4.1 消息头格式	6
4.2 OPEN消息格式	6
4.3 UPDATE消息格式	8
4.4 KEEPALIVE消息格式	13
4.5 NOTIFICATION消息格式	13
5. 路径属性	15
5.1 路径属性使用	16
5.1.1 ORIGIN	16
5.1.2 AS-PATH	16
5.1.3 NEXT-HOP	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. BGP错误处理	18
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.  BGP版本商议	21
8.  BGP 有限状态机	22
9.  UPDATE 消息处理	25
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.  BGP FSM 状态转换和行为	34
附录 2.  对比RFC1267	37
附录 3.  对比RFC1663	38
附录4.  对比 RFC 1105	38
附录5. BGP可能使用的TCP选项	39
附录6.  应用建议	39
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.8 复杂 AS_PATH 聚合	41
参考	41
安全考虑	42
作者地址	42

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, Internet 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 工作组的产品。
本文档某些部分广泛参考了IDRP[7],BGP的OSI对等协议。为此感谢ANSI X3S3.3 组,主席
是Lyman Chapin (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. 介绍
	边界网关协议(BGP)是自治系统间路由协议。它的建立来源于RFC904[1]中定义的EGP
以及RFC1092[2]和RFC1093[3]中描述的EGP在NSFNET骨干网中的使用。
	BGP交互系统的主要功能是和其他的BGP系统交换网络可达信息。网络可达信息包括可达
信息经过的自治系统(AS)清单上的信息。这些信息有效地构造了AS互联的图像并由此清除
了路由环路同时在AS级别上实施了策略决策。
	BGP-4提供了一套新的机制支持无类域间路由。这些机制包括支持网络前缀的广播取消
BGP网络中“类”的概念。BGP-4也引入机制支持路由聚合,包括AS路径的聚合。这些改变为
[8, 9]建议的超网方案提供了支持。
	为了刻画BGP执行的路由决策,集中讲述BGP发言者通告他自己使用的路由到相邻AS中对
端(与之通信的别的BGP发言者)的规则。这些规则反映了当今互联网广泛使用的“一跳一
跳”路由范例。注意一些策略不被“一跳一跳路由范例支持所以需要比如源路由之类的技术
来增强。例如,BGP不支持AS发送流量到相邻的AS但是路由和源自相邻AS流量有不同的路由。
另一方面,BGP支持任何与“一跳一跳”一致的策略。由于当前互联网只使用“一跳一跳”
路由范例同时BGP支持与范例一致的策略,BGP作为AS间路由协议非常适用于当今互联网。
	BGP能否执行哪些策略超出了本文档的讨论范围(请参考讨论BGP使用的随同文档[5])。
	BGP运行在稳定的传输协议上。这样就不用再更新分段,重传,应答和排序。传输协议
使用的认证机制可以作为BGP自己的认证机制的附加。BGP的错误通知机制假定传输协议支持
“体面”关闭,也就是说,说有没有传到的数据在联接关闭之前要被送到。
	BGP使用TCP[4]作为传输协议。TCP满足BGP的传输需求并在所有的商业路由器和主机上
使用。在后面的叙述中,术语“传输协议连接”可以理解为TCP连接。BGP使用TCP端口179
建立连接。
	本文档使用术语自治系统(AS)。自治系统的经典定义是在统一技术管理下的一系列路
由器,在AS内部使用内部网关协议和通用的度量路由数据包,在AS外部使用外部网关协议路
由数据包。由于本定义的发展,通常一个AS可以使用几个内部网关协议同时在AS内部使用多
种度量。使用自治系统这个术语强调了以下事实,即使使用了多个IGP和度量,对别的AS而
言,AS的管理表现出一致的路由计划和一致的目的地可达。
	在互联网中使用BGP的计划,包括拓扑问题,BGP和IGP的交互,路由策略规则的实施,
在随同文档[5]中表述。本文当是一系列探究BGP应用各方面问题计划的开始。请发表评论到
BGP邮件列表(bgp@ans.net).
 
3.  操作总结
两个系统通过传输协议互联。他们交换消息来打开和确认连接参数。初始的数据流是整
个BGP路由表。增加的更新作为路由表改变发送。因此,BGP发言者必须保存在连接期间所有
对等体的整个BGP路由表的当前版本。KeepAlive心跳消息周期性发送来保证连接的存在。发
送通知消息报错或者特别情况。如果一个连接遇到一个错误情况,要发送通知消息并且关闭
连接。
	执行边界网关协议的主机不一定是路由器。一个非路由主机可以通过EGP甚至内部网关
协议和路由器交换路由信息。然后非路由主机可以通过BGP和别的AS中的边界路由器交换路
由信息。这种应用构架可以用于更进一步的研究。
	如果一个特定AS有多个BGP发言者同时为别的AS提供中转业务,应该注意保证本AS中对
路由有一致的观点。AS内部路由的一致看法由内部路由协议提供。AS外部对路由的一致看法
由所有AS内部的BGP发言者保持BGP一一互联。使用通常的策略,BGP发言者对哪一个边界路
由器服务为和别的AS的外出/进入点达成一致。这些信息可能通过内部网关协议通信到AS的
内部路由器。注意在BGP发言者把中转业务通告到别的AS之前所有的内部路由器需要更新中
转信息。
	不同AS之间的BGP发言者的连接被称为“外部”链路。同一个AS内部的BGP连接被称为“内
部”链路。同样不同AS之间的对端被称为外部对端,相同AS之间的对端被称为内部对端。
3.1 路由:通告和存储
	从协议的用途出发路由被定义为组合了一个目的地和到这个目的地的路径属性的信息
单位。
   -路由在一对BGP发言者之间通过UPDATE消息广播。目的地也就是在网络层可达信息
(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发言者选择路由通告,他可以在通告路由到对端之前加入和修改路由的路
径属性。
   BGP提供机制告诉对端先前的路由通告不再能使用。有三种方式供BGP发言者指示撤销某
条路由的服务。
	a)在UPDATE消息的WITHDRAWN ROUTES域内通告先前广播的路由目的地IP前缀,这样相应
的路有被标志为不再使用,
	b)使用了相同网络层可达信息的替代路由被通告,
	c)BGP发言者-发言者的连接被关闭,强制撤销这一对发言者通高的所有的路由服务。
3.2 路由信息库
	BGP发言者的路由信息库(RIB)包括三个不同部分:
a)Adj-RIBs-In: Adj-RIBs-In 保存了从输入UPDATE消息学习到的路由信息,这是决策
过程的输入。
b)Loc-RIB: 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,这并不意味着也没有
必要具体应用中维护路由信息的独立拷贝。应用的选择(例如,信息库的三份拷贝或者一个
拷贝的指针)不受协议限制。

4. 消息格式
	本章描述BGP的消息格式。
	消息通过一个稳定的传输协议互联发送。消息只有在被完整收到之后才会处理。最大的
消息是4096字节。最小的消息就是一个不包括消息体的BGP消息头,19字节。
4.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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                                                               +
      |                                                               |
      +                                                               +
      |                           Marker                              |
      +                                                               +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Length               |      Type     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

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

4.2 OPEN消息格式
	在传输协议连接建立之后,两边发送的第一个消息是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
       +-+-+-+-+-+-+-+-+

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -