拓扑图里的线,应该知道自己是万兆光
做方案,总要放一张网络拓扑图。以前用 Visio、PPT、draw.io 画,设备一多就乱,改一处要挪一大片,画出来也不太像一张正经的网络图。
这些还能忍。真正让我想动手的,是一个大项目:拓扑要完善,光模块是我对着图一条条手工数出来的,数了很久。
数的时候我一直在想:这张图是我画的,每根线是什么、连着谁,我画的时候都知道。可画完它只是一堆方块和线条,什么也不记得,还得我再从图上读一遍。
所以写了 MeshKo(界面里暂时还叫 NetTopo)。

前几次为什么没做成
这个工具我前后做过好几次。前几次都在堆「能编辑的画布」,功能越来越多,画出来的图还是不像话。
后来想明白了,画布是通用的,拓扑图不是。拓扑图里每样东西都有含义:
- 设备是设备,不是一个贴了图标的方块。路由器、交换机、防火墙、AP、AC、服务器……预置了三十多类,不够可以自己建类型、导入图标。
- 线是链路,不是一条有颜色的线。千兆电、万兆电、千兆光、万兆光、40G、100G、无线,还有一档没定介质时先占位的示意线。颜色只是样子,「万兆光」才是它的意思。
- 区域是分区,不是一个背景框。DMZ、办公区、机房,设备归在区域里,区域可以嵌套、可以锁住。
所以这次只先证明一件事:从空白开始,十分钟画出一张能贴进方案的园区网拓扑,改几处也不乱。
我画图的习惯是先随手摆,最后再收拾。所以有一个「重排」按钮,画乱了点一下,按层次重新摆整齐。图例是按图里实际用到的设备和线自动生成的,抬头写项目名、日期、版本。导出 PNG 或 SVG,跟着当前的深浅色走:

图知道自己是什么,就能干活
线知道自己是万兆光,设备知道自己连着谁,这张图其实就是一份结构化的数据。剩下的事就顺了:
- 物料统计:光模块、光纤、网线按速率档粗算,功率也能加总。可以复制,也能导出 txt、csv。导出图片的时候,会顺手带一份同名的物料单。
- 体检:哪些设备没填 IP、哪些线没定介质、结构上有没有毛病。点一行,图上红框定位。
- 机柜 U 位:设备拖进机柜,多个机柜摆在一屏里看,导出上架图。
当初手工数了很久的光模块,现在点一下就出来了。这是我最想要的那个功能,但它得排在「图像样」后面:图画不好,没人会在上面认真填介质,算出来的数也就没用。
还有一个「清单」视图:设备、链路、区域三张表,和画布双向同步。不想在图上一个个点的时候,在表里改更快。
用一下
没思路的话,点「从图库示例开始」,载入一张现成的图改着玩。图自动存在你自己的浏览器里,想留底就导出 JSON。顶栏可以切中英文。