
简介GPON网络配置脚本解析文档面向从事接入网运维的网络工程师及正在学习无源光网络的技术人员以实际OLT配置脚本为线索清晰拆解从登录设备、创建业务VLAN与QinQ、配置管理接口到ONU注册、下发管理地址和service-port绑定的完整过程同时涉及服务端口绑定、display board与display ont状态检查等关键命令。包体为1个PDF文件压缩包仅9KB体积小巧适合作为现场配置时的快速参考手册。内容聚焦常见命令及其作用例如VLAN 4000与QinQ、VLANIF 100私网地址、SN认证添加ONU、网管模板下发等并配有display验证与save保存环节能帮助读者理解设备配置逻辑、减少命令行误操作还可延伸到带宽分配、QoS策略与安全管理等网络规划问题。目前已有一百人学习下载适合需要快速掌握GPON基础配置与排错思路的入门及中级网络运维人员。1. GPON 配置脚本OLT 和 ONU 侧命令到底怎么落光猫注册不上、OLT 上查不到 ONU、业务 VLAN 透传不通——这三句话基本概括了 GPON 开局最常见的三种翻车现场。这份 GPON 配置脚本恰好把华为 MA5680TOLT和 MA5626ONU从登录到业务通道建完的完整命令串了一遍覆盖 VLAN 规划、QinQ 打标、ONT 注册、管理地址下发、SNMP 模板绑定、service-port 通道建立甚至连 ONU 侧批量建 VLAN 和端口映射的批命令模板都附上了。对刚接触 GPON 开局的人这份脚本是能直接照着敲的作业对已经配过几台设备的人它更像一份排错对照表——哪条命令没生效、哪个参数写错回头翻一翻就能定位。我按自己拆解这份脚本的顺序把命令逐段拆开讲清楚重点放在为什么这么配、参数怎么改、踩坑点在哪。2. VLAN 规划先行业务 4000 走 QinQ管理 100 单独隔离VLAN 规划是整个 GPON 开局的地基。一份脚本里先建业务 VLAN 还是先建管理 VLAN直接决定后面 ONT 注册和下业务通道时会不会绕弯路。我一般把这一步理解成「先把路修好再让车跑」——这里的路就是 VLAN车就是管理报文和业务报文。2.1 业务 VLAN 和 QinQ 标签为什么业务 VLAN 要打 q-in-q脚本里的第一条关键命令是vlan 4000 smart这是创建了一个 smart 类型的业务 VLAN然后紧接着执行vlan attrib 4000 q-in-q。MA5680T(config)#vlan 4000 smart MA5680T(config)#vlan attrib 4000 q-in-qlogical 解释第一行创建 VLAN 4000类型为 smart——smart 类型表示这个 VLAN 可以跨多个端口透传不绑定具体物理端口属性。第二行给 VLAN 4000 打上 QinQ 属性意味着从 ONU 上来的报文进入 OLT 后会在这个 VLAN 外层再封装一层 802.1Q 标签。参数说明里最关键的是q-in-q这个属性。在 GPON 场景下ONU 下挂的每个用户端口需要区分不同业务或不同用户但 OLT 上只用一个业务 VLAN 承载这时就用外层 VLAN 4000 做通道标识内层 VLAN 保留用户原始标签。常见做法是内层 VLAN 透传用户的业务区分外层 VLAN 只负责从 ONU 到 OLT 再到上层交换机的物理通道。这样做的直接好处是OLT 上行口只需要透传一个 VLAN 4000上层设备不用为每个用户单独配 VLANVLAN 资源占用大幅下降。很多新手在这里会纠结既然已经有 VLAN 4000 了为什么还要vlan attrib 4000 q-in-q其实不加这行ONU 上来的带 tag 报文在 OLT 上只会被当作普通 VLAN 处理内层标签会被剥掉或直接丢弃业务就断了。这行命令是给业务 VLAN 开「嵌套通道」的开关。执行完这两条命令后再把 VLAN 4000 透传到上行口MA5680T(config)#port vlan 4000 0/19 0这里的0/19 0是框/槽/端口的完整编号——0 框 19 槽 0 口也就是 OLT 的上联口。这条命令的作用是把 VLAN 4000 放行到这个物理端口上让带 QinQ 标签的报文能往上送。2.2 管理 VLAN 和管理地址私网互通是第一优先级业务通道之前管理通道必须先通。脚本里单独建了 VLAN 100 作为管理 VLAN同样透传到上行口MA5680T(config)#vlan 100 smart MA5680T(config)#port vlan 100 0/19 0 MA5680T(config)#interface vlanif 100 MA5680T(config-if-vlanif100)#ip address 192.168.1.1 255.255.255.0这里我特别想强调的是vlanif 100这个逻辑接口。VLAN 100 是三层的管理网段OLT 通过interface vlanif 100进入三层接口配置模式配了192.168.1.1/24这个私网地址。这个地址就是 OLT 在管理网络里的网关ONU 的管理 IP 必须和它同网段才能互通。管理 VLAN 和业务 VLAN 分开配的用意很明确业务流量再大、再乱管理通道始终独立不会互相挤占。实际开局时我见过有人图省事把管理地址直接放在业务 VLAN 里结果 ONU 上线后被业务广播报文冲得频繁掉线属于典型的省一步、坑一路。管理 VLAN 规划时还要注意网段别和其他网元冲突。192.168.1.1/24是常见的私网段如果机房已经有设备占用了同一网段必须换地址后再执行。这个判断要在敲命令之前完成因为后面 ONU 管理地址是一个个发下去的中途改网段就要全部重配。3. ONU 注册与管理通道sn-auth 绑定和 ipconfig 下发的三个关键点VLAN 通道建好后下一步就是让 ONU 上线。GPON 里 ONU 上线分两阶段先注册——让 OLT 认识它再下发管理配置——让 OLT 能管它。这两个阶段对应两组命令任何一组出问题ONU 都起不来。3.1 发现未注册 ONUautofind 输出的三个信息配置 ONU 之前先看哪些 ONU 已经物理接入但没有注册MA5680T(config)#display ont autofind all ------------------------------------------------------------------------ Number F/S/P SN Password ------------------------------------------------------------------------ 1 0/ 1/ 0 4857544368F933040000000000 ------------------------------------------------------------------------这条命令列出所有被发现但未注册的 ONU。输出里最关键的是 F/S/P 列——0/1/0表示这个 ONU 在 0 框 1 槽 0 号 PON 口下SN 则是 ONU 的光模块序列号4857544368F93304是有效部分后面补零的是填充位。注意这里的 SN 是 16 字节的完整序列号后面注册命令里只需要前 12 位十六进制字符。每次开局我都会先把 autofind 结果截图保存因为紧接着的ont add命令必须精确匹配这个 SN抄错一位 ONU 就注册不上而抄错的原因往往是 SN 里 0 和 O、8 和 B 没分清。3.2 ONU 注册和管理地址下发ont add 与 ipconfig 的依赖关系找到未注册的 ONU 后进入 PON 口执行注册命令MA5680T(config)#interface gpon 0/1 MA5680T(config-if-gpon-0/1)#ont add 0 0 sn-auth 4857544368F93304 snmp ont-lineprofile-id 10 desc MA5626-1这条命令的完整理解方式是这样的ont add后面的两个数字第一个0是 PON 口下的 ONU 序号第二个0也是 ONU 序号——这里其实是「0 号 PON 口下的 0 号 ONU」。sn-auth指定认证方式为 SN 认证后面引号里的就是前面 autofind 查到的序列号。snmp ont-lineprofile-id 10是绑定一个 ID 为 10 的 ONT 线路模板这个模板里预定义了上下行带宽、DBA 类型等参数。desc是备注名建议写成「站点名-设备型号-序号」这种可读格式后面批量管理时靠这个备注认设备。注册之后紧接着下发管理地址MA5680T(config-if-gpon-0/1)#ont ipconfig 0 0 static ip-address 192.168.1.100 mask 255.255.255.0 vlan 100 priority 3这条命令把管理 IP192.168.1.100配到刚才注册的 0 号 ONU 上管理 VLAN 是 100报文优先级是 3。它和ont add的关系是严格的前后依赖ONU 没有注册成功ipconfig 命令会直接报错反过来ONU 注册了但没下发 IPOLT 就无法 telnet 进 ONU 做后续配置。下发管理地址这一步经常有个疑问既然 OLT 已经给 ONU 配了管理 IP为什么还要再下发 SNMP 模板因为 IP 只是通了网络层网管系统还需要通过 SNMP 协议去读 ONU 的状态、下发告警上报策略。下面这条命令就是把网管模板绑定到 ONU 上MA5680T(config-if-gpon-0/1)#ont snmp-profile 0 0 profile-id 1profile-id 1引用的是 N2000 网管系统的预定义模板这个模板里包含读团体字、写团体字、Trap 上报地址等参数。实际环境中 profile-id 的编号要看网管侧的规划开局前要先确认这个模板在 OLT 上已经创建好了否则命令能敲进去但网管上看不到 ONU。3.3 注册状态验证Match SR 和 active 的判定逻辑配置完成后退出 PON 口模式检查 ONU 的注册状态MA5680T(config)#display board 0/1 ------------------------------------------------------------------------------ F/S/P ONT-ID SN Control Run Config Match DBAflag state state state type ------------------------------------------------------------------------------ 0/ 1/0 0 4857544368EE7704 active up normal matchSR 0/ 1/0 1 4857544368F4BB04 active up normal matchSR ------------------------------------------------------------------------------这张表要看四列Control state 为 active 表示 ONU 已被管理并处于激活状态Run state 为 up 表示 ONU 在线Config state 为 normal 表示配置下发成功Match type 为 matchSR 表示 SN 认证匹配如果这里显示的不是 matchSR说明认证方式和 SN 记录不一致。有一个细节值得注意——上面显示了两个 ONU但前面 autofind 只找到一个。这说明第二个 ONU 是之前已经注册过的。判断一个 ONU 是新接入还是旧设备看 Control state 和 autofind 列表就能区分autofind 列出来但 display board 里没有才是真正待注册的新 ONU。注册阶段最常见的翻车点是把 SN 里的前导字符弄错尤其是以4857开头的一串——这是华为设备的固定厂商标识后面才是设备唯一序列号。ont add命令只取前 12 位十六进制字符但 autofind 显示的是完整 16 字节复制时要么手工截取要么写脚本做字符串截取。我见过有人直接把 16 字节整串粘进sn-auth设备报 SN 长度错误卡了半小时才发现。4. service-port 双通道绑定gemport 选错业务通但管理断GPON 里 ONU 注册成功不等于业务通了。OLT 和 ONU 之间还要建立 service-port 通道这道工序决定了管理报文和业务报文各自走哪条路。脚本里同时配了两条 service-port一条管理通道、一条业务通道两条命令看起来结构相似但参数含义完全不同。4.1 管理通道和业务通道的差异user-vlan other-all 的语义MA5680T(config)#service-port vlan 100 gpon 0/1/0 ont 0 gemport 2 multi-service user-vlan 100 rx-cttr 6 tx-cttr 6 MA5680T(config)#service-port vlan 4000 gpon 0/1/0 ont 0 gemport 0 multi-service user-vlan other-all rx-cttr 6 tx-cttr 6先看第一条——管理通道。service-port vlan 100表示这条通道承载的是 VLAN 100gpon 0/1/0是物理位置ont 0是 0 号 ONUgemport 2是 GEM 端口编号。GPON 技术里GEM Port 是承载业务的逻辑通道一个 ONU 可以建立多个 GEM Port分别承载不同类型流量。这里管理报文走 GEM Port 2对应user-vlan 100——只有 VLAN 100 的报文会进入这条通道。再看第二条——业务通道。service-port vlan 4000指定外层 VLAN 是 4000但user-vlan other-all的含义是除了管理 VLAN 100 之外的所有其他 VLAN 报文都走这条通道。这相当于一个 trunk 端口放行了所有业务 VLAN只是它们都被外层 VLAN 4000 的 QinQ 标签包着上行。MA5680T(config)#display service-port port 0/1/0 ont 0 --------------------------------------------------------------------------- 0 100 common gpon 0/1/0 ont 0 gemport 2 vlan 100 6 6 up 1 4000 QinQ gpon 0/1/0 ont 0 gemport 0 vlan other-all 6 6 up ---------------------------------------------------------------------------display 输出里能看到两条 service-port 的状态都是 up。值得关注的是第一条的管理通道类型是 common第二条业务通道类型是 QinQ——这个区别正好对应 VLAN 配置阶段对 VLAN 100 和 VLAN 4000 的不同属性设定。如果 VLAN 4000 在配置阶段没有打 q-in-q 属性这里第二条通道就建不起来display 里会出现 down 状态。4.2 gemport 分配原则和 rx-cttr/tx-cttr 的带宽含义gemport 的分配是有讲究的。脚本里管理通道用 gemport 2业务通道用 gemport 0剩下 gemport 1 可以留给将来的专线业务或 VoIP。这是常见做法不是固定标准但原则是管理通道和业务通道必须分开不能共用同一个 gemport否则业务流量异常时会把管理通道也堵死OLT 彻底失去对 ONU 的管控。rx-cttr 6 tx-cttr 6里的 cttr 是 traffic contract 的缩写两个参数分别定义上下行带宽模板编号。这里的 6 号模板是预先在 OLT 上定义好的带宽配置通常对应一个固定的带宽上限。实际项目里带宽模板要根据用户套餐来定——普通宽带业务可能用的是 4 号或 5 号模板专线用户可能单独建模板。敲命令前必须先确认模板存在不然命令会报错就算命令通过了display 时也可能出现带宽参数不匹配。管理通道的带宽模板可以配小一点因为管理报文就那么点业务通道的模板要看用户实际带宽需求。脚本里两条通道都用了同一个 6 号模板这在测试环境没问题生产环境建议管理通道和业务通道分开用不同模板避免业务侧带宽占满后影响管理通道。4.3 配置顺序先建 VLAN 通道再绑 service-portservice-port 配置有一个强制性的先后逻辑必须先有 VLAN再有 PON 口下的 ONU 注册记录才能执行 service-port。如果 ONU 还没注册成功就敲 service-port系统会报 ONU 不存在如果 VLAN 4000 还没创建就敲第二条命令系统会报 VLAN 不存在。这个顺序在脚本里本来是对的但实际开局时经常有人跳过注册步骤直接配 service-port回头才发现 ONU 根本没上线。所以每次配完我都习惯用一条display service-port port 0/1/0 ont 0检查通道状态——只要看到 up说明前面 VLAN、ONU 注册、通道绑定这条链路是通的。配完 service-port 后还有最后两步收尾display current-configuration查看全部配置确认没有遗漏或误配然后执行save保存。这一步是后悔药——GPON 设备配错是常态不改了就保存可以但改完不保存、设备一重启全丢那才是真的白干。5. ONU 侧配置MA5626 的 VLAN 批量创建与端口映射OLT 侧配置完成后还需要进入 ONU 内部做业务配置。MA5626 作为 ONU 设备通过 OLT 的 telnet 跳转登录完成业务 VLAN 的创建和以太网端口到业务 VLAN 的映射。这个阶段的配置逻辑和 OLT 侧有相似之处但粒度更细——每个物理用户端口对应一个单独的 VLAN。5.1 从 OLT 跳转 telnet 到 ONU管理地址即登录通道ONU 侧配置的第一步是通过 OLT 跳转MA5680T(config)#telnet 192.168.1.100 Connected to 192.168.1.100 ... User name:root User password: mduadmin这个操作的核心依赖是上一步在 OLT 上通过ont ipconfig给 ONU 下发了192.168.1.100的管理地址OLT 和 ONU 处于同一管理网段telnet 才能通。这里有个很容易被忽略的点——ONU 侧的管理账号密码和 OLT 侧不一样OLT 是 root/adminONU 是 root/mduadmin。开局前先确认这两个账号的权限范围别在交互式登录时卡住。登录后依次执行 enable、config 进入全局配置模式。ONU 的命令风格和 OLT 是一脉相承的上手没有额外成本。5.2 批量创建业务 VLANvlan 1000-1015 smart y 的语法细节MA5626 上创建业务 VLAN 的命令是一条区间批量命令MA5626(config)#vlan 1000-1015 smart y MA5626(config)#port vlan 1000-1015 0/0 1 y这条命令一次性创建 VLAN 1000 到 1015 共 16 个 VLAN类型为 smart。末尾的y表示对命令确认提示自动应答——批量创建 VLAN 时系统会逐个确认加y参数可以跳过交互。第二行命令把 VLAN 1000-1015 透传到0/0 1口——这是 ONU 的上行口也就是连接 OLT 的 PON 口。注意这里的端口编号格式和 OLT 不一样OLT 是0/19 0ONU 是0/0 1含义是 0 框 0 槽 1 号口这个口在 MA5626 上是上行口。批量 VLAN 里的编号规划要留出余地。脚本里用了 1000-1015对应 16 个以太网口如果设备有 24 口就要改成 1000-1023。编号段最好和自然网段对应——用户订购的宽带业务 VLAN 是多少就映射到哪个编号段别让 VLAN 编号和业务毫无关联否则后期维护就是一场灾难。5.3 业务通道映射一个端口一个 VLAN 的批量规律VLAN 创建后逐个给每个以太网口绑定业务通道MA5626(config)#service-port vlan 1000 eth 0/1/1 multi-service user-vlan untagged rx-cttr 6 tx-cttr 6 MA5626(config)#service-port vlan 1001 eth 0/1/2 multi-service user-vlan untagged rx-cttr 6 tx-cttr 6 MA5626(config)#service-port vlan 1002 eth 0/1/3 multi-service user-vlan untagged rx-cttr 6 tx-cttr 6这里的规律是业务 VLAN 1000 绑定以太网口 0/1/1VLAN 1001 绑定 0/1/2VLAN 1002 绑定 0/1/3以此类推。user-vlan untagged表示用户侧报文不带 VLAN 标签ONU 在入口处给报文打上对应该端口的 VLAN ID然后向上送到 OLT。端口和 VLAN 的映射可以整理成一张对照表以太网口业务 VLAN用户侧报文类型0/1/11000untagged0/1/21001untagged0/1/31002untagged.........0/1/161015untagged每个端口的 service-port 命令结构完全一样只是 VLAN 和端口号递增。这意味着可以写一个循环批处理来生成这 16 条命令——批命令模板在脚本末尾附了后面单独展开说明。Onu 侧配置完成后两条验证命令MA5626(config)#display board 0 MA5626(config)#display board 0/1display board 0查看主控板状态display board 0/1查看业务板状态。输出里的 Status 列显示 Active_normal 表示业务板正常Online/Offline 列显示在线状态。执行save保存 ONU 配置。ONU 的保存和 OLT 一样关键——MA5626 配置不保存重启后 VLAN 和 service-port 全丢需要重新配置。5.4 ONU 配置和 OLT 配置的联动关系ONU 侧 VLAN 1000-1015 和 OLT 侧 VLAN 4000 之间的关系值得特别说明。ONU 侧是给用户端口打 VLAN 标签——每个端口一个 VLANOLT 侧是给这些 VLAN 打外层 QinQ 标签——把 VLAN 1000-1015 统一封装进 VLAN 4000 上行。这个两层标签的设计就是 GPON 网络中「用户隔离」和「通道复用」的结合点。如果 ONU 侧的 VLAN 编号和 OLT 侧的内层 VLAN 规划没对齐报文进入 OLT 时会因为内层标签不匹配而丢包或错乱。常见做法是ONU 侧的 VLAN 段由接入网统一规划OLT 侧只关心外层 VLAN 和 QinQ 属性两侧各管一层互不干扰。ONU 侧配置还有一个隐蔽的坑——port vlan 1000-1015 0/0 1 y里的端口必须是上行口不能随手填成用户口。如果填错VLAN 透传不出去OLT 上怎么调都收不到业务报文。判断上行口的方法是看 ONU 的物理连接——接到 OLT PON 口的那个口就是上行口MA5626 一般固定是 0/0/1 或 0/0/0开局前先display board 0确认槽位状态。6. 常见问题与排查五个必踩的坑和验证路径GPON 配置里有几个高频踩坑点每个都对应明确的现象、原因和解决方式。把这些坑记下来开局时能省掉大量排查时间。6.1 ONU 注册后状态 abnormalSN 认证失败的典型表现现象ont add命令执行成功但display board 0/1里 Control state 不是 active而是 abnormal 或 initial。原因大概率是 SN 认证信息和 OLT 上保存的授权记录不一致。GPON 的 SN 认证是严格匹配的ont add命令里的 SN 和 ONU 光模块实际序列号必须完全一致差一个字符都不行。解决用display ont autofind all重新查看实际 SN和ont add命令里的 SN 逐字符比对。常见错误是手工录入时把0和O、B和8混淆建议直接复制粘贴而不是手敲。如果确认 SN 无误检查是不是同一 PON 口下已经有过一个相同 SN 的 ONU 注册记录先删除旧记录再重新注册。6.2 Match type 不是 matchSR认证方式错误现象ONU 能正常上线但display board 0/1里 Match 列显示的不是 matchSR或者干脆是空白。原因ont add命令里用了sn-auth但 OLT 上该 PON 口预配置了其他认证方式比如 password-auth 或混合认证。ONU 注册时 OLT 会按照预配置的认证方式去匹配认证方式不一致就匹配不上。解决确认该 PON 口的认证模式是 SN 认证。在 GPON 口模式下执行display ont register-info查看当前认证方式配置如果不对删除该 ONU 后重新用sn-auth添加。注意删除 ONU 用ont delete会同时删除该 ONU 下的所有配置操作前要确认没有在用业务。6.3 管理 VLAN 通了但业务 VLAN 不通service-port 的 user-vlan other-all 理解偏差现象OLT 能 telnet 进 ONU管理报文正常但用户宽带业务拨号不上或不通过。原因service-port 业务通道里user-vlan other-all的含义被误读成了「所有 VLAN 都不处理」导致业务通道没建立或只放行了部分 VLAN。另外检查 ONU 侧是否已创建对应的业务 VLAN——有些情况下ONU 的 VLAN 没建service-port 命令就执行不了或者执行了也不生效。解决在 OLT 上执行display service-port port 0/1/0 ont 0确认第二条记录的 VLAN 是 other-all 且状态为 up。再到 ONU 上执行display vlan 1000确认内部 VLAN 已创建并透传到上行口。同时检查 ONU 侧port vlan 1000-1015 0/0 1 y的端口编号是否正确——填错上行口会导致 VLAN 无法从 PON 口送出去。6.4 批量命令跳错号批命令模板里 %d 的错位现象用批命令脚本批量配置 ONU 时部分 ONU 的 IP 地址、VLAN 编号和预期不一致出现跳号、重号。原因批命令模板里多个%d参数是独立填充的但脚本在循环展开时ONU 序号、IP 地址末位、VLAN 编号没有用同一个循环变量导致错位。比如 ONU 序号为 0 时 IP 是 .100序号为 1 时 IP 变成了 .102中间跳了一个。解决写批量脚本时所有随 ONU 变化的参数必须由同一个循环变量派生。脚本里 ONU 的 IP 地址若为192.168.1.%d则%d的取值从 100 开始每增加一个 ONU 递增 1。拉通检查时用display ont info逐个核对 ONU 的管理 IP 和 desc 字段确认一一对应。6.5 配置保存不生效save 后重启配置丢失现象配置完成后一切正常但设备断电重启后 ONU 掉线OLT 上配置全部丢失。原因CLI 下的save只保存当前生效配置到配置文件中如果保存前有未保存的命令或保存时设备正处于繁忙状态配置可能没有完整落盘。另外 OLT 和 ONU 需要分别执行save——只保存了 OLT 配置ONU 配置在重启后同样丢失。解决OLT 和 ONU 上分别执行save执行后通过display saved-configuration对比当前配置和已保存配置。确认无误后做一次设备重启验证这是最稳妥的做法。生产环境开局时我一般会在所有配置完成后强制做一轮「保存→重启→验证」的闭环虽然多花几分钟但能杜绝后续批量故障。7. 批量开局提速把命令模板改造成循环脚本单个 ONU 的配置流程走通之后接下来的问题是如果 32 个 ONU 要同时上线逐条敲命令要敲到什么时候脚本末尾附带的批命令模板就是为了解决这个问题。这里把模板展开讲透并给出一个可落地的改造方法。OLT 侧的批量命令模板ont add 0 %d sn-auth 48575443F5266F02 snmp ont-lineprofile-id 10 desc MA5626-%d ont ipconfig 0 %d static ip-address 192.168.1.%d mask 255.255.255.0 vlan 100 priority 3 gateway 192.168.1.1 service-port vlan 100 gpon 0/1/0 ont %d gemport 2 multi-service user-vlan 100 rx-cttr 6 tx-cttr 6 service-port vlan 4000 gpon 0/1/0 ont %d gemport 0 multi-service user-vlan other-all rx-cttr 6 tx-cttr 6ONU 侧的批量命令模板service-port vlan %d eth 0/1/%d multi-service user-vlan untagged rx-cttr 6 tx-cttr 6这两个模板里的%d是占位符需要用一个脚本生成实际命令。以常见的 bash 环境为例OLT 侧的命令可以这样生成for i in $(seq 0 31) do ip$((100 i)) echo ont add 0 $i sn-auth \48575443F5266F02\ snmp ont-lineprofile-id 10 desc \MA5626-$i\ echo ont ipconfig 0 $i static ip-address 192.168.1.$ip mask 255.255.255.0 vlan 100 priority 3 gateway 192.168.1.1 echo service-port vlan 100 gpon 0/1/0 ont $i gemport 2 multi-service user-vlan 100 rx-cttr 6 tx-cttr 6 echo service-port vlan 4000 gpon 0/1/0 ont $i gemport 0 multi-service user-vlan other-all rx-cttr 6 tx-cttr 6 done这个循环里的关键点在于循环变量i同时驱动 ONU 序号、IP 地址末位和 desc 序号保证三者的对应关系不会错位。IP 从 100 开始递增是因为 192.168.1.1 已经被 OLT 的 vlanif 100 占用了ONU 的管理地址从 .100 起跳是为后续扩容留出空间。执行生成脚本后把输出的命令粘贴到 OLT 终端即可每行命令之间不需要额外处理OLT 的 CLI 会自动逐条执行。ONU 侧的批量生成逻辑类似需要特别注意端口号从 1 开始和 VLAN 号相差 1000for i in $(seq 1 16) do vlan$((999 i)) echo service-port vlan $vlan eth 0/1/$i multi-service user-vlan untagged rx-cttr 6 tx-cttr 6 done这段脚本的对应关系是i1时生成service-port vlan 1000 eth 0/1/1i16时生成service-port vlan 1015 eth 0/1/16完全对齐前面 5.3 节的端口映射表。用批量脚本时有一个强制习惯生成命令后先人工抽查几条确认 IP 段、VLAN 段、端口号三段不串位再粘到设备上执行。执行完后一定要用display service-port做一次全量核查——批量配置最容易出「大部分对、个别错」的情况全部依赖命令输出确认不靠肉眼判断。从那以后我每次 GPON 开局都会强制走一遍「VLAN 通道 → 单 ONU 全流程验证 → 批量脚本生成 → 全量 display 核对 → 双侧 save」这套流程哪怕只有两台 ONU 也照样执行。批量模板的价值不是省那几分钟敲命令的时间而是把重复性操作从「手工逐条输」变成「脚本生成 命令输出核对」少掉一个坑开局就顺一大截。希望这份脚本的拆解和踩坑复盘能帮到你——GPON 这活儿看着是命令拼的是细心。本文还有配套的精品资源点击获取