(失敗) N2G でネットワーク図を作成する
N2G というネットワーク図を作成出来る Python のライブラリがあります。
GitHub から Clone した tests
ディレクトリにあるサンプルを使い、.graphml や .drawio ファイルを生成することは出来ました。 ただ、生成されたファイルがなぜか (0 byte では無いのですが) ノードやリンクの情報が無い、ネットワーク図としては意味の無いデータしか作成されませんでした…
検証環境
以下 2 パターンの環境でテストしましたが、いずれも同じ結果になってしまいました。
対象 |
バージョン |
macOS |
14.2.1 |
Python |
3.12.2 |
対象 |
バージョン |
Ubuntu |
22.04.3LTS |
Python |
3.12.2 |
検証手順
pip で必要なライブラリをインストールします。
| python3 -m pip install N2G[full]
|
GitHub にサンプルファイルを data
ディレクトリに保存した上で下記を実行します。
| n2g -d ./data/ -m yed -L2 -L2-group-links -fn diagram.graphml -of ./Output/
n2g -d ./data/ -m drawio -L2 -L2-group-links -fn diagram.drawio -of ./Output/
|
しかし、いずれにしてもノードやリンク情報が 含まれていない ファイルが作成されてしまいます…
N2G を Python から利用する
N2G を (CLI ツールとして使わず) Python スクリプト内から呼び出した場合、yED 形式は上手くデータを作成出来ているようです。 作成されたデータはオンラインの yED Live で開くことが出来ました。
ですが、draw.io 形式ではデータは作成されているように見えるものの、オンラインエディタ でファイルを開くと「最初に定義したノード」しか表示されず、しかもその状態で上書きされてしまう (2 番目以降のノード情報がデータ内から削除されてしまう) ように見えました。
Issue を Open しても良かったのですが、N2G は活発にも見えなかったので、今回はこのままにしておこうと思います。
参考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 | n2g-sample$ n2g --help
usage: n2g [-h]
N2G CLI, version 0.3.3
options:
-h, --help show this help message and exit
Version: 0.3.3
Parsing order is: CDP/LLDP (L2) => IP => OSPF => ISIS
-d, --data OS path to data folder with files or file
-of, --out-folder Folder where to save result, default ./Output/
-fn, --filename Results filename, by default filename based on current time
-m, --module Module to use - yed, drawio or v3d
-ipl, --ip_lookup Path to CSV file for IP lookups, first column header must be ``ip``
--no-data Do not add any data to links or nodes
--layout Name of iGraph layout algorithm to run for the diagram e.g. "kk", "tree" etc.
--log-level Logging level, default is ``ERROR``
--port Port number to run viewer server (V3D, yED) on, default is 9000
--ip IP address to run viewer server (V3D, yED) on, default is ``0.0.0.0``
V3D Module arguments:
--run Run built in test web server to display topology instead of saving to file
XLSX data adapter. -d should point to ".xlsx" spreadsheet file.
-nt, --node-tabs Comma separate list of tabs with nodes data
-lt, --link-tabs Comma separate list of tabs with links data
-nm, --node-headers-map JSON dictionary structure for node headers translation
-lm, --link-headers-map JSON dictionary structure for link headers translation
CDP and LLDP L2 Data Plugin options:
-L2 Parse CDP and LLDP data
-L2-add-lag Add LAG/M-LAG information and delete member links
-L2-group-links Group links between nodes
-L2-add-connected Add all connected nodes
-L2-combine-peers Combine CDP/LLDP peers behind same interface
-L2-platforms Comma separated list of platforms to parse
IP Data Plugin:
-IP Parse IP subnets
-IP-group-links Group links between nodes
-IP-lbl-intf Add interfaces names to link labels
-IP-lbl-vrf Add VRF names to link labels
-IP-add-arp Add ARP cache IPs to the diagram
OSPF LSDB Data Plugin:
-OSPF Diagram OSPFv2 LSDB data
-OSPF-add-con Add connected subnets to diagram
ISIS LSDB Data Plugin:
-ISIS Diagram ISIS LSDB data
-ISIS-add-con Add connected subnets to diagram
yED SVG Viewer:
--yed-svg-viewer Run yED SVG Viewer
--diagrams-dir OS Path to directory with diagrams svg files
V3D Diagram Viewer:
--v3d-viewer Run V3D JSON files viewer
--diagram-file OS Path to JSON file with diagram data
|