📄 rfc1771.txt
字号:
| Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| My Autonomous System |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hold Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BGP Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Opt Parm Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Optional Parameters |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Version(版本):
1字节无符号整数指示消息的协议版本号。当前的BGP版本号是4。
My Autonomous System(我的自治系统):
2字节无符号整数指示发送者自治系统号。
Hold Time(保持时间):
2字节的无符号整数指示了发送者期望的Hold计时器的秒数。在接收OPEN消息后,
BGP发言者必须使用配置的Hold计时器和收到的Hold计时器来计算Hold计时器的值。
Hold计时器必须要末是0要末最少3秒。应用可以根据Hold计时器来拒绝连接。计算好的
值指示了在连续的KEEPALIVE和/或UPDATE消息之间可以流逝的最大秒数。
BGP Identifier (BGP标示符):
4字节无符号整数指示了BGP发言者的标示符。给定的BGP发言者设置BGP标示符为IP
地址。在启动的时候决定BGP表示符,对每一个本地端口和每一个对端是一样的。
Optional Parameters Length(可选参数长度):
1字节无符号整数指示可选参数域的字节总长度。如果这个域是0,说明没有可选参
数。
Optional Parameters(可选参数):
这个域包含了可选参数清单,每一个参数编码为<参数类型,参数长度,参数值>
三元组。
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):
选参数用来认证BGP对端。参数值包含1字节认证编码后面是变长的认证数据。
0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+
| Auth. Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Authentication Data |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Authentication Code(认证编码):
1字节无符号整数指示了使用的认证机制。当指定认证机制的时候,需要说明三件
事情:
-认证编码的值用来指示认证机制,
-认证数据的格式和含义,
-Marker标示域计算值的算法。
注意可以使用另外的认证机制在建立传输层连接时。
Authentication Data(认证数据):
这个域的格式和含义取决于认证编码。
OPEN消息的最小长度是29字节(包括消息头)。
4.3 UPDATE消息格式
UPDATE消息用来发送路由信息到BGP对端。UPDATE消息报内的信息可以被用来构造AS之
间的关系描述。通过应用以下讨论的规则,路由环路和别的异常可以测出并清除出AS间路由。
UPDATE消息用来广播一条可用路由到对端,或者撤销多条不可用路由(见3。1)。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 Routes Length(不可用路由长度):
2字节无符号整数指示了撤销路由的字节总长度。这个值必须保证网络层可达信息
域的长度被确定。
0说明没有撤销路由, UPDATE消息内部没有撤销路由。
Withdrawn Routes(撤销路由):
可变长路由域包括一系列的IP前缀说明撤销服务的路由。每一个IP前缀编码为〈长
度,前缀〉二元组,如下描述:
+---------------------------+
| Length (1 octet) |
+---------------------------+
| Prefix (variable) |
+---------------------------+
使用和含义如下:
a) Length(长度):
长度指示了IP前缀的比特数。0长度指示了匹配所有IP地址的前缀(前缀本身
为0字节)
b) Prefix(前缀):
前缀包含了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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Attr. Flags |Attr. Type Code|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
属性标志字节第一高位比特(比特0)是可选比特。定义了属性是否是可选的
(设为1)或者是公认的(设为0)。
属性标志字节第二高位比特(比特1)是转发比特。定义一个可选的属性是否
是转发的(如果设置为1)或者不是转发的(设为0)。公认属性的转发位必须设为
1。(参看部分5讨论转发属性)。
属性标志字节的第三比特(比特2)是部分比特。定义是否包括在可选转发属
性内的信息是部分的(设置为1)或者是完整的(设置为0)。公认属性和可选非转
发的部分位必须是0。
属性标志字节的第四比特(比特3)是扩展长度比特。定义了是否属性长度是1
字节(如果设置为0)或者是2字节(如果设置为1)。仅仅当属性值超过255字节的
时候,扩展长度可以使用。
属性标志字节低字节顺序4比特没有被使用。必须填0(接收不处理)。
属性类型编码字节包含了属性类型码。当前定义的属性类型码在部分5讨论。
如果属性标志字节的扩展长度比特被设置为0,路径属性的第三个字节包含了
属性数据的字节长度。
如果属性标志字节的扩展长度比特设置为1,那末路径属性的第三和第四个字
节包含了属性数据的字节长度。
路径属性剩下的字节代表属性值应该通过属性标识和属性类型码翻译。支持的
属性类型码,它们的属性值和使用如下定义:
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_SEQUENCE: 在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 (类型编码 5):
LOCAL-PREF是公认自决属性4自解非负整数。BGP发言者使用它通知别的BGP在
自己的自治系统中源发言者广播路由的优先程度。使用属性在5。1。5中描述。
f) ATOMIC_AGGREGATE (类型编码6)
ATOMIC-AGGREGATE是公认自决属性长度为0。BGP发言者使用它通知别的BGP法
颜真本的选择了一条更不特殊的路由而不是选择了一条更特殊的包括在内的路由。
使用这个属性描述在5。1。6。
g) AGGREGATOR (类型编码7)
AGGREGATOR是可选转发属性长度为6。属性包含了形成聚合路由最后的AS号码(编
码为2字节),后面是形成聚合路由的BGP发言者的IP地址(编码为4字节)。使用
这个属性描述在5。1。7。
Network Layer Reachability Information(网络层可达信息):
这个变长域包含了IP地址前缀的清单。网络层可达信息的字节长度不是明确编
码的,但是可以计算如下:
UPDATE消息长度-23-总的路径属性长度-不可用路由长度。
其中UPDATE消息长度是定长BGP消息头的编码值,总的路径属性长度和不可用
路由长度是作为部分UPDATE消息的编码值。23是定长的BGP消息头,总的路径属性
长度域和不可用路由长度域的组合长度。
可达信息编码时作为一个或者多个二元组格式为〈长度,前缀〉,它们的域描
述如下:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -