理解的执行,不理解的在执行中理解。
文章目录
一、IPv6 over IPv4 隧道简介
IPv6 over IPv4隧道可实现IPv6网络孤岛之间通过IPv4网络互连。由于IPv4地址的枯竭和IPv6的先进性,IPv4过渡为IPv6势在必行。因为IPv6与IPv4的不兼容性,所以需要对原有的IPv4设备进行替换。但是如果贸然将IPv4设备大量替换所需成本会非常巨大,且现网运行的业务也会中断,显然并不可行。所以,IPv4向IPv6过渡是一个渐进的过程。在过渡初期,IPv4网络已经大量部署,而IPv6网络只是散落在各地的“孤岛”,IPv6 over IPv4隧道就是通过隧道技术,使IPv6报文在IPv4网络中传输,实现IPv6网络之间的孤岛互连。
二、双协议栈
双栈技术是IPv4向IPv6过渡的一种有效的技术。网络中的节点同时支持IPv4和IPv6协议栈,源节点根据目的节点的不同选用不同的协议栈,而网络设备根据报文的协议类型选择不同的协议栈进行处理和转发。双栈可以在一个单一的设备上实现,也可以是一个双栈骨干网。对于双栈骨干网,其中的所有设备必须同时支持IPv4/IPv6协议栈,连接双栈网络的接口必须同时配置IPv4地址和IPv6地址。
1 、双栈技术
节点同时支持 IPv4 和 IPv6 协议栈
2、双协议栈具有以下特点:
(1)多种链路协议支持双协议栈多种链路协议(如以太网)支持双协议栈。图中的链路层是以太网,在以太网帧上,如果协议ID字段的值为0x0800,表示网络层收到的是IPv4报文,如果为0x86DD,表示网络层是IPv6报文。
(2)多种应用支持双协议栈
多种应用(如DNS/FTP/Telnet等)支持双协议栈。上层应用(如DNS)可以选用TCP或UDP作为传输层的协议,但优先选择IPv6协议栈,而不是IPv4协议栈作为网络层协议。
三、手动隧道
根据IPv6报文封装的不同,手动隧道又可以分为IPv6 over IPv4手动隧道和IPv6 over IPv4 GRE隧道两种。
3.1 IPv6 over IPv4隧道
IPv6 over IPv4 手动隧道手动隧道直接把IPv6报文封装到IPv4报文中去,IPv6报文作为IPv4报文的净载荷。手动隧道的源地址和目的地址也是手工指定的,它提供了一个点到点的连接。手动隧道可以建立在两个边界路由器之间为被IPv4网络分离的IPv6网络提供稳定的连接,或建立在终端系统与边界路由器之间为终端系统访问IPv6网络提供连接。隧道的边界设备必须支持IPv6/IPv4双协议栈。其它设备只需实现单协议栈即可。因为手动隧道要求在设备上手工配置隧道的源地址和目的地址,如果一个边界设备要与多个设备建立手动隧道,就需要在设备上配置多个隧道,配置比较麻烦。所以手动隧道通常用于两个边界路由器之间,为两个IPv6网络提供连接。
IPv6 over IPv4 手动隧道封装格式
IPv4 Header | IPv6 Header | IPv6 Data |
---|
(1)过渡初期使用,用于IPv6网络穿越IPv4网络
(2)通过隧道技术,使用IPv6报文在IPv4网络中传输
(3)手动隧道包括IPv6 over IPv4手动隧道和IPv6 over IPv4 GRE隧道
(4)自动隧道包括IPv4兼容IPv6隧道,6to4隧道和ISATAP隧道
1、手动隧道
(1)简介:IPv4 over IPv4隧道是手动隧道的一种,隧道底层源地址和目的地址需要手动指定;用于边界路由器和边界路由器或者主机与边界路由器之间
2、拓扑
3、路由器角色
(1)双栈路由器
AR-1;AR-2;AR-3;
(2)IPv6协议栈路由器
AR-4;AR-5;AR-6;
4、地址
(1)IPv4互联地址,设备编号组合网段
例如:12.1.1.1,13.1.1.1;
(2)环回口地址,设备编号+环回口编号
例如:1.1.1.1、1.1.1.2;
(3)IPv6互联地址,20+设备编号组合前缀
例如:2012::1/64、2034::3/64
(4)IPv6环回口地址,2001+设备编号
例如:2001::5/128; 2001::6/128
IPv4地址簇IS-IS 49.0001
AR-1
[Huawei]sysname AR-1
[AR-1]int g0/0/0
[AR-1-GigabitEthernet0/0/0]ip address 12.1.1.1 24
[AR-1-GigabitEthernet0/0/0]int g0/0/1
[AR-1-GigabitEthernet0/0/1]ip address 13.1.1.1 24
[AR-1-GigabitEthernet0/0/1]int l0
[AR-1-LoopBack0]ip address 1.1.1.1 32
[AR-1-LoopBack0]isis 1
[AR-1-isis-1]network-entity 49.0001.0000.0000.0001.00
[AR-1-isis-1]auto-cost enable
[AR-1-isis-1]int g0/0/0
[AR-1-GigabitEthernet0/0/0]isis enable
[AR-1-GigabitEthernet0/0/0]int g0/0/1
[AR-1-GigabitEthernet0/0/1]isis enable
[AR-1-GigabitEthernet0/0/1]int l0
[AR-1-LoopBack0]isis enable
AR-2、3的配置类似
[AR-3]ping 12.1.1.2
AR-6
[Huawei]sysname AR-6
[AR-6]ipv6
[AR-6]int g0/0/1
[AR-6-GigabitEthernet0/0/1]ipv6 enable
[AR-6-GigabitEthernet0/0/1]ipv6 address 2036::6 64
[AR-6-GigabitEthernet0/0/1]int l0
[AR-6-LoopBack0]ipv6 enable
[AR-6-LoopBack0]ipv6 address 2001::6 128
AR-4、5的配置类似
AR-3
[AR-3-GigabitEthernet0/0/1]ospfv3 1
[AR-3-ospfv3-1]router-id 3.3.3.3
[AR-3-ospfv3-1]quit
[AR-3]int g0/0/2
[AR-3-GigabitEthernet0/0/2]ipv6 enable
[AR-3-GigabitEthernet0/0/2]ipv6 address 2026::3/64
[AR-3-GigabitEthernet0/0/2]ospfv3 1 a 0
[AR-3-GigabitEthernet0/0/2]quit
[AR-6]ospfv3 1
[AR-6-ospfv3-1]router-id 6.6.6.6
[AR-6-ospfv3-1]quit
[AR-6]int g0/0/1
[AR-6-GigabitEthernet0/0/1]ospfv3 1 a 0
[AR-6-GigabitEthernet0/0/1]int l0
[AR-6-LoopBack0]ospfv3 1 a 0
[AR-6-LoopBack0]quit
dis ospfv3 peer
AR-1和AR-4、AR-2和AR-5的配置类似
AR-2
[AR-2]int Tunnel 0/0/1
[AR-2-Tunnel0/0/1]tunnel-protocol ipv6-ipv4 //选择隧道封装模式为ipv6 to ipv4的手动模式
[AR-2-Tunnel0/0/1]ipv6 enable
[AR-2-Tunnel0/0/1]ipv6 address 2012::1:101 112 //配置隧道的IPv6逻辑地址
[AR-2-Tunnel0/0/1]source 2.2.2.2
[AR-2-Tunnel0/0/1]destination 1.1.1.1
[AR-2-Tunnel0/0/1]quit
[AR-1]int Tunnel 0/0/1
[AR-1-Tunnel0/0/1]tunnel-protocol ipv6-ipv4
[AR-1-Tunnel0/0/1]ipv6 enable
[AR-1-Tunnel0/0/1]ipv6 address 2012::1:100 112
[AR-1-Tunnel0/0/1]source 1.1.1.1
[AR-1-Tunnel0/0/1]destination 2.2.2.2
[AR-1-Tunnel0/0/1]quit
[AR-2] ping ipv6 2012::1:100
[AR-1]int Tunnel 0/0/1
[AR-1-Tunnel0/0/1]ospfv3 1 a 1
[AR-2]int Tunnel 0/0/1
[AR-2-Tunnel0/0/1]ospfv3 1 a 1
[AR-2]dis ospfv3 peer
[AR-5]ping ipv6 2014::4
3.2 GRE隧道
IPv6 over IPv4 GRE隧道使用标准的GRE隧道技术提供了点到点连接服务,需要手工指定隧道的端点地址。GRE隧道本身并不限制被封装的协议和传输协议,一个GRE隧道中被封装的协议可以是协议中允许的任意协议(可以是IPv4、IPv6、OSI、MPLS等)。
1、继拓扑
2、配置如下:
[AR-1]int Tunnel 0/0/2
[AR-1-Tunnel0/0/2]tunnel-protocol gre //隧道 封装协议选择GRE通用封装
[AR-1-Tunnel0/0/2]source 1.1.1.2
[AR-1-Tunnel0/0/2]destination 3.3.3.3
[AR-1-Tunnel0/0/2]ipv6 enable
[AR-1-Tunnel0/0/2]ipv6 address 2013::2:131 112
[AR-1-Tunnel0/0/2]ospfv3 1 a 0
[AR-1-Tunnel0/0/2]quit
[AR-3]int Tunnel 0/0/2
[AR-3-Tunnel0/0/2]tunnel-protocol gre
[AR-3-Tunnel0/0/2]source 3.3.3.3
[AR-3-Tunnel0/0/2]destination 1.1.1.2
[AR-3-Tunnel0/0/2]ipv6 enable
[AR-3-Tunnel0/0/2]ipv6 address 2013::2:133 112
[AR-3-Tunnel0/0/2]ospfv3 1 a 0
[AR-3-Tunnel0/0/2]quit
[AR-3]dis ospfv3 peer
[AR-6]ping ipv6 2025::5
已实现全网互通
四、自动隧道
自动隧道中,用户仅需要配置设备隧道的起点,隧道的终点由设备自动生成。为了使设备能够自动产生终点,隧道接口的IPv6地址采用内嵌IPv4地址的特殊IPv6地址形式。设备从IPv6报文中的目的IPv6地址中解析出IPv4地址,然后以这个IPv4地址代表的节点
作为隧道的终点。根据IPv6报文封装的不同,自动隧道又可以分为IPv4兼容IPv6自动隧道、6to4隧道和
ISATAP隧道三种。
4.1 IPv4兼容IPv6自动隧道
其承载的IPv6报文的目的地址(即自动隧道所使用的特殊地址)是IPv4兼容IPv6地址。IPv4兼容IPv6地址的前96位全部为0,后32位为IPv4地址。
注意:
如果IPv4兼容IPv6地址中的IPv4地址是广播地址、组播地址、网络广播地址、出接口的子网广播地址、全0地址、环回地址,则该IPv6报文被丢弃,不会进行隧道封装处理
1、IPv4 兼容 IPv6 地址
0 | IPv4 address |
---|---|
-96 bit- | -32 bit- |
2、拓扑
3、配置如下:
<AR-7>dis current-configuration
#
sysname AR-7
.....
#
isis 1
auto-cost enable
network-entity 49.0001.0000.0000.0007.00
#
interface GigabitEthernet0/0/0
ip address 78.1.1.7 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/1
ip address 79.1.1.7 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/2
#
interface LoopBack0
ip address 7.7.7.7 255.255.255.255
isis enable 1
#
interface Tunnel0/0/3
ipv6 enable
ipv6 address ::7.7.7.7/96
tunnel-protocol ipv6-ipv4 auto-tunnel //选择使用IPv6 to IPv4自动隧道(将隧道源地址嵌入进隧道自身的IPv6逻辑地址中)
source LoopBack0
#
......
<AR-7>
AR-9
<AR-9>dis current-configuration
#
sysname AR-9
......
#
isis 1
auto-cost enable
network-entity 49.0001.0000.0000.0009.00
#
interface GigabitEthernet0/0/2
ip address 79.1.1.9 255.255.255.0
isis enable 1
#
interface LoopBack0
ipv6 enable
ipv6 address 2001::9/128
#
interface LoopBack10
ip address 9.9.9.9 255.255.255.255
isis enable 1
#
interface Tunnel0/0/5
ipv6 enable
ipv6 address ::9.9.9.9/96
tunnel-protocol ipv6-ipv4 auto-tunnel
source LoopBack10
#
......
<AR-9>
AR-8、10的配置类似
[AR-10]ping ipv6 ::9.9.9.9
4.2 6to4隧道
6to4隧道也属于一种自动隧道,隧道也是使用内嵌在IPv6地址中的IPv4地址建立的。与IPv4兼容自动隧道不同,6to4自动隧道支持Router到Router、Host到Router、Router到Host、 Host到Host。
1、6to4 地址
2、6to4地址是用IPv4地址做为网络标识
(1)6to4地址可以表示为2001::/64,网络号为2002:IPv4地址::/64
(2)6to4的网络前缀长度为64bit,其中64bit:2002:a.b.c.d,有路由器的ipv4地址决定,用户不能变更,后16位(SLA)用户自己定义。用以一个源对应多个目的地址时需要建立多条隧道时的区分
注意:
(1)数据转发时路由器会基于IPv6地址中嵌入的IPv4地址的进行下一跳解析和封装
(2)配置基于6to4隧道网段数数据和基于此6to4网络转发的数据的隧道发出接口
例如:IPv6路由查表解析的下一跳为2002:201:102:1 双栈路由器会基于 6to4的规则提取此IPv6地址中的2.1.1.2此IPv4地址为穿越IPv4网络的下一跳和隧道底层目的地址的的封装地址
3、拓扑
4、配置如下:
AR-1
[AR-1]dis current-configuration
#
sysname AR-1
......
#
ipv6
#
......
interface GigabitEthernet0/0/1
ip address 2.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/2
ipv6 enable
ipv6 address 2002:201:101:1::1/64
#
interface Tunnel0/0/1
ipv6 enable
ipv6 address 2002:201:101::1/64
tunnel-protocol ipv6-ipv4 6to4
source GigabitEthernet0/0/1
#
ipv6 route-static :: 0 2002:201:102::1
......
AR-2
[AR-2]dis current-configuration
#
sysname AR-2
......
#
ipv6
#
......
interface GigabitEthernet0/0/1
ip address 2.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/2
ipv6 enable
ipv6 address 2001::1/64
#
interface Tunnel0/0/1
ipv6 enable
ipv6 address 2002:201:102::1/64
tunnel-protocol ipv6-ipv4 6to4
source GigabitEthernet0/0/1
#
ipv6 route-static 2002:: 16 Tunnel0/0/1
#
......
ping ipv6 2001::1
AR-2接口g0/0/1抓包
五、IPv6 over IPv4 隧道的应用场景
隧道类型 | 隧道源/ 目的地址 | 隧道接口地址 | 应用场景 |
---|---|---|---|
IPv6 over IPv4手动隧道 | 源/目的地址为手动配置的IPv4地址 | IPv6地址 | 简单的IPv6网络或主机之间的点到点连接,隧道仅可以承载IPv6报文。 |
IPv6 over IPv4 GRE隧道 | 源/目的地址为手动配置的IPv4地址 | IPv6地址 | 简单的IPv6网络或主机之间的点到点连接,隧道可以承载包括IPv6协议在内的多种上层协议。 |
IPv6 over IPv4自动隧道 | 源地址为手动配置的IPv4地址,目的地址不需配置 | IPv4兼容IPv6地址,其格式为 ::IPv4-source-address/96 | 多用于IPv6主机之间的点到多点的连接 |
6to4隧道 | 源地址为手动配置的IPv4地址,目的地址不需配置 | 6to4地址,其格式为2002:IPv4-source-address::/48 | 多用于IPv6网络之间的点到多点的连接。 |
ISATAP隧道 | 源地址为手动配置的IPv4地址,目的地址不需配置 | ISATAP地址,其格式为Prefix:0 | 多用于在IPv4网络之内的IPv6节点之间的互联 |
本人所有文章都受版权保护,著作权归艺博东所有!未经授权,转载必究或附上其原创链接。