实验二十五:从IPv4向IPv6过渡所使用的隧道技术

一、实验目的与核心原理

1.1 实验目的

  • 理解从 IPv4 向 IPv6 过渡所使用的隧道技术底层运作机制。

  • 掌握在 Cisco 路由器上配置 IPv6 over IPv4 手动隧道的方法。

  • 验证并深层剖析经过隧道实现两个 IPv6 孤岛网络跨越 IPv4 骨干网通信的全过程。

1.2 核心原理理论阐述

在向 IPv6 演进的过渡期,常出现两个 IPv6 网络被纯 IPv4 骨干网隔离的拓扑环境。由于 IPv4 路由器无法解析 IPv6 协议栈,隧道技术(Tunneling)应运而生。 隧道技术本质上是将 IPv6 数据报作为净荷(Payload)封装在 IPv4 数据报中。边界路由器通过在 IPv6 报文外部附加一层新的 IPv4 报头,并将外部 IPv4 报头中的协议字段(Protocol)严格置为 41(十六进制 0x29),以此实现跨域透明传输。

【知识拓展:隧道技术的通俗理解】 为了便于理解,可将隧道技术想象为一次"跨国寄快递":

  • 写信(产生 IPv6 数据): 孤岛 A 上的主机写了一封信,信封上写着先进的 IPv6 收件地址。

  • 代收点打包(隧道封装 Encapsulation): 信件送到边界路由器。边界路由器深知中间的海洋(IPv4骨干网)只认 IPv4 地址。于是,它拿出一个大号的 IPv4 快递盒,把整封 IPv6 信件装进去,并在盒子上写下对岸路由器的 IPv4 地址,同时盖上一个暗号印章:"协议号 41"。

  • 海洋运输(透明传输): 盒子进入 IPv4 骨干网。中间的搬运工(骨干路由器)不关心盒子里装了什么,只看外层 IPv4 地址进行逐跳转发。

  • 终点拆箱(解封装 Decapsulation): 对岸边界路由器收到盒子,看到"协议号 41"的暗号,立刻判定内部封装了 IPv6 报文。于是它依法拆除外层 IPv4 纸箱,将内部完好无损的 IPv6 信件投递给最终的收件人。

二、 网络拓扑构建与地址规划

本阶段旨在完成网络物理拓扑的搭建,并对全网节点的网络层参数(IP地址、子网掩码/前缀长度及默认网关)进行严谨规划与标识,为后续双栈配置及隧道封装提供准确的寻址依据。

2.1 构建网络物理拓扑

在Packet Tracer网络仿真平台中,根据实验需求选取相应设备并完成物理链路连接。本实验模拟跨越IPv4骨干网的IPv6孤岛通信场景,所需核心设备及角色定义如下:

  • 终端节点(PC0、PC1): 部署于拓扑两端,分别模拟处于两个独立IPv6网络环境中的主机设备。

  • 边界路由器(Router0、Router2): 部署于IPv6网络与IPv4骨干网的交界处。该类设备需具备双栈(Dual Stack)处理能力,负责内网IPv6数据报与外网IPv4数据报的路由与隧道封装/解封装。

  • 骨干路由器(Router1): 部署于拓扑中枢,模拟纯IPv4骨干互联网。该设备仅负责IPv4网络层的路由转发,对承载的IPv6隧道数据不进行协议层面的解析。

2.2 查看并标识设备接口与网络参数

(1)查明并标注物理接口名称

在进行连线与配置前,必须准确查明并标注各路由器所使用的物理接口编号(如GigabitEthernet0/0、GigabitEthernet0/1)。接口的错接或混淆将直接导致路由表生成错误及网络不可达。建议在仿真软件中开启端口标签显示功能,以便直观核对物理连线情况。

(2)IPv6地址前缀理论阐述

在标注网络参数时需注意IPv6与IPv4在地址体系上的理论差异:IPv6体系中没有"子网掩码(Subnet Mask)"的概念,但仍可采用CIDR(无类别域间路由)的形式进行表示。地址后方斜线(/)附带的数值,在IPv6中被严格定义为"网络前缀的长度(Prefix Length)"。 除IP地址和前缀长度外,终端设备还必须明确标识其默认网关的IP地址。

(3)全网IP地址与路由参数规划

依据上述理论指导,对全网设备接口的具体网络参数进行如下详尽规划,并在拓扑图中利用文本工具完成规范标注。

表1:终端设备(IPv6网络)地址规划表

(注:终端PC的默认网关必须精确指向与其处于同一局域网内的边界路由器内网接口地址。)

设备名称 接入网络位置 IP 地址 (IPv6) 前缀长度 默认网关 (IPv6)
PC0 左侧IPv6网络 2001::1 /64 2001::16
PC1 右侧IPv6网络 2002::1 /64 2002::16
表2:路由设备接口与网段规划表

(注:为节约IPv4公网地址资源,骨干网点对点链路采用/30的掩码长度,其对应的点分十进制子网掩码为255.255.255.252。)

