Network Connectivity Monitor
A Python-based network monitoring tool designed to diagnose connectivity issues on your OPNsense/TP-Link network infrastructure.
Monitored Devices
- 10.0.0.254 - OPNsense Firewall
- 10.0.0.253 - TP-Link AX5400 (253)
- 10.0.0.252 - TP-Link Device (252)
- 10.0.0.55 - DNS/Other Service
Features
- ✅ Real-time connectivity monitoring with live status updates
- 📊 Detailed statistics including success rates and failure patterns
- 🔍 Automatic failure incident detection and grouping
- 📈 Final comprehensive report with health assessment
- ⏱️ Configurable monitoring duration and ping intervals
- 🛑 Graceful interrupt handling (Ctrl+C for early stop)
Requirements
- Python 3.6+
- Unix-like system with
pingcommand - No external Python dependencies required!
Usage
Quick Start
# Make the script executable
chmod +x network_monitor.py
# Run with default settings (1 hour monitoring)
./network_monitor.py
Or run directly with Python:
python3 network_monitor.py
Configuration
Edit the following constants at the top of the script to customize:
MONITOR_IPS = {
"10.0.0.254": "OPNsense Firewall",
"10.0.0.253": "TP-Link AX5400 (253)",
"10.0.0.252": "TP-Link Device (252)",
"10.0.0.55": "DNS/Other Service"
}
PING_INTERVAL = 5 # seconds between ping checks
MONITOR_DURATION = 3600 # 1 hour in seconds
PING_TIMEOUT = 2 # seconds to wait for ping response
PING_COUNT = 1 # number of pings per check
Example Output
Live Status Screen:
================================================================================
Network Connectivity Monitor - 2026-01-07 17:15:30
================================================================================
Monitoring Duration: 45s / 3600s (1.3%)
Next check in: 5s
--------------------------------------------------------------------------------
IP Address Device Status Success Rate
--------------------------------------------------------------------------------
10.0.0.254 OPNsense Firewall 🟢 UP 100.00% (9/9)
10.0.0.253 TP-Link AX5400 (253) 🟢 UP 100.00% (9/9)
10.0.0.252 TP-Link Device (252) 🔴 DOWN 88.89% (8/9)
10.0.0.55 DNS/Other Service 🟢 UP 100.00% (9/9)
--------------------------------------------------------------------------------
⚠️ CURRENT ISSUES:
• 10.0.0.252 (TP-Link Device (252)): 1 consecutive failures
Final Report:
================================================================================
FINAL MONITORING REPORT
================================================================================
Start Time: 2026-01-07 17:14:45
End Time: 2026-01-07 18:14:45
Duration: 3600 seconds
================================================================================
DEVICE SUMMARY:
--------------------------------------------------------------------------------
IP Address Device Success Rate Total Failures
--------------------------------------------------------------------------------
10.0.0.254 OPNsense Firewall ✅ 100.00% 0
10.0.0.253 TP-Link AX5400 (253) ✅ 100.00% 0
10.0.0.252 TP-Link Device (252) ⚠️ 98.61% 10
10.0.0.55 DNS/Other Service ✅ 100.00% 0
--------------------------------------------------------------------------------
DETAILED STATISTICS:
================================================================================
TP-Link Device (252) (10.0.0.252):
Total Checks: 720
Successful: 710 (98.61%)
Failed: 10 (1.39%)
Max Consecutive Failures: 3
First Failure: 17:25:10
Last Failure: 17:42:35
Failure Incidents: 2
Failure Timeline:
Incident 1: 17:25:10 - 17:25:20 (3 failures, 10s)
Incident 2: 17:42:25 - 17:42:35 (7 failures, 10s)
================================================================================
OVERALL ASSESSMENT:
⚠️ ISSUE ISOLATED: Only TP-Link Device (252) (10.0.0.252) had connectivity issues.
This suggests a device-specific problem rather than network-wide issue.
================================================================================
Use Cases
Diagnosing DHCP Issues
This tool was originally created to diagnose DHCP renewal loop problems causing high CPU usage on TP-Link routers. Run it before and after applying fixes to verify improvement.
Network Stability Testing
Monitor your network infrastructure during configuration changes, firmware updates, or after new device installations to ensure stability.
Intermittent Connection Troubleshooting
Identify patterns in connectivity issues that might not be immediately obvious. The incident grouping helps distinguish between temporary blips and recurring problems.
Tips
- Short Duration Test: For quick diagnostics, edit
MONITOR_DURATIONto 300 (5 minutes) - Faster Checks: Reduce
PING_INTERVALto 1 or 2 seconds for more granular data - Save Results: Redirect output to a file:
./network_monitor.py > results.txt - Background Running: Use
nohup ./network_monitor.py &to run in background
Troubleshooting
Permission Denied:
chmod +x network_monitor.py
Python Not Found:
# Use python instead of python3
python network_monitor.py
No Ping Command:
This script requires the standard Unix ping utility. It should be available by default on Linux, macOS, and WSL.
License
This script is provided as-is for network diagnostics. Feel free to modify and adapt for your specific needs!
Related Issues
This tool helps diagnose the TP-Link AX5400 DHCP renewal loop issue documented in the OPNsense troubleshooting session.