企业网网络架构“拓扑还原”技术探索
前言在基础设施领域中网络拓扑图在网络设计规划、施工建设、问题分析中有举足轻重的作用但是这部分拓扑图目前还是以人工绘制为主。当前市面上有很多网络拓扑自动绘制的工具但这些工具只是图模型的简单表达只能孤立呈现单个简单的网络也没有网络的分层设计理念距离真实的企业网的网络设计差距非常大。本文就笔者为所在公司探索自动绘制网络拓扑图的经验希望为将来致力于基础设施研究的同学贡献一部分思路。前言在基础设施领域中网络拓扑图在网络设计规划、施工建设、问题分析中有举足轻重的作用网络管理员们也是人手一卷网络拓扑图奉之若珍宝。这些拓扑图基本都是用专业工具手动绘制生成那么随着时间推移网络规模越来越大施工调整越来越频繁拓扑图的准确性就备受挑战。目前市面上也有很多网络拓扑自动绘制的工具但这些工具只是图模型的简单表达只能孤立呈现单个简单的网络也没有网络的分层设计理念距离真实的企业网的网络设计差距非常大。从笔者的实施效果来看自动绘制网络拓扑非常依赖网络本身的设计理念和基础数据的梳理情况网络管理者的诉求影响也非常大几乎可以说是“个例个看”很难做到统一的技术方案。本文就笔者为某司探索自动绘制网络拓扑图的经验希望为将来致力于基础设施研究的同学贡献一部分思路。注目前在拓扑还原问题中还没有出现通用的解决思路本文只讨论传统的三层网络架构(Three-Tier)在某司的拓扑还原技术探索同时对于现在发展迅速的叶脊架构(Spine-Leaf)笔者暂无有用的经历可以分享。“拓扑还原”问题的提出三层网络架构简单介绍三层网络架构(Three-Tier)是企业常见的一种组网方案网络上的相关资料非常多但大同小异主要就是接入-汇聚-核心这三层网络架构。然而真实的企业网络可能远没有上述情况这么简单纯粹拓扑图中还需要考虑路由器、防火墙、负载均衡等设备汇聚层内部可能还会分层连接互联网还需要考虑额外的设计多数据中心还需要考虑数据交换问题等等情况不是简单的三层架构可以描述的。拓扑还原问题就是让网络设备按合理排列和分布进行自动绘制的问题。拓扑还原问题的背景情况目前自动绘制拓扑中有关网络架构的拓扑资料非常少有的只是纯连接的网络图缺少架构层级。如果按各个网络设备互联成图那么广域网中串接各个路由器可能具有一定的表现作用但是对于主要以交换机互联形式的单个网络区域纯碎的图并不能对网络管理员有所帮助。主要原因在以下几点网络设备是有层次的、功能丰富的。譬如交换机就有接入交换机、汇聚交换机、核心交换机等同时还有具有特定功能的网络设备比如负载均衡、防火墙、上网行为策略等虽然这些设备对拓扑影响不大但显示在拓扑图上却很关键。企业通常会规划多个独立又有连接的网络区域。企业可能会根据业务特点或者回应安全要求设计多个内部组网但又有一定连接的多个网络区域例如用于交易的交易网、面向互联网的隔离区、连接数据库的私有网、用于办公的办公网、用于管理设备的带外网等等。网络可能出现同城多机房或异地机房的情况。为了容灾考虑或者扩容的成本选择网络区域不会固定在某个数据中心内通常会通过波分设备或运营商专线将多个机房相互连接起来。网络设计存在历史包袱不存在理想化的模型。尽管三层设计是普遍的共识但是网络的规模是逐步发展的考虑规模、成本并不是所有的企业都能土豪式的将网络整理成标准架构只能是近似标准。企业网的拓扑问题远比网络搜索出来的资料复杂的多展示孤立的一张网络没有实践意义简单的三层拓扑图难以发挥有效的作用。拓扑还原问题的共性阻碍市面上很多NOP产品有拓扑绘制的能力但实际使用中可用性并不强主要的原因有以下几点网络设备的互联关系采集问题。SNMP可以实现设备LLDP关系的采集但是存量网络并不是所有的设备都支持LLDP采集并且不同厂商在LLDP协议实现上有所差别。目前业内的经验自动采集率只能达到80%。网络设备所在架构层次标记问题。没有哪个设备在出厂就知道自己应该放在网络架构中的哪个位置上下左右应该连接哪类网络设备。网络区域间连接的规范问题。三层架构的标准仅描述了单个网络区域内的规范但网络区域不是孤立存在的仅描述网络内部结构对维护没有帮助涉及相关外网络区域设备时如何展示也是一个需要考虑的问题。某厂商的拓扑还原技术方案笔者所在公司也交流过多家网络服务供应商绝大部分的供应商在拓扑自动绘制上的功能都非常弱可以说简单的网络用不到复杂的网络不顶用。业内有某国内知名网络设备商在这一问题上走的比较远并且在某商银行中应用效果不错。这里简单介绍以下某商银行的应用方案以供参考网络结构上某商银行网络比较整齐各个网络区域彼此是独立的三层架构最后接入到所在数据中心的核心交换层由核心交换层完成跨数据中心、区域间、内外网之间的网络访问而核心交换层也是独立的三层架构。技术上供应商没有直接依赖LLDP采集能力而是综合使用了多种技术进行拓扑还原例如利用MAC信息标记出每个设备的上行口和上行连接设备。利用流量曲线相似拟合判断端口直连情况。利用设备30位掩码IP这一行业惯例判断物理直连。但笔者所在公司在网络设计的思路上与某商行差距很大技术上难以融入所在公司现有系统难以直接应用该供应商产品只能期待下次合作。虽然这些技术最终并没有在笔者所在公司实施任何一项能力但是交流过程中笔者的拓扑还原思路受到了该设备商的启发。某司的网络特点由于缺少供应商支持业内该类型产品也尚未成熟笔者所在公司决定内部先投石问路走一走拓扑还原后的应用场景因此笔者根据所在公司的网络特点和显示基础数据的梳理情况也设计了拓扑还原的技术方案。网络区域的规划习惯某司的网络区域大概分成5类业务承载类区域依据业务划分的多种网络例如交易、行情、报盘、资管用于IT的研发测试区、数据库私网用于内部的办公网等。机房核心层区域每个数据中心有S1S2交换机用于同城间多机房通过波分设备连接。互联通信类区域用于异地数据交换的区域例如对接运营商的互联网出口对接公有云、异地机房的MSTP专线以及对接重要的三方机构和客户。辅助类区域带有工具性质的网络常用于基础设施管理员实现特定功能例如流量采集、流量镜像、数据备份、网络管理、运维操作等。带外区域用来管理所有的网络设备所有的网络设备以主机的身份接入到带外区的接入交换机最终连接全国设备自成一张大网。已解决的问题笔者所在公司在基础设施的台账数据上较为完善所有网络设备有完整的台账且维护良好有各自归属的网络区域使用LLDP采集和人工梳理的方式基本完成网络设备端口互联关系的梳理缺失部分对拓扑影响较小每个设备均有较为合理的标签表明设备所在的大概的层次主要包含区域接入、区域汇聚、区域核心、区域边界、机房核心等标签拓扑的特殊性问题然而笔者所在公司的网络设计上不太规整有许多特殊的问题很多网络区域不是标准的三层架构往往是三层二层混搭。即网络区域内既有接入交换机连接汇聚层也有接入交换机直连核心层。汇聚层可能不只一层设备。有些大网一层汇聚可能不能汇聚完全需要再次汇聚才能接入核心层。核心层设备不只具有汇聚接入的能力往往还担任对接其他区域的角色。例如某些核心层设备专门用来对接公网出口。很多设备可能“一身兼多则”。大的网络区域会有专门连接其他区域的核心设备但有些小的网络就直接使用汇聚层接入的核心层设备。每个设备只记录了一个归属的网络区域但实际上不同网络区域存在“设备借用”的情况且没有设备如何借用的记录。某些网络区域存在历史问题是大二层架构跨机房直连汇聚层。某司的拓扑还原方案在拓扑还原中不仅要正确显示网络区域内设备的拓扑排列情况还要“有限度”的展示相关联的网络区域。笔者经过思考确定了拓扑还原需要解决的核心问题并拆解成四个子问题依次解决。拓扑还原的核心问题其实拓扑还原的问题很纯粹给定任意一个主体区域能否知道要展示的设备以及相关联区域的设备给定任意一个设备能否知道它在某个图中其属的主体区域或关联区域在图中的位置这里的位置主要指层级和顺序主体区域和相关区域如何布局绘制范围问题针对核心问题1其实就是绘制范围的问题主要解决当用户需要查看某个网络区域拓扑时这个拓扑需要展示哪些设备。这里不考虑拓扑如何排列指考虑如何筛选出相关的设备。筛选步骤如下i. 定义与非自身所在区域相连的交换机设备为边界设备 ii. 获取某数据中心指定的网络区域内的所有设备得到 集合A iii. 获取 集合A 中所有交换机设备 集合As 的下一跳设备 集合N 筛选出的所有边界设备得到 集合Ne iv. 获取 集合A 和 集合Ne 的所有的下一跳设备得到 集合NN v. 集合A、集合Ne、集合NN 的并集 集合S 即为展示该区域需要的所有设备 vi. 找到 集合S 中所有设备间的互联关系。绘制布局问题对于核心问题3笔者选用的是网格布局i. 针对不同类型的网络区域设计了不同的网格布局模板模板中包含层、块、行、格的概念 ii. 当查询出绘制范围后对设备进行分层和分组将每组设备放入指定的布局块中如果一层有多个块则向下折块 iii. 每个布局块每行只能展示固定网格数量的设备超出的部分折行排列计算每个设备在布局中的网格位置 iv. 计算整体拓扑的占行并给每个网格的设备分配Y轴偏移单位长 v. 将空下来的网格删除拉伸每块设备居中计算每个网格的设备分配的X轴偏移单位长。设备层级问题笔者所在公司设计的五个网络角色区域接入、区域汇聚、区域核心、区域边界、机房核心这种分类太粗不能满足拓扑绘制的布局要求。这里笔者将网络层级进行了细化通过染色法分析每个设备的连接关系的状况根据设备的染色情况计算设备的层级i. 找到绘制范围内所有设备的互联关系 A - N ii. 根据 A - N 计算下一跳连接关系 A - N - NN过滤出N不是交换机的关系得到 A - NN iii. 对 A - N 和 A - NN 取并集得到纯交换机的拓扑关系集 As - Ns iv. 根据连接关系区域标签和层级标签对连线进行染色 v. 按设备统计染色数量得到设备的染色 vi. 根据设备染色计算设备的层级以及是否边界设备、是否是孤儿设备、是否是核心区直连等信息笔者这里大胆推测所谓的拓扑层级其实主要指的是交换机的拓扑层级其他类型的设备对层级没有影响因此笔者在(i - iii)步中先计算出了纯交换机的网络互联关系。对于染色方案层级方案这里以业务承载区进行举例业务承载区最多划分为13层从下到上依次是 1. 本区域接入层本区域的所有区域接入设备 2. 本区域汇聚层低本区域有接入设备直连的汇聚层设备 3. 本区域汇聚层中本区域不连接接入层和核心层的汇聚层设备 4. 本区域汇聚层高本区域中直连核心层的设备 5. 本区域未知层级本区域中无法计算出染色的设备 6. 外业务区域核心层外区域借用本区域核心层的核心设备 7. 本区域核心层低本区域直连汇聚层的核心层设备 8. 本区域核心层中本区域不连接汇聚层和机房核心的核心层设备 9. 本区域核心层高本区域连接机房核心的核心层设备 10.互联通信区接入层本区域所连互联通信区的接入层设备 11.互联通信区核心层本区域所连互联通信区的核心层设备 12.机房核心层边界层本区域所连机房核心层的区域边界设备 13.机房核心层S1S2层本区域所连机房核心层的S1S2设备 注规则重叠下按顺序匹配即可设备成对问题网络设计具备冗余的特点因此除部分接入层交换机外所有的交换机都是成对出现。如果一个层级内展示多个设备那么我们希望有互联关系的一对设备能相邻展示。这个问题描述起来很简单在互联关系 As-Ns 中设备 Ai 所有的邻居中和设备 Ai 互联关系最像的那个邻居就是设备 Ai 的另一对。这个思路不一定完全正确在互联关系基本完备的情况下正确率很高。这里列一下计算设备对的方法i. 根据互联关系 As - Ns 计算每个设备 Ai 和它的邻居 Nij 把 Ai 并入 Nij 得到 Ai 的邻居 Nij ii. 根据互联关系 As - Ns 计算每个设备 Ai 的邻居 Nij 的邻居 NNijk 把 Nij 并入 NNijk 得到Ai 的邻居 Nij 的邻居 NNijk iii. 比较 Ai - Nij 和 Ai - Nij - NNijk NNijk 中和 Ai - Nij 重合度最高的 Nij 即为设备 Ai 的另一对并标记出设备对编号 NUM_pair iv. 在布局组内排序时按 NUM_pair 顺序排列在组内每次排两个网格保证一对设备在一起展示。设备分组问题每一层级下设备需要分组展示分组主要解决的是本层级设备如果连接了多个上层级设备那么我们希望具有相同上层级设备的设备能够聚集在一起。设备分组问题是基于成对问题后处理的方法如下i. 根据互联关系 As - Ns 计算每个设备 Ai 和它的邻居 Nij ii. 对邻居 Nij 所有的设备对编号 NUM_pair 按层级从低到高排序最低层级的设备对编号 NUM_pair 为分组编号 iii. 在布局分层排序时无邻居关系的排一组区域相同且分组编号相同的排一组。实施效果拓扑还原后较为简单的网络区域基本上可以直接适用自动绘制的结果。对于复杂一点的网络区域还原后拓扑层级和分块比较明显辅以少量手动调整可以即可完成展示。后续问题本次拓扑还原的方案主要还是针对交换机层面的还原结果对于非交换机设备还原的位置还比较差需要进一步优化。

