Table of Contents
Packet Network Monitoring Project
The purpose of the Packet Network Monitoring Project (PNMP) is to collect packet traces and status reports from all participating nodes, and make them available for network research, monitoring, and fault tracing.
The idea is to get an overview of the whole network at once.
PNMP is a client-server system. The clients are built into recent versions of XRouter and BPQ nodes. They send JSON-encoded telemetry to the server within UDP datagrams.
The telemetry consists of AX25 packet header data, node status reports, and details of L2 links and L4 circuits. It includes NODES broadcasts and INP3 unicasts. For privacy reasons, it DOES NOT include the packet contents, except those of UI beacons and APRS frames.
The server is at https://node-api.packet.oarc.uk, and it exposes several endpoints allowing the data, both real-time and historic, to be visualised and downloaded.
Server Endpoints
AX25 Links Monitor: https://node-api.packet.oarc.uk/links.html
NetRom L4 Circuits Monitor: https://node-api.packet.oarc.uk/circuits.html
Dynamic Network Map: https://node-api.packet.oarc.uk/network-map.html
There are more API's being developed - watch this space!
Viewing Packet Traces
You can view the packet traces as seen by each node, via the web API.
Or you can see much more detail using the following command line program:
What Can PNMP Do?
The uses for this project are myriad. New uses will undoubtedly reveal themselves over time. Developers are encouraged to get involved. Here's an idea of what it can be used for:
- Network Monitoring. For the first time in the history of Packet Radio, we have the potential to “see” the whole network at once, both its topology and its activity.
- Fault Diagnosis. Up till now it has been very difficult to diagnose network problems, because such diagnosis required using the (broken) network itself. By the time the faulty segment was reached, the problem had cleared, and all we were left with was guesswork. The server API allows us to rewind the clock and examine what led to the failure.
- Fault Alerts. It would be fairly trivial to monitor the live feed and generate alerts about nodes that suddenly stop reporting their status, links with excessive queue lengths or unusually high retry rates, and so on.
- Performance Graphs. These could show things like traffic flows and retry rates over time, which could help to identify diurnal or seasonal problems with QRM, anomalous propagation etc.
- Network Planning. By analysing where the traffic is going, where the bottlnecks and single points of failure are, where there is unnecessary connectivity etc. we can plan better network connections.
How To Enable Telemetry on Your Node
- If you run XRouter: XRouter has been automatically sending telemetry since v504j, allowing the system to be developed and refined. But for best results, please update to version 504m. If you wish to DISABLE telemetry, please add the following directive to XROUTER.CFG: “NETMON=0.0.0.0:0”.
- If you run BPQ: Firstly, you need to be running version 6.0.25.9. Then, because the client is disabled by default, you need to add the following directive to your bpq configuration file: “ENABLEOARCAPI=1”.
How To Confirm That Your Node Is Sending Telemetry
Go to https://node-api.packet.oarc.uk/ and look in the “Reporting Nodes” section for your node's callsign.
(The list is organised in descending order of activity, so a new node may be nearer the bottom of the list.)
If your node is not in the list:
- Does your node have an internet connection? An internet connection is required for this service.
- If you type “ping node-api.packet.oarc.uk” from the operating system's command line, does your system resolve the address and display an IP address? If not, you have a DNS or firewall issue.
- Do you get a ping response from the server? If so, that's good news.
- The “node up” report may have been lost. Make a test connection from your node. This will cause it to report the packets.
- If your node still doesn't show up, make sure you have LOCATOR defined.
(to be continued)
