Skip to content

PPP

Point-to-Point Protocol (PPP) in RouterOS mobile networking provides a method for establishing direct connections between two network nodes over serial interfaces, including cellular modems. While modern LTE interfaces typically use direct IP connectivity, PPP remains important for legacy modem support and specific use cases requiring PPP encapsulation.

PPP in the mobile networking context serves two primary purposes:

  • PPP Client: Connecting to cellular networks via modems that require PPP encapsulation (common with older 3G modems and certain LTE modems)
  • PPP Server: Accepting incoming PPP connections over cellular for remote access scenarios

PPP provides features not available with direct IP interfaces, including:

  • Authentication (PAP, CHAP, MS-CHAPv1, MS-CHAPv2)
  • Link quality monitoring
  • Dynamic IP address assignment
  • Compression negotiation
  • Error detection

The PPP client creates outbound PPP connections through cellular modems. This mode is used when the cellular network requires PPP authentication or when the modem operates in PPP mode.

Create a PPP client interface for the cellular modem:

/interface ppp-client
add apn=internet dial-on-demand=no disabled=no interface=lte1 \
name=ppp-out1 password=internet user=internet
PropertyDescriptionDefault
add-default-routeAdd default route to peerno
allowAllowed authentication methodsmschap2,mschap1,chap,pap
apnAccess Point Name for the cellular network-
default-route-distanceDistance for auto-added default route-
dial-on-demandConnect only when traffic is generatedno
disabledEnable/disable the interfaceyes
interfacePhysical interface to use-
max-mruMaximum Receive Unit1500
max-mtuMaximum Transmission Unit1500
mrruMaximum Reconstructed Receive Unitdisabled
nameInterface name-
passwordAuthentication password-
profilePPP profile to usedefault
userAuthentication username-

Basic PPP client for LTE modem:

/interface ppp-client
add apn=internet authentication=chap interface=lte1 name=ppp-out1 \
password=internet user=internet
/interface ppp-client enable ppp-out1
/interface ppp-client monitor ppp-out1

Expected output:

status: connected
dial-status: connected
uptime: 2m23s
service-name: internet
ipaddress: 10.128.XXX.XXX
dns-server: 10.128.XXX.XXX
mtu: 1500
mru: 1500

Automatically add a default route when PPP connects:

/interface ppp-client
add apn=internet add-default-route=yes default-route-distance=10 \
interface=lte1 name=ppp-out1 password=internet user=internet

Enable dial-on-demand to connect only when traffic requires it:

/interface ppp-client
add apn=internet dial-on-demand=yes interface=lte1 name=ppp-out1 \
password=internet user=internet

With dial-on-demand, the connection remains dormant until outbound traffic is generated, saving data usage.

The PPP server accepts incoming PPP connections, enabling remote access scenarios where clients dial into the router over cellular networks.

Configure the router to accept PPP connections:

/interface ppp-server
add service=ppp name=ppp-in1
PropertyDescriptionDefault
default-profilePPP profile for incoming connectionsdefault
disabledEnable/disable the serveryes
interfaceInterface to listen on-
max-mruMaximum Receive Unit for clients1500
max-mtuMaximum Transmission Unit for clients1500
mrruMaximum Reconstructed Receive Unitdisabled
nameServer name-
serviceService type (any, async, isdn, l2tp, pppoe, pptp)any

Configure user credentials for PPP server access:

/ppp secret
add name=remoteuser password=SecretPass123 profile=default remote-address=10.0.0.100
/ppp secret
add name=mobileuser password=MobilePass456 profile=default-encryption service=ppp

Set up a PPP server for remote cellular access:

# Create PPP profile for remote users
/ppp profile
add local-address=10.0.0.1 name=remote-pool remote-address=10.0.0.100-10.0.0.200 \
dns-server=8.8.8.8,8.8.4.4
# Add user credentials
/ppp secret
add name=remoteuser password=SecurePass123 profile=remote-pool
# Enable PPP server on LTE interface
/interface ppp-server
add default-profile=remote-pool interface=lte1 name=ppp-in1 service=ppp

Monitor active PPP connections:

/interface ppp-client monitor ppp-out1

Monitor active sessions:

/ppp active print

Enable PPP debugging to diagnose connection issues:

/system logging
add topics=ppp action=memory

View PPP-related logs:

/log print where message~"ppp"

Connection refused:

# Verify APN is correct
/interface ppp-client print
# Check authentication credentials
/ppp secret print

Modem not responding:

# Reset the LTE interface
/interface lte reset
# Check physical connection
/system resource usb print

Authentication failures:

# Verify username and password
/interface ppp-client set [find] password=correctpassword
# Check allowed authentication methods
/interface ppp-client set [find] allow=mschap2,chap

PPP profiles define connection parameters for both client and server scenarios:

/ppp profile
add name=cellular-profile local-address=10.0.0.1 remote-address=pool1 \
dns-server=8.8.8.8 idle-timeout=30m use-encryption=required
PropertyDescription
local-addressIP address for the router side of PPP
remote-addressIP address or pool for client
dns-serverDNS servers to assign to clients
idle-timeoutDisconnect after inactivity
use-encryptionEncryption requirement (yes, no, required, default)
rate-limitBandwidth limits (rx-rate/tx-rate)