路由器角色 接口编号 对端连接设备 网络协议属性 分配 IP 地址 子网掩码 / 前缀长度
Router0 (左侧边界) Gig0/0 PC0 (内网) IPv6 2001::16 /64
Router0 (左侧边界) Gig0/1 Router1 (外网) IPv4 10.0.0.1 255.255.255.252
Router1 (IPv4骨干) Gig0/0 Router0 (外网) IPv4 10.0.0.2 255.255.255.252
Router1 (IPv4骨干) Gig0/1 Router2 (外网) IPv4 20.0.0.1 255.255.255.252
Router2 (右侧边界) Gig0/0 Router1 (外网) IPv4 20.0.0.2 255.255.255.252
Router2 (右侧边界) Gig0/1 PC1 (内网) IPv6 2002::16 /64

三、 底层网络寻址与IPv4骨干网连通性构建

在配置IPv6过渡隧道之前,必须首先完成物理网络中各节点的网络层地址分配,并确保底层IPv4骨干网络的路由可达性。此阶段为隧道技术的实施提供必要的基础承载环境。

3.1 终端节点与路由设备基础参数配置

(1)终端节点(PC0与PC1)IPv6参数配置

进入 PC 桌面配置界面,依据表 1 为 PC0 和 PC1 静态配置 IPv6 地址、前缀及默认网关。

设备名称 IP 地址 (IPv6) 前缀长度 默认网关
PC0 2001::1 /64 2001::16
PC1 2002::1 /64 2002::16

(2)边界路由器(Router0)基础接口配置

Router0作为连接左侧IPv6网络与IPv4骨干网的边界设备,需同时启用IPv6与IPv4双栈功能。其具体配置命令与参数意义如下:

复制代码
Router>enable                                 // 从用户执行模式进入特权执行模式
Router#configure terminal                     // 从特权执行模式进入全局配置模式
Router(config)#ipv6 unicast-routing           // 【关键】全局开启 IPv6 单播路由转发功能

! --- 配置连接内部 IPv6 网络的接口 ---
Router(config)#interface GigabitEthernet0/0   // 进入接口 Gig0/0 (连接PC0) 
Router(config-if)#ipv6 address 2001::16/64    // 配置静态 IPv6 地址
Router(config-if)#ipv6 enable                 // 使能接口的 IPv6 功能
Router(config-if)#no shutdown                 // 开启该接口
Router(config-if)#exit                        // 规范操作:退出到全局配置模式

! --- 配置连接外部 IPv4 骨干网的接口 ---
Router(config)#interface GigabitEthernet0/1   // 进入接口 Gig0/1 (连接骨干网)
Router(config-if)#ip address 10.0.0.1 255.255.255.252 // 配置 IPv4 地址
Router(config-if)#no shutdown                 // 开启该接口
Router(config-if)#exit                        // 退出到全局配置模式

(3)骨干路由器(Router1)基础接口配置

Router1模拟纯IPv4骨干网络环境,负责IPv4数据报的透明传输,仅需配置IPv4接口即可。

复制代码
Router>enable                                 // 从用户执行模式进入特权执行模式
Router#configure terminal                     // 从特权执行模式进入全局配置模式

! --- 配置连接 路由器0 (左侧) 的接口 ---
Router(config)#interface GigabitEthernet0/0   // 从全局配置模式进入接口 Gig0/0 的配置模式
Router(config-if)#ip address 10.0.0.2 255.255.255.252 // 配置 IPv4 地址,与路由器0的Gig0/1在同一网段
Router(config-if)#no shutdown                 // 开启该接口,使其物理状态变为 UP
Router(config-if)#exit                        // 退出接口配置模式,返回到全局配置模式

! --- 配置连接 路由器2 (右侧) 的接口 ---
Router(config)#interface GigabitEthernet0/1   // 进入接口 Gig0/1 的配置模式
Router(config-if)#ip address 20.0.0.1 255.255.255.252 // 配置 IPv4 地址,准备与路由器2连接
Router(config-if)#no shutdown                 // 开启该接口,使其物理状态变为 UP
Router(config-if)#exit                        // 退出到全局配置模式

(4)边界路由器(Router2)基础接口配置

Router2的功能与Router0对称,连接右侧IPv6网络与IPv4骨干网。

复制代码
Router>enable                                 // 从用户执行模式进入特权执行模式
Router#configure terminal                     // 从特权执行模式进入全局配置模式
Router(config)#ipv6 unicast-routing           // 【关键】全局开启 IPv6 单播路由转发功能 (边界路由器必须开启)

! --- 1. 配置连接内部 IPv6 网络的接口 (连接 PC1) ---
Router(config)#interface GigabitEthernet0/1   // 进入接口 Gig0/1 的配置模式 (注意看拓扑图,R2连接PC的是Gig0/1)
Router(config-if)#ipv6 address 2002::16/64    // 给该接口配置静态 IPv6 地址 (作为内网 PC1 的默认网关)
Router(config-if)#ipv6 enable                 // 使能接口的 IPv6 功能 (激活后会自动生成链路本地地址)
Router(config-if)#no shutdown                 // 开启该接口,使其物理状态变为 UP
Router(config-if)#exit                        // 退出到全局配置模式

