Chinaunix首页 | 论坛 | 博客
  • 博客访问: 83185
  • 博文数量: 18
  • 博客积分: 735
  • 博客等级: 军士长
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2005-09-04 14:10
文章分类

全部博文(18)

文章存档

2008年(2)

2007年(12)

2005年(4)

我的朋友

分类: 系统运维

2007-11-03 00:30:06

4.3.4. Processing of the Explicit Route Object

4.3.4.1. Selection of the Next Hop

   A node receiving a Path message containing an EXPLICIT_ROUTE object
   must determine the next hop for this path.  This is necessary because
   the next abstract node along the explicit route might be an IP subnet
   or an Autonomous System.  Therefore, selection of this next hop may
   involve a decision from a set of feasible alternatives.  The criteria
   used to make a selection from feasible alternatives is implementation
   dependent and can also be impacted by local policy, and is beyond the
   //节点收到包含ERO对象的PATH消息时,必须决定该路径的下一跳(NHOP),之所
   //以这样,是因为该显示路由描述的下一跳可能是一个IP子网或AS。因此,选择
   //下一跳可能涉及到很多可选方法。选择的方法与实现有关,可以被本地策略
   //所影响,且超出本文档的讨论范围。

 

Awduche, et al.             Standards Track                    [Page 28]

RFC 3209           Extensions to RSVP for LSP Tunnels      December 2001


   scope of this specification.  However, it is assumed that each node
   will make a best effort attempt to determine a loop-free path.  Note
   that paths so determined can be overridden by local policy.
   //假定每个节点都尽力而为的选择一个非环路由。注意,选择的路由可以被本
   //地策略所覆盖。
  
   To determine the next hop for the path, a node performs the following
   steps:
   //为了确定下一跳,节点执行以下步骤:

   1) The node receiving the RSVP message MUST first evaluate the first
      subobject.  If the node is not part of the abstract node described
      by the first subobject, it has received the message in error and
      SHOULD return a "Bad initial subobject" error.  If there is no
      first subobject, the message is also in error and the system
      SHOULD return a "Bad EXPLICIT_ROUTE object" error.
   //1)节点收到含ERO对象的PATH消息,首先校验第一个子对象。如果本节点不属
   //于该子对象描述的A node,属于收到的该消息有错误,需要发送一个错误码为
   //"Bad initial subobject"的PATHERR消息。如果没有子对象,同样也是消息有
   //误,需要发送一个错误码为"Bad EXPLICIT_ROUTE object"的PATHERR消息。

   2) If there is no second subobject, this indicates the end of the
      explicit route.  The EXPLICIT_ROUTE object SHOULD be removed from
      the Path message.  This node may or may not be the end of the
      path.  Processing continues with section 4.3.4.2, where a new
      EXPLICIT_ROUTE object MAY be added to the Path message.
   //2)如果没有第二个子对象,这表明到了显示路由的末尾。需要把PATH中的
   //ERO对象删除掉。本节点可能是本LSP的末节点。后续将按照4.3.4.2执行,
   //也可能添加一个新的ERO对象到PATH中。
  
   3) Next, the node evaluates the second subobject.  If the node is
      also a part of the abstract node described by the second
      subobject, then the node deletes the first subobject and continues
      processing with step 2, above.  Note that this makes the second
      subobject into the first subobject of the next iteration and
      allows the node to identify the next abstract node on the path of
      the message after possible repeated application(s) of steps 2 and
      3.
   //3)节点校验第二个子对象。如果节点是属于该子对象描述的A node,节点
   //删除第一个子对象,并执行2)。这样在下次循环时,第二个子对象挪到第
   //一个子对象位置,且通过反复执行2)、3)本节点可以确定该路径上的下
   //一个A node。

   4) Abstract Node Border Case: The node determines whether it is
      topologically adjacent to the abstract node described by the
      second subobject.  If so, the node selects a particular next hop
      which is a member of the abstract node.  The node then deletes the
      first subobject and continues processing with section 4.3.4.2.
   //4)A node边缘情况:节点判断自己是否与第二个子对象描述的A node的邻接
   //(即:节点是否是所属A node的边缘节点,即:本节点不属于第二个子对象
   //描述的A node)。如果邻接,本节点选择一个NHOP,当然,这个NHOP属于该
   //A node的一员。节点再删除第一个子对象,后续按4.3.4.3执行。
  
   5) Interior of the Abstract Node Case: Otherwise, the node selects a
      next hop within the abstract node of the first subobject (which
      the node belongs to) that is along the path to the abstract node
      of the second subobject (which is the next abstract node).  If no
      such path exists then there are two cases:
   //5)A node内部情况(步骤4的if so的否定分支):节点选择一个属于本A node
   //的下一跳(本节点与下一跳属于同一A node),该下一跳在通往第二个子对象
   //描述的A node的路由上。如果找不到该下一跳,有一下两种情况:

   5a) If the second subobject is a strict subobject, there is an error
       and the node SHOULD return a "Bad strict node" error.
   //5a)如果第二个子对象为严格,那么产生一个"Bad strict node"错误(应该
   //发送该错误码的PATHERR)。

   5b) Otherwise, if the second subobject is a loose subobject, the node
       selects any next hop that is along the path to the next abstract
       node.  If no path exists, there is an error, and the node SHOULD
       return a "Bad loose node" error.
   //5)如果第二个子对象为松散。节点选择通往下一个A node的任意下一跳,如果
   //不存在,那么产生一个"Bad lose node"的错误。


