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

📄 rfc2003.txt

📁 关于PPP点对点协议的一些详细资料
💻 TXT
📖 第 1 页 / 共 2 页
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:Hlp(hlp,huangliuqi@hotmail.com)
译文发布时间:2001-5-23
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。



Network Working Group                                         C. Perkins
Request for Comment: 2003                                            IBM
Category: Standards Track                                   October 1996


在IP内封装IP
(RFC2003   IP Encapsulation within IP)

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

摘要
   本文档描述了一种可在IP数据报中封装另一个IP数据包(作为净负载)的方法.封装通
过把路由信息送往某个中间目的地(不是由原IP头部的IP Destination Address域)把正
常的IP路由变为数据报。封装可用于多方面,例如使用移动IP把数据报传送到某个移动节点.
 1.简介
   本文档描述了一种可在IP数据报中封装另一个IP数据包(作为净负载)的方法.封装通
过把路由信息送往某个中间目的地(不是由原IP头部的IP Destination Address域)把正
常的IP路由变为数据报。一旦封装后的数据报到达该中间目的地节点,就被拆分,得到原
IP数据报,然后原数据报被送到目的地址(由原Destination Address域决定). 封装与拆
分数据报的过程通常称为数据报“隧道”("tunneling"),封装方和拆分方分别为隧道的端点
(“endpoints");封装方称为隧道的“入口点”("entry point"),拆分方称为隧道的出口
点("exit point").
    在最常见的隧道中我们有
      source ---> encapsulator --------> decapsulator ---> destination

   其中source, encapsulator, decapsulator和destination是独立的节点。encapsulator 
节点称为隧道的“入口点”而decapsulator节点称为隧道的“出口点”.在封装与拆分的过
程中同一个隧道可能有多个source-destination对。
2.动机 
   移动IP工作组指定封装作为移动IP工作组已经规定把封装作为从移动节点的"家乡网络
“("home network" )向代理(agent)传送数据包的方法,该代理能够以传统方式在移动节
点在当前异于家乡的位置“本地”地传送数据包(参见参考文献[8])。封装的使用也可表明
在IP数据报的源地址(或者中间路由器)必须影响数据报送达最终目的地所经过的路由。封
装的其他的应用包括多播,预付费,安全属性选择路由,总的(general)路由选择策略。
   封装与松散的IP源路由选择(IP loose source routing option,参考文献[10])可以
相似方式影响数据报的路由,但由几个技术上的原因使得愿意选择:
    -松散的IP源路由还有尚未解决的安全问题
    -当前Internet路由器在转发包括IP选项的数据报(包括IP远路由选择)时暴露出性
能问题。
    - 很多Interner节点在处理IP源路由选择时出错。
-防火墙(firewalls)可能把IP远路由数据报拒之门外。
- 插入IP远路由选择可能使数据报的源地址和/或目的地址的认证信息的处理变得复杂
化,取决于认证如何进行.
    - 中间路由器不应(it's impolite)改变不是由它产生的数据报.

   使用封装时必须权衡封装的优缺点:
    - 封装后的数据报一般比使用源路由算法的数据报大。
-	封装必须在事先知道隧道的出口点能够拆分数据报.
-	
   既然现在大多数的Internet节点在使用IP松散源路由选择时性能不够好,封装的第二个
技术缺点不像起初想象的那么严重.
3.在IP中封装IP
   为了使IP-in-IP来封装IP数据报,在现存IP头部前面插入外层的IP头(参考文献[10]),
如下所示:
                                         +---------------------------+
                                         |      Outer IP Header      |
                                         |                           |
     +---------------------------+       +---------------------------+
     |         IP Header         |       |         IP Header         |
     |                           |       |                           |
     +---------------------------+ ====> +---------------------------+
     |                           |       |                           |
     |                           |       |                           |
     |         IP Payload        |       |         IP Payload        |
     |                           |       |                           |
     +---------------------------+       +---------------------------+
   外层IP头部中的Source Address和Destination Address标识了隧道的“端口”.内层
IP头部的中的Source Address和Destination Addresses标识了数据报的原(最初,
original)发送方和接收方.内层IP头部不能被封装方修改(并在向隧道出口传输的过程中
保持不变),除非按下面的方法递减TTL.封装后的数据报在隧道传输的过程中IP选项不做任
何修改。如果要修改,则在内外层IP头部间插入其他协议头部,如IP认证头部
(Authentication header,参考文献[1]).注意内层IP头部的安全选项可能影响正在封装
的(外层)IP头部的安全选项。
3.1.IP头部各域及管理
   外层IP头部由封装方按下面设置:
      Version
          4
      IHL
         因特网头部长度为外部IP头部的长度,用32位的字表示(参考文献[10]).
      TOS
         服务类型(TOS)从内层IP头部拷贝.
      Total Length
         Total Length为整个封装后IP数据报的长度,包括外层IP头部,内层IP头部,
及其净载数据.
     Identification, Flags, Fragment Offset
         这三个域按参考文献[10]进行设置.但是如果在IP头部设置了"Don't Fragment"
位,必须在外部IP头部中设置该位;如果内部IP头部没有设置"Don't Fragment"位,
在外层IP头部中可能(以)设置该位,见5.1。
      Time to Live
         外层IP头部的生存期(TTL)域设置为封装后数据报传输到隧道出口点所经历的大
致时间.
      Protocol
         4
      Header Checksum
         为外层IP头部的“Internet头部检验和”(参考文献[10])。
      Source Address
         封装方的IP地址,即隧道的入口点。
      Destination Address
         拆封方的IP地址,即隧道的出口点。
      Options
         内部IP头部中出现的选项通常不出现在外层IP头部中。但是可能(以)增加隧
道自定义的选项.特别地,内层IP头部支持的安全选项可能影响到外层的头部。不应该(not         
expected)在这些选项到隧道的选项或安全头部之间建立一对一的映射.
   在封装数据报时,如果隧道作为转发数据报的一部分,内层IP头部的TTL将减1;否则,
在封装的过程中内层TTL保持不变.如果得到的内层IP头部的TTL为0,数据报被丢弃并应该
向发送者产生一个Time Exceeded的ICMP信息。不允许封装方对TTL=0的数据报进行封装。
内层IP头部中的TTL在拆分的过程中保持不变。拆分后,如果内层数据报TTL=0,拆分方必
须丢弃该数据报。拆分后,如果拆分方转发该数据报到它的一个网络接口,它像正常转发IP
数据报那样递减TTL。见4.4。
   封装方可以使用现存适合的IP机制来把封装后的净载数据传送到隧道的出口点。特别地,
允许使用IP选项,还可以允许分片,除非内层IP头部中设置了"Don't Fragment"位。使用该
分片限制是为了使使用路径MTU发现(参考文献[7])的节点能够得到他们所要寻找的信息。
3.2.路由失败
   在隧道内部的路由环回(Routing loops)特别危险,它们使数据报再次回到封装方。假
设一个数据报到达路由器等待转发,而该路由器认为该数据报在传送之前必须封装 ,那么:
   -  如果该数据报的Source Address与路由器自己的任一个网络接口的IP地址匹配,该
路由器不允许为该数据报建立隧道;相反,该数据报应该被丢弃.
    - 如果该数据报的Source Address 与隧道的目的IP地址匹配(隧道出口点一般由路由
器根据数据报的IP头部的Destination Address选择),路由器不允许为该数据报建
立隧道 ,相反,该数据报应该被丢弃。
   参见4.4。
4. 隧道内部的ICMP信息
   封装后的数据报被发送后,封装方可能从该隧道内的任一中间路由器而不是隧道出口接收
到一条ICMP信息(参考文献[9])。封装方采取的动作取决于所收到的ICMP信息的类型.当收
到的信息包含足够信息时,封装方可能使用收到的信息产生一个相似的ICMP信息,发送给产
生未封装IP数据报的构建者(原始发送方)。该过程称为中继("relaying")来自隧道的ICMP
信息。
   ICMP信息表明处理数据报的过程中产生一个错误,它包含引起错误的数据报的(一部分)
的一个拷贝。中继一个ICMP信息要求封装方从该返回的数据报中剥去外层IP头部。对收到
不包含足够信息的ICMP信息的情况,见5。
4.1.目标不可达 Destination Unreachable (Type 3)
   ICMP目标不可达信息由封装方根据它们的Code域进行处理。这里给出的模型允许隧道扩
展("extend")到一个包括非本地节点(如移动节点)的网络。这样,如果未封装数据报中的
目标地址与封装者处在同一个网络,可以修改 Destination Unreachable Code的值使之与
给定模型一致。
      网络不可达Network Unreachable (Code 0)
         一条目标不可达ICMP信息应该返回给原始发送方。如果未封装数据报的目的地址  
与封装者处在同一个网络上,封装着新产生的目标不可达信息应该为Code=1 (Host         
Unreachable),因为推测数据报到达了正确的网络而且封装方把最初的目的地址视为
该网络的本地地址,即使事实并非如此。否则(目的地址与封装者处在不同的网络上) ,
如果封装者返回目标不可达信息,Code域必须设置为0(Network Unreachable)。
      主机不可达Host Unreachable (Code 1)
         封装者应该尽可能把该主机不可达信息中继到未封装数据报的发送者。
      协议不可达Protocol Unreachable (Code 2)
         当收到协议不可达ICMP,封装方应该向为封装数据报的发送方发送一个Code域为0
或1的目标不可达 信息。(见Code为0部分)。因为原始发送方没有使用协议号为
4来发送该数据报,将向该发送方返回Code 2。
      端口不可达Port Unreachable (Code 3)
        该代号应该从不被封装方接收,因位外层IP头部不指定任何端口号。不允许把该代
号发送给未封装数据报的发送方。
      数据报太大Datagram Too Big (Code 4)

⌨️ 快捷键说明

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