! --- 2. 配置连接外部 IPv4 骨干网的接口 (连接 Router1) ---
Router(config)#interface GigabitEthernet0/0   // 进入接口 Gig0/0 的配置模式
Router(config-if)#ip address 20.0.0.2 255.255.255.252 // 配置 IPv4 地址,接入骨干网
Router(config-if)#no shutdown                 // 开启该接口,使其物理状态变为 UP
Router(config-if)#exit                        // 退出到全局配置模式

3.2 路由器IPv4静态路由配置

为保障隧道两端的物理接口在 IPv4 骨干网中相互可达,需在两侧边界路由器添加底层静态路由。 (注:由于骨干路由器 Router1 直接物理连接 10.0.0.0/30 与 20.0.0.0/30 两个网段,其系统路由表中已自动生成直连路由(Connected Routes),故无需额外配置 IPv4 静态路由即可实现双向转发。)

(1)路由器Router0的IPv4静态路由配置

复制代码
Router>enable                                 // 从用户执行模式进入特权执行模式
Router#configure terminal                     // 从特权执行模式进入全局配置模式

! --- 配置底层 IPv4 静态路由 ---
! 目的网络: 20.0.0.0,子网掩码: 255.255.255.252 (/30),下一跳地址: 10.0.0.2 (对端路由器1的接口)
! 作用: 告诉路由器0,想要到达对端边界路由器2的外网接口,需要把数据包交给相邻的路由器1转发
Router(config)#ip route 20.0.0.0 255.255.255.252 10.0.0.2

(2)路由器Router2的IPv4静态路由配置

复制代码
Router>enable                                 // 从用户执行模式进入特权执行模式
Router#configure terminal                     // 从特权执行模式进入全局配置模式

! --- 配置底层 IPv4 静态路由 ---
! 目的网络: 10.0.0.0,子网掩码: 255.255.255.252 (/30),下一跳地址: 20.0.0.1 (对端路由器1的接口)
! 作用: 告诉路由器2,想要到达对端边界路由器0的外网接口,需要把数据包交给相邻的路由器1转发
Router(config)#ip route 10.0.0.0 255.255.255.252 20.0.0.1

3.3 网络协议监视与连通性验证

(1)监视网络协议选择

进入模拟器的仿真模式(Simulation),在事件列表过滤器中进行设置,仅选择监视网际控制报文协议(ICMPv6)的相关事件,以排除其他协议报文对实验现象的干扰。

(2)各网段局部连通性测试及目的分析

在实时模式(Realtime)下,分别执行以下局部连通性测试:

  • 在PC0的命令行使用Ping命令,ping 2001::16,测试PC0与Router0之间的连通性。
  • 在Router0的命令行使用Ping命令,ping 20.0.0.2,测试Router0与Router2(骨干网两端)之间的连通性。
  • 在Router2的命令行使用Ping命令,ping 2002::1,测试Router2与PC1之间的连通性。

执行上述分段测试的主要目的包含以下五点: 第一,测试整体网络拓扑是否构建成功且物理链路正常; 第二,测试终端计算机的IPv6地址与默认网关是否配置正确; 第三,测试各路由器相关接口的IP地址和子网掩码是否配置正确; 第四,测试为路由器Router0和Router2各自添加的IPv4静态路由条目是否生效并准确引导数据流; 第五,促使Router0与Router1、Router1与Router2通过测试流量预先获取到对方相关接口的MAC地址,完善地址解析协议(ARP)缓存。此举可避免在后续实验观察环节中,因ARP广播寻址过程产生多余报文,从而影响对隧道传输现象的直观观察。

注:若上述局部测试失败,需立即检查物理拓扑、节点IP参数、静态路由条目以及接口的UP/DOWN状态。

(3)跨网段全局连通性测试与冲突现象分析

在确认上述分段测试均通过后,在PC0的命令行中使用Ping命令,ping 2002::1,测试PC0与远端主机PC1之间的连通性。

  • 预期测试结果: 无法通信(提示目标主机不可达)。

  • 理论现象分析: 这是由于PC0与PC1各自处于独立的IPv6网络中,而连接这两个IPv6网络的核心链路层使用的是纯IPv4网络。根据网络体系结构协议规范,IPv6数据报无法直接通过IPv4网络进行路由与传输。因此,该现象符合理论预期,也论证了在IPv4网络中建立传输IPv6数据报的隧道(Tunnel)的必要性与前提条件。

四、 IPv6过渡隧道建立与引流路由配置

在确认底层IPv4骨干网络路由可达后,本阶段将在两端边界路由器(Router0与Router2)之间构建逻辑上的IPv6 over IPv4隧道,并通过配置IPv6静态路由,将孤岛间的IPv6数据流精确引入该隧道进行封装与传输。

