/network-sketcher

Network Sketcher generates network configuration diagrams in PowerPoint and manages configuration information in Excel. It also uses general-purpose AI(LLM) to create network configurations and reflect configuration information in the diagrams.

Primary LanguagePythonApache License 2.0Apache-2.0

1-1.Overview.mp4

NoLang (no-lang.com) Otologic (https://otologic.jp) CC BY 4.0

image

Network Sketcher

Network Sketcher generates network configuration diagrams in PowerPoint and manages configuration information in Excel. Additionally, exporting a AI ​​context can be used to generate config files using LLM.

  • Automatic generation of each configuration document by metadatization of network configuration information
  • Automated synchronization between documents
  • Minimize maintenance and training load by automatic generation of common formats
  • Facilitate automatic analysis, AI utilization, and inter-system collaboration by metadatization of configuration information.
  • Template support for equipment configuration image

image

DEMO

demo_video_NS2.0_free2.mp4

New Features

  • Ver 2.6.0

Network Sketcher Ver 2.6.0 now supports master file conversion from Visio, draw.io, NetBox, and CML data to Network Sketcher.

image Although Network Sketcher now supports multiple formats, it is not intended to replace the main drawing tool, but rather aims for mutually beneficial development. image

Limitations

  • IPv4 only. IPv6 is not supported.
  • A DEVICE file contains multiple sheets, but only one sheet should be updated at a time. Simultaneous synchronization of multiple sheet updates is not supported.
  • Do not use Network Skecher on master files in your One Drive folder.

Requirement

  • Network Sketcher supports cross-platform. Works with Windows, Mac OS, and Linux.
    • MAC OS may not display well in Dark mode.
  • Python ver 3.x
  • Software that can edit .pptx and .xlsx files
    • Microsoft Powerpoint and Excel are the best
    • Google Slides and Spreadsheets import/export functionality is available. Excel functions display will show an error, but it works fine.
    • Libre Office and Softmaker office cannot be used.

Installation

git clone https://github.com/cisco-open/network-sketcher/
cd network-sketcher
python3 -m pip install -r requirements.txt
python3 network_sketcher.py

or

#Download via browser
https://github.com/cisco-open/network-sketcher/archive/refs/heads/main.zip

#Unzip the ZIP file and execute the following in the prompt of the folder
python3 -m pip install -r requirements.txt
python3 network_sketcher.py

Installation Supplement

  • Alternative to “python -m pip install -r requirements.txt”
python3 -m pip install tkinterdnd2-universal
python3 -m pip install tkinterdnd2
python3 -m pip install "openpyxl>=3.1.3,<=3.1.5"
python3 -m pip install python-pptx
python3 -m pip install ipaddress
python3 -m pip install numpy
python3 -m pip install pyyaml
python3 -m pip install ciscoconfparse
python3 -m pip install networkx
python3 -m pip install svg.path
  • Mac OS requires the following additional installation.
brew install tcl-tk
  • Ubuntu requires the following additional installation.
sudo apt-get install python3-tk

User Guide

Language Link
English Link
Japanese Link

How to create the exe file for Windows using pyinstaller

pyinstaller.exe [file path]/network_sketcher.py --onefile --collect-data tkinterdnd2 --additional-hooks-dir  [file path] --clean --add-data "./ns_extensions_cmd_list.txt;." --add-data "./ns_logo.png;."

SAMPLE

Input ppt file (rough sketch)

image

Sample-rough5.pptx

Output

L1 figure(PPT)

image

[L1_DIAGRAM]AllAreasTag_Sample.figure5.pptx

L2 figure(PPT)

image

[L2_DIAGRAM]DC-TOP1_Sample.figure5.pptx

L3 figure(PPT)

image

[L3_DIAGRAM]AllAreas_old_Sample.figure5.pptx

Device table(Excel)

image

[DEVICE]Sample.figure5.xlsx

Master file(Excel)

[MASTER]Sample.figure5.xlsx

Author

  • Yusuke Ogawa - Security Architect, Cisco | CCIE#17583

License

SPDX-License-Identifier: Apache-2.0

Copyright 2023 Cisco Systems, Inc. and its affiliates

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.