防火墙与交换机光口对接无法UP?速率模式与光模块匹配是关键 客户电话打过来第一句就是“防火墙和交换机光口对接不上接口down了一天了光纤也换过模块也换过你们赶紧来人看看。”我听到这种描述一般不会急着上设备先问清楚两个型号一边是USG6555F一边是华为6857交换机CloudEngine 6857系列。听完我就知道这单大概率不是硬件坏了而是端口速率和接口类型之间那点“软坑”没趟过去。今天把这单排障过程完整记录下来给以后处理类似“光口对接无法UP”的兄弟做个参照。文章适合两类人一类是刚接手华为防火墙和安全域运维的还有一类是经常在交换机和防火墙之间做互联但偶尔被光接口搞到头皮发麻的老工程师。我先说结论光口起不来百分之八九十的原因出在物理层建链而物理层建链失败的根因里端口速率模式不匹配、光模块规格和接口类型对不上、光纤收发反了这三件事占了绝大多数。真正是光模块烧掉、接口硬件坏掉的占比反而小。所以排障的时候别拆设备先按顺序查。1. 故障现场客户报障时我听到的第一句话1.1 一张拓扑图和一句“光口起不来”现场拓扑不算复杂USG6555F部署在核心交换机和外网之间作为边界防火墙下联口用的是10GE1/0/0是一对SFP光口对端是CE6857交换机上联口是25GE1/0/1。中间走了一段ODF配线架业务经过两段跳纤到设备端口。客户描述“光口对接不上”我上设备看了一眼接口状态是物理层DOWNLine protocol也是DOWN。这里有个很重要的基础知识华为设备上接口状态分两行第一行current state是物理层第二行Line protocol是链路协议层。如果物理层就是DOWN那后边配置什么都白搭如果物理层UP、协议层DOWN那才是VLAN、封装、协议协商的问题。这次两边都down方向很明确——先解决物理建链。1.2 设备上看到的down状态说明什么登录防火墙看接口信息输出是这样USG6555F display interface 10GE1/0/0 10GE1/0/0 current state : DOWN (if-down) Line protocol current state : DOWN Description: ......再登录交换机看对端CE6857 display interface 25GE1/0/1 25GE1/0/1 current state : DOWN (if-down) Line protocol current state : DOWN ......两端都是物理层down说明光模块可能没发光、或者发了光对端没收到、或者两端速率模式对不上。我不建议一上来就换模块因为换模块是个体力活而且如果根因是速率协商换多少模块都没用。客户说“光纤也换过模块也换过”那就更说明问题不在硬件本身而在两端的“频道”没对上。1.3 物理层DOWN和协议层DOWN别再混为一谈很多刚入行的朋友看到接口down就慌其实先分清是哪一层down排障方向就清晰一半。我做了个简单对照状态组合含义优先排查方向current state DOWN物理层未建链光模块、光纤、速率模式current state UPLine protocol DOWN物理层通协议层断VLAN、接口封装、二层协商current state UPLine protocol UP链路正常路由、安全策略、业务配置这次属于第一行所以我把精力放在物理层三件套上。2. 物理层三件套光模块、光纤、光功率逐个过堂2.1 光模块的“身份证”怎么验物理层排障第一步先看光模块信息。华为设备上命令很统一CE交换机用display transceiverUSG防火墙也一样USG6555F display transceiver interface 10GE1/0/0 Interface 10GE1/0/0 transceiver info: Transceiver Type: SFP Vendor Name: FINISAR WaveLength: 850nm ...关键看三个字段模块类型SFP还是SFP还是SFP28、波长850nm是多模短距离1310/1550是单模长距离、厂商。如果看到Vendor Name是第三方兼容厂商也别急着下结论华为设备对非原厂模块会打一条“Transceiver is not certified”的告警但大多数兼容模块正常工作。真正要警惕的是接口速率层级和模块速率层级的匹配——SFP是10GSFP28是25GSFP是千兆这三类模块虽然外观长得几乎一样但插错地方就会产生“看起来插得进去实际上永远协商不上”的诡异现象。2.2 光模块和接口的速率层级对不上是一切麻烦的开始本次故障中防火墙面是SFP模块10G交换机侧25GE口上插的是SFP28模块25G。物理上SFP28模块可以插进25GE口25GE口也兼容SFP模块但问题是接口默认工作在25G速率模式而防火墙是10G两边不在一个频道上。这就是后面要重点解决的部分。不过在动配置之前我先把光纤链路也验了一遍。这里多说一句25GE的SFP28模块和10GE的SFP模块外观几乎一样但是模块标签上会写明速率等级很多现场同事插模块的时候根本不看标签拿起来就插结果就是物理口一直down。所以验模块时凡是看到模块速率和接口速率对不上的情况先记下来这就是最大嫌疑。2.3 光纤收发反了比你想的更容易发生双纤LC跳线是分TX和RX方向的A端口的TX必须连到B端口的RX两根纤不能插反。这个道理大家都懂但现实中中间隔了一个ODF架、两段跳纤、一段尾纤之后哪根是TX哪根是RX早就不写在脸上了接反的概率非常大。排查方法很简单先把模块拔下来看模块发光口有没有红光。多模850nm模块的红光肉眼可见单模模块的1310/1550nm红外光肉眼看不到需要借助光功率计。如果一端模块发光正常另一端Rx光功率却是-40dBm以下甚至读不到八成就是光纤收发接反或者中间跳接处有断点。把两端收发换一下再测看光功率能不能恢复正常。我在现场还遇到过一种更隐蔽的情况两端设备间走ODF架机房的尾纤和跳线在ODF端子处被人重新打过看起来两端接对了实际上中间某一段收发已经交叉。这种问题光靠两侧设备看不出来必须用光功率计在ODF端子两侧各测一次找到光功率消失的那一段。2.4 光功率衰减到多少算“病危”光模块的DDM信息能直接读出收发光功率命令是CE6857 display transceiver diagnosis interface 25GE1/0/1 Tx Power: -3.2 dBm Rx Power: -16.5 dBm Temperature: 42 Celsius判断标准不复杂10G SR多模模块发送功率一般在-2到-5dBm接收灵敏度通常在-14dBm左右。我自己的经验阈值是这样的指标正常临界异常Tx Power-2 ~ -5 dBm-7 ~ -9 dBm低于-10 dBm或读异常Rx Power高于-10 dBm-10 ~ -14 dBm低于-14 dBm链路大概率down温度0~60°C60~75°C超过75°C建议关注注意不同厂商模块的灵敏度有差异上面只是通用判断。如果TX power正常但RX power很低问题在链路上跳线、ODF、活动连接器如果TX power本身就不正常模块大概率已经损坏或没插到位。这单实测下来两端的收发光功率都在正常范围物理链路硬件上是通的所以我把疑点锁定到速率模式进入下一轮。3. 速率模式25GE口和10GE口之间的协商黑盒3.1 “自协商”在光口上到底是怎么回事先说一个容易混淆的点光口的“自协商”和电口RJ45千兆口的自协商不是一回事。电口自协商通过双绞线上的脉冲信号协商速率、双工模式协商失败会降级。而10G和25G光口没有像电口那种完善的速率自协商机制建链本质上靠两端光模块的物理编码锁定速率。你插一个10G模块接口就必须工作在10G模式如果接口默认去尝试25G的模式对端模块根本不响应物理层就锁不住表现出来就是接口一直down。打个比方两个对讲机一个默认在25频道一个开在10频道两边都喊破了喉咙谁也听不见谁。唯一的办法是手动把其中一个调到和另一个相同的频道。华为的25GE光口在启用自协商的情况下理论上应该能自动识别对端速率但从实际排障经验看25GE口插入10G SFP模块后自协商经常无法收敛接口会反复尝试25G建链然后失败。这也是为什么很多工程师抱怨“明明模块兼容速率也对但就是起不来”——问题就出在它默认跑到25G频道上去了。3.2 华为设备上的“频道”怎么调speed命令实战CE6857的25GE口对接10G模块正确做法是显式把接口速率降到10G。具体配置如下system-view interface 25GE1/0/1 undo negotiation auto speed 10000 commit为什么要先undo negotiation auto因为华为CE交换机的25GE口默认是自协商开启的在实际对接中25GE口插入10G SFP模块时自协商经常无法自动收敛到10G导致链路一直down。显式关闭自协商并锁定speed 10000反而最稳定。这个“显式锁定”的思路在华为光口对接场景里非常通用凡是跨速率层级对接都建议手动指定速率别指望自协商。防火墙侧也顺手检查一遍USG6555F的10GE口同样可以手动指定速率interface 10GE1/0/0 undo shutdown speed 10000配置完成后两端再看接口状态。这次很快就出现我们想看到的结果——接口状态从DOWN变成了UP。物理链路建链成功后后续配置VLAN、配IP、加安全区域才有意义。3.3 强制速率后还是down别忘了这三个“查漏项”如果speed 10000配完以后接口还是起不来不要急按照这个顺序查第一查光模块本身支持的最大速率。有些所谓的“万兆模块”实际上工作在千兆速率或者模块被刷过标签用display transceiver看模块的速率能力字段确认它确实支持10G。第二查接口是不是被关闭了。华为设备的接口虽然默认up但有些交付同事习惯把暂时不用的接口shutdown排查时执行一次undo shutdown并观察接口日志。第三查模块有没有插到位。SFP模块插入时会有清脆的“咔哒”声没插到位时接口可能显示down但模块Tx power又显示有发光。这种“薛定谔的模块状态”很迷惑人解决办法是拔出来重新插直到卡扣锁死。还有一个小技巧改完速率配置后执行一次shutdown再undo shutdown强制接口重新建链能省去等光模块自己收敛的时间。华为设备上这条命令组合是interface 25GE1/0/1 shutdown undo shutdown commit4. 改成eth-trunk后反而更起不来聚合场景的隐蔽坑4.1 业务侧要冗余结果聚合组比单口还难搞既然两边各有两个光口客户自然想着做链路聚合既扩带宽又保冗余。结果做完之后Eth-Trunk一直起不来两个成员口一个UP一个DOWN物理单口明明已经通了聚合组却还不如单口稳定。这个现象很有代表性。光口对接的故障如果只发生在单个物理口上解决起来相对简单一旦上了eth-trunk故障就会被放大物理层速率不匹配、LACP报文丢失、两端聚合模式不一致任何一个环节出问题整个聚合组都起不来。而且热点问题里也有人问“光口是做链路聚合还是主备”说明这个场景确实困扰了不少人。4.2 组聚合前必须满足的四个一致给要做聚合的兄弟列一个自查清单四项都满足再动手检查项要求典型故障表现成员口速率两端所有成员口速率一致25GE口要统一降到10G成员口物理UP但聚合组DOWN物理口状态加入聚合前每个物理口单独测试都能UP个别成员口DOWN导致聚合带宽异常聚合模式两端一致手工模式或静态LACP一端LACP一端手工成员口协商失败VLAN/接口属性成员口加入的VLAN、接口类型一致聚合UP但业务VLAN不通尤其第一条这次客户做聚合时交换机侧两个25GE口都降到10G了但有一个口的光模块还是25G模块另一个口是10G模块结果速率不一致导致一个成员口在聚合组里反复震荡。把两个模块统一成10G模式后聚合组才真正稳定下来。4.3 物理UP但成员口被踢出聚合组问题出在哪LACP模式下设备会通过成员口定期发送LACP报文。如果对端收不到报文成员口会被置为Down或Standby聚合组可用成员数不足Eth-Trunk就起不来。常见的报文丢失原因有两个一是物理链路本身不稳定速率不匹配、光功率处于临界值报文在物理层就丢了二是一端配置成了手工负载分担模式另一端还是LACP两边协议对不上。排查命令也很直接CE6857 display lacp statistics CE6857 display eth-trunk 1 verbose看LACP报文计数有没有持续增长看成员口状态是Selected还是Unselected。如果报文计数不增长优先查物理链路和两端模式是否一致如果Selected状态异常查成员口速率和VLAN配置。注意LACP报文计数不增长还有一个容易被忽略的原因光模块速率不匹配导致物理层时断时续LACP报文在链路上被丢弃这种情况在display interface里看到的就是接口状态频繁up/down翻动。4.4 防火墙侧Eth-Trunk的两个“隐藏规定”USG系列防火墙在Eth-Trunk上有两个容易踩的坑我在别处踩过这里说清楚第一成员口必须同类型。GE口和10GE口不能混在一个Eth-Trunk里25GE和10GE更不能混。聚合组的成员口速率不一致会出现一个口疯狂转发、另一个口空转甚至整个聚合组协商失败。第二安全策略要加在Eth-Trunk接口上不是加在成员口上。防火墙的接口要加入安全区域Eth-Trunk加入安全区域后成员口跟着走如果只在成员口上加流量从另一个成员口进来时会被安全策略拦掉表现为接口全UP但业务就是不通。防火墙侧的聚合配置片段参考interface Eth-Trunk1 trunkport 10GE1/0/0 trunkport 10GE1/0/1 mode lacp-static # firewall zone trust add interface Eth-Trunk1交换机侧对应配置interface Eth-Trunk1 mode lacp-static trunkport 25GE1/0/1 trunkport 25GE1/0/2 commit两端模式都是lacp-static成员口速率都统一在10G聚合组才能稳定up。如果只想做主备而不是负载分担那直接用两个物理口分别配置IP跑VRRP或路由优先级不需要聚合的复杂度。5. 这次排障留在我台账里的三点教训5.1 接口类型、接口速率、光模块速率别混在一个概念里这次故障最根上的原因其实是很多人把“25GE接口”当成“能插SFP模块的10G接口”来用。25GE接口物理上兼容SFP模块但速率模式默认是25G不下发speed 10000链路就永远建不起来。类似的组合还有GE SFP口插了10G模块、千兆口强制百兆等都属于“接口类型、接口速率、光模块速率”三者不匹配。以后遇到光口对接不上先把这三者的匹配关系理清楚能省掉一大半的无用功。5.2 光口排障的标准动作顺序不能跳我在长期排障中总结了一个顺序分享给同行参考确认两端接口命令是什么GigabitEthernet还是10GE还是25GE判断速率层级。display interface看状态是物理层DOWN还是协议层DOWN。display transceiver看光模块型号、波长、厂商判断模块速率和接口速率是否匹配。看DDM收发光功率判断链路衰减是否正常。检查光纤收发方向尤其是中间走ODF跳纤的场景。处理速率协商25GE口对接10G模块时强制speed 10000必要时undo negotiation auto。如果做了聚合再检查两端聚合模式、成员口速率、VLAN一致性。链路UP之后再回头看路由、安全策略和业务流量。这个顺序不是命令行顺序而是思维顺序。每次都从物理层开始逐层往上推不要一上来就怀疑配置。我见过太多现场同事一上来就翻配置翻半天发现物理层还是down白白浪费时间。5.3 配置完之后的三个“防回退”动作链路UP还不算完我必须把这次配置固化成能长期稳定运行的形态第一保存配置。CE交换机配置要用commit提交否则设备重启后配置丢失USG防火墙用save保存。这一步被忽略第二天设备重启故障复现的案例太多了。第二做一次拔插和接口重启验证。把光纤拔掉再插回去确认链路能自动恢复执行shutdown/undo shutdown确认接口能重新建链。目的很明确排除“一次性UP”的偶然性验证配置在真实运维操作下依然有效。第三跑真实业务流量。接口UP不代表业务通ping一下对端网关、跑一下业务端口确认防火墙安全策略放通再做业务验收。我曾经遇到接口UP但业务全断的尴尬就是安全策略没放行。最后说一句个人体会光口对接不上这种故障十次里有八次不是硬件坏了而是端口速率模式、光模块规格、接口类型这三样东西之间的匹配关系出了问题。把“速率层级”这个概念扎扎实实装进脑子里再配合一套不跳步的排障顺序这类故障基本都能在半小时内定位。以后遇到“防火墙和交换机光口对接无法UP”先别急着换模块按这篇文章的顺序走一遍大概率能直接找到答案。