4.1 虚拟隧道接口(Tunnel)的创建与参数配置

在IPv4网络中建立传输IPv6数据报的隧道,实质上是在边界路由器上实例化一个逻辑接口(Tunnel Interface)。该接口必须指定物理封装的源端(本地IPv4出接口)与目的端(对端路由器IPv4接口),并定义其封装模式为IPv6IP(即IPv6 over IPv4手动隧道)。此外,为了建立隧道两端的IPv6邻接关系,需为隧道接口分配一个独立的IPv6网段(本实验规划为 2003::/64)。

(1)边界路由器Router0的隧道配置

复制代码
Router>enable
Router#configure terminal                    // 从特权执行模式进入全局配置模式
Router(config)#interface tunnel 1            // 建立接口号为 1 的隧道 (进入隧道配置模式)
Router(config-if)#tunnel source GigabitEthernet0/1 // 指定隧道源端为本地的 IPv4 物理出口
Router(config-if)#ipv6 address 2003::1/64    // 为隧道接口配置专属的 IPv6 地址
Router(config-if)#tunnel destination 20.0.0.2      // 指定隧道目的端为对端 R2 的 IPv4 地址
Router(config-if)#tunnel mode ipv6ip         // 指定隧道封装模式为 IPv6-over-IPv4 手动隧道
Router(config-if)#no shutdown                 // 显式开启隧道接口
Router(config-if)#exit                       // 退出接口配置模式回到全局配置模式

(2)边界路由器Router2的隧道配置

配置逻辑与Router0对称。需严谨核实本地的源端物理接口名称,避免与内网接口混淆。

复制代码
Router>enable
Router#configure terminal                    // 从特权执行模式进入全局配置模式
Router(config)#interface tunnel 1            // 建立接口号为 1 的隧道 (进入隧道配置模式)
Router(config-if)#tunnel source GigabitEthernet0/0 // 【修正】指定隧道源端为本地的 IPv4 物理出口 (R2是Gig0/0)
Router(config-if)#ipv6 address 2003::2/64    // 为隧道接口配置专属的 IPv6 地址 (与R0的隧道IP在同一网段)
Router(config-if)#tunnel destination 10.0.0.1      // 指定隧道目的端为对端 R0 的 IPv4 地址
Router(config-if)#tunnel mode ipv6ip         // 指定隧道封装模式为 IPv6-over-IPv4 手动隧道
Router(config-if)#no shutdown                 // 显式开启隧道接口
Router(config-if)#exit                       // 退出接口配置模式回到全局配置模式

4.2 IPv6静态引流路由的配置

隧道接口建立完毕后,路由器并未自动知晓应当将哪些数据报送入该隧道。因此,必须在全局路由表中显式地添加IPv6静态路由条目(即引流路由),指示路由器将发往对端IPv6孤岛的数据报转交至隧道对端的IPv6接口。

(1)路由器Router0的IPv6静态路由配置

复制代码
Router>enable
Router#configure terminal                    // 从特权模式进入全局配置模式

! --- 配置 IPv6 静态路由 (引流到隧道) ---
! 告诉 Router0:凡是去往右侧 PC1 网段 (2002::/64) 的数据包,
! 请统统交给隧道对端的接口 IP (2003::2)
Router(config)#ipv6 route 2002::/64 2003::2
Router(config)#exit

(2)路由器Router2的IPv6静态路由配置

复制代码
Router>enable
Router#configure terminal                    // 从特权模式进入全局配置模式

! --- 配置 IPv6 静态路由 (引流到隧道) ---
! 【修正】告诉 Router2:凡是去往左侧 PC0 网段 (2001::/64) 的数据包,
! 请统统交给隧道对端的接口 IP (2003::1)
Router(config)#ipv6 route 2001::/64 2003::1
Router(config)#exit

4.3 全局连通性验证与故障排查机制

(1)端到端连通性测试操作

在Packet Tracer实时模式(Realtime)下,进入左侧终端计算机PC0的命令行界面(Command Prompt),使用Ping命令测试其与右侧目标主机PC1的连通性:

复制代码
ping 2002::1

(2)连通性测试核心目的分析

此步骤为全网连通性的终极验证,其主要目的包含以下三个层面: 第一,测试各终端计算机(PC0与PC1)的IPv6默认网关配置是否准确无误; 第二,测试两侧边界路由器(Router0与Router2)之间的逻辑隧道(Tunnel 1)各项源、目的及模式参数是否配置正确且状态已激活; 第三,测试给边界路由器Router0和Router2各自添加的跨网段IPv6静态路由条目是否正确生效,并成功完成数据包的隧道引流。

(3)连通性故障排查指南

