简介:这份基于eNSP的IPv6校园网网络规划与设计实验包,面向网络工程、计算机网络课程设计学生及准备网络技术认证的学习者,用于完整复现一个具备IPv6双栈接入、路由与安全策略的校园网综合实验。包内共48个文件,以cfg设备配置、efz/topo拓扑与设备文件、txt命令说明、jpg地址规划图及少量zip、xml为主,压缩包约633KB,便于按拓扑、配置、规划三条线索对照使用。现有5029人学习,说明其在同类实验资料中具有较高参考度。内容覆盖VLAN划分、单臂路由、VRRP6、OSPFv3、防火墙安全策略、DHCPv6、IPv6 over IPv4 GRE隧道以及IPv4/IPv6默认路由,并配有全程配置参考视频、可直接粘贴的命令文本和地址规划表。读者可据此搭建实验环境、对照验证协议协同与配置顺序,也能在排错时回溯关键命令和地址分配,对理解IPv6校园网从地址规划到路由联动的全过程有直接帮助,适合课程实验、毕业设计预研与认证实操练习。
1. 装 eNSP 跑 IPv6 校园网实验,卡住的往往不是命令行
做 eNSP 的 IPv6 校园网网络规划与设计实验,翻车点几乎从来不在ipv6 address那一行。真正让人抓狂的是装完那一刻:拓扑里拖三台 AR 路由器出来,点启动,图标转两分钟变红,右键看日志只有孤零零一个40。这套环境看着轻——一个模拟器加一个虚拟化底座——实际上它对宿主机版本、安装顺序、路径字符、系统虚拟化开关都挑得很。校园网这种三层拓扑,核心、汇聚、接入一摆就是七八台设备,只要底座没装稳,后面 OSPFv3 邻居、DHCPv6 地址池全是在沙子上盖楼。这篇写给我自己复盘,也给正准备开这套实验的人,从版本选型一路走到验收。
2. 环境准备与版本选型:VirtualBox、WinPcap、Wireshark 三件套怎么配
eNSP 本身只是个壳,AR 路由器的转发面跑在 VirtualBox 里的虚拟机上,抓包靠 WinPcap,解码靠 Wireshark。三个组件任何一个版本不对,表现出来都是“设备起不来”,你根本分不清是谁的锅。我一般的做法是先把版本钉死,再动手装。
2.1 宿主机与系统:先确认有没有别的虚拟化在抢地盘
宿主机建议 Windows 10 64 位,内存 8GB 起步,做三层校园网拓扑建议 16GB,因为核心加汇聚加接入全起来,VirtualBox 里同时跑四五台虚拟机的内存占用不小。CPU 要支持 VT-x 且在 BIOS 里打开,这一步很多人漏掉,装完设备一直转圈,其实就是硬件虚拟化没开。
比 BIOS 更隐蔽的是 Windows 自带的虚拟化功能。Hyper-V、WSL2、Windows 沙盒、内核隔离里的“内存完整性”,只要开着其中一个,VirtualBox 5.2 这个版本就拿不到 VT-x,AR 设备启动必失败。这也是为什么有人同一份安装包,在自己机器上怎么都起不来,换台机器一次成功。
关掉的方式,管理员权限打开命令提示符:
# 关闭 Hyper-V 启动项,执行后必须重启才生效 bcdedit /set hypervisorlaunchtype off # 查看当前状态,确认返回 Off bcdedit /enum | findstr hypervisorlaunchtype第一行是把 Hyper-V 的引导项关掉,注意它只影响下次开机,当前会话里 Hyper-V 仍在运行,所以必须重启。第二行是回读确认,如果输出里看不到hypervisorlaunchtype,说明本来就没开,可以跳过。内核隔离那一项在“Windows 安全中心 → 设备安全性 → 内核隔离详细信息”里手动关,同样要重启。
提示:如果机器上还装着别的虚拟化软件,它们的虚拟网卡会和 VirtualBox 的 Host-Only 网卡抢同一网段,后面会单独讲怎么处理。
2.2 三件套版本对照与安装顺序
这套组合我踩过的版本坑最多,直接给一张对照表,按这个来基本不会翻车:
| 组件 | 推荐版本 | 作用 | 版本不当的表现 |
|---|---|---|---|
| VirtualBox | 5.2.44 | 承载 AR/AC 虚拟机的运行底座 | 6.x 部分机型可跑,7.x 基本起不来设备 |
| WinPcap | 4.1.3 | eNSP 抓包依赖的底层驱动 | 只装 Npcap 时抓包按钮灰掉或报错 |
| Wireshark | 3.6.x | 报文解码 | 版本过高会自带 Npcap,覆盖 WinPcap |
| eNSP | 1.3.00.100 | 拓扑编辑与设备管理 | 与 VirtualBox 版本不匹配则设备注册失败 |
安装顺序不能乱,我的固定顺序是:VirtualBox → WinPcap → Wireshark → eNSP。原因是 eNSP 安装时会去探测 VirtualBox 的安装路径并写入自己的配置,如果先装 eNSP 再装 VirtualBox,就要手动去 eNSP 的“菜单 → 工具 → 注册设备”里重新指路径,多一道手续。
VirtualBox 安装时有两个选项要留意:一是安装路径,装在默认的C:\Program Files\Oracle\VirtualBox最省事;二是安装过程中会弹出网络接口警告,提示会短暂断开网络,点“是”即可,它要装 Host-Only 虚拟网卡。
WinPcap 4.1.3 在较新的 Windows 10 上偶尔会卡在“正在安装网络组件”不动。常见做法是右键安装包选“兼容性 → 以兼容模式运行这个程序 → Windows 7”,再以管理员身份运行,基本一次过。装完可以在设备管理器里看到一个新出现的网络适配器,名字带 npf 字样。
Wireshark 安装时注意最后一步,如果它问要不要安装 Npcap,选“否”。Npcap 和 WinPcap 抢同一套接口,装了以后 eNSP 反而抓不到包。Wireshark 只是用来双击打开 eNSP 抓下来的.pcap文件,不装它其实也能做实验,只是没法看报文细节。
2.3 装完先做的三项基础校验
三个组件装完,别急着开 eNSP 建拓扑,先花五分钟做三项校验,能省掉后面两小时的排查。
第一项,确认 VirtualBox 的命令行可用:
# 进入 VirtualBox 安装目录后执行,输出即版本号 VBoxManage --version # 列出当前所有虚拟网卡,确认 Host-Only 网卡存在 VBoxManage list hostonlyifs第一条命令返回5.2.44r139111这类字符串,说明装好了且环境变量没被别的版本覆盖。第二条命令会输出 Host-Only 网卡的名称、IP 地址,正常情况下应该看到一块 IP 为192.168.56.1、掩码255.255.255.0的网卡。eNSP 就是靠这块网卡和设备里的虚拟机通信的,这块网卡没有,设备注册一定失败。
第二项,检查这块网卡在 Windows 里是否被禁用。打开“网络连接”,找到名字类似“VirtualBox Host-Only Network”的适配器,如果是灰色,右键启用。同时把它的 IPv4 属性里那个“Internet 协议版本 6”也勾上,后面做 IPv6 实验时,宿主机侧抓包能看到邻居请求报文。
第三项,确认系统环境变量里没有指向旧版 VirtualBox 的路径。有人电脑上装过两三个版本,VBoxManage --version返回的版本和实际安装目录里的不一致,eNSP 启动设备时就会报版本不匹配。
注意:这个阶段不要去改 Host-Only 网卡的 IP 段。有人嫌 192.168.56.0/24 和公司内网冲突就改掉,结果 eNSP 里写死的那套配置对不上,设备全部起不来。真冲突的话,在 eNSP 的“菜单 → 工具 → 选项”里改虚拟网卡地址,别在 Windows 里改。
3. eNSP 安装与镜像导入:AR 路由器起不来之前先把这几步做完
三件套验证通过,才轮到装 eNSP。这一章的重点不是“下一步下一步”,而是几个安装时不做、后面必须返工的设置。特别是路径和镜像注册这两块,返工成本很高。
3.1 安装路径与权限:三个不能落中文目录的东西
这三样东西的路径里都不能有中文字符或空格:eNSP 安装目录、VirtualBox 安装目录、当前 Windows 用户名。前两个好理解,第三个最容易被忽略——VirtualBox 默认把虚拟机文件放在C:\Users\<用户名>\VirtualBox VMs下面,用户名一旦是中文,虚拟机的路径里就带中文,AR 设备加载镜像时直接失败,日志里依然只有那个40。
# 查看当前用户目录,确认路径不含中文和空格 echo %USERPROFILE% # 如果 eNSP 装在非默认盘,检查安装路径 dir /b "D:\eNSP"第一条输出如果是C:\Users\zhangsan这类纯英文,没问题;如果是中文,我的做法是不去改用户名(风险太大),而是新建一个纯英文的本地账户专门做网络实验,所有安装都在这个账户下完成。第二条只是确认安装目录存在且文件名正常,dir /b只列名字不列详情,方便肉眼扫一遍有没有乱码。
安装 eNSP 时右键安装包选“以管理员身份运行”,装完第一次启动也保持这个习惯。原因不是安装需要权限,而是 eNSP 启动 AR 设备时会调用 VirtualBox 的接口注册虚拟机,普通权限下某些系统盘路径写不进去,表现就是设备启动失败但不报具体原因。
安装完成后,eNSP 目录下会多出vboxserver这个文件夹,里面是各种设备镜像的模板。这个文件夹的位置很关键,后面注册设备指的就是它。
3.2 VirtualBox 与 eNSP 的桥接:注册设备这一步别跳过
eNSP 和 VirtualBox 之间靠“设备注册”建立映射。打开 eNSP,菜单栏“工具 → 注册设备”,会弹出一个小窗口,里面列出 AR_Base、AC_Base、AP_Base、FW_Base 等基础镜像,每个后面有个勾选框和路径。
操作方式:全选,点“注册”。如果路径显示为红色或者指向的目录不存在,点右侧的浏览按钮手动指到eNSP安装目录\vboxserver\AR_Base这类位置。注册成功的标志是这个窗口里不再有红字,并且 VirtualBox 主界面里能看到对应的虚拟机条目。
# 在 VirtualBox 目录下执行,确认 eNSP 已注册的虚拟设备 VBoxManage list vms正常情况下会列出类似AR_Base、AC_Base的条目。如果这条命令输出为空,说明注册根本没成功,后面无论怎么点启动都不会有反应。这时候回去检查 eNSP 的注册窗口路径,以及 VirtualBox 是否装在默认位置。
还有一个细节:eNSP 的“菜单 → 工具 → 选项 → 服务器”里有一个 VirtualBox 路径配置项,默认指向C:\Program Files\Oracle\VirtualBox。如果 VirtualBox 装在别的盘,这里必须手动改,否则 eNSP 找不到VBoxManage,设备启动一秒钟就失败,连转圈的过程都没有。
3.3 镜像导入与设备注册:AR 路由器镜像放哪儿
注册设备解决的是“eNSP 知道有哪些虚拟设备”,镜像导入解决的是“虚拟设备从哪儿加载系统”。AR 路由器的系统镜像一般是AR_Base.vdi加上一个vrpcfg.zip配置文件,前者是系统盘,后者是出厂配置。
导入方式不需要手动解压,eNSP 在首次启动某型号设备时会自动从vboxserver目录克隆一份模板。所以真正要做的是确认模板文件齐全:
# 列出 AR 模板目录内容,确认 vdi 与配置文件都在 dir "D:\eNSP\vboxserver\AR_Base"输出里应该有AR_Base.vdi和一个AR_Base.vbox,前者通常几百 MB 到 1GB 不等。少了.vdi就是安装包不完整,重新装一遍,别指望用别的版本补。
克隆出来的虚拟机默认存在C:\Users\<用户名>\VirtualBox VMs\AR_Base下面,每启动一台 AR 设备,eNSP 就在这儿复制一份。做五台设备的拓扑,这个目录会占好几个 GB,磁盘紧张的话提前清一下。
3.4 首次启动一台 AR 路由器:等到提示符出现
上面都做完,新建一个空白拓扑,拖一台 AR2220 进去,右键启动。这里要有心理预期:第一次启动要等一到三分钟,因为 eNSP 正在克隆虚拟机磁盘。设备图标变绿之后,双击进入命令行,先看到一串启动日志,最后出现尖括号提示符才算真正起来了。
# 进入设备后先确认系统版本和运行时间 display versiondisplay version输出的信息里,重点看两处:一是系统版本号,AR2220 一般是 VRP V5 系列;二是 uptime,如果是几十秒,说明刚起来,配置还没稳定,别急着敲命令。这一步的意义在于确认设备是“真起来了”而不是“界面显示绿了但系统没跑完”,后者做 IPv6 配置时会报各种莫名其妙的错。
把这一台设备关掉,右键“停止”,再启动一次。如果第二次能在三十秒内起来,说明虚拟化环境稳定;如果第二次比第一次还慢或者直接失败,八成是 VirtualBox 的虚拟机残留没清理,去 VirtualBox 主界面把 AR 相关的条目删掉再试。
提示:这个阶段建一个只含一台设备的空拓扑,另存为
base.ensp,以后每次做新实验复制一份改,比从零拖设备省事,也不容易漏配某个全局参数。
4. IPv6 校园网拓扑搭建:从设备选型到地址规划
环境稳了,才开始做真正的实验内容。校园网的三层结构在模拟器里有固定套路,选型不用太纠结,重点是 IPv6 地址规划要一次规划到位,中途改前缀会牵连 OSPFv3、DHCPv6 和静态路由三处配置。
4.1 三层拓扑怎么摆:核心、汇聚、接入各放什么
我做这套实验固定的设备清单是这样的:
| 层级 | 型号 | 数量 | 主要职责 |
|---|---|---|---|
| 出口 | AR2220 | 1 | 默认路由、NAT、连接模拟外网 |
| 核心 | S5700 | 1 | 三层转发、OSPFv3 骨干区域 |
| 汇聚 | S5700 | 2 | VLAN 网关、DHCPv6 服务端 |
| 接入 | S3700 | 2 | 二层接入、VLAN 划分 |
| 终端 | PC | 4 | 连通性验证 |
连接关系上,出口 AR 的 GE0/0/0 接核心 S5700 的 GE0/0/1,核心的 GE0/0/2 和 GE0/0/3 分别接两台汇聚的 GE0/0/1,每台汇聚再用 GE0/0/2 接一台接入交换机,接入下面挂 PC。这个结构看起来设备多,但在 eNSP 里全部起来大约占 4GB 内存,一般笔记本扛得住。
选 AR2220 而不是 AR1220 做出口,是因为 AR2220 的接口板和转发性能在模拟环境里更稳,做 IPv6 大包测试时不容易出现丢包。S5700 作为三层交换机支持 OSPFv3,做校园网核心够用。
4.2 IPv6 地址规划表:一次规划好,后面全引用这张表
地址规划我用2001:DB8:C0DE::/48作为整个校园网的总前缀。2001:DB8::/32是专门留给文档和示例的地址段,做实验用它不会和任何真实网络撞车,这一点比用2001::/16里随便挑一段要规范。
| 区域 | VLAN | 网段 | 网关地址 | 分配方式 |
|---|---|---|---|---|
| 出口-核心互联 | - | 2001:DB8:C0DE:0::/64 | ::1 / ::2 | 手工 |
| 教学楼 | 10 | 2001:DB8:C0DE:10::/64 | ::1 | DHCPv6 |
| 实验楼 | 20 | 2001:DB8:C0DE:20::/64 | ::1 | DHCPv6 |
| 宿舍区 | 30 | 2001:DB8:C0DE:30::/64 | ::1 | SLAAC |
| 服务器区 | 100 | 2001:DB8:C0DE:100::/64 | ::1 | 手工 |
| 设备管理 | - | 2001:DB8:C0DE:FFFF::X/128 | - | Loopback |
表里的X是设备编号,核心取 1,两台汇聚分别取 2 和 3。Loopback 地址在 OSPFv3 里当 router-id 用,也方便后面 ping 测试定位是哪台设备。
4.3 设备侧基础配置:全局 ipv6 与接口地址
VRP 里配 IPv6 有个固定顺序:先全局开,再接口开,最后配地址。顺序颠倒或者漏了全局那一步,接口下敲ipv6 address会直接报错。先看出口路由器的配置:
system-view sysname AR-Exit ipv6 # 全局开启 IPv6 转发,不做这步后面全白搭 interface GigabitEthernet0/0/0 ipv6 enable # 接口级开启,三层接口必须单独开 ipv6 address 2001:DB8:C0DE:0::1/64 interface GigabitEthernet0/0/1 ipv6 enable ipv6 address 2001:DB8:C0DE:100::1/64 interface LoopBack0 ipv6 enable ipv6 address 2001:DB8:C0DE:FFFF::1/128 quit ipv6 route-static :: 0 2001:DB8:C0DE:0::2 # 缺省路由指向核心,::/0 的写法是 :: 0逐行说明几个点。ipv6这条全局命令在较新的 VRP 版本里默认就是开的,但老版本必须手动敲,养成习惯总没错。接口下的ipv6 enable是三层接口必备,二层口不需要。地址的/64是前缀长度,校园网每个 VLAN 一个 /64 是标准做法,别想着省地址用 /120,SLAAC 强制要求 /64。
最后那条静态路由的::表示目的前缀全零,0是前缀长度,合起来就是缺省路由,下一跳写成核心设备的互联地址。这里容易写错成::/0,VRP 的静态路由命令不认斜杠写法,必须空格分开。
核心交换机的配置要多一步 VLAN 和三层接口:
system-view sysname CORE-S5700 vlan batch 10 20 30 100 ipv6 ospfv3 1 router-id 10.0.0.1 # 必须手工指定,否则选路不稳定 interface Vlanif100 ipv6 enable ipv6 address 2001:DB8:C0DE:100::2/64 ospfv3 1 area 0.0.0.0 # 接口加入 OSPFv3 骨干区域 interface GigabitEthernet0/0/1 port link-type access port default vlan 100 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 100router-id是 IPv4 格式的点分十进制,OSPFv3 虽然跑在 IPv6 上,但 router-id 依然是 32 位格式,必须手工指定,否则设备可能拿某个 Loopback 的 IPv4 地址凑数,拓扑一变就重新选举。area 0.0.0.0是骨干区域的标准写法,和 OSPFv2 一样。
4.4 路由打通:OSPFv3 与静态缺省的分工
整套拓扑的路由策略是:核心、汇聚、接入之间的 IPv6 网段全部走 OSPFv3,出口路由器只发一条静态缺省。这样做的原因是模拟器里出口外面没有真实网络,跑 OSPFv3 到出口反而多一层邻居关系要维护。
汇聚交换机上把用户网段宣告进 OSPFv3:
system-view sysname AGG-S5700-1 vlan batch 10 20 ipv6 ospfv3 1 router-id 10.0.0.2 interface Vlanif10 ipv6 enable ipv6 address 2001:DB8:C0DE:10::1/64 ospfv3 1 area 0.0.0.0 interface Vlanif20 ipv6 enable ipv6 address 2001:DB8:C0DE:20::1/64 ospfv3 1 area 0.0.0.0配置完在两台设备上分别看邻居状态:
display ospfv3 peer display ospfv3 routing第一条输出里State一列应该是Full,说明邻居关系建立完成。如果是Init或者干脆没有条目,往下看第 5 章。第二条看 OSPFv3 计算出来的路由,重点确认远端网段是否出现在表里,以及下一跳是不是预期的互联地址。
核心交换机需要把缺省路由引入 OSPFv3,让下面所有设备都知道出口在哪:
system-view ospfv3 1 default-route-advertise alwaysalways这个参数的意思是无论本地有没有缺省路由都下发,实验环境里出口的静态缺省写在 AR 上,核心本地其实没有,不加always就不会通告出去。生产环境里要谨慎用,可能造成环路,实验里图省事。
4.5 终端接入:DHCPv6 与 SLAAC 二选一
教学楼和实验楼用 DHCPv6 下发地址,宿舍区用 SLAAC,正好把两种方式都验证一遍。DHCPv6 的配置在汇聚交换机上:
system-view dhcp enable dhcpv6 pool POOL10 address prefix 2001:DB8:C0DE:10::/64 excluded-address 2001:DB8:C0DE:10::1 # 排除网关,避免冲突 dns-server 2001:DB8:C0DE:100::53 interface Vlanif10 undo ipv6 nd ra halt # 默认是抑制 RA 的,必须撤销 ipv6 nd autoconfig managed-address-flag # M 位置 1,告诉终端用 DHCPv6 拿地址 ipv6 nd autoconfig other-flag # O 位置 1,其他参数也走 DHCPv6 dhcpv6 server POOL10几个参数单独说。undo ipv6 nd ra halt最容易忘,VRP 接口默认不发 RA 报文,不撤销这个抑制,终端永远收不到路由通告,也就不会去请求 DHCPv6。managed-address-flag对应 RA 报文里的 M 位,置 1 表示地址通过 DHCPv6 获取;other-flag对应 O 位,置 1 表示 DNS 等其他参数也从 DHCPv6 拿。两个都置 1 就是典型的“有状态 DHCPv6”场景。
宿舍区用 SLAAC,配置简单得多,去掉地址池和 M/O 位,只留 RA 通告:
interface Vlanif30 ipv6 enable ipv6 address 2001:DB8:C0DE:30::1/64 undo ipv6 nd ra halt ipv6 nd ra prefix 2001:DB8:C0DE:30::/64 2592000 604800最后一行手工指定通告的前缀和生存时间,两个数字单位都是秒。2592000是 30 天,604800是 7 天,这是 RA 通告里 preferred lifetime 和 valid lifetime 的常见取值。不写这行,设备会用接口地址自动推导,一般在实验里也能用,但抓包时看到的参数不好对照。
5. 避坑与排查:eNSP 装完用不了的 5 个典型现象
这套环境我装过不下十次,出问题的位置高度集中。下面五条按“现象 → 原因 → 解决”记录,基本覆盖了九成以上的翻车。
5.1 现象:设备一直转圈,最后变红,日志只有一个 40
原因有三种可能,按概率从高到低排:VirtualBox 版本不匹配、系统虚拟化被 Hyper-V 之类抢占、用户名或安装路径含中文。日志里的40是 eNSP 的通用启动失败码,不区分具体原因,所以只能逐项排除。
解决顺序:先VBoxManage --version确认版本是 5.2.x,不是就卸了重装;再执行bcdedit /enum | findstr hypervisorlaunchtype确认返回Off,不是就关掉重启;最后echo %USERPROFILE%看用户名,中文就换账户。这三步做完还有问题,去 VirtualBox 主界面看有没有残留的AR_Base虚拟机处于“运行中”状态,有就强制关掉再删,eNSP 会重新克隆。
5.2 现象:拓扑里 ping 得通,但抓包按钮点了没反应
原因基本是 WinPcap 没装上,或者被 Npcap 覆盖了。检查方式:打开设备管理器,展开“网络适配器”,找名字里带npf的条目,没有就是没装。另一种情况是装了但被 Wireshark 安装时自带的 Npcap 顶替,两个驱动打架。
解决:卸载所有 Npcap 相关组件,重新装 WinPcap 4.1.3,安装时用兼容模式加管理员权限。装完重启一次,再开 eNSP 试。抓包时还要注意选对接口——右键设备选“开始抓包”,选的是设备面向的那条链路,选错链路抓到的是空报文。
5.3 现象:拓扑保存后重开,所有设备全红,点启动报虚拟机已存在
原因是上次关 eNSP 时没先停止设备,直接关窗口,VirtualBox 里留下了运行状态的虚拟机快照,下次启动时 eNSP 想克隆同名虚拟机,冲突了。
解决:正确顺序永远是先在拓扑里全选设备右键“停止”,等图标变灰,再关 eNSP。已经出问题的,打开 VirtualBox 主界面,把名字里带AR_Base、AC_Base的条目全部删除(选“删除所有文件”),然后回 eNSP 重新触发一次设备启动,它会重新克隆。
注意:删虚拟机之前确认 eNSP 已经关掉,否则文件被占用删不干净,残留的 vdi 会一直占着磁盘。
5.4 现象:DHCPv6 配好了,PC 就是拿不到 IPv6 地址
原因有四种:接口下忘了undo ipv6 nd ra halt、M/O 位没置、接入交换机 VLAN 没透传、地址池前缀和接口地址不在同一个 /64 里。
排查按从下往上的顺序:先在 PC 上ipconfig(eNSP 的 PC 支持这个命令)看有没有拿到fe80:开头的链路本地地址,没有说明二层不通,去接入交换机display vlan看 VLAN 和端口是不是都加了;有链路本地地址但没全局地址,在汇聚上display ipv6 interface Vlanif10看 RA 状态,重点确认RA halted是不是No;最后display dhcpv6 pool看地址池里有没有已分配条目,没有就是没收到 Solicit 报文,抓个包看 ICMPv6 的 RS/RA 交互卡在哪一步。
5.5 现象:OSPFv3 邻居卡在 Init 或者 ExStart
Init状态说明本端收到了对端的 Hello,但对端没收到本端的,通常是单向链路问题,检查互联的两个接口是不是都在同一个 /64 网段、ipv6 enable是不是两边都敲了。ExStart卡住一般是 MTU 不一致,IPv6 的 MTU 最小要求 1280,模拟器里默认 1500,如果某个接口手工改过 MTU 就会卡在这。
还有一种很隐蔽的:S5700 上配了ospfv3 1但漏了全局ipv6,接口下看着有地址,OSPFv3 进程也起来了,就是不建邻居。display ospfv3 interface能看到接口的 OSPFv3 状态,如果 Area 显示0.0.0.0但 State 是Down,回去补全局那条命令。
6. 装完怎么验证跑通:一次完整的 IPv6 连通性验收
设备全绿、配置全敲完,不代表实验就成了。我习惯按固定顺序做一遍验收,从链路层一路验到终端,任何一层断了都能立刻定位,不用来回猜。
验收顺序是:物理链路 → 接口 IPv6 状态 → OSPFv3 邻居 → 路由表 → 端到端连通 → 终端地址获取。前四步在设备上敲命令,后两步在 PC 上验证。
第一步在核心交换机上看接口和邻居:
# 确认所有三层接口的 IPv6 状态是 UP display ipv6 interface brief # 确认 OSPFv3 邻居全部 Full display ospfv3 peer # 确认远端网段都进了路由表 display ipv6 routing-tabledisplay ipv6 interface brief的输出里,每一行开头是接口名,第二列是物理状态,第三列是协议状态,两者都得是UP。第二列 UP 第三列 DOWN 的情况,十有八九是接口下漏了ipv6 enable。
第二步验证端到端,从核心 ping 各区域的网关:
# -c 指定次数,-s 指定报文大小,1400 是为了避开分片 ping ipv6 -c 4 -s 1400 2001:DB8:C0DE:10::1 ping ipv6 -c 4 -s 1400 2001:DB8:C0DE:30::1 ping ipv6 -c 4 -s 1400 2001:DB8:C0DE:100::53报文大小选 1400 是有讲究的:IPv6 头部 40 字节,加上 1400 正好 1440,小于常见的 1500 MTU,不会触发分片,能排除 MTU 问题带来的假阴性。如果小包通大包不通,就是链路 MTU 配错了。
第三步看终端实际拿到的地址。教学楼 PC 上执行ipconfig,应该看到2001:DB8:C0DE:10::开头的全局地址,前缀长度 64,默认网关是::1。宿舍区 PC 因为是 SLAAC,地址后 64 位是根据 MAC 算出来的 EUI-64 格式,中间会有一段ff:fe,这是正常现象,不是配错了。
第四步抓一次包做交叉验证。在汇聚交换机的 Vlanif10 上开始抓包,PC 上执行ping网关,然后在 Wireshark 里过滤:
icmpv6.type == 133 || icmpv6.type == 134 || icmpv6.type == 135 || icmpv6.type == 136这四个类型分别是路由器请求(133)、路由器通告(134)、邻居请求(135)、邻居应答(136)。能看到 135 和 136 成对出现,说明地址解析正常;能看到 134 报文且里面的 M 位是 1,说明 DHCPv6 的 RA 通告生效了。这些报文在 IPv6 里承担了 ARP 的角色,看不到它们,后面所有连通性都是空中楼阁。
整个验收跑一遍大概五分钟。从那以后我每次做完这套校园网实验,不管拓扑改了多少,收尾都强制走一遍这四步——因为最容易出问题的不是配置写错,而是某台设备没真正启动、某条链路没真正连上,而这两件事在拓扑图上看起来和正常一模一样。希望这套流程能帮你少走点弯路。
本文还有配套的精品资源,点击获取