Möchte man (Firewall-)Router komplett inklusive der PPPoE-Einwahl ins Internet vorkonfigurieren und testen, bietet es sich an einen eigenen PPPoE-Server zu betreiben. Das geht mittels einer Erweiterung und ein paar Handgriffen mit OpenWrt.
Wie bereits 2021 mit einer anderen Firewall-Distribution folgt nun die Variante mit OpenWrt. Sofern man kein entsprechendes Equipment hat um beispielsweise eine VDSL-Verbindung in der Werkstatt oder im Lab nachbauen zu können, kann man die ISP-Einwahl nur mit Ethernet-Verbindungen umsetzen.
Die Ausgangslage bei uns ist wie gehabt unser Virtualisierungs-Host in der Werkstatt zusammen mit unserer OpenWrt-Vorlage. Der einzige Unterschied ist, das der PPPoE-Traffic über ein weiteres Netzwerk-Interface laufen soll, daher wurde der virtuellen Maschine entsprechend eine zusätzliche Schnittstelle samt virtuellem Switch zugewiesen. Kurzum, es gibt drei Schnittstellen:
- LAN (eth0)
- WAN (eth1)
- PPPoE (eth2)
Man kann das Ganze natürlich auch mit anderen Virtualisierungslösungen oder entsprechender Hardware aufbauen.
OpenWrt vorbereiten
- Am Web-Interface anmelden.
Optional, andere IP-Adresse vergeben
- Zu “Network – Interfaces” wechseln, das “lan”-Interface bearbeiten und eine andere IP, in diesem Beispiel 192.168.100.1, vergeben.
Optional, wenn VLAN genutzt werden soll
Wichtig: Nur mit Hardware oder Port-based VLAN. Nicht unter Virtualisierung, da Hyper-V und andere kein Tagged-VLAN unterstützen.
- Zu “Network – Interfaces – Devices” wechseln.
- Auf “Add device configuration” klicken.
- Bei “Device type” “VLAN (802.1q)” auswählen.
- Bei “Base device” das Interface, hier eth2, auswählen.
- Bei “VLAN ID” die gewünschte Nummer eintragen.
- Die Änderung speichern.
Auf diese Weise lässt sich die PPPoE-Einwahl mit einer VLAN-ID, z.B. 7 wie bei der Deutschen Telekom, nachbilden. Bei den nachfolgenden Schritten muss dann immer das entsprechende VLAN-Interface, z.B. “eth2.7”, ausgewählt werden.
Interface konfigurieren
- Zu “Network – Interfaces” wechseln.
- Auf “Add new interface…” klicken.
- Einen Namen, z.B. “pppoe” vergeben.
- Bei “Protocol” “Unmanaged” auswählen.
- Bei “Device” das Interface, hier “eth2” auswählen.
- Die Änderungen mit einem Klick auf “Save & Apply” übernehmen.
PPPoE-Server installieren
- Zu “System – Software” wechseln.
- Auf “Update lists…” klicken.
- Das Paket luci-app-rp-pppoe-server installieren.
Hierbei kommt es zu einer Fehlermeldung:
Errors Collected errors: * resolve_conffiles: Existing conffile /etc/ppp/options is different from the conffile in the new package. The new conffile will be placed at /etc/ppp/options-opkg.
Diese kann man offenbar ignorieren. Letztlich geht es darum, das die folgenden beiden Zeilen in der Datei “/etc/ppp/options” fehlen:
lcp-echo-failure 5 lcp-echo-interval 1
Sofern gewünscht oder notwendig kann man diese ergänzen. Für den hier gezeigten Aufbau hat dies allerdings keinen Unterschied gemacht.
Für die weiteren Schritte und mehr wird dringend mindestens der Konsolen-Zugriff, besser ssh empfohlen!
PPPoE-Server konfigurieren
Damit der entsprechende Menüeintrag sichtbar wird, muss man via Konsole oder ssh wie folgt vorgehen:
- Die Datei “/etc/config/pppoe” editieren.
- Das Kommentarzeichen (#) vor allen Zeilen im Abschnitt “#config pppoe_server” entfernen.
- Einmal OpenWrt neu starten.
Nun gibt es unter “Services” den Eintrag “RR Pengiun PPPoE Server”.
- Den zuvor genannten Menüeintrag anklicken.
- Den Haken setzen bei “Enabled”.
- In den daraufhin erscheinenden Optionen das Interface, in diesem Fall “eth2” oder sofern genutzt den entsprechenden Alias, angeben und die IP-Konfiguration (hier 192.168.200.1 und 192.168.200.2) anpassen.
- Die Änderungen mit einem Klick auf “Save & Apply” übernehmen.
Weitere Änderungen und Benutzerkonten werden so vorgenommen:
- Die Datei “/etc/ppp/pppoe-server-options” editieren.
- Die Zeile “require-pap” durch “require-chap” ersetzen.
- Damit PPPoE-Clients einen DNS-Server (im Beispiel von Quad9) mitgeteilt bekommen folgenden Eintrag hinzufügen:
ms-dns 9.9.9.9
- Die Datei “/etc/ppp/chap-secrets” editieren und neue Benutzer mit einem Leerzeichen (als Trennzeichen) eintragen. ein Beispiel:
#USERNAME PROVIDER PASSWORD IPADDRESS user01 * swordfish *
Hinweis: Ggf. muss man die Zugangsdaten in Anführungszeichen setzen, beim Test ging es auch ohne.
Die Änderung(en) speichern und OpenWrt neu starten.
Firewall konfigurieren
Damit der PPPoE-Traffic in der Firewall zugelassen wird via Konsole oder ssh folgende Befehle absetzen:
uci set firewall.@zone[0].device='ppp+' uci commit firewall /etc/init.d/firewall restart
Troubleshooting und Workaround (wenn es nicht via Initscript läuft)
Können sich PPPoE-Clients nicht verbinden, sollte man auf OpenWrt-Seite zunächst unter “Status – Processes” nachsehen, ob der “pppoe-server” läuft. Ist das nicht der Fall kann man diesen manuell in der Konsole oder via ssh starten. Ein Beispiel:
pppoe-server -C access-concentrator-name -L 192.168.200.1 -R 192.168.200.2 -I eth2 -k
Als Workaround kann man die zuvor genannte Zeile unter “System – Startup – Local Startup” vor “exit 0” eintragen und so den PPPoE-Server automatisch bei einem OpenWrt-Start ausführen lassen.
Tipp: Nutzt man diesen Workaround sollte man auf der Registerkarte “Initscripts” den “pppoe-server” auf “Disabled” setzen.
Möglicherweise ist das Ganze ein Bug mit LuCi und der Interface-Auswahl. Siehe
GitHub – openwrt/luci – luci-app-rp-pppoe-server: interface field error #7695
Unter “Status – System Log” kann man Client-Verbindungen anhand folgender Einträge erkennen:
Mon Apr 7 11:07:18 2025 daemon.info pppoe-server[7568]: Session 63 created for client <MAC-Address> (192.168.200.64) on eth2 using Service-Name '' Mon Apr 7 11:07:18 2025 daemon.info pppd[7568]: Plugin pppoe.so loaded. Mon Apr 7 11:07:18 2025 daemon.info pppd[7568]: PPPoE plugin from pppd 2.5.1 Mon Apr 7 11:07:18 2025 daemon.notice pppd[7568]: pppd 2.5.1 started by root, uid 0 Mon Apr 7 11:07:18 2025 daemon.warn pppd[7568]: Connected to <MAC-Address> via interface eth2 Mon Apr 7 11:07:18 2025 daemon.info pppd[7568]: Using interface ppp0 Mon Apr 7 11:07:18 2025 daemon.notice pppd[7568]: Connect: ppp0 <--> eth2 Mon Apr 7 11:07:21 2025 daemon.info pppd[7568]: user user01 logged in on tty eth2 intf ppp0 Mon Apr 7 11:07:21 2025 daemon.notice pppd[7568]: Peer user01 authenticated with CHAP Mon Apr 7 11:07:21 2025 daemon.notice pppd[7568]: peer from calling number <MAC-Address> authorized Mon Apr 7 11:07:21 2025 daemon.notice pppd[7568]: local LL address <IPv6-LinkLocal> Mon Apr 7 11:07:21 2025 daemon.notice pppd[7568]: remote LL address <IPv6-LinkLocal> Mon Apr 7 11:07:21 2025 daemon.notice pppd[7568]: local IP address 192.168.200.1 Mon Apr 7 11:07:21 2025 daemon.notice pppd[7568]: remote IP address 192.168.200.64
Fazit
Funktioniert, wenn auch nicht gleich auf Anhieb wie erhofft. Warum es aktuell oder zumindest bei uns nicht via Initscript geht bleibt zunächst offen. Im Log findet sich hierzu nichts und ein zusätzlich konfiguriertes Debug-Logging unter “/etc/ppp/pppoe-server-options”
debug logfile /var/log/pppoe-server.log
hilft auch nichts, da der Start schon scheitert.
Allerdings wussten wir uns ja zu helfen, daher ist das trotz dieser Sache erstmal OK und läuft für uns.
Wie geht es weiter?
Eine Alternative zum Paket “luci-app-rp-pppoe-server” wird in diesem Beitrag besprochen:
OpenWrt – PPPoE-Server einrichten (Alternative zu luci-app-rp-pppoe-server)
Die VLAN-Thematik wird separat noch mal angegangen.
Wie hat Dir der Artikel gefallen ?
Note: There is a rating embedded within this post, please visit this post to rate it.Du möchtest den Blog unterstützen ?
Neben PayPal.ME gibt es noch weitere Möglichkeiten, lies hier wie du diesen Blog unterstützen kannst.
Quellen
OpenWrt – Setting up a PPPoE Server with Roaring Penguin PPPoE Server (Allgemein)
OpenWrt – Docs – VLAN (Allgemein)
OpenWrt – Docs – ISP Configurations (z.B. VLAN und Deutsche Telekom)
OpenWrt – Forum – Pppoe-server setup (Manueller Start und Zugangsdaten in Anführungszeichen)
OpenWrt – Forum – PPPoE Server in OpenWRT (Firewall-Einstellungen)
OpenWrt – Forum – [Solved] PPPoE Server (how to create?) (Manueller Start, Unmanaged-Interface)
GitHub Gist – madduci / ftth_openwrt.md – Configuring Deutsche Telekom FTTH Access with OpenWRT (Deutsche Telekom – VLAN-ID)

Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.