若上述端到端Ping测试结果为请求超时(Request timed out)或目标主机不可达(Destination host unreachable),需立即按照以下层级进行溯源排查:

  • 第一层(终端侧): 检查PC0和PC1各自的IPv6地址及其默认网关的IP地址配置是否正确。

  • 第二层(隧道侧): 检查边界路由器Router0与Router2之间的隧道接口配置,重点核对 tunnel source 是否指向了正确的本地外网物理接口,以及 tunnel destination 是否指向了正确的对端外网IPv4地址。

  • 第三层(路由侧): 核对为Router0和Router2各自添加的IPv6静态引流路由条目,检查目标IPv6网络前缀与下一跳隧道IPv6地址是否配置反向或存在拼写错误。

五、 IPv6数据报隧道传输过程的深层微观剖析(PDU验证)

本部分依托网络仿真平台的仿真模式(Simulation Mode),通过对单步传输过程中各节点数据协议单元(PDU)的逐层拆解,严谨验证IPv6 over IPv4隧道技术的底层运作机制。

5.1 阶段一:源端节点PC0产生原始IPv6数据报(仿真时间 t = 0.000s)

在仿真环境中,于终端PC0的命令行接口发起寻址测试(ping 2002::1)。此时,系统网络栈开始构建首个ICMPv6报文,其在本地主机的处理逻辑与初始封装状态如下:

(1)OSI模型处理与路由决策逻辑

查阅PC0设备的OSI模型状态面板,可清晰追踪操作系统底层的寻址与转发决策过程:

  • 进程触发机制: 系统的Ping进程响应用户指令,于应用层构建一条ICMP回显请求消息(Echo Request),并将其向下层协议栈层层递交。

  • 网络层寻址判定: 在网络层(Layer 3),系统提取报文的目的IPv6地址(2002::1),并将其与本机的IPv6地址(2001::1)及网络前缀(/64)进行逻辑与运算。运算结果表明目的主机不属于同一局域网(Not in the same subnet)。

  • 下一跳(Next Hop)指派: 鉴于跨网段通信的需求,系统查询本地路由配置,依据预设的参数,将数据报转发至默认网关(2001::16,即边界路由器Router0的内网接口),以此作为物理链路层的下一跳目标。

(2)出站PDU(Outbound PDU)报文结构深层拆解

进入出站PDU详细信息面板,可严谨论证原始IPv6数据报的初始二进制/十六进制结构:

  • 数据链路层(Ethernet II 帧头):

    • 帧头中包含源MAC地址与网关的MAC地址。

    • 核心字段特征: TYPE: 0x86dd。在以太网协议标准规范(IEEE 802.3)中,十六进制数值0x86dd被严格定义为IPv6协议的类型标识码。此字段向底层物理链路明确宣称:该以太网帧的数据载荷部分为纯IPv6数据报。

  • 网络层(IPv6 报头):

    • 版本字段(VER): 值为6,明确标示网络层协议版本为IPv6。

    • 下一报头字段(NEXT): 值为0x3a(十进制58),此标识指明跟在IPv6报头后面的上层协议为ICMPv6协议。

    • 跳数限制(HOP LIMIT): 初始值为128。根据多数操作系统的TCP/IP协议栈标准,终端设备新生成的IPv6单播数据报,其跳数限制默认赋予128,该值将在此后的路由跳转中逐跳递减。

    • 寻址字段: 源IP地址(SRC IP)精确赋值为2001::1,目的IP地址(DST IP)精确赋值为2002::1

阶段性结论: 在仿真时间 0.000s 处,PC0构建并发出的是一个完全标准的、未经任何隧道协议修饰的原始IPv6单播数据报。该报文目前正通过局域网物理链路,被发送至首跳网关(Router0)。

5.2 阶段二:边界路由器Router0的协议封装与隧道发车(仿真时间 t = 0.001s)

在仿真时间 0.001s 时,由终端PC0发出的原始IPv6数据报抵达了左侧边界路由器Router0的内网接口(GigabitEthernet0/0)。Router0作为隧道的起始端点,正式触发IPv6 over IPv4的协议封装机制。

(1)OSI模型处理逻辑:隧道引流与封装决策

在Router0设备的"OSI模型"选项卡中,通过对比左侧(入站处理,In Layers)与右侧(出站处理,Out Layers),可精确梳理路由器的内部逻辑机制:

  • 入站状态(第3层内层): 路由器接收到一个标准的IPv6报头(源地址为2001::1,目的地址为2002::1)。

  • 底层路由决策: 查阅该界面底部的事件处理文本框(第3点描述),系统提示:"设备在路由表中查找目的IP地址"。此时,Router0检索全局IPv6路由表,匹配到前期配置的静态引流路由(ipv6 route 2002::/64 2003::2),判定该数据报的出接口为逻辑隧道接口 Tunnel 1

  • 出站状态的结构突变(第3层外层): 经由Tunnel 1接口处理后,右侧出站的第3层结构发生了本质改变:系统为其强制附加了一层外部IP报头(IPv4),其外部源地址被重写为Router0的外网出接口地址(10.0.0.1),外部目的地址被重写为对端隧道终点地址(20.0.0.2),而原始的IPv6报头被完全嵌套于该IPv4报头内部。

(2)入站PDU(Inbound PDU)微观解析:接收原始IPv6报文

