How martin-ger/esp32_nat_router works
ESP32 NAT Router is firmware that provides a WiFi access point and routes its clients through a WiFi or Ethernet uplink, optionally through WireGuard. The principal workflow is client traffic entering the AP, being filtered and NAT-routed, then forwarded to the uplink; administrators configure that behavior through the web UI or CLI. The graph also preserves documented management, monitoring, and device-status capabilities. Source excerpts are partial, so uncertain internal wiring is omitted; some feature nodes and relationships reflect README documentation rather than sampled implementations.
Main entry points: esp32_nat_router.c Router firmware · http_server.c Web interface · netif_hooks.c Interface hooks · mqtt_ha.c MQTT Home Assistant
Components 25
Routing and uplinks
- Router firmware
main/esp32_nat_router.c - Interface hooks
main/netif_hooks.c - DHCP service
components/dhcpserver/dhcpserver.c - DHCP reservations
main/dhcp_manager.c - WireGuard manager
main/vpn_manager.c
Configuration and access
- Web interface
components/http_server/http_server.c - Web pages
components/http_server/pages.h - Serial CLI
components/cmd_router/cmd_router.c - Remote console
components/remote_console/remote_console.c - MCP bridge
Traffic controls
- Firewall ACL
components/acl/acl.c - Port forwarding
main/portmap.c
Monitoring and status
- Packet capture
components/pcap_capture/pcap_capture.c - Client statistics
include/client_stats.h - OLED display
components/oled_display/oled_display.c - LED status
main/led_strip_status.c
External integrations
- MQTT Home Assistant
components/mqtt_ha/mqtt_ha.c - Syslog client
components/syslog/syslog_client.c
Other components
- Administrator
- AP clients
- WiFi / Ethernet uplink
- Home Assistant
- MQTT broker
- Syslog server
- Capture consumer
Connections 24
- AP clients → DHCP service: request leases
- DHCP service → DHCP reservations: look up reservations
- AP clients → Interface hooks: send traffic
- Interface hooks → Firewall ACL: filter packets
- Interface hooks → Port forwarding: apply mappings
- Router firmware → Interface hooks: initialize hooks
- Router firmware → WireGuard manager: manage tunnel
- Router firmware → WiFi / Ethernet uplink: forward routed traffic
- Administrator → Web interface: configure
- Web interface → Web pages: serve pages
- Administrator → Serial CLI: enter commands
- Administrator → Remote console: connect remotely
- Administrator → MCP bridge: control by MCP
- Web interface → Firewall ACL: manage rules
- Web interface → Port forwarding: manage mappings
- Web interface → WireGuard manager: configure VPN
- Interface hooks → Packet capture: capture packets
- Packet capture → Capture consumer: stream capture
- Router firmware → Client statistics: collect client stats
- Router firmware → OLED display: show status
- Router firmware → LED status: signal status
- MQTT Home Assistant → MQTT broker: publish telemetry
- MQTT Home Assistant → Home Assistant: provide discovery
- Syslog client → Syslog server: send log messages