
简介面向网络工程学生与IPv6组网爱好者这份基于eNSP的校园网IPv6规划与设计实验包覆盖了从拓扑设计到双栈路由部署的完整实践链路适合课程设计、毕业设计或竞赛备赛。压缩包共48个文件、633KB内含topo拓扑、cfg配置、命令txt、efz设备文件及地址规划jpg/xml等目录清晰便于按需取用。已有5025人学习下载。实验融合VLAN划分、单臂路由子接口、VRRP6冗余网关、OSPFv3动态路由、防火墙安全策略、DHCPv6地址分配和IPv6 over IPv4 GRE隧道技术并附配置参考视频与可执行命令脚本。对照视频和脚本可直观理解协议在真实拓扑中的协商过程快速定位难点掌握整网规划思路与逐条配置方法适合需要提升IPv6园区网综合部署与排错能力的进阶用户。1. 用eNSP复现IPv6校园网网络规划从拓扑到全业务验证的完整实验网络拓扑、校园网搭建、IPv6这三个词放在一起很多人第一反应是教材里那一堆前缀和报文格式而不是一套能跑通的实验。这个实验项目的价值在于它不是给你一张静态拓扑图而是把 IPv6 校园网从地址规划、VLAN 设计、路由协议选型到 DHCPv6 服务、流量过滤和终端连通性验证的完整链路用 eNSP 做成了可复现的工程。适合刚学完 IPv6 基础、想在模拟器里把校园网场景落地的学生也适合做课程设计或毕业设计时需要完整参考框架的人。只要你的机器跑得动 eNSP照着拓扑和配置一步步来就能得到一个逻辑完整、可以验证的 IPv6 校园网模型。2. IPv6地址规划与拓扑设计从前缀分配到底层编址的落地2.1 IPv6地址结构与校园网编址策略校园网用 IPv6第一件事不是敲命令而是把地址结构定下来。IPv6 地址长度是 128 位通常写成八组十六进制数但这只是表象。真正影响规划的是前缀长度和地址生成规则。校园网里常见的是全球单播地址2001:db8::/32 这类测试前缀以及链路本地地址fe80::/10。链路本地地址是接口自动生成的只要接口启用 IPv6 就会存在用于邻居发现和路由协议但不能被路由转发。编址策略上我习惯把校园网分成三层核心层、汇聚层、接入层。每层分配不同前缀而不是把所有设备塞进一个 /64 里。比如核心层互联地址用 2001:db8:1:0::/64汇聚层到核心层的互联用 2001:db8:1:1::/64接入层业务网段按 VLAN 细分。为什么这么分因为 IPv6 的安全性在很大程度上依赖网络分段终端直连一个巨大的 /64 会让基于前缀的路由控制和 ACL 失效排查问题也更费劲。实际规划时要明确几个参数前缀长度、子网数量、每个子网的用途。下面这张表是我在这个实验里用的规划样板可以直接套到自己的拓扑里。用途前缀前缀长度说明核心互联2001:db8:10:0::/64核心交换机之间、核心到汇聚汇聚上行2001:db8:10:1::/64汇聚交换机上连接口学生宿舍 VLAN2001:db8:20:1::/64无状态 DHCPv6 下发前缀办公区 VLAN2001:db8:20:2::/64状态 DHCPv6 有状态获取服务器区 VLAN2001:db8:30:1::/64固定静态地址对外发布管理地址2001:db8:255::/64设备 loopback 和管理接口这里有个细节不要把前缀长度设成 /56 甚至更短来偷懒。eNSP 里所有接口、路由、ACL 都是基于具体前缀的细分后你才能看到每个 VLAN 的独立路由表项。而且 IPv6 邻居发现是针对每个链路做 NS/NA 报文交互的链路范围越小邻居表越干净模拟器的性能压力也越小。2.2 全网拓扑与接口地址分配表这个实验的拓扑采用三层架构核心路由器连接两个汇聚交换机汇聚下挂三台接入交换机接入下挂若干 PC。eNSP 里我用的设备是通用 AR 路由器和交换机型号不涉及具体硬件所以拓扑可以灵活调整。规划时遵循一个原则每个接口的 IPv6 地址要有唯一且可记忆的规律比如核心与汇聚互联的高位地址统一用 2001:db8:10:0::/64核心侧用 x::1汇聚侧用 x::2。接口地址分配表是实验的灵魂没有它配置到一半就会乱。我整理了一份关键接口地址分配如下表设备接口IPv6 地址对端设备用途核心路由器GigabitEthernet0/0/02001:db8:10:0::1/64汇聚SW-A核心到汇聚A互联核心路由器GigabitEthernet0/0/12001:db8:10:0::2/64汇聚SW-B核心到汇聚B互联核心路由器Loopback02001:db8:255::1/128-管理地址、Router-ID汇聚SW-AGigabitEthernet0/0/02001:db8:10:0::3/64核心路由器汇聚A到核心汇聚SW-AVlanif1002001:db8:20:1::1/64接入交换机A学生宿舍VLAN网关汇聚SW-AVlanif2002001:db8:20:2::1/64接入交换机B办公区VLAN网关服务器-2001:db8:30:1::10服务器区VLAN网内DNS服务器分配的时候注意三点。第一接口地址里的主机位不要随意取我统一用十进制的小数字 1、2、3…这样在命令行里一眼能看出邻居关系。第二Loopback 地址分配成 /128它不用于路由转发只做 Router-ID 和后续管理。第三VLAN 接口地址要和 DHCPv6 地址池前缀一致否则终端拿到地址后无法把网关匹配上后面排错会很痛苦。配置完成后先做基检查在核心路由器上 ping 一下对端地址如果不通优先检查接口是否启用了 IPv6默认关闭。很多初次接触 IPv6 的人以为给接口配上 IPv6 地址就行实际上 eNSP 里很多设备需要先用ipv6命令开启全局能力然后在接口下再用ipv6 enable激活。3. 设备基础配置与IPv6部署路由、DHCP与动态协议的完整命令3.1 交换机与路由器IPv6基本配置拿到设备后第一件事是开启 IPv6 转发能力。以核心路由器为例全局配置如下system-view sysname Core-Router ipv6 interface GigabitEthernet0/0/0 ipv6 enable ipv6 address 2001:db8:10:0::1/64 interface Loopback0 ipv6 enable ipv6 address 2001:db8:255::1/128这段命令的要点是ipv6是全局开启指令没有它后面所有 IPv6 配置都不会生效ipv6 enable是针对接口层面的开关即使配了地址不执行这行接口也不会参与 IPv6 报文转发。我见过不少翻车现场就是只配了地址忘了 enableshow 出来接口地址正常ping 却永远不通。交换机侧配置类似但要注意 Vlanif 接口的存在。汇聚交换机上的示例如下system-view sysname Access-SW-A ipv6 vlan batch 100 200 interface Vlanif100 ipv6 enable ipv6 address 2001:db8:20:1::1/64Vlanif 是三层接口创建 VLAN 后必须进入 Vlanif 下配置地址才能做网关。二层接口则不需要配置 IPv6 地址只需把接口划入对应 VLAN。例如连接 PC 的接口interface GigabitEthernet0/0/1 port link-type access port default vlan 100这里有个容易忽略的点PC 默认是 IPv6 autoconfig 获取地址但前提是交换机已经把 VLAN 划好、Vlanif 地址已经存在。如果 PC 上的 IPv6 地址为空先查 Vlanif 是否已经 up而不是一上来就怀疑 DHCP 配置。3.2 DHCPv6有状态与无状态配置IPv6 地址获取有两种形式有状态 DHCPv6 和无状态 RA 报文。无状态下设备通过路由器通告 RA 里的前缀自行生成地址EUI-64 或随机只从 DHCPv6 服务器获取 DNS 等其他参数有状态下地址本身由 DHCPv6 服务器分配。校园网办公区常使用有状态 DHCPv6方便做准入控制。核心路由器上配置有状态 DHCPv6 池代码如下dhcpv6 pool office-pool address prefix 2001:db8:20:2::/64 dns-server 2001:db8:30:1::10 gateway 2001:db8:20:2::1 interface Vlanif200 ipv6 enable ipv6 address 2001:db8:20:2::1/64 dhcpv6 server pool office-pool dhcpv6 rapid-commit enable逻辑说明先创建地址池office-pool指定分配的前缀和 DNS 地址然后在 Vlanif200 下启用 DHCPv6 服务。rapid-commit是可选参数打开后终端可以用两报文交互快速获取地址减少验证等待时间。注意有状态模式需要在网关接口下关闭 RA 的地址自动配置标志否则终端会优先用 RA 生成无状态地址导致 DHCPv6 池根本没被用到。无状态配置则不需要dhcpv6 pool只需在接口下通知 RAinterface Vlanif100 ipv6 address 2001:db8:20:1::1/64 ospfv3 1 area 0 ipv6 nd ra interval 30 ipv6 nd ra prefix 2001:db8:20:1::/64 default终端收到 RA 后自己生成 2001:db8:20:1:: 前缀的地址再去请求 DNS 信息。这两种模式的选择取决于你的管理需求。学生宿舍一般用户多、终端杂用无状态节省地址池资源办公区人员固定、要求可审计用有状态更合适。3.3 静态路由与OSPFv3选型架构简单、设备少的时候可以全用静态路由但校园网通常包含冗余路径和动态故障收敛所以我建议在这个实验里把核心与汇聚之间跑 OSPFv3。IPv6 的 OSPF 版本是 OSPFv3它不依赖 IPv4 地址需要通过 Router-ID 区分设备。核心路由器上的配置ospfv3 1 router-id 1.1.1.1 area 0.0.0.0 interface GigabitEthernet0/0/0 ospfv3 1 area 0 interface GigabitEthernet0/0/1 ospfv3 1 area 0 interface Loopback0 ospfv3 1 area 0汇聚交换机上的配置以此类推Router-ID 不能重复。配置完成后用display ospfv3 peer查看邻居关系。如果邻居是 Full说明链路层和 IPv6 连通性都正常如果卡在 Init 或 Down优先检查接口下是否启用了 OSPFv3、区域是否正确以及接口的 IPv6 地址是否在同一子网。为什么不用静态路由因为实验里包含汇聚层到核心层的两条链路静态路由也能做但当你后续加入防火墙策略、ACL、策略路由时静态路由的维护成本会明显上升。OSPFv3 通过 Router-ID 和链路状态数据库自动计算路由排错思路更清晰。当然如果你的实验不涉及动态路由协议静态路由是更快的选择但你需要自己维护每台设备的下一跳。4. 校园网IPv6业务落地VLAN切片、流量过滤与终端验证全流程4.1 接入层VLAN划分与IPv6前缀下发接入层的核心任务是把不同业务用户隔离开同时不干扰 IPv6 前缀的路由通告。学生宿舍、办公区、服务器区不能在一个广播域内否则 RA 报文会互相干扰终端会拿到错误的网关。我通常在汇聚交换机上创建 VLAN然后把接入交换机的上联口配置为 TrunkPC 所在口配置为 Access。示例如下interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 100 200 300 interface GigabitEthernet0/0/1 port link-type access port default vlan 100关键点在于IPv6 的 RA 报文是在链路层进行邻居发现时发送的VLAN 不同链路就不同RA 也就在对应 VLAN 内隔离。如果你的汇聚交换机上 Vlanif100 启用了 RA而 PC 划在 VLAN101PC 收不到 RA 就无法自动配置地址。所以 VLAN 号和 Vlanif 接口必须严格对应。另外配置 Trunk 时要记得放行所有相关 VLAN。eNSP 里默认只放行 VLAN 1如果不加trunk allow-passPC 即使划对了 VLAN流量也到不了汇聚层表现出来就是 IPv6 地址一直显示 no global address。4.2 防火墙策略与IPv6 ACL过滤校园网里的服务器区需要对外提供服务而学生终端区不该反向访问服务器管理口这时候要在核心路由器上用 ACL 模拟防火墙过滤 IPv6 流量。eNSP 里没有独立的防火墙模块但路由器 ACL 已经够验证安全策略。用基本 ACL 阻止宿舍区访问服务器区的 SSH 端口acl ipv6 name deny-ssh rule 5 deny tcp source 2001:db8:20:1::/64 destination 2001:db8:30:1::10 destination-port eq 22 rule 10 permit ipv6 interface GigabitEthernet0/0/1 traffic-filter inbound acl name deny-ssh逻辑说明ACL 名字化是为了可维护。traffic-filter inbound表示这个策略应用在核心路由器面向汇聚的接口上检查从汇聚进入核心的报文。注意方向容易搞反——很多排错现场就是方向错了导致策略看着生效实际流量完全没被匹配。如果要放行服务器响应宿舍区的正常连接需要配置回程放行。IPv6 没有 NAT 概念回程流量基于路由表转发所以 ACL 只能做到单方向的过滤真正的会话状态需要防火墙才能维持。在这个实验里用 ACL 做单向控制已经足够展示安全设计思路。实际部署时建议在设备上部署真正的状态防火墙并对 OSPFv3 协议报文放行否则路由会跟着断掉。4.3 终端地址获取与连通性验证终端验证是整个实验的落脚点。eNSP 的 PC 模拟器原生支持 IPv6 自动配置但需要等待 RA 报文。验证流程如下# 终端上先关闭再开启网卡触发RS请求 ipconfig /release ipconfig /renew ipconfig /all查看输出中的 IPv6 地址、网关、DNS 是否都正确。如果拿到的是 fe80 开头的链路本地地址说明 RA 没有收到先 ping 网关不通就查 VLAN 和接口状态。如果拿到了 2001:db8:: 开头的地址但无默认网关说明 RA 里的 prefix 和网关地址不匹配需要回头检查 Vlanif 的地址。从核心路由器反向验证的指令ping ipv6 2001:db8:20:1::2这里的 ::2 是某台 PC 自动生成的地址可能和具体主机有关。更好的办法是在汇聚交换机上查看邻居表display ipv6 neighbors interface Vlanif100邻居表里如果有终端的 MAC 和 IPv6 地址说明链路层和网络层都已经打通。我习惯把表里的地址记下来再在核心路由器上 ping 这些地址这样能确认跨 Vlan 的 IPv6 路由是否生效。5. 实验避坑与常见问题排查五个必须记录的翻车现场5.1 接口地址已配置但邻居不可达现象两台设备接口都配了 IPv6 地址也正确 enable 了但互相 ping 不通。原因最常见的是接口所在的链路层没有 up。eNSP 里交换机接口默认是 up 的但路由器串口或某些 GigabitEthernet 口是 shutdown 状态需要用undo shutdown开启。另一种原因是接口没有加入同一个 VLAN导致二层隔离。解决先display interface description看接口物理状态是否是 up。再确认两边接口是否都启用了 IPv6用display ipv6 interface brief查看。如果物理和逻辑都 up就在接口下执行shutdown再undo shutdown强制重新协商这能解决模拟器里大部分链路层假死问题。5.2 DHCPv6客户端拿不到地址现象PC 设置为自动获取 IPv6 地址但一直只有链路本地地址DHCPv6 池看起来配置正确。原因一是网关接口下没有启用dhcpv6 server二是 RA 报文中的地址自动配置标志位没有被正确复位。eNSP 里有些场景需要手动在接口下关掉无状态自动配置否则 PC 会优先走无状态不去请求 DHCPv6。解决在 PC 所在的 Vlanif 接口下检查配置确认dhcpv6 server pool-office存在。再在路由器上执行display dhcpv6 pool看池子是否匹配到接口。我一般还会在 PC 上用ipconfig /renew强制发送 DHCPv6 请求然后立刻在路由器上debug ipv6 dhcp能看到请求报文就说明链路正常看不到则问题在二层或接口配置。5.3 OSPFv3邻居卡在INIT现象邻居状态一直停在 Init始终不进入 Two-Way 或 Full。原因最常见的是收到的 OSPFv3 Hello 报文里 Router-ID 不唯一或者接口下没有启用ospfv3 1 area 0。因为是 IPv6OSPFv3 使用链路本地地址作为源地址如果链路本地地址冲突邻居关系也建立不起来。解决检查所有设备的 Router-ID 必须唯一display ospfv3 peer能看到本地发出去的 Router-ID。然后在接口下重新敲一遍ospfv3 1 area 0再用reset ospfv3 process重启协议进程。eNSP 里的 OSPFv3 有时需要等 3 个 Hello 周期才收敛别急着改配置。5.4 IPv6路由表出现黑洞路由现象核心路由表里有指向某个 VLAN 的路由但实际 ping 不同该网段内的 PC。原因我在实验里发现OSPFv3 会把 Vlanif 的本地直连路由宣告出去但如果 Vlanif 接口的物理状态是 down路由就变成黑洞。eNSP 里 Vlanif 对应 VLAN 内没有活跃端口时接口会处于 down 状态路由表里依然显示一条 Connected 路由实际上没有下一跳。解决先display ipv6 routing-table看目标网段的路由出自哪个协议。如果来源是 OSPFv3继续看display ospfv3 routing-table如果是直连检查 Vlanif 是否 up使用display interface Vlanif100确认。我在实验中遇到的一个坑是 Vlanif100 里没有接入任何 Access 端口导致接口 down后来把一台 PC 划入 VLAN 100 就恢复了。5.5 eNSP模拟器内存溢出与保存失败现象拓扑复杂后设备控制台开始卡顿配置命令敲下去要等好几秒才回显最后整个工程无法保存。原因eNSP 是运行在虚拟化环境里的IPv6 协议栈的邻居发现、OSPFv3 链路状态数据库都会额外消耗内存。校园网实验如果一次性开启大量设备每台设备又泛滥 RA 报文内存很容易吃满。解决一是把不必要的设备关闭保留核心和汇聚以及少数接入设备二是减少 RA 报文频率将ipv6 nd ra interval设大一些三是不要在一台设备同时开启过多 debug 命令。保存失败时关闭所有设备重启 eNSP再打开原工程另存为。我自己的习惯是每完成一个阶段配置就导出配置文件而不是依赖模拟器的工程文件。6. 实验验证与进阶扩展把模拟网络的结果延伸到真实环境完成配置后需要一套完整的验证指令集来确认整个网络没有隐藏问题。我每次做这个实验都会强制走一遍以下流程缺一不可。首先在最末端 PC 上执行ipconfig /all确认拿到的是规划网段的 IPv6 地址而非链路本地地址。然后在 PC 上 ping 网关、ping DNS 服务器、ping 另一个 VLAN 的 PC再 ping 核心路由器 Loopback 地址。只有从终端到核心全部通才算网络层正确。其次在每台路由器上执行display ipv6 routing-table重点看有没有非预期的默认路由或黑洞路由。OSPFv3 的 Full 邻居关系也要逐个检查。最后做一次 ACL 验证从宿舍区 PC ping 服务器地址应该被放行telnet 或 SSH 到服务器地址应该被拒绝。如果失败用traffic-filter的方向和 rule 顺序再查一遍。这个实验能扩展的点很多。第一个进阶方向是把 OSPFv3 改为双栈同时跑 OSPFv2 和 OSPFv3并验证 IPv4 与 IPv6 路由的互相影响第二个方向是在核心路由器上启用手工隧道或 6to4 隧道模拟 IPv4 网络中的 IPv6 孤岛互通第三个方向是把无状态 RA 和 DHCPv6 有状态结合成 SLAAC DHCPv6这在真实校园网里更常见。以我自己的血泪经验模拟器里跑 IPv6 最大的问题往往不是路由协议本身而是接口状态和 RA 报文的时序。从那以后我做任何 IPv6 实验都会先花五分钟把每台设备所有接口的 IPv6 状态打印成表确认链路层全部 up 再配路由。这个习惯救了我很多次也希望能帮到你。本文还有配套的精品资源点击获取