曲径通幽论坛

标题: IPv6过渡技术之 手工IPv6 over IP隧道 [打印本页]

作者: easy    时间: 2015-1-27 14:56
标题: IPv6过渡技术之 手工IPv6 over IP隧道
[attach]3966[/attach]


R1、R2为双栈路由器,同时连接到 IPv6 及 IPv4 网络。

在R1、R2下分别挂着两个 IPv6 的孤岛,现在,通过在 R1 及 R2 间建立一个 IPv6 over IP 的 tunnel,使得两个 IPv6 的孤岛得以穿越 IPv4 的因特网而进行互联。原始的 IPv6 报文前面,被添加上一个隧道的 IPv4 头,从而形成一个外层的 IPv4 报文的报文,这个报文在 IPv4 网络中被路由。

关于配置,这里贴个简单的示例
  1. Ipv6 unicast-routing
  2. Interface serial0/0
  3.   ip address 10.1.12.1 255.255.255.0
  4. Interface fa1/0
  5. Ipv6 enable
  6. Ipv6 address 2001:0001::FFFF/64
  7. Interface tunnel 0
  8. Ipv6 enable
  9. tunnel mode ipv6ip
  10. tunnel source serial 0/0
  11. tunnel destination 10.1.23.3
  12. ip route 0.0.0.0 0.0.0.0 10.1.12.2          !! ipv4路由,使得路由能访问到tunnel destination,也就是10.1.23.3
  13. Ipv6 route ::/0  tunnel 0                   !! ipv6路由,前往IPv6网络的流量全部扔到tunnel
复制代码


更具体的配置,请见本文档实验部分。


手工的隧道,由于需要在隧道的两端,也就是两台双栈路由器上配置本地隧道、对端隧道的地址,因此扩展性比较差。为了方便在 IPv4 网络上手工隧道的部署,IETF 定义了隧道代理机制。如RFC3053所定义,隧道代理是一个外部系统,而不是路由器。它在 IPv4 网络中作为服务器,并接受双栈节点的隧道请求。
[attach]3967[/attach]


如上图所示:

1. 双栈主机通过 IPv4 使用 HTTP 访问隧道代理。这个双栈主机可能是个终端用户,它填写一个网页。

2. 双栈主机通过 HTTP 从隧道代理处获得 IPv4 和 IPv6 地址,然后终端用户使用这些地址配置并启用隧道,其中获得到的 IPv4 地址就是隧道的 IPv4 地址。

3. 与此同时,隧道代理自动地在一个连接到IPv6网络的双栈路由器上应用配置隧道的远端配置,一旦配置在双栈主机和双栈路由器上得到了应用,隧道就会被正确的建立起来

4. 端到端的IPv6隧道建立起来之后,IPv6流量就可以进行通讯了。

一般来说,隧道代理和双栈 Router 同属一个管理方,例如同一家公司。因为隧道代理要有双栈 Router 的配置权限。

另外,CISCO IOS不支持隧道代理。但是其实现在公网上有许多免费的隧道代理服务器。

隧道服务器

隧道服务器是隧道代理的简化模型。将隧道代理和双栈 Router 进行了整合。
[attach]3968[/attach]


1. IPv4 网络上的双栈主机首先通过 IPv4 使用 HTTP 访问隧道服务器,终端用户通过填写网页并从隧道服务器获得 IPv4 及 IPv6 地址

2. 终端用户通过双栈主机获得的地址配置隧道,而隧道服务器在本地应用隧道的远端配置。

3. 终端用户通过双栈主机获得的地址配置隧道,而隧道服务器在本地应用隧道的远端配置。

手工隧道的配置
  1. R1的配置如下:
  2. Ipv6 unicast-routing
  3. Interface serial0/0
  4.   ip address 10.1.12.1 255.255.255.0
  5. Interface fa1/0
  6. Ipv6 enable
  7. Ipv6 address 2001:0001::FFFF/64
  8. Interface tunnel 0
  9. Ipv6 enable
  10. tunnel mode ipv6ip
  11. tunnel source serial 0/0
  12. tunnel destination 10.1.23.3
  13. ip route 0.0.0.0 0.0.0.0 10.1.12.2         !! ipv4路由,使得路由能访问到tunnel destination,也就是10.1.23.3
  14. Ipv6 route ::/0  tunnel 0                  !! ipv6路由,前往IPv6网络的流量全部扔到tunnel
  15. R3的配置类似;R2只需配置接口IP即可;PC1及PC2各自配好IPv6 地址,指网关即可。
  16. Tunnel接口未必一定需要ipv6 address,当然,也可以配置v6地址,这不影响穿越路由器的流量
复制代码


配置完成后,PC1即可ping通PC2,抓包如下:
[attach]3969[/attach]


无论是 GRE 隧道,或是 ipv6overip 隧道,在隧道两头都可以跑动态路由协议。例如在上面,可以为 tunnel 两端接口都配置上 ipv6 地址,然后激活动态路由协议即可。从封装效率来说,还是 ipv6overip 会比 GRE 更好,毕竟少了一层 GRE 的封装,但是当跑动态路由协议的时候,在某些场合下,GRE 封装的通用性或者兼容性好比 ipv6overip 的封装要好一些,例如跑 ISIS 协议,用 ipv6overip 就会有点问题。







欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2