相关新闻

如何用dxwrapper轻松解决经典游戏在Windows 10/11的兼容性问题

如何用dxwrapper轻松解决经典游戏在Windows 10/11的兼容性问题

如何用dxwrapper轻松解决经典游戏在Windows 10/11的兼容性问题 【免费下载链接】dxwrapper Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game …

2026/8/10 16:56:06 阅读更多 →
从代码到游戏:startcraft-unity3d项目结构与核心脚本分析

从代码到游戏:startcraft-unity3d项目结构与核心脚本分析

从代码到游戏:startcraft-unity3d项目结构与核心脚本分析 【免费下载链接】startcraft-unity3d A recreation of the classic RTS game Starcraft by Blizzard, on Unity3D 项目地址: https://gitcode.com/gh_mirrors/st/startcraft-unity3d startcraft-uni…

2026/8/10 16:56:06 阅读更多 →
Android RecyclerView Sample核心原理:为什么它比ListView更高效?

Android RecyclerView Sample核心原理:为什么它比ListView更高效?

Android RecyclerView Sample核心原理:为什么它比ListView更高效? 【免费下载链接】android-RecyclerView Migrated: 项目地址: https://gitcode.com/gh_mirrors/an/android-RecyclerView Android RecyclerView是Google推出的高性能列表控件&…

