
我是从一次“纤芯不够用”开始认真研究BiDi单纤模块的。在光纤通信这行干久了你会发现一个反直觉的事实很多网络扩容最后不是卡在设备上而是卡在纤芯数量上。设备不够可以加板卡端口不够可以换交换机但光缆里的纤芯一旦用完要么重新放缆要么租用裸光纤两条路都是钱和时间的无底洞。BiDi单纤模块就是在这样的背景下进入我视野的——它能让一根光纤同时完成收和发把双纤链路占用的芯数砍掉一半。这篇文章我会把原理、选型、部署和排障完整讲清楚适合做网络运维、数据中心、弱电工程以及所有被纤芯数量卡过脖子的朋友。1. 一根光纤如何做到“来去自如”从纤芯不够用说起1.1 双纤链路为什么“浪费”芯数传统光模块的收发逻辑非常简单一个端口里两根光纤一根专门发TX一根专门收RX。对端设备也相同于是两台设备之间的链路至少需要两根芯一根走A到B的方向一根走B到A的方向。这个设计在纤芯充足的时候没有问题但在存量网络里就是灾难。我见过太多写字楼和老厂区当时敷设的是6芯或者12芯光缆经过十几年的消耗监控、门禁、办公网、电话、Wi-Fi回传各占一对最后能用的只剩一两根芯。这时候随便上个新业务第一反应就是“没芯了”。想补放光缆施工手续、穿管路径、协调物业哪一个都不是一周能搞定的。想租运营商线路月租长期算下来比买几百个光模块都贵。双纤方案的“浪费”在于每条业务链路必须占一对芯不管这对芯的利用率有多低。哪怕只是一条几百兆的临时链路也得拿走两芯。这种芯数守恒的困境在老旧基础设施改造项目里几乎天天能碰到。1.2 BiDi模块的“省芯”思路BiDiBidirectional Optical Sub-Assembly双向光组件模块的思路非常直接既然传统双纤方案的一条链路需要一根发、一根收那能不能把收和发塞进同一根光纤让一根纤同时干两件事答案是可以的而且技术手段很成熟。BiDi光模块把激光器和光探测器整合到同一个光口内再通过波长来区分方向。简单说就是A端用波长1发同时接收波长2B端正好反过来用波长2发同时接收波长1。两个方向的光在不同波长上互不干扰单根光纤就能构成一条完整的双向链路。这样做的直接收益是光纤利用率翻倍。假设你手头只有4芯双纤方案最多跑2条双向业务换成BiDi后可以跑4条。很多项目的扩容需求其实只需要多1-2条链路BiDi模块正好能把你从“必须放缆”的困境里救出来。我印象很深的一次项目核心机房到分机房之间只剩一对可用纤芯需要同时跑办公网和监控回传本来准备等施工队来放新缆后来直接用两对BiDi模块半天就通了放缆计划直接取消。提示PON网络GPON/EPON本质上就是BiDi思想的规模化应用。OLT到ONU之间一根光纤下行用1490nm上行用1310nm运营商接入网大量采用这种模式。所以你身边的宽带接入其实一直在用单纤双向技术。2. 波长分向BiDi单纤模块的原理其实不复杂2.1 不同波长“各走各的路”光在同一条光纤里传输不同波长的光可以互不干扰地共存。这就像同一条高速公路上有多条车道不同车辆各走各道互不抢道。WDM波分复用技术的基本思想就是把不同波长当作独立通道来使用BiDi模块做的就是在这个思想基础上只取两个波长一个负责去程一个负责回程。具体到一对BiDi模块上假设A端模块的发送波长为1270nm接收波长为1330nm那么B端模块就必须反过来发送波长1330nm接收波长1270nm。两端波长一一对应方向相反光信号在同一根光纤里相向而行谁也不会干扰谁。因为双向是“同时”进行的不需要时分切换也不需要有主从协商链路两端的延迟特性和普通双纤模块没有任何区别。这种用波长区分方向的方式在通信领域有个更正式的名字叫“单纤双向”Single-Fiber Bidirectional。它不是BiDi模块的专利但BiDi模块把它做成了标准化的、即插即用的产品形态。2.2 BOSA光组件的内部光路普通双纤模块内部有两个独立的光组件TOSA负责发射ROSA负责接收各自接一根光纤。BiDi模块则把这两个组件合并成一个BOSABi-Directional Optical Sub-Assembly共用一个光口。BOSA内部的关键器件有激光器LD、光电探测器PD或者APD、波长选择性滤光片通常是TFF薄膜滤光片和透镜。光路可以这样理解本端激光器发出的光经过滤光片特定方向反射或透射后从光口射入光纤对端传来的光从同一光口进入模块后被滤光片按照波长分光进入探测器转换成电信号。这个结构中最重要的就是滤光片。它必须保证本端发出的波长不会串进自己的接收探测器否则会出现“自干扰”轻则灵敏度下降重则直接烧毁接收端。也正是因为收发光路共用同一端面BiDi模块对光路反射比普通模块更敏感这为后面部署排障埋下了伏笔。2.3 常见波长配对和速率形态市场上常见的BiDi模块波长配对大致有下面几种组合速率形态A端发送/接收波长B端发送/接收波长典型应用千兆 SFP1000BASE-BX101310nm TX / 1490nm RX1490nm TX / 1310nm RX千兆单芯链路万兆 SFP10G单纤1270nm TX / 1330nm RX1330nm TX / 1270nm RX万兆单芯链路25G SFP2825G单纤1270nm TX / 1330nm RX1330nm TX / 1270nm RX25G单芯链路GPON ONU / OLT1310nm TX / 1490nm RX1490nm TX / 1310nm RX无源光网络传输距离方面常见的有10km、20km、40km、80km等规格。多数单模BiDi模块使用的是G.652/G.657单模光纤多模光纤也有BiDi形态常见波长是850nm和910nm的组合主要用于短距数据中心场景但产品选择比单模少很多。需要特别提醒一个容易踩的坑40G QSFP BiDi和100G BiDi虽然名字里也有BiDi但它们大多不是单芯方案。以40G为例光模块使用双工LC接口两根光纤上各跑两个波长把4对收发压缩到2根光纤。这和点对点单芯BiDi1G/10G/25G不是一回事。买之前一定要看清模块资料里写的是“Single-Fiber Bidirectional”还是仅标注“BiDi”。我曾经见过朋友把40G BiDi当成单芯模块买回来结果现场发现还差一根芯项目差点延期。3. 选型实战从速率波长到兼容性边做边学3.1 先确认速率、接口和光纤类型选BiDi模块的第一步不是看型号而是确认你设备上插的是什么接口。SFP对应千兆SFP对应万兆SFP28对应25GQSFP28对应100G。接口形态决定模块外形也决定速率上限。别买回来才发现端口速率不匹配。第二步是确认链路光纤类型。单模BiDi必须接单模光纤多模BiDi必须接多模光纤。虽然现在很多模块在短距离场景下也具备一定的宽容度但把单模模块接到多模光纤链路上光功率和链路预算会完全不可控不建议这么玩。第三步是确认链路距离。这里的距离不是指两个楼之间的直线距离而是光纤实际走线的总长度包括配线架跳线、机房盘纤的冗余长度。我曾经见过设计图上标注500米实际走线加冗余超过2公里的项目如果按500米选了短距模块后期基本必出问题。3.2 波长配对表里挑A/B端BiDi模块都是“成对”出现的买的时候要么直接买标好A端和B端的一对要么根据波长配对表来组合。最容易出问题的是自己从库存里零散拼模块比如手里有一个1310nm TX的千兆模块又有一个1490nm TX的两个看起来都能用但它们波长相同的情况下根本通不了。正确的配对方一定是“一端发什么波长另一端就收什么波长”。具体判断方法很简单看模块标签上的TX波长如果两个模块的TX波长不同那它们大概率能配对如果TX波长相同绝对通不了。比如A端是1270nm TXB端必须是1330nm TX。3.3 传输距离和光功率预算光模块上标注的传输距离比如10km、40km是厂商在理想链路损耗下的测试值实际部署不能只看这个数字还得自己算链路余量。最基本的公式是链路余量 发射光功率dBm - 接收灵敏度dBm - 链路总损耗dB链路总损耗包括光纤衰减、连接器插损、熔接点损耗和法兰盘损耗。光纤衰减参考值G.652单模光纤1310nm约0.35dB/km1550nm约0.20dB/km850nm多模光纤约2.5-3dB/km。连接器每个插损0.2-0.5dB熔接点每个0.02-0.1dB。举个例子。一段10km的单模链路使用1270/1330nm 10G BiDi模块发射光功率典型值为-1dBm接收灵敏度为-14dBm。光纤损耗按10km×0.35dB/km3.5dB算两端的连接器损耗共0.6dB熔接点损耗按0.2dB预留。链路余量就是-1 - (-14) - 3.5 - 0.6 - 0.2 8.7dB。余量8.7dB是安全的正常要求至少留3dB以上。如果计算出来余量不足就需要换更长距离的模块或者排查链路中是否存在过度弯曲、法兰盘过多等问题。另一个极端情况是链路极短比如同机房内几十米跳线直连部分模块的接收端可能会过载。如果观察到RX光功率超过模块的过载点链路容易出现误码。这时可以加固定衰减器或者绕几圈光纤临时衰减但对大多数短距模块来说几十米的损耗一般还在其承受范围内。3.4 兼容性第三方模块能不能用不少主流交换机的原厂模块价格偏高很多人会选第三方兼容模块。需要注意交换机对光模块是有兼容校验的。H3C设备上插了不兼容模块可能报“unsupported transceiver”思科设备直接提示“transceiver not supported”端口起不来。我的建议是采购前先向模块厂商提供交换机品牌、型号和软件版本让厂商确认兼容性到货后不要一次全插先拿一套在当前设备上验证。如果遇到不识别的情况通常有三个解决思路一是更换厂商匹配的兼容版本固件二是检查交换机软件版本是否需要升级三是把模块换到别的同型号交换机上交叉测试排除端口故障。另外同一个项目里最好整批买同一家的模块A端B端成对管理。不同厂商对波长容差和兼容码的处理有差异混用后一旦出问题排查成本远比省下的那点差价高。4. 安装与故障排查我踩过的那些坑4.1 A/B端插反最常见但最好排查BiDi链路最常见的故障就是A/B端插反。现象很典型两端模块都插好光纤也接上了但接口状态死活不上来或者一会有光一会没光。排查方法很简单先看两端模块的TX波长。如果发现两个模块的TX波长相同比如都是1270nm那肯定是一个模块拿错了。解决办法也直白把其中一个模块换成对应波长的模块比如1330nm TX或者把两端的模块互换位置重新配对。有些模块的标签会在连接器或者拉环上标“A”“B”看清楚再插。提示很多模块标签上的“A”和“B”并不是速率区别而是波长配对方向。A只表示这个模块的TX波长对应另一端模块的RX波长没有其他含义。4.2 用了双工跳线却没接对芯这个问题比较隐蔽。BiDi链路需要单芯连通但不少现场用的还是双工LC跳线。双工LC跳线内部是两根光纤如果一端插在A座另一端插在B座理论上用的确实是同一根芯。但有些人为了省事直接把双工跳线当两根单芯用只插一脚结果插错了芯就会出现“对端能收到我这边的光但我这边收不到对端的光”。这个症状的本质是本端发的光走了光纤1对端发的光走了光纤2两边都在发送但接收都是空的。遇到这种问题先不要怀疑模块坏了先用一根确认完好的单芯LC跳线替换测试或者用光笔照射其中一芯确认两端到底哪根芯是连通的。我建议在现场按链路标明“芯号端别”比如“F1-A”和“F1-B”从光交箱到机房跳线都沿用同一个编号能省掉大量后期排障时间。4.3 光功率异常与反射用命令或者网管查看光模块的DDM信息时如果发现TX光功率正常但RX光功率低大概率是链路损耗过大。先用光功率计在两端分别测实际收光再逐段排查是不是有跳线接头松了、法兰盘氧化了、熔纤点损耗异常或者光缆某处弯折半径过小。如果RX光功率读数波动明显、时好时坏优先怀疑反射。BiDi模块因为收发光同路对反射尤其敏感。我在单纤链路上遇到过APC跳线混用的案例现场配线架用了APC端面的跳线而光模块接口是UPC端面直接怼上后链路误码率飙升。APC跳线不能插普通光模块因为它有8°斜面端面不匹配而且APC通常用于CATV或PON场景和以太网光模块混用后反射会非常严重。遇到RX功率波动先用光纤清洁笔清洁所有接头端面再从新做两端跳线往往就能解决问题。4.4 兼容、速率和协商问题如果模块兼容性没问题、波长也配对但端口还是不能up就要看交换机的速率和协商配置了。部分设备端口默认开启自协商如果对端设备强制了某个速率两端速率匹配不上也会起不来。这时候可以在两端把速率强制设置为一致再观察接口状态。交换机上判断BiDi模块是否被正常识别常用命令# H3C 查看光模块信息 display transceiver interface GigabitEthernet 1/0/1 # H3C 查看光模块诊断信息 display transceiver diagnosis interface GigabitEthernet 1/0/1 # Cisco 查看光模块信息 show interface transceiver # 查看端口状态和计数器 show interface status show interfaces counters如果模块被识别但收发光功率都在正常范围端口状态还是down可以考虑重启两端接口或者插拔一下模块让设备重新读取DDM信息。实在不行把模块插到另一个已知正常的端口做交叉定位判断是模块问题、端口问题还是链路问题。下面这是我整理的一个快速排查对照表现场一般能直接用现象可能原因排查方向端口downRX无光A/B端插反、光纤芯不对检查两端TX波长是否配对、用单芯跳线替换测试RX光功率低链路时通时断连接器污染、链路损耗大、反射清洁接头端面、用光功率计逐段测试模块不被识别设备兼容校验不通过核对兼容列表、更换固件版本端口up但丢包严重速率不匹配、反射过大、接收过载强制速率、检查APC/UPC混用、查看DDM光功率两端光功率正常但业务不通交换机VLAN、路由或双工配置问题检查端口配置、接口状态和统计计数5. 单纤还是双纤项目里我怎么抉择5.1 优先选BiDi的场景单纤BiDi模块并不是要取代传统双纤方案它解决的是特定场景下的问题。这几类情况我会优先考虑BiDi首先是纤芯紧张且扩容困难。老旧楼宇、跨园区、跨街道的光缆资源物理上已经没法轻易新增纤芯这时候用BiDi把现有芯数利用率翻倍是最快且成本最低的方案。其次是租用的裸光纤按芯计费。运营商出租裸光纤往往按纤芯数量收费一条业务原来要占两芯用BiDi后只占一芯长期运营成本直接下降一半。尤其是异地双数据中心互联这种按月付费的场景省下来的租金相当可观。再者是穿管空间有限、不方便放新缆的场景。比如已经塞满的通信管道想再进一根光缆几乎不可能但通过更换两端光模块释放出纤芯等于在没有新增物理资源的情况下完成了扩容。5.2 坚持用双纤的场景反过来说以下场景我不会用BiDi。新建机房、新建光缆项目纤芯规划充足的情况下双纤模块性价比更高同速率双纤模块通常比单纤模块便宜而且产品选择多、交付周期短。大规模数据中心内部的短距互联特别是多模光纤场景不建议用BiDi。多模BiDi选择少而常规的SR模块在短距场景下成熟、便宜、功耗还低。数据中心对带宽升级要求高双纤链路后续升级到并行或者波分方案时灵活性更好。如果运维团队对BiDi不熟悉也要慎重。单纤方案有一个隐含的维护门槛模块必须成对备件库存里必须同时有A端和B端。如果平时只有一个人管网络一旦插错模块又没人懂A/B端原理排障时间会成倍增加。5.3 管理好成对关系比选型更重要最后分享一个我自己的习惯。无论最终选双纤还是单纤我都会给光模块做“成对标记”——在模块标签上额外贴一张小标签写明链路编号和端别比如“LNK01-A”“LNK01-B”交换机端口描述也同步命名。这样后续如果有人更换模块看一眼标签就不会拿错端口。BiDi模块的排障经验教会我一个道理这类看起来简单的器件出问题时往往不是模块本身坏了而是波长配对、跳线芯序、端面清洁这些“周边细节”出了问题。把这些细节管好单纤方案用起来其实一点也不复杂。