Skip to main content

OmniEPDG Operations Guide

OmniEPDG is a 3GPP-compliant ePDG (evolved Packet Data Gateway) that enables WiFi calling by bridging untrusted WiFi access to the mobile core network. It supports two operational modes: GTP mode for PGW tunneling and Simple VPN mode for local IP breakout.

Configuration & Deployment

Operations & Monitoring

  • Control Panel - Web-based monitoring interface for sessions, Diameter peers, and logs
  • Metrics Reference - Prometheus metrics, example queries, and alerting rules
  • Troubleshooting - Common issues, diagnostic procedures, and resolution steps

Security

Architecture Overview

Operational Modes

OmniEPDG supports two operational modes selected via the vpn_mode configuration parameter.

GTP Mode

Full 3GPP tunneling through a PGW. Subscriber traffic is encapsulated in GTP-U and routed through the mobile core.

Use when:

  • Integration with existing mobile core infrastructure
  • Policy and charging through PCRF/PCEF
  • Roaming and inter-operator handoff required

Components:

  • Diameter S6b for PGW session authorization
  • GTPv2-C for session management (Create/Delete/Modify Session)
  • Linux kernel GTP-U module for user plane

Simple VPN Mode

Local IP breakout via TUN interface. Subscriber traffic is routed directly through the OmniEPDG host without PGW involvement.

Use when:

  • Standalone deployment without PGW
  • Testing and development
  • Local breakout scenarios

Components:

  • Local IP pool management (IPv4/IPv6)
  • TUN interface (omniepdg0) with per-subscriber host routes
  • Optional NAT/masquerade for internet access

Authentication Security

OmniEPDG includes built-in security features to protect against brute-force attacks and restrict access by geographic location. See the Authentication Security guide for details.

Rate Limiting

Protects against brute-force attacks by tracking failed authentication attempts:

  • Per-IP limiting - Blocks IPs after 10 failures in 1 minute (5 minute block)
  • Per-IMSI limiting - Blocks IMSIs after 5 failures in 1 minute (10 minute block)
  • Sliding window algorithm with automatic expiration
  • Successful authentication clears failure history

GeoIP Country Blocking

Optional geographic access control using MaxMind GeoLite2 database:

  • Whitelist mode - Only allow connections from specified countries
  • Blacklist mode - Block connections from specified countries
  • Configurable handling of unknown/private IPs
  • Fail-open or fail-closed behavior when database unavailable

Key Configuration

Minimal Configuration (Simple VPN Mode)

config :omniepdg,
vpn_mode: :simple,
simple_vpn: [
pool_ipv4: "10.45.0.0/16",
dns_servers_ipv4: ["8.8.8.8", "8.8.4.4"]
]

config :diameter_ex,
diameter: %{
host: "epdg",
realm: "epc.mnc001.mcc001.3gppnetwork.org",
peers: [
%{host: "hss", ip: "10.74.0.21", port: 3868, transport: :tcp}
]
}

Enable Authentication Security

config :omniepdg,
# Rate limiting (enabled by default with these values)
auth_rate_limit_per_ip: 10,
auth_rate_limit_ip_block_ms: 300_000,
auth_rate_limit_per_imsi: 5,
auth_rate_limit_imsi_block_ms: 600_000,

# GeoIP blocking (disabled by default)
geoip_enabled: true,
geoip_mode: :whitelist,
geoip_countries: ["AU", "NZ"]

See the Configuration Reference for complete parameter documentation.

Monitoring

Control Panel

Access the web control panel at http://<host>:4000/dashboard for:

  • Real-time session monitoring
  • Diameter peer status
  • Live log streaming
  • System configuration

See the Control Panel guide for details.

Prometheus Metrics

Scrape metrics from http://<host>:9568/metrics for:

  • Authentication success/failure rates
  • Session lifecycle events
  • Diameter signaling latency
  • Security events (rate limiting, GeoIP blocks)
  • IP pool utilization
  • ESP data plane statistics

See the Metrics Reference for queries and alerting rules.

Troubleshooting

Common issues and resolution steps:

IssueQuick CheckGuide Section
Authentication failuresCheck SWx MAR/MAA in logsAuthentication Failures
Diameter connection issuesCheck peer status in control panelDiameter Connectivity
GTP tunnel failuresCheck GTPv2-C cause codesGTP Tunnel Failures
Simple VPN issuesCheck TUN interface and routesSimple VPN Failures
Rate limiting false positivesAdjust thresholdsRate Limiting Issues
GeoIP blocking issuesCheck database and country codesGeoIP Issues

See the Troubleshooting guide for detailed diagnostic procedures.

Documentation Index

DocumentDescription
ArchitectureSystem design, state machines, call flows, protocol references
ConfigurationComplete configuration reference with examples
Control PanelWeb interface guide with screenshots
MetricsPrometheus metrics, queries, and alerting
Network RequirementsFirewall ports and DNS entries for deployment
SecurityRate limiting and GeoIP country blocking
TroubleshootingCommon issues and diagnostic procedures