2026/8/10 16:56:06 阅读更多 →

最新新闻

UE4SS导致《幻兽帕鲁》存档重置:原理剖析与系统修复指南

UE4SS导致《幻兽帕鲁》存档重置:原理剖析与系统修复指南

1. 项目概述:当UE4SS遇上帕鲁世界,一场数据保卫战 如果你是一个《幻兽帕鲁》的深度玩家,同时又热衷于使用UE4SS这类强大的游戏模组框架来解锁更多玩法,那么“角色存档重置”这个噩梦般的场景,你可能已经历或正在恐惧。…

2026/8/10 23:35:54 阅读更多 →
HarmonyOS数字排序游戏开发:教育应用实践与优化

HarmonyOS数字排序游戏开发:教育应用实践与优化

1. 项目概述:HarmonyOS数字排序游戏的设计初衷 作为一名在移动应用开发领域深耕多年的开发者,最近我注意到教育类应用在HarmonyOS生态中的需求正在快速增长。这个"万以内的数的认识:数字排序游戏"项目,正是针对小学低年…

2026/8/10 23:35:54 阅读更多 →
5分钟快速上手:ENet可靠UDP网络库跨平台开发终极指南

5分钟快速上手:ENet可靠UDP网络库跨平台开发终极指南

5分钟快速上手:ENet可靠UDP网络库跨平台开发终极指南 【免费下载链接】enet ENet reliable UDP networking library 项目地址: https://gitcode.com/gh_mirrors/en/enet ENet是一个轻量级、高性能的可靠UDP网络库,专为实时多人游戏和网络应用设计…

