1、双栈技术
网络中所有的设备都需要支持 IPv6 和 IPv4 协议。对设备要求较高。
2、IPv6 over IPv4 隧道技术
用于过渡初期,IPv4 网络为主体,IPv6 网络是孤岛,需要通过 IPV4 网络将 IPv6 网络
互联在一起。IPv6 网络之间的报文通过双栈路由器外层添加 IPv4 报头,实现 IPv6 报文在
IPv4 的网络传递。
(1)IPv6 over IPv4 手工隧道
如果一个边界设备要与多个设备建立手动隧道,就需要在设备上配置多个隧道,配置
比较麻烦。所以手动隧道通常用于两个边界路由器之间,为两个 IPv6 网络提供连接。
手动隧道优缺点
优点:可以用于任何 IPv6 穿越 IPv4 的环境,通用性好。
缺点:必须手工配置。
转发机制
IPv6 over IPv4 手动隧道转发机制为:当隧道边界设备的 IPv6 侧收到一个 IPv6 报文
后, 根据 IPv6 报文的目的地址查找 IPv6 路由转发表,如果该报文是从此虚拟隧道接口转
发出去,则根据隧道接口配置的隧道源端和目的端的 IPv4 地址进行封装。封装后的报文变
成一个 IPv4 报文,交给 IPv4 协议栈处理。报文通过 IPv4 网络转发到隧道的终点。隧道终
点收到一个隧道协议报文后,进行隧道解封装。并将解封装后的报文交给 IPv6 协议栈处
理。
直接在双栈路由器指隧道接口以及外层封装的 IPv4 地址的源目 IP;所以当两个 IPv6
网路互访需要在其两端的双栈路由器建立一条手工隧道,所以当网络中有多个 IPv6 网络需
要互通,此时需要每两个 IPv6 网络都需要手工配置一条隧道。所以一般用于两个 IPv6 站
点通过 IPv4 互联。
当 PC1 访问 PC2 时,R1 会将收到的 IPv6 报文送入隧道口(需要配置静态路由,目的
地址 PC 的网段,下一跳为隧道口 tunnel0/0/0),完成隧道封装,封装协议为 IPv6-IPv4 手
工隧道封装模式,会在该 IPv6 报文外层添加 IPv4 头部,源,目 IP 为隧道口指定的源目 IP
(此 IP 需要路由可达,一般使用环回口),中间的 IPv4 网络路由器仅需要根据外层 IPv4
进行转发即可,当报文到达 R3 后,解封装得到内层原始 IPv6 报文,根据目的地址转发即
可,回程报文类似。
(2)IPv6 over IPv4 GRE 手工隧道
GRE:通用路由封装,被封装的网络层协议和外层封装的网络层协议可以任意;他和
IPv6 over IPv4 手工隧道的区别在于在外层 IPv4 和内层 IPv6 中间存在 GRE 头部。
6over4 手动隧道的一种;手工指定隧道的端点地址;GRE 承载 IPv6 协议。
IPv6 over IPv4 GRE 隧道使用标准的 GRE 隧道技术提供了点到点连接服务,需要手工
指定隧道的端点地址。GRE 隧道本身并不限制被封装的协议和传输协议,一个 GRE 隧道中
被封装的协议可以是协议中允许的任意协议(可以是 IPv4、IPv6、OSI、MPLS 等)。
IPv6 over IPv4 GRE 隧道在边界路由器上的传输机制和 IPv6 over IPv4 手动隧道相同。
(3)IPv4 兼容 IPv6 自动隧道
使用专用的 IPv4 兼容 IPv6 地址实现,该地址的格式为:::IPv4-Addr/96。
当 RouterA 又需要发送给 RouterB 的报文时,该 IPv6 的报文源 IP 为 RouterA 这边的
IPv6 网络的 IP 地址,而目的 IP 为 RouterB 的 IP:::2.1.1.1/96,此 IP 是通过 IPv4 兼容 IPv6
地址得到的,使用前 96bit 为 0 加上后面 32bit 的隧道接口源 IPv4 地址;
该 IPv6 报文会经过隧道接口的 IPv4 外层封装,该隧道口需要配置封装的协议模式为
IPv4 兼容 IPv6 自动隧道封装,需要配置隧道的源 IP 地址为 RA 某个 IPv4 接口地址,这里
使用的是 1.1.1.1,需要配置 IPv6 地址是通过隧道源地址得到的 IPv4 兼容 IPv6 地
址:::1.1.1.1/96。
IPv4 外层封装源地址为隧道指点的源 IPv4 地址:1.1.1.1,目的地址为内层 IPv6 报文的
目的 IPv4 兼容 IPv6 地址中提取出来的后 32bit 的 IPv4 地址 2.1.1.1。然后进行 IPv4 路由转
发,中间设备收到后仅需进行路由转发即可到达 RB。
需要每个主机都拥有一个合法的 IPv4 地址保证网络不冲突。而且需要所有主机支持
IPv6 和 IPv4 双协议栈功能。所以该技术已经逐渐被 6to4 自动隧道代替。
(4)IPv6 over IPv4 6to4 自动隧道
使用专用的 6to4 的地址如下,前 14bit 固定为 2002::,将隧道接口的源 IPv4 地址填充
进来形成前 48bit 固定的 6to4 固定前缀,提供 16bit 的 SLA ID(站点标识符)来区分同一
个 6to4 网络路由器上连接的不同站点,前 64bit 可以形成 6to4 的网络前缀,后 64bit 可以
分配给 6to4 网络内的主机,路由器使用。
R1 上链接由一个 6to4 网络,R3 上链接一个 6to4 的网络,这两个网络
的网络前缀就可以由 R1 和 R3 上的 6to4 隧道接口源 IP(一般设置为 loopback 接口,稳定
性好,需要通告进 IPv4 网络的 IGP 让隧道对端的设备能够访问该地址)生成,比如 R1 的
6to4 网络前缀就是:2002:0101:0101::/48(其中 0101:0101 就是 R1 建立 6to4 隧道接口的
指定的源 IPv4 地址 1.1.1.1 的 16 进制表示);隧道接口无需配置隧道目的地址,只需要指
定源,需要配置隧道的封装模式维 6to4 自动隧道,并开启 IPv6,配置 IPv6 单播地址。
当 PC1 访问 PC3 时,源 IP 为 PC1 的 IP:2002:0101:0101:0001::1,目的 IP 为 PC3 的
IP:2002:0303:0303:0001::1,当网关 R1 收到该报文后,会根据自身配置的静态路由 ipv6
route-static 2002:: 16 Tunnel0/0/0,访问所有的 6to4 的网络(2002::/16 为前缀的网络即
为 6to4 的网络)需要将报文送入隧道口 t0/0/0 进行 6to4 的封装,会根据内层 IPv6 报头的
目的 IP 地址 2002:0303:0303:0001::1 解析出隧道的目的 IPv4 地址,通过配置的隧道源 IPv4
地址即可完成外层 IPv4 单播封装,源地址为 1.1.1.1,目的地址为 3.3.3.3。中间设备仅需根
据外层 IPv4 转发即可,报文会正确发给 R3,R3 收到后解封装可以查看到内层原始的 IPv6
报文,正常进行 IPv6 转发。回程报文类似处理。
(5)IPv6 over IPv4 ISATAP 自动隧道
可在主机和路由器,主机和主机,之间创建 ISATAP 隧道,主机通过 ISATAP 定义的接
口标识得到后 64bit 的接口标识,后 32bit 为本主机的 IPv4 地址,前面 32bit 为
0000:5EFE。对端 ISATAP 路由器要开启 RA 功能,通过 RA 报文下发自身隧道接口的前缀,
ISATAP 主机可以根据 RA 报文中的前缀信息的到 64bit 的网络前缀,这样就形成了一个
ISTAP 的 IPv6 地址。ISATAP 主机需要同时支持 IPv6 和 IPv4 双栈。
IPv4 over IPv6 隧道
用于 IPv4 向 IPv6 网络过渡的后期,此时 IPv6 网络成为主体,IPv4 网络成为信息孤
岛,此时要求 IPv4 的报文能够在 IPv6 的网络上传递。
边界设备启动 IPv4/IPv6 双协议栈,并配置 IPv4 over IPv6 隧道。
边界设备在收到从 IPv4 网络侧发来的报文后,如果报文的目的地址不是自身,就要把
收到的 IPv4 报文作为负载,加上 IPv6 报文头,封装到 IPv6 报文里。
在 IPv6 网络中,封装后的报文被传递到对端的边界设备。
对端边界设备对报文解封装,去掉 IPv6 报文头,然后将解封装后的 IPv4 报文发送到 IPv4
网络。