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 ping command
  • 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_DURATION to 300 (5 minutes)
  • Faster Checks: Reduce PING_INTERVAL to 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!

This tool helps diagnose the TP-Link AX5400 DHCP renewal loop issue documented in the OPNsense troubleshooting session.

Description
Network connectivity monitoring script for OPNsense and TP-Link diagnostics - tracks connection stability and failure patterns
Readme 29 KiB
Languages
Python 100%