2026/8/10 23:35:54 阅读更多 →
计算机毕业设计之基于Spring Boot的废品回收管理系统设计与实现

计算机毕业设计之基于Spring Boot的废品回收管理系统设计与实现

当下社会,信息技术充斥社会各个领域,已融入人们生活的点滴,日常中人们管理信息、办理业务、购买商品等都可以网络线上进行,快速而又便利,特别是随着移动互联网时代的到来,更是让人们随时享受着网络给带来的…

2026/8/10 23:35:54 阅读更多 →
终极指南:如何使用Neural Amp Modeler插件获得专业吉他音色

终极指南:如何使用Neural Amp Modeler插件获得专业吉他音色

终极指南:如何使用Neural Amp Modeler插件获得专业吉他音色 【免费下载链接】NeuralAmpModelerPlugin Plugin for Neural Amp Modeler 项目地址: https://gitcode.com/GitHub_Trending/ne/NeuralAmpModelerPlugin Neural Amp Modeler插件是一款基于人工智能技…

2026/8/10 23:35:54 阅读更多 →
终极指南:Loop免费开源macOS窗口管理神器,一键告别桌面杂乱

终极指南:Loop免费开源macOS窗口管理神器,一键告别桌面杂乱

终极指南:Loop免费开源macOS窗口管理神器,一键告别桌面杂乱 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 你是否曾在多任务处理时,面对满屏交错的窗口感到无从下手…

2026/8/10 23:34:53 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →