IPv6隧道通信技术.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

穿越隧道—— IPv6 隧道通信

IPv6 隧道通信技术

作者 : 河南/明廷堂来源:《网管员世界》月刊(2006-03-16)

IPv6 是新一代Internet通信协议,具有许多的功能特色:全新的表头格式、较大的地址空间、有效

及阶层化的地址与路由架构、内建的安全性、与邻近节点相互作用的新型通信协议Neighbor Discovery Protocol for IPv6 、可扩展性等。作为网络管理者,有必要加强对IPv6 的了解,为以后IPv4 的全面升级

做好准备。

I Pv6 隧道是将 IPv6 报文封装在 IPv4 报文中,让 IPv6 数据包穿过 IPv4 网络进行通信。对于采用隧道

技术的设备来说,在隧道的入口处,将IPv6 的数据报封装进IPv4 ,IPv4 报文的源地址和目的地址分别是

隧道入口和隧道出口的IPv4 地址;在隧道的出口处,再将IPv6 报文取出转发到目的节点。隧道技术只要

求在隧道的入口和出口处进行修改,对其他部分没有要求,容易实现。但是,隧道技术不能实现IPv4 主机

与 IPv6 主机的直接通信。

IPv6-over-IPv4 GRE隧道技术

使用标准的 GRE隧道技术,可在 IPv4 的 GRE隧道上承载 IPv6 数据报文。 GRE隧道是两点之间的连路,每条连路都是一条单独的隧道。 GRE隧道把 IPv6 作为乘客协议,将 GRE作为承载协议。所配置的 IPv6 地址是在 Tunnel 接口上配置的,而所配置的 IPv4 地址是 Tunnel 的源地址和目的地址(隧道的起点和终点)。

GRE隧道主要用于两个边缘路由器或终端系统与边缘路由器之间定期安全通信的稳定连接。边缘路由

器与终端系统必须实现双协议栈。

如图 1 所示,两个 IPv6 子网分别为 Group1 和 Group2,它们之间要求通过路由器 R1 和 R2 之间的 IPv6 隧道

协议互联。其中 R1 和 R2 的隧道接口为手动配置的全局 IPv6 地址,隧道的源地址与目的地址也需要手

动配置。设R1 的 E0 接口 IPv4 地址为 192.168.100.1,R2的E0接口IPv4地址为192.168.200.1。

在上面的转发过程中,R1 路由器首先根据路由表得知目的地址3003::1通过隧道转发出去,所以就将

报文送到隧道接口按照特定的GRE格式(如图2)进行封装。

原有的 IPv6 报文封装为GRE报文,最后封装为IPv4 报文。 IPv4 报文的源地址为隧道的起始点

192.168.100.1 ,目的地址为隧道的终点192.168.200.1 。这个报文被路由器R1 从隧道入口发出后,在IPv4 的网络中被路由到目的地R2。R2 收到报文后,对此IPv4 报文解封,取出IPv6 报文。因为R2 也是一个双

协议栈设备,故它在根据IPv6 报文中的目的地址信息进行路由,并送到目的地。R2 返回R1 的报文逆向进

行这一操作。

IPv6-over-IPv4 手动隧道

手动隧道也是通过IPv4 骨干网连接的两个IPv6 域的永久链路,用于两个边缘路由器或者终端系统与

边缘路由器之间安全通信的稳定连接。手动隧道的转发机制与GRE隧道一样,但它与GRE隧道的封装格式

不同,手动隧道直接将IPv6 报文封装到IPv4 报文中, IPv6 报文作为 IPv4 报文的净载荷(如图3)。

IPv4 兼容 IPv6 自动隧道

自动隧道能够完成点到多点的连接,而手动隧道仅仅是点到点的连接。IPv4 兼容 IPv6 自动隧道技术

能够使隧道自动生成。在IPv4 兼容 IPv6 自动隧道中,只需要告诉设备隧道的起点,隧道的终点由设备自

动生成。为了完成隧道终点的自动产生,IPv4 兼容 IPv6 自动隧道需要使用一种特殊的地址,即IPv4 兼容IPv6 地址,其格式如图4。

在IPv4 兼容 IPv6 地址中,前缀是 0:0:0:0:0:0 ,最后的 32 位是 IPv4 地址。 IPv4 兼容 IPv6 自动隧道

