H3C SRv6策略实验:从拓扑建模到抓包验证的完整链路 简介本资源是一份面向高校网络工程专业毕业生的H3C综合网络实验毕业设计项目完整模拟中大型企业级网络架构覆盖路由、交换、安全、无线及高可用技术实战场景适用于课程设计、毕设参考与HCL平台进阶学习者。压缩包共44个文件含32个设备配置文件.cfg用于Core/AGG/AC/防火墙等全节点初始化1个网络拓扑文件.net和1张PNG拓扑图.png直观呈现8台路由器、13台交换机、2台防火墙等29台设备的M-LAGVRRP双核心高可靠组网另含README说明、JSON项目配置、Git版本控制文件等辅助材料总大小35.99MB。已有564人学习下载提供开箱即用的HCL实验环境涵盖SR-MPLS、TE Policy、AP本地转发、Option43部署等关键配置细节并附分批次启动建议以适配不同内存条件助力读者深入理解多协议协同与故障排查逻辑。1. 这不是“配线架命令行”的毕业设计一个能跑通 SR-MPLS Policy 的 H3C 大型网络实验从拓扑建模到策略引流全链路可验证某高校网络工程方向的毕业生交上来一份“H3C综合网络实验”毕设答辩老师第一眼看到拓扑图就皱了眉——不是因为画得丑而是太“真”核心层双机热备、接入层按部门划分VLAN、广域网段部署SR-MPLS显式路径、出口处用Traffic Policy做业务流分级调度。这不是PPT里贴几张命令截图的“演示型”实验而是一个在HCLH3C Cloud Lab中完整构建、所有接口IP可达、所有策略可抓包验证、所有故障可手动注入并观测收敛过程的可执行网络系统。它专为解决毕业设计中“实验深度不够、策略落地不实、排错无依据”三大顽疾而生你不仅能照着文档把设备配通更能修改SR Policy的Binding SID、调整TE Metric权重、在PE节点上动态切换主备隧道然后立刻在Wireshark里看到IPv6封装头里的Segment List变化。适合需要硬核交付、想靠真实排错能力打动答辩组、或计划将毕设延伸为实习项目原型的网络方向同学。2. 实验环境与拓扑结构HCL 3.0 环境下 12 台设备的分层建模逻辑2.1 HCL 版本与设备选型约束为什么必须用 HCL 3.0 且禁用模拟器降级模式本项目基于 HCL 3.0.102023年Q4稳定版构建核心依赖其对SR-MPLS和IPv6 Segment Routing的原生支持。若使用HCL 2.x或开启“兼容模式”以下关键功能将不可用segment-routing ipv6全局使能指令报错policy下无法绑定color 100 endpoint ::100:1类型的SRv6策略display mpls sr policy命令返回空而非策略状态表。提示安装后务必在HCL主界面右下角检查版本号若为2.x请卸载重装官方3.0安装包文件名含hcl-3.0.10-win64.exe。不要尝试用system-view → version 3.0伪指令欺骗系统——这是HCL底层内核限制非配置问题。2.2 拓扑分层与设备角色定义12台设备如何对应现实网络架构整个拓扑严格遵循企业级分层模型共12台虚拟设备全部采用H3C S6520X系列镜像支持SRv6及MPLS-TE设备名角色关键功能接口数量备注PE1核心PESRv6入口节点终结客户流量分配End.DT2U SID8连接CE1/CE2及P1/P2PE2核心PESRv6出口节点解封装并转发至目的CE8连接CE3/CE4及P1/P2P1/P2骨干P仅运行IS-ISSRv6 Transit不终结业务6双机冗余启用TI-LFA保护CE1~CE4客户边缘四个部门终端网关运行OSPFv3通告业务网段4CE1/CE2属总部CE3/CE4属分部RR1/RR2路由反射器承载BGP-LULabel Unicast路由反射避免IBGP全连接4仅与PE1/PE2建立邻居FW1边界防火墙位于PE2出口基于应用识别实施QoS限速非NAT6启用IPS签名库该结构不是随意堆叠——P1/P2之间通过interface Ten-GigabitEthernet1/0/1直连形成骨干环PE1与RR1/RR2建立iBGPRR再向PE2反射路由所有CE设备通过OSPFv3宣告2001:db8:10::/48等业务前缀确保SR Policy能精准匹配。这种设计让“策略引流”不再是静态下一跳而是真正基于SID的源路由控制。2.3 地址规划与协议分工IPv4/IPv6双栈下的协议边界本实验采用严格的双栈地址规划避免常见混淆管理平面所有设备Loopback0统一使用IPv4地址如PE1为192.168.100.1/32用于SSH登录、SNMP监控、HCL设备发现控制平面IS-IS进程启用ipv6 enable topology ipv6所有互联接口宣告IPv6前缀如2001:db8:1::/64承载SRv6 SID分发数据平面客户业务使用IPv6地址如CE1的PC为2001:db8:10:1::100/64SR Policy直接匹配IPv6目的地址段协议边界CE与PE之间eBGP IPv6单播AS 65001 ↔ AS 65000PE与P之间IS-IS IPv6多拓扑MT-ISISRR与PE之间iBGP IPv4 BGP-LU携带MPLS标签这种分离保证了当某层协议异常时如IS-IS邻居断开管理通道SSH仍可用便于定位是控制面还是转发面故障。2.4 HCL 工程文件结构说明.hcl主文件与配套资源组织方式项目交付包包含1个主工程文件和3类配套资源H3C_SR_MPLS_Design/ ├── Topology.hcl # HCL 3.0 工程主文件二进制不可编辑 ├── Configs/ │ ├── PE1_startup.cfg # 启动配置含SRv6全局使能、IS-IS配置 │ ├── PE2_startup.cfg │ └── ... # 共12份设备配置已预置密码为admin123 ├── Docs/ │ ├── Topology_Sketch.pdf # 手绘拓扑草图标注所有SID值与Color │ ├── Policy_Test_Cases.xlsx # 12个策略验证用例含预期抓包位置与字段 │ └── Troubleshooting_Guide.md # 故障注入手册如手动shutdown P1-P2链路 └── Scripts/ └── verify_all.sh # Linux下批量校验脚本检查BGP邻居/IS-IS邻接/SR策略状态注意.hcl文件不可用文本编辑器打开所有配置修改必须在HCL GUI中完成并导出新配置。直接编辑.cfg文件后导入可能导致SID注册失败——HCL会校验配置哈希与设备指纹。3. SR-MPLS Policy 核心配置从SID分配到策略绑定的完整链路3.1 SRv6 基础配置全局使能、Locator定义与SID生成规则SRv6策略的前提是每个节点拥有唯一且可路由的Locator前缀。以PE1为例其关键配置如下# PE1 配置片段 system-view segment-routing ipv6 locator pe1-locator 2001:db8:100::/48 32 prefix-sid 2001:db8:100:0:100::/64 end.dt6 2001:db8:100:0:100::/64 quit # isis 1 ipv6 enable topology ipv6 # interface Ten-GigabitEthernet1/0/1 ipv6 address 2001:db8:1::1/64 isis ipv6 enable 1 isis segment-routing ipv6 locator pe1-locator quit逻辑说明locator pe1-locator 2001:db8:100::/48 32定义PE1的SRv6 Locator为2001:db8:100::/48掩码长度32表示SID空间大小2^1665536个可用SIDprefix-sid 2001:db8:100:0:100::/64为该Locator下的默认Prefix-SID即当其他设备需向PE1发送流量时将此SID压入Segment List末尾end.dt6是End.DT6Decapsulate and Decapsulate to IPv6行为表示PE1收到以此SID为目的的报文时解封装外层IPv6头并将内层IPv6包交给本地IPv6协议栈处理isis segment-routing ipv6 locator pe1-locator将Locator信息通过IS-IS泛洪给全网P1/P2据此计算SRv6最短路径树。参数说明Locator前缀必须全局唯一且不能与业务网段重叠本例中2001:db8:100::/48与CE业务2001:db8:10::/48严格隔离32为Locator掩码长度值越小SID空间越大但IS-IS LSDB开销越高生产环境常用40~48本实验取32兼顾教学清晰性end.dt6行为不可省略否则PE1无法正确终结SRv6流量表现为ping6通但业务不通的玄学故障。3.2 SR-MPLS Policy 创建Color/Endpoint绑定与显式路径构造Policy是SRv6的策略中枢本项目定义两条核心PolicyPolicy名ColorEndpoint显式路径Segment List用途POLICY-HQ100::100:12001:db8:100:0:100::,2001:db8:200:0:200::总部流量走P1主路径POLICY-BR200::200:12001:db8:100:0:100::,2001:db8:300:0:300::分部流量走P2主路径PE1上POLICY-HQ的完整配置# PE1 上创建 POLICY-HQ segment-routing ipv6 policy POLICY-HQ color 100 endpoint ::100:1 candidate-path preference 100 explicit segment-list HQ-PATH index 10 segment 2001:db8:100:0:100:: # PE1自身Locator index 20 segment 2001:db8:200:0:200:: # P1的Locator2001:db8:200::/48 index 30 segment 2001:db8:300:0:300:: # PE2的Locator2001:db8:300::/48 quit quit quit逻辑说明policy POLICY-HQ color 100 endpoint ::100:1定义策略标识Color100用于流量分类Endpoint::100:1是策略目标本例中映射为PE2的业务地址candidate-path preference 100设置候选路径优先级数值越小越优explicit segment-list显式指定三个SID起点PE1→中转P1→终点PE2构成一条确定性路径每个index值决定SID压入顺序HCL中index 10最先压入成为Segment List最外层。参数说明color必须与BGP策略中的color属性一致否则BGP-LU路由无法自动绑定该Policyendpoint不是物理IP而是BGP中宣告的SRv6-Endpoint地址需在PE2的BGP配置中显式宣告bgp 65000 peer 192.168.100.1 as-number 65000 address-family ipv6 unicast peer 192.168.100.1 enable peer 192.168.100.1 route-policy EXPORT-SR export quit # route-policy EXPORT-SR if-match extcommunity color 100 apply extcommunity color 100 apply extcommunity sr-te-policy color 100 endpoint ::100:1 quit3.3 流量引流机制BGP Color Extended Community 与策略自动绑定Policy本身不转发流量必须通过BGP Color属性将其与具体业务路由关联。关键在于extcommunity color的传递# PE1 的BGP引入策略将CE1的OSPFv3路由注入BGP bgp 65000 address-family ipv6 unicast import-route ospf 100 route-policy OSPF2BGP quit # route-policy OSPF2BGP if-match ipv6 address-prefix PREFIX-HQ # 匹配CE1业务网段2001:db8:10:1::/64 apply extcommunity color 100 # 打上Color 100标签 apply extcommunity sr-te-policy color 100 endpoint ::100:1 quit逻辑说明当CE1宣告2001:db8:10:1::/64时PE1通过import-route将其引入BGProute-policy OSPF2BGP检查该路由是否匹配PREFIX-HQ前缀列表若匹配则打上extcommunity color 100apply extcommunity sr-te-policy强制将此路由绑定到color 100的SRv6 PolicyRR1收到该路由后原样反射给PE2PE2据此在本地FIB中安装指向POLICY-HQ的下一跳。验证命令在PE1上执行display bgp ipv6 routing-table 2001:db8:10:1::/64 # 输出中应包含 # Route Distinguisher: 192.168.100.1:1 # Ext. Com: RT:65000:100, SR-TE-POLICY:color100,endpoint::100:1若未显示SR-TE-POLICY字段说明Route-Policy未生效或Color值不匹配——这是新手翻车最高发场景。3.4 策略状态与路径验证从CLI到Wireshark的三层确认法验证Policy是否真正生效需跨越三层控制面确认CLIdisplay mpls sr policy name POLICY-HQ # 正常输出应含 # Status: Up, Binding SID: 2001:db8:100:0:100:100:: # 自动分配的BSID # Candidate paths: 1 UP, 0 DOWN # Segment list: 2001:db8:100:0:100:: - 2001:db8:200:0:200:: - 2001:db8:300:0:300::转发面确认抓包在P1的Ten-GigabitEthernet1/0/1接口抓包过滤ipv6.dst 2001:db8:10:1::100查看IPv6头Next Header 43 (Routing)Routing Type 4 (SRv6)Segments Left 2Segment List[0] 2001:db8:300:0:300::PE2 LocatorSegment List[1] 2001:db8:200:0:200::P1 Locator这证明报文正按Policy路径反向压入SID符合SRv6源路由逻辑。业务面确认端到端# 从CE1的PC执行 ping6 -c 5 2001:db8:10:4::100 # CE4的业务地址 # 应返回5/5通且延迟稳定在8msP1路径或12msP2路径故障注入后三层全部通过才代表Policy真正落地。只看CLI状态是黑匣子只看Ping通是运气。4. 常见问题排查5个血泪经验总结的高频翻车点4.1 现象display mpls sr policy显示Status为DownBinding SID为空原因最常见原因是Endpoint::100:1在BGP中未被宣告或宣告的Endpoint与Policy中定义的不一致如Policy写::100:1BGP写::100:2次要原因是Locator前缀未通过IS-IS泛洪P1/P2的display isis peer看不到PE1邻居导致无法计算SRv6路径。解决在PE2上执行display bgp ipv6 peer确认PE1邻居State为Established在PE2上执行display bgp ipv6 routing-table ::100:1确认Endpoint路由存在且NextHop可达在P1上执行display isis peer确认PE1邻居状态为Up且display isis route ipv6中能看到PE1的Locator前缀。4.2 现象BGP路由表中有SR-TE-POLICY属性但display ip fib中下一跳仍是普通BGP下一跳非Policy名称原因apply extcommunity sr-te-policy命令未在正确的Address-Family下执行如在address-family ipv4 unicast中配置但路由是IPv6或Route-Policy未在import-route调用中启用import-route ospf 100 route-policy OSPF2BGP中的策略名拼写错误。解决检查BGP配置层级display current-configuration configuration bgp | include address-family ipv6确认Route-Policy名完全一致区分大小写并在import-route命令中精确引用执行reset bgp ipv6 all清除BGP表后重新学习。4.3 现象Ping6通但HTTP业务如curl访问Web服务器超时原因SRv6策略仅控制IPv6报文转发但Web服务器可能监听IPv4地址或客户端DNS解析返回IPv4 A记录更隐蔽的是FW1边界防火墙的IPv6安全策略未放行TCP 80端口仅放行了ICMPv6。解决在CE1 PC上执行curl -6 -v http://[2001:db8:10:4::100]强制IPv6访问在FW1上执行display security-policy rule name WEB-ALLOW确认source-zone trust→destination-zone untrust规则中ipv6 enable且service http已启用若仍失败在FW1上开启debugging ipv6 packet icmp观察是否被ACL丢弃。4.4 现象手动shutdown P1-P2链路后流量未自动切换至备用Policy仍中断原因备用Policy如POLICY-HQ-BACKUP未配置candidate-path preference 200导致与主Policy优先级相同HCL无法决策或未启用TI-LFATopology Independent Loop-Free AlternateP1/P2间链路断开后IS-IS无法快速收敛SRv6路径计算失败。解决在PE1上为备用Policy设置更低优先级candidate-path preference 200主Policy为100在P1/P2上启用TI-LFAisis 1 segment-routing ipv6 ti-lfa注入故障后等待30秒再执行display mpls sr policy name POLICY-HQ确认Status变为Up且Segment List更新为备用路径。4.5 现象HCL中设备启动后CPU持续100%拓扑卡死无法操作原因HCL 3.0对内存要求高12台设备同时运行需至少16GB物理内存若宿主机仅8GBHCL会频繁GC导致假死或某台设备配置中存在非法SID如2001:db8::1::1格式错误触发HCL内核异常。解决关闭HCL任务管理器结束所有hcl.exe进程编辑Configs/PE1_startup.cfg删除疑似错误的segment行保存重启HCL逐台导入设备配置先PE1/PE2再P1/P2最后CE/FW每导入一台后执行display cpu-usage确认正常若仍卡顿在HCL设置中关闭“实时拓扑渲染”仅保留“静态视图”。5. 二次开发改造指南从策略灰度发布到自动化故障演练5.1 策略灰度发布基于DSCP标记实现渐进式流量迁移毕业设计常被质疑“一刀切”而企业级SRv6策略需支持灰度。本项目预留了DSCP扩展接口改造步骤在CE1的出口接口连接PE1启用QoSinterface Ten-GigabitEthernet1/0/1 qos dscp 26 # 标记AF21视频会议流量修改PE1的Route-Policy增加DSCP匹配条件route-policy OSPF2BGP if-match ipv6 address-prefix PREFIX-HQ if-match dscp 26 apply extcommunity color 100 apply extcommunity sr-te-policy color 100 endpoint ::100:1 quit新增一条Policy绑定DSCP 22AF11普通办公segment-routing ipv6 policy POLICY-HQ-AF11 color 101 endpoint ::100:1 candidate-path preference 150 explicit segment-list HQ-PATH-AF11 index 10 segment 2001:db8:100:0:100:: index 20 segment 2001:db8:300:0:300:: # 直连PE2绕过P1效果视频会议流量走P1主路径低延迟普通办公走直连路径高带宽实现业务级SLA保障。无需改代码纯配置驱动。5.2 自动化故障演练Python脚本驱动HCL API注入链路故障手动shutdown接口效率低且无法复现瞬时故障。本项目提供fault_inject.py脚本需Python 3.8及requests库# fault_inject.py import requests import time HCL_API http://127.0.0.1:8080/api/v1 HEADERS {Content-Type: application/json} def shutdown_link(device_a, port_a, device_b, port_b): payload { action: shutdown, device_a: device_a, port_a: port_a, device_b: device_b, port_b: port_b } resp requests.post(f{HCL_API}/link, jsonpayload, headersHEADERS) print(fLink {device_a}:{port_a} - {device_b}:{port_b} shutdown: {resp.status_code}) # 模拟P1-P2链路闪断100ms shutdown_link(P1, Ten-GigabitEthernet1/0/1, P2, Ten-GigabitEthernet1/0/1) time.sleep(0.1) # 自动恢复 requests.post(f{HCL_API}/link/recover, json{device_a:P1,port_a:Ten-GigabitEthernet1/0/1})执行流程启动HCL后在HCL设置中开启“API服务”默认端口8080运行脚本自动执行shutdown→wait 0.1s→recover在PE1上执行display mpls sr policy name POLICY-HQ | include Status观察Status是否经历Up→Down→Up验证TI-LFA收敛时间。这比手动操作快10倍且可集成进答辩演示环节展示“故障自愈”能力。5.3 拓扑扩展技巧新增第三分部CE5并复用现有Policy框架若需扩展为三地互联不必重画拓扑。利用HCL的“设备克隆”功能克隆CE4为CE5修改其Loopback0为192.168.104.1/32业务IPv6为2001:db8:10:5::/64在PE2上新增OSPFv3进程宣告CE5网段关键复用沿用POLICY-BR仅修改其Endpoint为::200:2CE5的BGP Endpoint并调整Route-Policyroute-policy OSPF2BGP if-match ipv6 address-prefix PREFIX-BR2 apply extcommunity color 200 apply extcommunity sr-te-policy color 200 endpoint ::200:2在RR1/RR2上确认新路由已反射。优势新增节点仅需3条配置命令Policy框架零修改体现架构可扩展性——这正是答辩时导师最想看到的设计思维。从那以后我每次做H3C毕设都强制走一遍“CLI状态→抓包验证→业务测试”三层闭环哪怕多花2小时也绝不让Policy停留在display命令的绿色字体里。因为真正的网络工程不在配置的正确性而在故障下的韧性。希望帮到你。本文还有配套的精品资源点击获取