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