银行机房四光口物理隔离改造:信创环境下的实战记录 去年底接到一份整改通知测评机构来行里做复测一眼盯上了机房角落那台承担核心业务的老服务器。它虽然用VLAN把几个网络域分得清清楚楚可物理网口只有一个电口插着一条线缆让多个业务共用整改结论写得很直接虚拟隔离不等于物理隔离限期整改。恰逢那批设备也进了信创替换名单银行网络安全升级和国产化改造就这样撞在了同一个窗口期。我们能做的就是重新设计一套四光口物理隔离架构把生产网、办公网从物理层彻底分开顺便把整个改造过程走顺。这篇文章就记录我们行这次升级的完整经历——架构为什么这么设计、信创环境下遇到过哪些适配问题、割接怎么做到不慌不乱。1. 整改通知背后的逻辑虚拟隔离为什么过不了关物理层到底切了什么1.1 一次测评测出的虚拟隔离痛点以前总觉得只要VLAN划分清楚网络就是隔离的。那台老服务器上跑着办公终端、监控采集、部分管理应用我把它按VLAN隔成三个段VLAN间用ACL控制自认为天衣无缝。测评老师的意见很朴素你从一个物理网口出来的流量在网卡内部和同一根网线上是有交叉路径的VLAN只是数据链路层的逻辑标签一旦网卡驱动异常、流量突增或配置误操作隔离边界就可能被击穿。这个说法让我重新审视隔离二字的含义。等保里强调的物理隔离核心不只是逻辑上不能互通更是物理链路上不允许共享传输介质。同一根光纤、同一个网口、同一块网卡都算共享。只有把生产网和办公网的信号分别走到独立的光口、独立的光纤、独立的交换机端口上才叫真正的物理隔离。1.2 隔离不仅是安全更是故障域的切割做网络时间长了会发现物理隔离带来的好处远不止合规。有一次办公网某个楼层交换机的广播风暴因为当时那台服务器混接办公网风暴直接从网口灌进服务器导致这台机器上所有业务全部卡死生产网的应用也受了牵连。如果是纯物理隔离架构办公网的风暴最多影响办公网自己的链路生产网光口是独立的网卡内部到生产业务的路径完全不受干扰。这其实是在切割故障域。两个网域共享一个物理网口意味着故障也会共享。一个网口承载的流量异常比如突发广播、未知单播、环路流量都会挤占另一个网域的带宽资源。割开之后每个业务域独享一个光口、一条光纤链路故障半径一下子就小了。1.3 信创替换给了架构重构的窗口期整改期限和信创替换节点重叠反而成了好事。如果单独为整改采购新设备流程长、预算还要单独打申请但设备本来就该更换新采购的国产化整机里直接规划好四光口布局相当于一次变更同时解决了合规整改和设备换代两个问题。我们当时的计划是新到的国产化服务器统一配置四光口网卡不再额外购买电口扩展卡。银行网络安全升级的核心动作就落在这块网卡上——两个光口分配给生产网两个光口分配给办公网每个网络域内部再互相做冗余。信创环境下的驱动、光模块兼容问题后面慢慢磨出来的经验实操价值比方案本身还要大。2. 四光口架构的设计推演每个网口都应该有自己明确的任务2.1 光口 vs 电口不只是换个接口形式有人问为什么不继续用电口加两块四口电口网卡不也一样能隔离吗从隔离角度确实可以但电口有两个绕不开的短板。第一是传输距离机房到楼层交换机的距离超过90米六类网线的极限就摆在那边光口随便就是几公里骨子里更适合银行这种跨楼层、跨楼宇的网络布局。第二是抗干扰和防泄露光信号不产生电磁辐射也不会感应外界电磁干扰对金融机房这种高敏感环境天然更适合承载敏感业务流量。还有一个常被忽略的点电口需要用屏蔽/非屏蔽双绞线线缆在机柜里盘绕、走线架上的捆扎时间久了很容易被踩、被拉扯一个水晶头接触不良就会导致链路闪断。光纤有专门的光缆槽道和熔接盒物理防护等级和施工规范性都更高。既然要搞物理隔离不如把传输介质这条腿也换成更踏实的。2.2 四个光口的分配策略主备与网络域的取舍四光口怎么分配我在设计阶段反复权衡过两种方案。第一种是22模式生产网两个光口做为主备办公网两个光口做为主备。这种方案的好处是两个网络域完全对称任意一条光纤断了另一条立刻顶上故障切换不会影响任何业务。第二种是31模式生产网占三个光口办公网占一个适合生产网流量大、单链路带宽需求高的场景但办公网一旦那个光口出问题就单点故障了。我们最后选了22。原因很简单银行的核心诉求是业务连续性生产网链路必须有冗余办公网虽然不是实时交易但内部系统、OA、邮件同样不能断两个域都不能接受单点光口。四口网卡里每两个光口绑定为一个bond生产网两个口做active-backup办公网两个口也做active-backup平时主口跑流量备份口同步链路状态但不承载业务。手动主备切换比动态聚合省心交换机那头不需要配LACP排障也直观。2.3 配套选型网卡、光模块和隔离交换机的联动关系设计到这个层面选型就不是只看网卡了。网卡本身要注意几点必须是PCIe接口最好支持RSS多队列保证多核CPU能分散处理网卡中断光口要支持热插拔的SFP或SFP模块方便后期维护网卡的芯片方案要在国产操作系统内核里能找到驱动或者厂商能提供适配的驱动包。光模块的选型同样关键千万不要随意采购。我遇到过不同品牌光模块在国产交换机和网卡之间出现协商失败的情况后面细说。规划阶段就把模块品牌、型号、传输距离统一列成兼容矩阵省得后期排查到崩溃。交换机侧生产网和办公网各连一台独立的隔离交换机两台交换机之间不互联、不配VLAN Trunk从服务器网口出来的信号只在各自的交换机域里走物理隔离的链路才算彻底闭环。3. 信创环境适配实录从加载驱动到光模块识别坑都是一步步踩平的3.1 驱动加载离线rpm、编译模块与固件版本新服务器到了之后第一个下马威来自操作系统。国产化整机预装的是基于Linux内核的国产OS版本迭代快内核从4.19到5.10都有。而那款四光口网卡官方只提供了针对特定内核版本的驱动包系统内核一更新驱动模块就加载不上了。机房不能随便联外网我们只能拿着驱动rpm包在离线环境里装折腾了大半天。我的建议是新设备到货后第一件事不要把业务系统往上搬先在一个独立分区或同型号备用机上做驱动验证。确认lspci能看到网卡、ethtool -i能识别驱动版本、modinfo能正常显示模块信息再进入后续配置。如果厂商驱动只支持某个固定内核版本就把系统内核锁版本不随意升级避免驱动模块和内核不匹配导致网卡消失。还有一个坑是固件版本。网卡的板载固件如果太旧即使驱动加载成功光口也可能无法协商到预期的速率。建议到网卡厂商官网把固件升级到支持列表里的最新版本升级过程要注意不能断电否则网卡直接变砖。我们是把所有网卡固件统一升级后才明显减少了光口的异常掉线。3.2 光模块兼容矩阵换一张网卡不如换一个模块信创环境里最玄学的问题就是光模块兼容性。我们的四光口网卡和交换机分别来自不同生态网卡的SFP接口对模块的DDM数字诊断信息支持得不好。最开始几根光纤插上去交换机端口能起来但系统日志里反复报模块信息读取失败端口忽up忽down。查了几天最后发现问题不在网卡硬件而在光模块内部的EEPROM存储格式和网卡的读取逻辑不兼容。摸索出来的解法很简单成套采购与网卡官方兼容列表里标注的模块型号不要贪便宜买通用第三方模块。兼容列表没有的型号即使参数一模一样也可能在协商、DDM上报、告警阈值这些细节上有偏差。我们后来把生产网和办公网的光模块全部换成兼容列表中的型号端口瞬间稳定下来误码率也降到了正常水平。这件事让我长记性物理层的东西兼容性是第一位参数是第二位。3.3 性能实测万兆光口在国产平台上的实际吞吐架构跑通之后我们做了两轮性能验证。第一轮用iperf3打流双光口bond主备模式下单条万兆链路TCP吞吐测到9.4GbpsCPU占用率在30%左右。第二轮模拟生产业务流量在隔离的两个网络域分别起测试机打流两边互不干扰验证了物理隔离确实能保证故障域和带宽域相互独立。这里提醒一句国产OS下有些网卡驱动默认关闭了硬件校验和卸载、多队列功能吞吐会明显偏低。建议装完驱动后检查ethtool的offload参数把tx-checksum-ipv4、rx-checksum-ipv4、tcp-segmentation-offload这些开启多队列方面把网卡的combined队列数量调到CPU核数对齐均衡负载会好很多。我们调整前后小包转发性能提升了接近一倍。4. 割接实施复盘准备越充分切换越像一次普通变更4.1 割接前的物资与回退方案把意外当成常态来准备割接提前两周开始准备。首先是光缆路径规划从机柜到隔离交换机我们预放了两根备用光缆一根走机柜顶部走线架一根走地板下桥架目的就是万一正式光缆被意外拉断还有物理备份通路。每根光缆两端都贴了对应标签光口编号、业务域、对端交换机的信息全部写清楚避免半夜割接时还要对着灯光辨认。回退方案是割接前必须定死的。我们的原则是所有配置改动用脚本生成并备份原配置文件和回滚命令直接放在带外管理机里。一旦割接后30分钟内验证不通过立刻执行回滚命令把网卡配置和路由表恢复原状。因为物理链路已经放好回退时只要把服务器网卡配回旧状态、光缆暂时不启用即可业务侧冲击能降到最低。4.2 四口bond配置与网络策略的联动细节割接当天实际配置比想象中繁琐。四口网卡中生产网两个口配置成一个bond主备办公网两个口配置成另一个bond主备。用的还是ifcfg文件方式配置BOND_OPTSmode设为active-backupmiimon设为100毫秒。两个bond接口分别对应不同VLAN和不同网段IP、网关、路由策略逐一核对避免路由重叠导致流量走到错误的网络域。网络策略和防火墙策略也要同步调整。原来混用物理网口时防火墙策略是在VLAN间做ACL割接后生产网和办公网变成完全独立的物理通道防火墙和隔离交换机的端口策略要按新拓扑重撸一遍。我们用了一整天在测试环境里模拟割接把所有流量路径从服务器网口到交换机口逐一验证确认没有出现跨域路由泄漏才敢在正式窗口里操作。4.3 验证清单从链路层到应用层的完整体检正式割接选在凌晨业务低峰期整个切换窗口只用了不到20分钟但验证花了将近两个小时。验证清单我按层级列了四层第一层链路层查看各个光口Link状态确认生产网和办公网的主备口都亮起来ethtool里速率协商正确。第二层网络层ping网关、ping对端、确认路由表和ARP表都正常分域测了几条业务网段互通。第三层应用层让业务同事登录核心系统跑通几个关键交易流程确认从办公网访问生产网管理通道依然受控。第四层冗余演练手动把生产网的主用光口拔了确认流量秒切到备用光口业务应用的数据包没有明显丢包。这里有个小心得拔光口做演练时要在交换机侧也同步观察端口状态变化确认链路down和up的告警都正常上报。如果只盯着服务器侧看可能漏掉交换机端口协商过程中的状态抖动。完整链路都健康割接才算真正成功。5. 上线之后的运维复盘光口网络的维护习惯要重新养5.1 光口网络最常见的三类故障物理隔离架构上线后的维护和原来电口直连的思路完全不一样。最容易出问题的第一类是光口脏污。光纤跳线被拔插过几次后插芯端面容易附着灰尘轻微污染会导致光链路误码、端口反复重启。我们后来给每根光纤都配了防尘帽巡检时至少看一眼跳线插头的状态发现异常就用光纤清洁笔处理。第二类是光纤过度弯曲机房走线空间局促部分跳线弯曲半径小于规范值光信号衰减明显上升。第三类是光模块老化模块的工作温度在夏天机房里很容易接近上限一旦温度告警频繁出现就要提前更换不能等到链路崩溃。5.2 链路告警的排查顺序与工具光口网络的故障排查我自己总结了一个顺序先看服务器侧ethtool端口状态和光模块DDM信息再看交换机侧的告警日志最后才去排查光纤链路本身。绝大多数情况下服务器侧和交换机侧的状态能直接告诉我们问题在哪一端。如果端口能够协商但频繁报误码优先用光功率计测试收发光值正常收光一般在-15dBm到-19dBm之间低于-23dBm基本就该查光纤接头和弯曲点了。工具方面除了命令行工具我们还把光模块的DDM信息纳入了监控系统定时采集温度、电压、收发光功率并画曲线。这个做法对光模块老化趋势的判断特别有用有几个模块的发光功率缓慢下降曲线一出来就提前换了避免了后期业务中断。5.3 我们后来做的三项改进架构稳定运行后我们又陆续做了三件事虽然不起眼但价值不小。第一是把所有光口、光纤、交换机端口的对应关系做成一份动态更新的台账任何一次跳线变更都在第二天更新文档避免三个月后没人说得清某根光纤接的是哪个交换机口。第二是在四光口网卡上配置独立的管理网络光口不对公网暴露管理员在办公网侧通过带外管理跳板做设备运维切割了管理面和数据面的风险。第三是把这次割接的整套脚本、验证清单、回退方案沉淀成标准操作手册后续再有国产化设备替换直接按这个模板执行大大缩短了变更准备时间。光口物理隔离架构这东西看着简单就是把四个光口分别规划好真正落地时涉及的驱动适配、模块兼容、割接验证、后期维护哪一个环节没做到位都会给业务带来风险。我们这次能在信创窗口期里平稳完成银行网络安全升级靠的不是某个灵光一现的方案而是一步步把物理层的细节磨透。把那台老服务器的单电口混跑问题彻底解决的那一刻我心里只有一句话物理层的钱和功夫真的一分都不能省。