Quantcast
Channel: server – Andy's Blog
Viewing all articles
Browse latest Browse all 344

OpenWrt – PPPoE-Server einrichten

$
0
0

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)


Viewing all articles
Browse latest Browse all 344