点击"入站PDU详细信息"选项卡,观察数据报到达Router0时的初始状态。这是数据包跨越第一段物理链路后的呈现:

  • A. 定位数据链路层(Ethernet II): 查验 TYPE 字段,其值为 0x86dd,系统据此确认接收到的物理帧承载的是纯正的IPv6数据报。

  • B. 定位网络层(IPv6数据块): 查验 HOP LIMIT 字段为 128,源地址 SRC IP2001::1,目的地址 DST IP2002::1。这表明报文在进入Router0处理核心之前,尚为未受任何修饰的原始状态。

(3)出站PDU(Outbound PDU)微观重构:隧道封装的微观实证

切换至"出站PDU详细信息"选项卡,由上至下逐层核对封装后的报文结构。这是验证隧道技术的最核心环节:

  • A. 链路层特征重写(伪装IPv4帧): 定位至顶部的"Ethernet II"数据块。TYPE 字段已由原先的 0x86dd 变更为 0x0800。这表明Router0已将该数据包伪装成了标准的IPv4以太网帧,以确保其能够顺利接入纯IPv4的骨干网络。

  • B. 新增外部网络层(IPv4封装报头): 定位至位于中间层级的"IP"数据块。

    • 源与目的字段: SRC IP 确认为 10.0.0.1DST IP 确认为 20.0.0.2。此数据完美印证了教材中"源和目的地址分别为隧道两端物理接口的IPv4地址"的理论。

    • 核心隧道标识: 查验该IP块内的 PRO(Protocol,协议)字段。其值明确显示为 0x29 (十六进制),转换为十进制即为 41

    为什么协议号是 41? 根据IETF规范,协议号41是IPv6封装(IPv6 Encapsulation)的标准标识。它是指导后续的对端边界路由器(Router2)如何识别并对其进行解封装的绝对依据。

  • C. 内部网络层(原始IPv6载荷的上位与衰减): 定位至位于最底层的"IPv6"数据块。

    • 地址完整性: 原始的 SRC IP: 2001::1DST IP: 2002::1 完好无损地被包裹于内部,未发生任何篡改。

    • 路由跳数处理: 查验内部的 HOP LIMIT 字段,其值由入站时的 128 变更为 127

    为什么内部 Hop Limit 变成了 127? 该细节严谨地证明了Router0在执行隧道"套马甲"封装动作之前,已先行履行了作为三层路由器的标准职责,对原始IPv6数据报进行了一次合法的跨网段路由转发,因此跳数必须依法递减1。

本阶段总结: 经由上述入站与出站参数的精准比对,证实了在仿真时间 0.001s 处,Router0已成功依托 0x29 协议号,将IPv6数据报无损嵌套于IPv4报文体系内。该"套娃"格式的数据包现已具备在IPv4骨干网络中路由发车的条件。

5.3 阶段三:骨干路由器Router1的透明传输与逐跳转发(仿真时间 t = 0.002s)

在仿真时间 0.002s 时,穿着IPv4"外衣"的封装数据报顺着物理链路抵达了位于骨干网核心的路由器Router1。Router1是一台未开启IPv6路由进程的纯IPv4设备,其对该数据报的处理机制,构成了隧道技术中"骨干网透明传输(Transparent Transmission)"理论的最佳实证。

(1)OSI模型处理逻辑:基于外层特征的硬件转发

在Router1的"OSI模型"选项卡中,查阅底层事件处理记录,可剖析该骨干节点的转发逻辑:

  • 外层寻址依赖与内部屏蔽: 界面底部事件记录提示:"设备在CEF表中查找目的IP地址"。Router1由于缺乏IPv6协议栈,完全"视而不见"内部嵌套的IPv6载荷。它仅提取最外层的IPv4报头,读取目的地址(20.0.0.2),并依据路由表决定将其从Gig0/1接口转出。

    什么是 CEF? CEF(思科特快交换)是企业级路由器中一种基于硬件的高效转发技术。它相当于给路由器建立了一个"直达快速通道"(FIB表),让路由器看一眼目的IP就能瞬间把包扔出去,极大地提高了骨干网的转发效率。

(2)入站PDU(Inbound PDU)微观解析:接收封装报文

点击"入站PDU详细信息"选项卡,观察数据报到达Router1时的初始状态:

  • A. 外部网络层(IPv4报头状态): 查验中间的"IP"数据块。SRC IP10.0.0.1DST IP20.0.0.2。此时的防环路生存时间字段 TTL(Time To Live)值为 255 。同时,隧道核心暗号 PRO: 0x29 清晰可见。

  • B. 内部网络层(IPv6载荷状态): 查验最底部的"IPv6"数据块。内部嵌套的跳数限制字段 HOP LIMIT 在进入Router1时,记录值为 127(这是上一跳Router0处理后留下的合法残值)。

(3)出站PDU(Outbound PDU)微观重构:透明转发的铁证