将使用这 32 位 IPv4 地址来自动构造隧道的目的地址。IPv4 兼容 IPv6 的自动隧道两端的主机或路由器必

须同时支持IPv4 和 IPv6 协议栈。使用IPv4 兼容 IPv6 的自动隧道可以方便地在IPv4 上建立 IPv6 隧道,

但是,它限于在隧道的两端点进行通信,隧道两端点后的网络不能通过隧道通信。

如图 5 所示,路由器 R1 和 R2 通过 IPv4 兼容 IPv6 自动隧道协议相连。其中R1和R2的隧道接口E0 为手动配置的全局IPv6 地址。隧道的源地址需要手动配置,而目的地址由路由器自动配置。

R1 与 R2 通信时,IPv6 报文的源地址是隧道自己的接口地址::1.1.1.1,目的地址是对方隧道的接口地址(即

R2 的隧道接口地址)::2.2.2.2。在R1发起通信时,首先根据路由表得知目的地址::2.2.2.2需要通过隧

道转发,就将报文送到隧道接口进行封装。封装时,原有的IPv6 报文封装为IPv4 报文, IPv4 报文的源地

址为隧道的起点 1.1.1.1,而目的地址直接从IPv4 兼容的 IPv6 地址 ::2.2.2.2的后32位提取过来,即

2.2.2.2(如图6)。

这个报文经过IPv4 网络到达目的地R2(地址为 2.2.2.2)时,R2对此IPv4

报文解封,取出IPv6 报文。送给 IPv6 协议栈处理。 R2 返回 R1 的报文逆向进行这一操作(如图7)。

从上面的分析知,IPv4 兼容 IPv6 自动隧道是随报文动态建立的隧道。无论要和多少个对端建立隧道,

本端只需要一个接口,路由器维护简单。但是,它要求IPv6 地址必须是特殊的IPv4 兼容 IPv6 地址,有很

大的局限性。同时,因为 IPv6 报文中的地址前缀只能是0:0:0:0:0:0,也就是所有的节点处于同一个IPv6 网段中,所以它只能做到节点本身的通信,而不能通过隧道进行报文的转发。这种局限性在6to4 隧道技术中得到很好的解决。

6to4 隧道技术

6to4 隧道可以将多个IPv6 域通过 IPv4 网络连接到IPv6 网络。它和IPv4 兼容 IPv6 自动隧道类似,

使用一种特殊的地址——2002:a.b.c.d:xxxx:xxxx:xxxx:xxxx:xxxx格式的6to4地址。其中 a.b.c.d是内嵌在 IPv6 地址中的 IPv4 地址,可以用来查找6to4 网络中的其他终端。6to4 地址有 64 位网络前缀,其中

前 48 位由路由器上的IPv4 地址决定,用户不能改变,后16 位由用户自己定义。这样,这个边缘路由器后

面就可以连接一组网络前缀不同的网络。

假设路由器R1 和 R2 通过6to4 隧道相连。路由器R1 的E0 接口全局IPv4 地址192.168.100.1/24 转换成IPv6 地址后使用前缀 2002:c0a8:6401::/64 ,对此前缀使用子网划分, Tunnel0 使用

2002:c0a8:6401:1::/64 子网(地址设为 2002:c0a8:6401:1::1/64 ), R1 连接主机 PC1的 E1 接口使用2002:c0a8:6401:2::/64 子网(地址设为 2002:c0a8:6401:2::1/64 ),PC1也使用 2002:c0a8:6401:2::/64

子网(地址设为 2002:c0a8:6401:2::2/64 )。

路由器 R2 的 E0 接口全局 IPv4 地址 192.168.50.1/24 转换成 IPv6 地址后使用前缀

2002:c0a8:3201::/64 ,对此前缀使用子网划分, Tunnel0 使用 2002:c0a8:3201:1::/64 子网(地址设为2002:c0a8:3201:1::1/64 ), R2 连接主机 PC2的 E1 接口使用 2002:c0a8:3201:2::/64 子网(地址设为2002:c0a8:3201:2::1/64 ),PC2也使用 2002:c0a8:3201:2::/64 子网(地址设为 2002:c0a8:3201:2::2/64 )。

配置的静态路由将所有其他发往IPv6 前缀 2002::/16 的流量定向到 6to4 隧道的 Tunnel 接口上(如图8)。

相关文档
最新文档