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 “pppoe”, angeben und die IP-Konfiguration (hier 192.168.200.1 und 192.168.200.2) anpassen.
Wichtig:
Zum Zeitpunkt des Schreibens dieses Beitrags gibt es leider einen Bug (GitHub – openwrt/luci – luci-app-rp-pppoe-server: interface field error #7695), der die korrekte Auswahl des Interfaces nicht ermöglicht.
Stattdessen muss man das richtige Interface in der zuvor genannten Konfigurationsdatei eintragen bzw. korrigieren:option interface 'pppoe'
Es darf nicht das Interface ethX eingetragen werden, ebenso wenig der Alias mit einem vorangestelltem “@”.
Bei jeder Änderung via LuCi muss die Konfigurationsdatei korrigiert werden. - 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.
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.
Update 08.04.2025
Den Beitrag hinsichtlich der Fehlkonfiguration des PPPoE-Interfaces, was der Grund dafür ist das es via Initscript nicht läuft, ergänzt.
Wie hat Dir der Artikel gefallen ?
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.
0 Kommentare
1 Pingback