IPv6 over IPv4
先简单的讲解一下原理(顺序是从上往下):
------------------------------------------------------------------------------------------------------------------------------------------
该图来自华为技术手册:
数据包格式如下,其实你如果理解了IPSEC,这个根本就不难,所以你可以带着IPSEC的思路去学习:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol 41 | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 header and payload ... /
+-------+-------+-------+-------+-------+------+------+
##原理到此结束,以下是实验部分
------------------------------------------------------------------------------------------------------------------------------------------
##你要确定R2,R3是双栈路由器,也就是同时支持IPv4/6的转发,否则无法完成实验
以下是基础环境配置(全局使能IPv6,配置IPv6地址):
[R1]ipv6
[R1]interface g0/0/1
[R1-GigabitEthernet0/0/1]ipv6 enable
[R1-GigabitEthernet0/0/1]ipv6 address 2001::1/64
[R2]ipv6
[R2-GigabitEthernet0/0/1]interface g0/0/2
[R2-GigabitEthernet0/0/2]ip address 12.1.1.2 255.255.255.0
[R2]interface g0/0/1
[R2-GigabitEthernet0/0/1]ipv6 enable
[R2-GigabitEthernet0/0/1]ipv6 address 2001::2/64
[R3]ipv6
[R3]interface g0/0/1
[R3-GigabitEthernet0/0/1]ipv6 enable
[R3-GigabitEthernet0/0/1]ipv6 address 2002::3/64
[R3-GigabitEthernet0/0/1]interface g0/0/2
[R3-GigabitEthernet0/0/2]ip address 12.1.1.3 255.255.255.0
[R4]ipv6
[R4]interface g0/0/1
[R4-GigabitEthernet0/0/1]ipv6 enable
[R4-GigabitEthernet0/0/1]ipv6 address 2002::4/64
隧道配置如下:
[R2]interface Tunnel 0/0/2 ##这个tunnel口的编号要和出接口一样
[R2-Tunnel0/0/2]ipv6 enable ##接口下使能IPv6功能
[R2-Tunnel0/0/2]ipv6 add 2010::2/64 ##为Tunnel口配置IPv6地址
[R2-Tunnel0/0/2]tunnel-protocol ipv6-ipv4 ##设定隧道协议
[R2-Tunnel0/0/2]source 12.1.1.2 ##设定隧道源地址
[R2-Tunnel0/0/2]destination 12.1.1.3 ##设定隧道目的地址
[R3]interface Tunnel 0/0/2
[R3-Tunnel0/0/2]ipv6 enable
[R3-Tunnel0/0/2]ipv6 add 2010::3/64
[R3-Tunnel0/0/2]tunnel-protocol ipv6-ipv4
[R3-Tunnel0/0/2]source 12.1.1.3
[R3-Tunnel0/0/2]destination 12.1.1.2
##配置完成两端的隧道之后,用Ping去测试连通性:
在隧道完成之后,配置R1,R2,R3,R4的静态路由,使两端路由联通:
[R1]ipv6 route-static :: 0 2001::2 ##为R1,R4配置默认路由
[R4]ipv6 route-static :: 0 2002::3
[R2]ipv6 route-static 2002:: 64 2010::3
[R3]ipv6 route-static 2001:: 64 2010::2
##R2,R3配置通往对端内网的静态路由,这里的下一跳,一定要指向隧道对端IPv6地址,最后在R1pingR4即可:
------------------------------------------------------------------------------------------------------------------------------------------
参考标准
标准 | 描述 |
RFC 3056 | Connection of IPv6 Domains via IPv4 Clouds |
RFC 4213 | Basic Translition Mechanisms for IPv6 Hosts and Routers |
RFC 2529 | Transmission of IPv6 of IPv4 Domains without Explicit Tunnels |