~~DISCUSSION~~ ====== Network Topology ====== [[wp>Network_topology|Network Topology]] is the arrangement of the elements (links, nodes, etc.) of a communication network. {{ networktopologies.png?400 }} Each have their [[https://www.comparitech.com/net-admin/network-topologies-advantages-disadvantages/ |pros and cons]]. ===== Current Topology ===== As of Nov 14, 2023, our [[https://app.diagrams.net/#G1XlWd93ISxOL7IwBSqykd_54sRqh5JbQO |network topology]] looks like this: {{ :setups:topology:aredn-nov_18_2023.svg |}} /** BC Nodes are on the left, Alberta and other nodes are on the right. Hovering over the picture will bring up a control panel: * {{ controls.png}}The left and right arrow navigates between different pages. * The ''-'' and ''+'' signs are to zoom out and in. * The last icon is to export the chart as an image. **/ ====== About the Diagram ====== There was three steps in creating the diagram above: - Create a text file of the topology using a python script (quick). - Import that text file into [[https://app.diagrams.net]] (quick). - Format it so that the edges (links) do not intersect too much (not quick). ===== Python Script ===== This Python script loads the json files of all the nodes visible from a given station. Here is an example of what the json file looks like: * [[AREDN>http://va7fi-hapac3-1.local.mesh/cgi-bin/sysinfo.json?link_info=1&hosts=1]]. Once the script has all the nodes' json files in memory, it creates output text files that summarizes some of the information. To run the script yourself, you can either: * Download the following four files in the same folder and run the ''.py'' file if you have [[https://www.python.org/downloads/ |Python]] installed on your computer, or * Download the zip file and run the ''exe''. | [[./python/aredn_info|aredn_info_v20231128.py]] | Generates the output files. | | [[./python/lan_hostnames|lan_hostnames.txt]] | Ignores known LAN Hostnames to speed up the process. | | [[./python/license|LICENSE.md]] | This script is Libre and Open Source Software. | | [[./python/ReadMe|ReadMe.txt]] | Of course we read the instructions. LOL | | {{ :setups:topology:aredn_info_v20231128.zip }} (7.3 MB) | Bundle of all four files above plus an ''exe'' file for Windows. | The script outputs these text files (Nov 14, 2023): |[[./python/Diagrams_net_txt |Diagrams_Net.txt]] |Can be inputted into [[https://www.diagrams.net]] (AKA //draw.io//) | |[[./python/Node_Info_csv |Node_Info.csv]] |A spreadsheet of information about each node. | |[[./python/Topology_csv |Topology.csv]] |A spreadsheet of each connection. | |[[./python/Topology_List_txt |Topology_List.txt]] |A text file of each connection. | The latest version (Nov 14, 2023) loads a maximum of 100 pages at a time, which was found to minimize the overall download time. Individual pages have a timeout period of 30 seconds so the script can take anywhere from 5 seconds to 30 seconds to complete. --- //[[va7fi@rbox.me|Patrick VA7FI]] 2023/11/14 18:48// ===== diagrams.net AKA draw.io ===== From [[wp>diagrams.net]]: **diagrams.net** (previously **draw.io**) is a free and open source cross-platform graph drawing software developed in HTML5 and JavaScript. diagrams.net is available as online as cross-browser web app, and as offline desktop application for Linux, macOS, and Windows. The web app does not require online login or registration, and can open from and save to the local hard drive. To create a chart from the output of the python script: * Go to [[https://app.diagrams.net]] * Select ''Save diagrams to: Device'' * ''Create New Diagrams'' * Create a ''Blank Diagram'' * Click the ''+'' sign in the tool bar at the top * Select ''Advanced'' -> ''From Text...'' * Select ''Diagram'' instead of ''List'' * Replace the example with the output from the script and click ''Insert'' * Click ''Edit'' -> ''Select Edges'' * On the right hand side, replace the arrows by lines.