如何界定手动与自动?
主要是隧道目标地址能否自动获取
👯1. 双栈
必须支持IPv4和IPv6协议
链接双栈网络的接口必须同时配置v4和v6地址
路由器能够根据二层标记识别协议,type:0x0800代表IPV4,type:0x86dd代表IPv6
针对主机上层应用:例如DNS上层应用会优先选择IPv6协议栈,而不是IPv4。比如一个同时支持v4和v6的应用请求通过DNS请求地址,会先请求AAAA记录,如果没有,则再请求A记录。
也就是访问v4用v4地址,访问v6用v6地址
🖐️2. 手动隧道
(1)IPv6 over IPv4 手动隧道
隧道的源地址和目的地址均需要手工指定
主要用于边界路由器与边界路由器 或者 主机与边界路由器
通过在IPv6报头前加一个IPv4报头来通过IPv4的链路
interface Tunnel [隧道号] //进入隧道接口
tunnel-protocol ipv6-ipv4 //设置隧道封装协议
ipv6 address [IPv6地址] //隧道口从逻辑上也是一个接口,又要传v6报文所以也需要一个v6地址
source [隧道源地址] //使用哪个ipv4地址封装,一般选用换回口
destination [隧道目的地址] //隧道终点的IPv4地址
(2)GRE隧道
原理与6over4隧道类似,报文区别就是在v4头和v6头间插一个GRE头
interface Tunnel [隧道号] //进入隧道接口
tunnel-protocol GRE //设置隧道封装协议
ipv6 address [IPv6地址] //隧道口从逻辑上也是一个接口,又要传v6报文所以也需要一个v6地址
source [隧道源地址] //使用哪个ipv4地址封装,一般选用换回口
destination [隧道目的地址] //隧道终点的IPv4地址
🛰️3. 自动隧道
(1)6to4隧道
6to4 只能使用固定地址格式:2002:/16 也就是必须是2002开头 格式:2002:ipv4::/48 如:2002:0101:0101:5:9 对应ipv4:1.1.1.1
所以在规划子网的时候就要规划好
可以连接多个6to4网络,同各国SLA ID区分
通信方式依旧V6的报文是穿上V4的报头,通过v4的链路,但差别是如何建立的隧道
当pc1想访问pc2时,将(源2002:0101:0101:0003::2,目2002:0202:0202:0001::1)报文发给网关,网关配置了隧道,隧道会根据目的地址解析出隧道终点的v4地址,到达隧道终点拆掉v4报头,又变成了正常的v6报文在v6链路中转发
6to4隧道配置如下:
interface Tunnel [隧道号] //进入隧道接口
tunnel-protocol ipv6-ipv4 6to4 //设置隧道封装协议
ipv6 address [最好6to4的特殊地址] //如果不是2002特殊地址,就不能中继了
source [隧道源地址] //使用哪个ipv4地址封装,一般选用环回口
需要另外指定一条缺省路由
ipv6 route-static 2002:: 16 Tunnel [隧道号]
6to4 中继
普通6to4隧道地址必须是2002开头的,如果有主机不是2002开头的就不能访问,非常不灵活
所谓中继就是在路由器上配置一条静态地址,6to4隧道能够根据下一跳提取终点地址,也就是在上述命令中提到的隧道口地址最好也是2002开头的特殊6to4地址
(2)ISATAP自动隧道
ISATAP隧道和6to4差不多,也是采用专用地址,但不想6to4固定开头,而是使用固定的第4组和第5组数,0000:5EFE,也就是主机位的前两段。最后两组数来指代v4地址
例如,2004:1212:4545:7878:0000:5EFE:0101:0101
固定的两组数 v4地址1.1.1.1
由于不是使用的固定前缀,所以它可以通过NDP协议来获取前缀
如果IPV4地址是全局唯一的,则u位为1,否则u位为0。g位是IEEE群体/个体标志。由于ISATAP是通过接口标识来表现的,所以,ISATAP地址有全局单播地址、链路本地地址、ULA地址、组播地址等形式。
ISATAP过渡机制允许在现有的IPV4网络内部署IPV6,该技术简单而且扩展性很好,可以用于本地站点的过渡。
ISATAP支持IPv6站点本地路由和全局IPv6路由域,以及自动IPV6隧道。ISATAP同时还可以与NAT结合,从而可以使用站点内部非全局唯一的IPv4地址。典型的ISATAP隧道应用是在站点内部所以,其内嵌的IPv4地址不需要是全局唯一的,只需要有个全局唯一前缀即可。
1.首先配置ISATAP隧道接口,这时会根据IPv4地址生成ISATAP类型的接口ID,也就是后64bit
2.根据接口ID生成一个ISATAP链路本地IPv6地址,因为本地链路地址固定前缀是FE80::,生成链路本地地址以后,主机就有了在本地链路上进行IPv6通信的能力。
3.可以通过NDP下发前缀进行自动配置,主机获得IPv6全球单播地址、ULA地址等
4.当主机与其它IPv6主机进行通讯时,从隧道接口转发,将从报文的下一跳IPv6地址中取出IPv4地址作为IPv4封装的目的地址。如果目的主机在本站点内,则下一跳就是目的主机本身,如果目的主机不在本站点内,则下一跳为ISATAP路由器的地址。
🥴4. 过度后期
由于目前应用很少,这里先简要介绍
(1)IPv4 over IPv6
当进入过度后期,IPv6为主流但还存在少量IPv4孤岛,所以要在v6网络上传播v4报文
和上文中的6over4类似,4over6只是在v4报头前套上v6报头
(2)NAT64
NAT64技术实际上是一种协议转换技术,能够将分组在V4及V6格式之间灵活转换。
IPv6过渡中的协议翻译技术就是将IPv6数据包的每个字段与IPv4数据包中的字段建立起一一映射的关系,从而在两个网络的边缘实现数据报文的转换。
1.IPv6单栈PC终端通过IPV6网络向DNSIPV6服务器发送对于网站www.abc.com的AAAA请求。
2.由于IPv6网络中没有www.abc.com的AAAA地址,DNS IPV6服务器获取此URL(UniformResource Locator,统一资源定位器)地址的A地址解析结果(10.10.0.11)。
3.DNS IPV6服务器在A请求返回的IPv4地址前面增加指定的IPv6前缀(64:FF9B),形成64:FF9B:0A0A:B的IPV6 AAAA解析结果给终端
4. 终端使用源地址2001:DB8:1、源端口1500,向目的地址64:FF9B:0A0A:B、目的端口80发送报文
5.报文在网络中被转发到NAT64设备。注意:NAT64设备会将64:FF9B/96路由发布出去,以引导所有去往这个网段的流量都转发到NAT64设备。
注意:NAT64设备会将64:FF9B/96路由发布出去,以引导所有去往这个网段的流量都转发到NAT64设备。
6.NAT64设备对IPV6报文的目的地址除去IPv6前缀(64:FF9B),对于源地址和源端口进行NAT64转换(源地址转换为192.168.113.1,源端口转换为2000),转换为IPv4报文后转发到IPv4网络。
当内网流量进行正向的NAT64转换时,将在NAT64设备的NAT64映射表中创建一条表项,该映射表项的信息如下所示。
地址映射:内网地址2001:DB8::1映射外网地址192.168.113.1。
端口映射:内网端口1500映射外网2000。当外网流量返回时,将会命中该表项,通过反向的NAT64转换为IPV6报文,转发回IPv6网络