April 25, 2026
OpenWRT as Wireless WAN
Beyond the Default Firmware
Why Even Bother?
My ISP router does the heavy lifting. But it's locked down, runs hot, and I can't see what's happening on my network. I wanted a dedicated bridge that I could monitor, control, and eventually chain additional services to.
Enter OpenWRT on a TP-Link TL-WR842N - a $40 router converted into a wireless WAN client. Now every packet flowing through gets counted and sent to Grafana.
The Setup
Current Architecture:
- ISP Router (10.0.0.1) - Provides internet
- OpenWRT (10.0.0.2) - Wireless WAN bridge
- Grafana - Queries SNMP, shows dashboards
Step 1: Flash OpenWRT
Downloaded the generic squashfs factory image for the WR842N. Flashed via the stock web UI. Rebooted into LuCI - the Lua web interface.
# Basic OpenWRT firstboot to reset firstboot -y # Set root password passwd
Step 2: Configure as Wireless WAN Client
Go to Network → Interfaces. Created a new interface:
- Name: wan
- Protocol: DHCP client
- Device: WWAN (created from wireless scan)
Then Network → Wireless, scanned for my ISP router's SSID, joined it with the WPA2 key. Set it to client mode - not AP.
The ethernet ports (LAN 1-4) now bridge everything from that wireless connection. Plug in your downstream switch or device.
Step 3: Enable SNMP for Monitoring
OpenWRT includes net-snmp. Just need to configure it:
# Install SNMP packages opkg update opkg install snmpd # Configure vi /etc/snmp/snmpd.conf
Add to snmpd.conf:
rocommunity public syslocation HeartOfGold syscontact [email protected]
Enable and start:
# Enable SNMP service /etc/init.d/snmpd enable # Start it /etc/init.d/snmpd start
Querying from Grafana
SNMP query in Grafana using Prometheus SNMP exporter or direct SNMP datasource:
# Query all interfaces snmpwalk -v2c -c public 10.0.0.2 .1.3.6.1.2.1.31 # Get interface names snmpwalk -v2c -c public 10.0.0.2 .1.3.6.1.2.1.31.1.1.1.1 # Get bytes in (ifInOctets) snmpwalk -v2c -c public 10.0.0.2 .1.3.6.1.2.1.31.1.1.1.6 # Get bytes out (ifOutOctets) snmpwalk -v2c -c public 10.0.0.2 .1.3.6.1.2.1.31.1.1.1.10
What I Can See Now
Traffic per interface:
- wan (index 3) - My upstream connection
- br-lan (index 8) - Everything to my home network
- phy1-sta0 (index 9) - Wireless client link
Built a Grafana dashboard showing real-time throughput for each. If traffic spikes unexpectedly, I know where to look.
Future Plans
- Pi-hole DNS forwarder directly on the router
- WireGuard VPN termination
- DDNS client for dynamic DNS updates
- Bandwidth limiting per device
Lessons Learned
- Generic builds work on regional variants too
- Wired upstream, wireless downstream - or vice versa. Pick one.
- SNMP is old but perfect for lightweight monitoring
- Reset with firstboot before selling or returning