MikroTik PPPoE Server Complete Setup Guide — ISP Edition
Contents
- 1 🔍 Quick Fix — Click Your Issue
- 2 1. What Is MikroTik PPPoE & Why ISPs Use It
- 3 2. Login & Initial MikroTik Access
- 4 3. WAN / Uplink Configuration
- 5 4. Create IP Address Pools
- 6 5. PPP Profiles — Bandwidth Plans
- 7 6. PPP Secrets — Subscriber Accounts
- 8 7. Enable PPPoE Server
- 9 8. NAT Masquerade & Firewall Rules
- 10 9. DNS, Security Hardening & Final Setup
- 11 10. Monitor Active Sessions & Manage Users
- 12 11. How Subscribers Configure Their PPPoE Client
- 13 12. Troubleshooting Common PPPoE Issues
- 14 13. Essential Quick Commands
- 15 14. All MikroTik Guides on This Site
- 16 Related ISP & Network Guides
- 17 Frequently Asked Questions — MikroTik PPPoE Server
MikroTik PPPoE Server setup: 1) Create IP pool → 2) Create PPP profile with pool → 3) Add PPP secret (user+password) → 4) Enable PPPoE server on LAN interface → 5) Add NAT masquerade → 6) Set firewall rules. Subscriber connects their router as PPPoE client using username and password you create.
MikroTik PPPoE Server is how most small-to-medium ISPs authenticate and manage their subscribers. It gives you per-user bandwidth control, IP assignment, and authentication — all without expensive RADIUS in small deployments. This guide covers every step from a blank MikroTik to a live PPPoE server with multiple bandwidth plans and proper NAT/firewall — written from real ISP deployment experience.
🔍 Quick Fix — Click Your Issue
Reference
1. What Is MikroTik PPPoE & Why ISPs Use It
PPPoE (Point-to-Point Protocol over Ethernet) creates an authenticated, individual tunnel between each subscriber’s router and your MikroTik. When a subscriber connects, they enter a username and password — your MikroTik verifies it, assigns an IP from a pool, and applies the bandwidth limits you configured for that profile.
| Feature | PPPoE ✅ | DHCP only ❌ |
|---|---|---|
| User authentication | ✅ Username + password | ❌ Anyone with cable gets IP |
| Per-user bandwidth limit | ✅ Per profile | ❌ Manual queue only |
| IP management | ✅ Automatic pool assignment | Manual or DHCP |
| Subscriber isolation | ✅ Separate tunnel per user | ❌ Shared segment |
| Session accounting | ✅ Login/logout logs | ❌ No tracking |
In my ISP work, we use MikroTik PPPoE for all FTTH subscribers. When a customer doesn’t pay, we simply disable their PPP secret — they lose internet instantly without touching their hardware. When they pay, we re-enable it. This alone makes PPPoE worth it for ISP operations.
2. Login & Initial MikroTik Access
Winbox is the native MikroTik GUI tool — fastest and most reliable.
- Download Winbox from mikrotik.com/download
- Connect Ethernet cable from PC to any MikroTik port (except ether1 if WAN)
- Open Winbox → click Neighbors tab → your router appears by MAC address
- Click the MAC address → Username:
admin→ Password: blank (new device) → Connect - Change password immediately: System → Password
Default IP: 192.168.88.1. Set your PC to 192.168.88.2/24, then open browser and go to http://192.168.88.1. Login: admin / blank password.
# SSH to MikroTik (after IP is configured) ssh [email protected] # Or from MikroTik terminal in Winbox: [admin@MikroTik] > password # Set new password when prompted
3. WAN / Uplink Configuration
Configure how your MikroTik connects to your upstream ISP or bandwidth provider on ether1.
# WAN as DHCP client (most common) [admin@MikroTik] > /ip dhcp-client add interface=ether1 add-default-route=yes use-peer-dns=yes disabled=no # Verify WAN got an IP /ip dhcp-client print
# Assign static WAN IP (replace with your ISP details) [admin@MikroTik] > /ip address add address=203.0.113.10/29 interface=ether1 /ip route add gateway=203.0.113.1 /ip dns set servers=8.8.8.8,8.8.4.4
If your upstream bandwidth provider uses PPPoE:
[admin@MikroTik] > /interface pppoe-client add name=pppoe-wan interface=ether1 \ user=your-isp-username password=your-isp-password \ add-default-route=yes use-peer-dns=yes \ disabled=no # Verify connection /interface pppoe-client print # Status should show: connected
out-interface=pppoe-wan not ether1.4. Create IP Address Pools
Each bandwidth plan gets its own IP pool. When a subscriber connects with a 10 Mbps plan, they automatically get an IP from the 10 Mbps pool. This lets you group subscribers by plan for easier firewall and queue management.
# Create separate pools per bandwidth plan [admin@MikroTik] > /ip pool # 10 Mbps subscribers pool add name=pool-10M ranges=192.168.10.2-192.168.10.254 # 25 Mbps subscribers pool add name=pool-25M ranges=192.168.25.2-192.168.25.254 # 50 Mbps subscribers pool add name=pool-50M ranges=192.168.50.2-192.168.50.254 # 100 Mbps subscribers pool add name=pool-100M ranges=192.168.100.2-192.168.100.254 # Verify pools created /ip pool print
192.168.10.2-192.168.10.254 or split across subnets. Keep pools well within private IP ranges (RFC 1918).5. PPP Profiles — Bandwidth Plans
A PPP Profile is a bandwidth plan template. Each plan defines: the local gateway IP, which pool to assign from, and the rate-limit (download/upload speed). Create one profile per internet package you sell.
[admin@MikroTik] > /ppp profile # 10 Mbps plan (10M download / 5M upload) add name=plan-10M \ local-address=192.168.10.1 \ remote-address=pool-10M \ rate-limit=10M/5M \ dns-server=8.8.8.8,8.8.4.4 # 25 Mbps plan add name=plan-25M \ local-address=192.168.25.1 \ remote-address=pool-25M \ rate-limit=25M/10M \ dns-server=8.8.8.8,8.8.4.4 # 50 Mbps plan add name=plan-50M \ local-address=192.168.50.1 \ remote-address=pool-50M \ rate-limit=50M/25M \ dns-server=8.8.8.8,8.8.4.4 # 100 Mbps plan (1 Gbps = 1000M) add name=plan-100M \ local-address=192.168.100.1 \ remote-address=pool-100M \ rate-limit=100M/50M \ dns-server=8.8.8.8,8.8.4.4 # Verify profiles /ppp profile print
download/upload — so 100M/50M = 100 Mbps down, 50 Mbps up. Use k for Kbps, M for Mbps, G for Gbps. The local-address is the router’s gateway IP for that subnet — it must NOT be in the pool range.6. PPP Secrets — Subscriber Accounts
Each subscriber gets a PPP Secret entry — a username and password. When they connect, MikroTik matches their credentials to a profile and applies the bandwidth limits.
[admin@MikroTik] > /ppp secret # Add subscriber on 10M plan add name=ram.prasad \ password=Pass@1234 \ service=pppoe \ profile=plan-10M \ comment="Flat 3 - Ram Prasad - 10M Plan" # Add subscriber on 50M plan add name=sita.devi \ password=Pass@5678 \ service=pppoe \ profile=plan-50M \ comment="House 7 - Sita Devi - 50M Plan" # Disable subscriber (e.g. unpaid bill) /ppp secret set disabled=yes ram.prasad # Re-enable subscriber /ppp secret set disabled=no ram.prasad # Change subscriber plan (upgrade from 10M to 50M) /ppp secret set profile=plan-50M ram.prasad # List all subscribers /ppp secret print
comment with subscriber name, location, and plan. With 500+ users this saves hours when troubleshooting. Use consistent naming like firstname.lastname or zone-number.7. Enable PPPoE Server
The PPPoE server listens on your LAN interface (the port where subscriber switches/ONTs connect). Never run PPPoE server on your WAN (ether1) interface.
[admin@MikroTik] > /interface pppoe-server server add service-name=ISP-PPPoE \ interface=ether2 \ authentication=mschap2 \ keepalive-timeout=10 \ max-mru=1492 \ max-mtu=1492 \ default-profile=plan-10M \ disabled=no # If subscribers are on multiple ports (bridge) # First create a bridge, add all subscriber ports to it: # /interface bridge add name=bridge-sub # /interface bridge port add interface=ether2 bridge=bridge-sub # /interface bridge port add interface=ether3 bridge=bridge-sub # Then run PPPoE server on bridge-sub # Verify server is running /interface pppoe-server server print
8. NAT Masquerade & Firewall Rules
Without NAT, your subscribers’ private IPs can’t reach the internet. Without firewall rules, your router is exposed. Both are essential.
# ── NAT Masquerade ── [admin@MikroTik] > /ip firewall nat add chain=srcnat \ out-interface=ether1 \ action=masquerade \ comment="NAT all PPPoE subscribers to WAN" # If WAN is PPPoE client, use: # out-interface=pppoe-wan # ── Basic Firewall Rules (paste all at once) ── [admin@MikroTik] > /ip firewall filter # Accept established/related connections (performance rule) add chain=input connection-state=established,related,untracked action=accept # Drop invalid connections add chain=input connection-state=invalid action=drop # Accept from loopback add chain=input in-interface=lo action=accept # Accept ICMP (ping) - useful for troubleshooting add chain=input protocol=icmp action=accept # Accept Winbox from LAN only (block from WAN) add chain=input protocol=tcp dst-port=8291 \ in-interface=ether2 action=accept # Drop everything else from WAN add chain=input in-interface=ether1 action=drop # Forward rules add chain=forward connection-state=established,related,untracked action=accept add chain=forward connection-state=invalid action=drop add chain=forward in-interface=ether1 action=drop
The most important firewall rule is dropping all WAN input. Without this, anyone on the internet can attempt to access your MikroTik management interface. I’ve seen ISP routers with no firewall get brute-forced and turned into spam relays within hours of getting a public IP.
9. DNS, Security Hardening & Final Setup
# ── DNS Configuration ── [admin@MikroTik] > /ip dns set servers=8.8.8.8,1.1.1.1 \ allow-remote-requests=yes # allow-remote-requests lets subscribers use this router as DNS # ── Disable unused services (security) ── [admin@MikroTik] > /ip service set telnet disabled=yes set ftp disabled=yes set www disabled=yes set api disabled=yes set api-ssl disabled=yes # Leave: winbox (8291), ssh (22) enabled # ── Set system identity ── [admin@MikroTik] > /system identity set name="ISP-MikroTik-PPPoE-01" # ── Set NTP time sync ── [admin@MikroTik] > /system ntp client set enabled=yes primary-ntp=pool.ntp.org
10. Monitor Active Sessions & Manage Users
# ── Show all active PPPoE sessions ── [admin@MikroTik] > /ppp active print # ── Show active with uptime and IP details ── /ppp active print detail # ── Find specific user session ── /ppp active print where name="ram.prasad" # ── Disconnect (kick) a specific user ── /ppp active remove [find name="ram.prasad"] # ── Show session logs ── /log print where message~"pppoe" # ── Check current bandwidth usage per user ── /queue simple print # Active PPPoE sessions create auto-queues when rate-limit is set # ── Count total active connections ── /ppp active print count-only
11. How Subscribers Configure Their PPPoE Client
Give your subscribers these instructions to connect their home router as a PPPoE client to your server:
If subscriber also has a MikroTik router:
/interface pppoe-client add name=pppoe-isp \ interface=ether1 \ user=ram.prasad \ password=Pass@1234 \ add-default-route=yes \ use-peer-dns=yes \ disabled=no
For TP-Link (Archer/TL-WR series):
- Open browser →
192.168.0.1→ Login admin/admin - Go to Quick Setup or Basic → Internet
- Select PPPoE as connection type
- Enter Username and Password given by ISP
- Click Next / Save
- Router connects automatically
For Huawei ONT/Router (HG8145V5, HG8245H etc):
- Open browser →
192.168.100.1→ Login telecomadmin/admintelecom - Go to WAN or Internet settings
- Select WAN Mode: PPPoE
- Enter username and password provided
- Click Apply — device connects within 30 seconds
Direct PPPoE from Windows PC (no router needed):
- Press Win + R → type
ncpa.cpl→ Enter - Click File → New Incoming Connection (or use Network and Sharing Center → Set up a new connection)
- Select Connect to the Internet → Broadband (PPPoE)
- Enter username and password → Connect
12. Troubleshooting Common PPPoE Issues
Subscriber can’t establish PPPoE connection:
- Verify PPP secret exists:
/ppp secret print where name="username" - Check secret is not disabled:
/ppp secret print detail→ disabled=no - Confirm PPPoE server is running on correct interface:
/interface pppoe-server server print - Check subscriber’s cable is plugged into the correct LAN port (ether2, not ether1)
- Check for authentication errors in logs:
/log print where message~"pap\|chap\|mschap" - Verify correct service type:
service=pppoe(not pptp or any)
Subscriber connected but getting less than plan speed:
- Check what profile is assigned:
/ppp secret print where name="username" - Check active session queue:
/queue simple print where name~"username" - Verify WAN uplink itself has enough bandwidth: test from MikroTik with
/tool bandwidth-test address=8.8.8.8 - Check CPU usage — high CPU can throttle throughput:
/system resource print - Confirm MTU is 1492 — wrong MTU causes fragmentation and slowness
- Check if queue parent is limiting:
/queue tree print
PPPoE session drops every few minutes:
- Check keepalive-timeout — too low causes drops: set to 30 or 60 seconds
- Look at logs:
/log print where message~"pppoe" forward=50 - Check for line errors on the physical port:
/interface ethernet print stats— look for high error counts - If on WiFi link, check signal quality — unstable wireless causes PPPoE drops
- Check if the OLT/ONU is rebooting (check optical power if FTTH)
Subscriber is connected (session shows active) but no internet:
- Check NAT rule exists:
/ip firewall nat print— masquerade rule must be there - Verify subscriber can ping router gateway: from subscriber PC, ping the local-address in their profile
- Check WAN is connected:
/ip route print— default route (0.0.0.0/0) must be active - Test DNS:
/ip dns cache flushthen try again from subscriber - Check firewall forward chain — rules must allow forward from PPPoE interfaces
13. Essential Quick Commands
| Command | What It Does |
|---|---|
| /ppp active print | Show all active PPPoE sessions |
| /ppp secret print | List all subscriber accounts |
| /ppp profile print | Show all bandwidth plans |
| /ip pool print | Show IP pools and usage |
| /ip address print | Show all IP assignments |
| /ip route print | Show routing table (check default route) |
| /ip firewall nat print | Verify NAT masquerade rule |
| /queue simple print | Show active bandwidth queues per user |
| /system resource print | CPU, RAM, uptime |
| /log print | System logs (PPPoE events) |
| /interface print | All interfaces and status |
| /ip dhcp-client print | WAN DHCP status |
| /ppp active remove [find name=”x”] | Kick/disconnect specific user |
| /ppp secret set disabled=yes x | Block subscriber (disable) |
| /tool bandwidth-test 8.8.8.8 | Test WAN bandwidth from router |
| /system backup save | Backup full configuration |
| /export file=config | Export config as text script |
14. All MikroTik Guides on This Site
Related ISP & Network Guides
Frequently Asked Questions — MikroTik PPPoE Server
rate-limit in the PPP Profile: /ppp profile set plan-10M rate-limit=10M/5M. The format is download/upload. All subscribers assigned to that profile automatically get those limits enforced by RouterOS simple queues. To change a specific subscriber’s speed, change their profile: /ppp secret set profile=plan-50M ram.prasad. The change takes effect on their next connection.max-mtu=1492 and max-mru=1492 in your PPPoE server configuration./ppp secret set disabled=yes ram.prasad. This suspends the account — if they’re currently connected, their active session continues until it naturally expires or you kick them with /ppp active remove [find name="ram.prasad"]. To re-enable: /ppp secret set disabled=no ram.prasad. This is the standard method for suspending non-paying subscribers.admin with a blank password on RouterOS 6 and older. On RouterOS 7, new devices ship with a randomly generated password printed on the label on the device. Access via Winbox by clicking your router’s MAC address under Neighbors. Change the password immediately after first login: System → Password in Winbox or /password in terminal.