分类: 系统运维
2007-11-03 00:30:53
4.4. Record Route Object
Routes can be recorded via the RECORD_ROUTE object (RRO).
Optionally, labels may also be recorded. The Record Route Class is
21. Currently one C_Type is defined, Type 1 Record Route. The
RECORD_ROUTE object has the following format:
//路由可以通过RRO对象被记录下来。标签也可以被记录。RRO对象类型为21
//当前只定义了Type为1的RRO。RRO对象的格式如下:
Class = 21, C_Type = 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// (Subobjects) //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Subobjects
The contents of a RECORD_ROUTE object are a series of
variable-length data items called subobjects. The subobjects
are defined in section 4.4.1 below.
The RRO can be present in both RSVP Path and Resv messages. If a
Path message contains multiple RROs, only the first RRO is
meaningful. Subsequent RROs SHOULD be ignored and SHOULD NOT be
propagated. Similarly, if in a Resv message multiple RROs are
encountered following a FILTER_SPEC before another FILTER_SPEC is
encountered, only the first RRO is meaningful. Subsequent RROs
SHOULD be ignored and SHOULD NOT be propagated.
//PATH和RESV消息都可以携带RRO对象。如果PATH中有多个RRO,只有第一个
//有意义。其余的应被忽略,且不能转发。同样,如RESV的一个FILTER_SPEC
//对象后紧跟着(中间没有其他FILTER_SPEC)多个RRO对象,只有第一个RRO对
//象有意义。其他的RRO应该被忽略,且不能被转发。
4.4.1. Subobjects
The contents of a RECORD_ROUTE object are a series of variable-length
data items called subobjects. Each subobject has its own Length
field. The length contains the total length of the subobject in
bytes, including the Type and Length fields. The length MUST always
be a multiple of 4, and at least 4.
//一堆称为子对象的可变长度数据项组成RRO对象。每个子对象有它自己的长度
//字段。该长度字段为该子对象的字节数,包含类型和长度字段。该长度必须
//为4的倍数,且至少为4。
Awduche, et al. Standards Track [Page 31]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
Subobjects are organized as a last-in-first-out stack. The first
subobject relative to the beginning of RRO is considered the top.
The last subobject is considered the bottom. When a new subobject is
added, it is always added to the top.
//子对象的组织方式为"后进先出"的栈。RRO对象的第一个子对象被当作栈顶。
//最后一个子对象被当作栈底。当新添加一个子对象,通常添加在栈顶。
An empty RRO with no subobjects is considered illegal.
//一个空的没有任何子对象RRO对象认为是非法的。
Three kinds of subobjects are currently defined.
//当前共定义了3中子对象。
4.4.1.1. Subobject 1: IPv4 address
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | IPv4 address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 address (continued) | Prefix Length | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
0x01 IPv4 address
Length
The Length contains the total length of the subobject in bytes,
including the Type and Length fields. The Length is always 8.
//该子对象的长度(字节数),包括Type和Length字段。该字段为8.
IPv4 address
A 32-bit unicast, host address. Any network-reachable
interface address is allowed here. Illegal addresses, such as
certain loopback addresses, SHOULD NOT be used.
//一32位单播,主机地址。也可以是任意的网络可达的接口地址。不能
//是非法网络地址,比如环回地址。
Prefix length
32
//32(与ERO有些不一样,ERO中可以不是32,即:表示一个网络前缀,也
//就是说,ERO可能指定一个不透明的AS,但RRO可能把AS内部的路由也
//全部描述了?)
Flags
0x01 Local protection available
//0X1 可以执行本地保护
Indicates that the link downstream of this node is
protected via a local repair mechanism. This flag can
only be set if the Local protection flag was set in the
SESSION_ATTRIBUTE object of the corresponding Path
message.
//表明本节点的下游可以执行本地保护机制。只有当相应的PATH消
//息的SESSION_ATTRIBUTE对象的本地保护标志被设置,该标志才
//可以被设置。
Awduche, et al. Standards Track [Page 32]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
0x02 Local protection in use
//0X2 已执行本地保护
Indicates that a local repair mechanism is in use to
maintain this tunnel (usually in the face of an outage
of the link it was previously routed over).
//表明已经执行本地保护机制来维护该tunnel(通常说明以前
//的链路出了故障?[吐])
4.4.1.2. Subobject 2: IPv6 address
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | IPv6 address (16 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | Prefix Length | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
0x02 IPv6 address
Length
The Length contains the total length of the subobject in bytes,
including the Type and Length fields. The Length is always 20.
//子对象的总字节数,包括Type和Length字段。该长度设置为20。
IPv6 address
A 128-bit unicast host address.
Prefix length
128
Flags
0x01 Local protection available
Indicates that the link downstream of this node is
protected via a local repair mechanism. This flag can
only be set if the Local protection flag was set in the
SESSION_ATTRIBUTE object of the corresponding Path
message.
//同IPv4 Address。
Awduche, et al. Standards Track [Page 33]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
0x02 Local protection in use
Indicates that a local repair mechanism is in use to
maintain this tunnel (usually in the face of an outage
of the link it was previously routed over).
//同IPv4 Address。
4.4.1.3. Subobject 3, Label
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | C-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Contents of Label Object |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
0x03 Label
Length
The Length contains the total length of the subobject in bytes,
including the Type and Length fields.
//子对象的总长度,包括Type和Length字段。(由于标签类型不一致,导
//致该长度不能确定。)
Flags
0x01 = Global label
This flag indicates that the label will be understood
if received on any interface.
//0x01 = 全局标签
//该标志表明任何接口收到该标签都可以识别。
C-Type
The C-Type of the included Label Object. Copied from the Label
Object.
//标签的C-Type。从LABEL对象中拷贝出来。
Contents of Label Object
The contents of the Label Object. Copied from the Label Object
//标签的值。从LABEL对象中拷贝出来。
4.4.2. Applicability
Only the procedures for use in unicast sessions are defined here.
//本小节定义的流程只适用与单播会话。
There are three possible uses of RRO in RSVP. First, an RRO can
function as a loop detection mechanism to discover L3 routing loops,
or loops inherent in the explicit route. The exact procedure for
doing so is described later in this document.
//RSVP的RRO对象有三种功能。第一,RRO用于环路检测,可以发现L3路由环路,
//或ERO对象的循环。如何检测在后续描述。
Awduche, et al. Standards Track [Page 34]
RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
Second, an RRO collects up-to-date detailed path information hop-by-
hop about RSVP sessions, providing valuable information to the sender
or receiver. Any path change (due to network topology changes) will
be reported.
//第二,RRO对象可以收集最新的hop by hop会话的路径的详细信息,给首末节
//点提供有用的信息。路径的任何改变(网络拓扑的改变所致)都将通报。
Third, RRO syntax is designed so that, with minor changes, the whole
object can be used as input to the EXPLICIT_ROUTE object. This is
useful if the sender receives RRO from the receiver in a Resv
message, applies it to EXPLICIT_ROUTE object in the next Path message
in order to "pin down session path".
//第三,RRO的语法格式,通过很小的修改,整个对象可以用作RRO对象的输入
//信息。如果首节点收到RESV消息,可以将其用于下个PATH消息的ERO对象,以
//限制会话的路径。