点击"出站PDU详细信息"选项卡。Router1在转发前对报文进行了重构,通过对比入站数据,我们能发现极其精妙的"变与不变":

  • 变化点 1:链路层MAC地址的彻底更替 在顶部的"Ethernet II"数据块中,入站时的源与目的MAC地址被彻底丢弃,替换为了全新的源MAC(Router1出接口)与目的MAC(下一跳Router2接口)。

  • 这严谨地证实了路由器的"逐跳转发(Hop-by-Hop)"特性------只要跨网段,就必须撕掉旧的以太网帧头,重新贴上新的MAC地址帧头。

  • 变化点 2:外部IPv4报头的三层衰减 在中间的"IP"数据块中,外部IPv4报头的 TTL 字段由入站时的 255 依法递减为 254。这证明了Router1对外部的IPv4报文合法履行了三层路由的处理职责。

  • 绝对不变的核心(透明性铁证):内部IPv6载荷 将视线移至最底部的"IPv6"数据块。隧道暗号 PRO: 0x29 被Router1忠实地保留了下来。 最为关键的微观证据: 请高度聚焦内部IPv6报头的 HOP LIMIT 字段。在出站PDU中,该字段的值依然定格为 127,并未随同外部的TTL进行同步衰减!

    为什么内部 Hop Limit 没变,这就是透明传输? 因为Router1是个纯IPv4设备,它根本不认识也不理会里面的IPv6数据。内部跳数(127)未发生衰减这一精确的物理现象,构成了确凿的理论证据------证明广袤的纯IPv4骨干网络(Router1)既没有解析权限,也没有触碰内部封装的数据。对于里面的IPv6报文而言,经过这个IPv4骨干节点等同于在一条透明的"物理管道"中穿梭,它甚至不知道自己经过了Router1,这就是"隧道透明传输"的终极奥义!

5.4 阶段四:边界路由器Router2的协议解封装(仿真时间 t = 0.003s)

在仿真时间 0.003s 时,历经IPv4骨干网传输的数据报抵达了隧道的终点------右侧边界路由器Router2。Router2作为双栈设备,将在此刻执行隧道技术的最核心动作:解封装(Decapsulation),让内部的IPv6数据报"重见天日"。

(1)OSI模型处理逻辑:识破暗号与剥离伪装

在Router2的"OSI模型"选项卡中,查阅底部事件处理记录,这里的文字完美诠释了解封装的底层逻辑:

  • 识别隧道暗号: 记录显示:"IP报头中的协议字段为41。" Router2读取到了IPv4报头中的 PRO: 0x29(十进制41),系统瞬间判定这是一个隧道封装包。

  • 执行解封装(脱马甲): 记录明确指出:"该数据包的IPv4报头被删除并被发送至端口Tunnel1。" 这是一个决定性的动作!Router2像剥洋葱一样,将最外层的IPv4报头直接抛弃。

  • 内网路由转发: 剥除外衣后,Router2提取出内部的IPv6目的地址(2002::1),通过查找IPv6路由表,决定将其从内网物理接口(GigabitEthernet0/1)发送给下游的PC1。

(2)入站PDU(Inbound PDU)微观解析:到达隧道终点

点击"入站PDU详细信息"选项卡,查看数据包"脱衣前"的最后状态:

  • 外部网络层: 此时它依然穿着IPv4的马甲。SRC IP10.0.0.1(Router0),DST IP20.0.0.2(本机)。核心协议号 PRO: 0x29 完好无损。

  • 内部网络层: 最底部的IPv6报头被包裹其中。注意此时的跳数限制 HOP LIMIT,记录值为 127(这正是骨干网透明传输、未予衰减的证明)。

(3)出站PDU(Outbound PDU)微观重构:纯IPv6报文重现

点击"出站PDU详细信息"选项卡,通过与入站数据的强烈对比,向学生展示解封装的物理事实:

  • A. 外部IPv4结构的"灰飞烟灭": 在出站数据中,原本包含源10.0.0.1、目的20.0.0.2及PRO: 0x29的那一整块"IP"数据模块彻底消失了

  • B. 链路层类型的"拨乱反正": 顶部的"Ethernet II"帧头中,TYPE 字段由入站时的 0x0800(IPv4)重新变回了 0x86dd(IPv6)。因为外衣已脱,Router2接下来是在纯IPv6的局域网中向PC1发包。

  • C. 内部IPv6载荷的上位与衰减(核心论证点): 原本藏在最底层的IPv6报头,现在成为了出站PDU中唯一的网络层。 核心现象: 请查验此时的 HOP LIMIT 字段,它由入站时的 127 递减为了 126

    为什么在这里减成了 126? Router2剥掉IPv4外壳后,面对的是一个标准的IPv6数据报。Router2此时是以"IPv6网关路由器"的身份,将该数据报路由转发给下游的局域网主机PC1。根据三层路由规范,路由器在转发数据时必须将跳数限制(Hop Limit)减去1。这就是126的由来。

5.5 阶段五:目标节点PC1的接收与回送应答(仿真时间 t = 0.004s)