Awduche, et al.             Standards Track                    [Page 29]

RFC 3209           Extensions to RSVP for LSP Tunnels      December 2001


   6) Finally, the node replaces the first subobject with any subobject
      that denotes an abstract node containing the next hop.  This is
      necessary so that when the explicit route is received by the next
      hop, it will be accepted.
   //6)最后,节点把找到的描述下一跳的A node填写到第一个子对象中。这让下一
   //跳收到ERO信息时,可以校验通过(否则下一跳认为收错了消息,并拒绝该消息)。
     

4.3.4.2. Adding subobjects to the Explicit Route Object

   After selecting a next hop, the node MAY alter the explicit route in
   the following ways.
   //选好下一跳之后,节点应该通过一下方式修改ERO信息。

   If, as part of executing the algorithm in section 4.3.4.1, the
   EXPLICIT_ROUTE object is removed, the node MAY add a new
   EXPLICIT_ROUTE object.
   //作为4.3.4.1算法的一部分,ERO对象被删除,节点该添加一个新的ERO对象。
  
   Otherwise, if the node is a member of the abstract node for the first
   subobject, a series of subobjects MAY be inserted before the first
   subobject or MAY replace the first subobject.  Each subobject in this
   series MUST denote an abstract node that is a subset of the current
   abstract node.
   //如果节点属于第一个子对象描述的A node,一堆子对象可能插入在第一个子
   //对象之前,也可能是替换第一个子对象。这堆子对象描述的A node必须是当
   //前A node的一个子集。

   Alternately, if the first subobject is a loose subobject, an
   arbitrary series of subobjects MAY be inserted prior to the first
   subobject.
   //另外,如果第一个子对象是一个松散子对象,那么第一个子对象前可能插入
   //一堆任意的子对象。

4.3.5. Loops

   While the EXPLICIT_ROUTE object is of finite length, the existence of
   loose nodes implies that it is possible to construct forwarding loops
   during transients in the underlying routing protocol.  This can be
   detected by the originator of the explicit route through the use of
   another opaque route object called the RECORD_ROUTE object.  The
   RECORD_ROUTE object is used to collect detailed path information and
   is useful for loop detection and for diagnostics.
   //对于下层路由协议而言,松散节点可能造成环路。显示路由的创建者可以通过
   //使用RRO对象来检测。RRO对象用于手机路径的详细信息,且可以用于环路检测
   //和诊断。
  

4.3.6. Forward Compatibility
   //兼容性
   It is anticipated that new subobjects may be defined over time.  A
   node which encounters an unrecognized subobject during its normal ERO
   processing sends a PathErr with the error code "Routing Error" and
   error value of "Bad Explicit Route Object" toward the sender.  The
   EXPLICIT_ROUTE object is included, truncated (on the left) to the
   offending subobject.  The presence of an unrecognized subobject which
   is not encountered in a node's ERO processing SHOULD be ignored.  It
   is passed forward along with the rest of the remaining ERO stack.
   //可以预测到,随着时间推移会定义新的子对象。******

 

 

Awduche, et al.             Standards Track                    [Page 30]

RFC 3209           Extensions to RSVP for LSP Tunnels      December 2001


4.3.7. Non-support of the Explicit Route Object

   An RSVP router that does not recognize the EXPLICIT_ROUTE object
   sends a PathErr with the error code "Unknown object class" toward the
   sender.  This causes the path setup to fail.  The sender should
   notify management that a LSP cannot be established and possibly take
   action to continue the reservation without the EXPLICIT_ROUTE or via
   a different explicit route.
   //节点不能识别ERO对象,将发送一个错误码为"Unknown object class"的PATHERR
   //消息给首节点。将导致LSP建立失败。首节点应该通知管理平面,建立LSP失败,
   //可以尝试不设置显示路由或设置一个不同的显示路由。
  

阅读(1516) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~