因此,我有一个小型企业网络,主要由两个路由的第 2 层域组成,总共约有 100 台设备,分布在约 2000 平方米的生产和办公空间中。使用图表解决的典型问题是:PC 通过什么(电缆)路径连接到服务器?设备连接到交换机端口的位置在哪里?
我想要生成物理网络拓扑图:节点是端点设备、交换机端口、墙上插座、配线架端口等。边是电缆连接。理想情况下,可以将经过同一束的边(或段)分组。
另外,我想通过自动收集的数据(监控状态、MAC 地址、交换机端口 <-> MAC 条目来构建地图的各个部分)来扩充图形数据。
目前,我在 Confluence wiki 中使用 graphviz 来实现这一点,如下所示:
layout = "neato"
overlap = scale
subgraph {
rankdir = "TB"
subgraph cluster_r1pf1 {
r1pf1 [label="{ Rack 1 PF 1 | { <p1>P1 | <p2>P2 | <p3>P3} }", shape=record]
}
subgraph cluster_switch1 {
switch1 [label="{ Rack 1 Switch 1 | { <p1> P1 | <p1> P1 | <p3> P3} }", shape=record]
}
r1pf1:p1 -> switch1:p1
(显然这里省略了几十条条目)
问题是:我很难影响 graphviz 来生成可接受的布局。边缘重叠太严重,以至于你无法再阅读图表。
问题是:还有什么工具(无论是像 Visio、Omnigraffle 这样的交互式软件,还是像 graphviz 这样的面向 I/O 的软件)都能够允许易于版本控制(如:对文本文件进行操作)既是机器和人类可读和编辑?
为什么不选择 OmniGraffle 或 Visio?因为我们没有 Mac,而且 Visio 目前不可用。要购买它,我需要有充分的理由。自动化就是其中之一。但上次我查看时,对 Visio 文件进行版本控制甚至考虑自动处理都是一场噩梦。
有关的:
- 网络映射工具基本上询问相同的问题,重点是自动生成完整的图表(但不需要记录电缆连接)
- 自动计算机清点的建议提供“一体化”解决方案的链接
答案1
也许看看耶德(基于 Java)。它使用不同的 XML 方言作为文件格式,因此它是一种人类可读的格式。
OmniGraffle 使用 GraphViz 布局引擎,因此如果 GraphViz 失败,您可能也无法使用 OG。