在仿真时间 0.004s 时,经过Router2解封装后的纯IPv6数据报,终于抵达了最终目的地------目标主机PC1的网卡。至此,单向的数据传输已完成,接下来PC1将执行标准的ICMPv6响应流程,生成回送应答报文(Ping的回复)。

(1)OSI模型处理逻辑:身份确认与角色反转

请在设备PC1的PDU信息界面中,点击 "OSI模型" 选项卡。通过阅读下方的事件文本并对比左右两侧的网络层(第3层),我们可以直观地看到操作系统的底层处理逻辑:

  • 入站核对(身份确认): 查阅下方事件记录第1点:"该数据包的目的IP地址与设备的IP地址...相匹配。" PC1的网络层提取出报文的目的IP(2002::1),发现这正是自己的网卡地址,于是合法接收该数据。

  • 识别意图(收到请求): 事件记录第3点提示:"ICMP进程接收到一条回应请求消息。" PC1的系统明白了,这是来自对端主机(PC0)的一次网络连通性探测(Echo Request)。

  • 出站重构(角色反转): 对比左侧(入站)和右侧(出站)的第3层信息:

    • 入站时,源IP是 2001::1(PC0),消息类型是 128(代表请求)。

    • 出站时,身份发生了彻底反转!源IP变成了 2002::1(PC1本机),目的IP变成了 2001::1(PC0)。更关键的是,消息类型变为了 129(代表应答)。

(2)入站PDU(Inbound PDU)微观解析:接收探测请求

点击 "入站PDU详细信息" 选项卡,查看PC1"刚刚收到信"时的报文状态:

  • A. 定位最底部的"ICMPv6"数据块(报文类型确认): 查验 TYPE 字段,其值为 0x80(转换为十进制即为128)。

    在ICMPv6标准中,类型128代表"回送请求报文(Echo Request)"。这说明PC1确实收到了一次Ping探测。

  • B. 定位倒数第二个"IPv6"数据块(路由跳数核验): 此时的 HOP LIMIT(跳数限制)字段显示为 126

    为什么刚好是 126? 这正是隧道技术成功运作的铁证!数据包从PC0发出时是128;经过边界Router0转发时减1(变127);中间的骨干Router1未触碰载荷不减;最后经过边界Router2转发时再减1,最终到达PC1时刚好是126。

(3)出站PDU(Outbound PDU)微观重构:生成回送应答

点击 "出站PDU详细信息" 选项卡,查看PC1"写好回信准备寄出"时的报文状态:

  • A. 定位"ICMPv6"数据块(报文性质突变): 查验 TYPE 字段,其值已由入站时的 0x80 变更为 0x81(十进制的129)。

    类型129代表"回送应答报文(Echo Reply)"。日常操作中,我们在命令行看到的Ping成功提示,其底层本质就是成功收到了这个Type 129的报文。

  • B. 定位"IPv6"数据块(寻址反转与跳数新生):

    • 地址对调: 此时的寄件人 SRC IP 变成了 2002::1(PC1本机),收件人 DST IP 变成了 2001::1(远端的PC0)。

    • 跳数新生: 最神奇的现象出现了------HOP LIMIT 字段奇迹般地变回了 128

    为什么又变回了 128? 因为PC1并不是把收到的旧包原路扔回去,而是全新生成了一个独立的回应数据包。对于PC端的操作系统而言,任何新产生的IPv6数据报,其跳数限制的默认初始值就是满血的128。

本阶段总结: 至此,PC1已完美执行了终点站的接收与响应机制。在接下来的仿真时间里,这个满血新生(Hop Limit: 128)的应答包将踏上归途:交给Router2穿上IPv4马甲 -> 被Router1透明传输 -> 交给Router0脱下马甲 -> 最终送达PC0。届时,PC0的命令行界面即可输出标志实验圆满成功的 Reply from 2002::1... 提示信息。

相关推荐
c++逐梦人8 小时前
五种IO模型与⾮阻塞IO
开发语言·网络
冰冰的米咖8 小时前
交换与路由技术整理与总结(持续更新版)
网络·网络协议·智能路由器
Sagittarius_A*8 小时前
H3CSE 高性能园区网:Smart Link 与 Monitor Link 技术详解
网络·计算机网络·h3cse
Ether IC Verifier8 小时前
TCP/IP协议握手原理详解——结合以太网连接过程
服务器·网络·数据库·网络协议·tcp/ip
宋浮檀s9 小时前
DVWA通关教程1
网络·安全·web安全
行走的陀螺仪9 小时前
Stripe 支付接入完整指南:从零到一,通俗易懂(2025最新版·含 Checkout Sessions + Payment Element 双方案)
网络·stripe
U盘失踪了9 小时前
【笔记】pycharm 安装Jupyter失败
笔记·python
隔窗听雨眠9 小时前
AI开发者的网络卡点:Anthropic连接超时实战避坑
网络·人工智能
星恒讯工业路由器9 小时前
6G FR3深度解析
网络·无线通信·6g·通感一体化·fr3频谱