Subsections

4.18 PPPOE - PPP über Ethernet

Dieses Paket erlaubt es, PPP-Verbindungen über ein Ethernet-Netzwerk aufzubauen. Dies wird in Deutschland vor allem für die Internet-Anbindung via DSL genutzt, wobei ein externes, über Ethernet angeschlossenes DSL-Modem genutzt wird. Zwischen dem fli4l-Router und dem DSL-Modem wird das Protokoll PPP benutzt, jedoch hier speziell über Ethernet (PPPoE4.21).

4.18.1 Ausgehende PPPoE-Verbindungen

Ein DSL-Zugang via PPPoE oder auch beliebige andere ausgehende PPPoE-Verbindungen werden generell als PPP-Circuit konfiguriert (siehe Circuits vom Typ ``ppp''), d.h. es gilt:

    CIRC_x_TYPE='ppp'

Zusätzlich muss das OPT_PPP_ETHERNET aktiviert werden:

OPT_PPP_ETHERNET

Diese Variable aktiviert die Unterstützung für ausgehende PPPoE-Verbindungen. Damit auch tatsächlich eine PPPoE-Verbindung genutzt werden kann, muss mindestens ein PPP-Circuit den Typ ``ethernet'' besitzen, d.h. es muss zusätzlich gelten

    CIRC_x_TYPE='ppp'
    CIRC_x_PPP_TYPE='ethernet'

(wobei ``x'' einen gültigen Circuit-Index darstellt).

Standard-Einstellung: OPT_PPP_ETHERNET='no'

Beispiel: OPT_PPP_ETHERNET='yes'

Zu den allgemeinen Circuit-Variablen kommen die folgenden, für PPP-Circuits des Typs ``ethernet'' spezifischen Variablen hinzu:

CIRC_x_PPP_ETHERNET_DEV

Diese Variable enthält den Namen der Netzwerk-Schnittstelle, über die PPPoE genutzt werden soll. Dabei entspricht eth0 der ersten Ethernet-Karte, eth1 der zweiten Ethernet-Karte u.s.w.

Hat man nur eine Netzwerkkarte im Router, kann man das DSL-Modem ins LAN hängen, etwa indem man das DSL-Modem an den LAN-Switch mit anschließt. Dies ist jedoch nur die zweitbeste Lösung, weil die normalen IP-Pakete dann zusammen mit den PPPoE-Paketen im selben Netzsegment auftauchen und dies die maximale Übertragungsgeschwindigkeit negativ beeinflussen kann. Die beste Lösung ist die Nutzung einer separaten Netzwerkkarte für die Kommunikation mit dem DSL-Modem.

Beispiel: CIRC_1_PPP_ETHERNET_DEV='eth1'

CIRC_x_PPP_ETHERNET_TYPE

PPPoE steht für die Übertragung von PPP-Paketen über Ethernet-Leitungen. Das bedeutet, dass die zu übertragenden Daten im ersten Schritt vom ppp-Dämon in PPP-Pakete und dann in einem zweiten Schritt für die Übertragung übers Ethernet nochmals in PPPoE-Pakete verpackt werden, um dann ans DSL-Modem geschickt zu werden. Das zweite Verpacken kann durch den pppoe-Dämon oder durch den Kern erfolgen. Mittels CIRC_x_PPP_ETHERNET_TYPE wird die Art und Weise der PPPoE-Paketerzeugung definiert, siehe hierzu Tabelle 4.21.


Table 4.21: Arten der PPPoE-Paketerzeugung
Wert Beschreibung
kernel Die PPP-Pakete werden direkt an den Linux-Kern gereicht, der daraus PPPoE-Pakete macht. Dadurch entfällt die Kommunikation mit einem zweiten Prozess und damit eine Menge Kopier- und Scheduling-Aufwand, was wiederum zu geringerer Prozessorlast führt. Dies ist die Standard-Methode, wenn nichts angegeben wurde.
daemon Die Pakete werden durch den pppoe-Dämon erzeugt; die Kommunikation zwischen pppd und pppoe erfolgt asynchron. Das bedeutet, dass der Datenstrom mit Anfang- und Ende-Markern versehen wird, damit der pppoe-Dämon die einzelnen Pakete auseinanderhalten kann. Aufgrund des zweiten Prozesses und der zusätzlichen Markierungen ist diese Methode aufwändiger als die Methode ``kernel'' und sollte in der Regel nicht verwendet werden.


Standard-Einstellung: CIRC_x_PPP_ETHERNET_TYPE='kernel'

Beispiel: CIRC_1_PPP_ETHERNET_TYPE='daemon'

4.18.2 Eingehende PPPoE-Verbindungen

Der fli4l kann auch konfiguriert werden, eingehende PPPoE-Verbindungen anzunehmen, also als ein Server zu fungieren. Solche PPPoE-Verbindungen werden ebenfalls als PPP-Circuit konfiguriert (siehe Circuits vom Typ ``ppp''), d.h. es gilt:

    CIRC_x_TYPE='ppp'

Zusätzlich muss das OPT_PPP_ETHERNET_SERVER aktiviert werden:

OPT_PPP_ETHERNET_SERVER

Diese Variable aktiviert die Unterstützung für eingehende PPPoE-Verbindungen. Damit auch tatsächlich PPPoE-Verbindungen angenommen werden können, muss mindestens ein PPP-Circuit den Typ ``ethernet-server'' besitzen, d.h. es muss zusätzlich gelten

    CIRC_x_TYPE='ppp'
    CIRC_x_PPP_TYPE='ethernet-server'

(wobei ``x'' einen gültigen Circuit-Index darstellt).

Standard-Einstellung: OPT_PPP_ETHERNET_SERVER='no'

Beispiel: OPT_PPP_ETHERNET_SERVER='yes'

Zu den allgemeinen Circuit-Variablen kommen die folgenden, für PPP-Circuits des Typs ``ethernet-server'' spezifischen Variablen hinzu:

CIRC_x_PPP_ETHERNET_SERVER_DEV

Diese Variable enthält den Namen der Netzwerk-Schnittstelle, über die PPPoE genutzt werden soll. Dabei entspricht eth0 der ersten Ethernet-Karte, eth1 der zweiten Ethernet-Karte u.s.w.

Beispiel: CIRC_1_PPP_ETHERNET_SERVER_DEV='eth1'

CIRC_x_PPP_ETHERNET_SERVER_TYPE

PPPoE steht für die Übertragung von PPP-Paketen über Ethernet-Leitungen. Das bedeutet, dass die zu übertragenden Daten im ersten Schritt vom ppp-Dämon in PPP-Pakete und dann in einem zweiten Schritt für die Übertragung übers Ethernet nochmals in PPPoE-Pakete verpackt werden. Das zweite Verpacken kann durch den pppoe-Dämon oder durch den Kern erfolgen. Mittels CIRC_x_PPP_ETHERNET_SERVER_TYPE wird die Art und Weise der PPPoE-Paketerzeugung definiert, siehe hierzu Tabelle 4.21.

Standard-Einstellung: CIRC_x_PPP_ETHERNET_SERVER_TYPE='kernel'

Beispiel: CIRC_1_PPP_ETHERNET_SERVER_TYPE='daemon'

CIRC_x_PPP_ETHERNET_SERVER_SESSIONS

Diese Variable enthält die Anzahl der Verbindungen, die dieser PPPoE-Server maximal gleichzeitig verwalten kann.

Standard-Einstellung: CIRC_x_PPP_ETHERNET_SERVER_SESSIONS='64'

Beispiel: CIRC_1_PPP_ETHERNET_SERVER_SESSIONS='100'

4.18.3 Beispiele

Beispiel 1 (Internet-Zugang über PPPoE):

    OPT_PPP='yes'                       # PPP-Circuits aktivieren
    OPT_PPP_ETHERNET='yes'              # PPPoE-Client-Circuits aktivieren
    #
    CIRC_N='1'
    CIRC_1_NAME='DSL-Telekom'           # beliebig, aber eindeutig
    CIRC_1_TYPE='ppp'                   # das ist ein PPP-Circuit
    CIRC_1_ENABLED='yes'
    CIRC_1_NETS_IPV4_N='1'
    CIRC_1_NETS_IPV4_1='0.0.0.0/0'      # Default-Route ins Internet
    CIRC_1_CLASS_N='1'
    CIRC_1_CLASS_1='internet'           # Klasse für Internet-Anbindung
    CIRC_1_UP='yes'                     # beim Booten aktivieren
    CIRC_1_TIMES='Mo-Su:00-24:0.0:Y'
    CIRC_1_USEPEERDNS='yes'             # DNS-Server des Providers nutzen
    CIRC_1_PPP_TYPE='ethernet'          # PPPoE-Client
    CIRC_1_PPP_USERID='anonymer'        # Benutzername zur Authentifizierung
    CIRC_1_PPP_PASSWORD='surfer'        # Passwort zur Authentifizierung
    CIRC_1_PPP_ETHERNET_TYPE='kernel'   # Kernel soll PPPoE-Pakete packen
    CIRC_1_PPP_ETHERNET_DEV='eth1'      # Karte, an der das DSL-Modem hängt
    #
    CIRC_CLASS_N='1'
    CIRC_CLASS_1='internet'             # Klasse aller Internet-Circuits

Beispiel 2 (PPPoE-Server):

    OPT_PPP='yes'                       # PPP-Circuits aktivieren
    OPT_PPP_ETHERNET_SERVER='yes'       # PPPoE-Server-Circuits aktivieren
    OPT_PPP_PEERS='yes'                 # zum Speichern der Anmeldedaten
    PPP_PEER_N='1'                      # 1x Anmeldedaten hinterlegen
    PPP_PEER_1_USERID='user'            # Benutzername vom Client
    PPP_PEER_1_PASSWORD='pass'          # Passwort vom Client
    PPP_PEER_1_CIRCUITS='pppoe-eth1'    # Anmeldedaten gelten für PPPoE-Circuit
    #
    CIRC_N='1'
    CIRC_1_NAME='pppoe-eth1'            # beliebig, aber eindeutig
    CIRC_1_TYPE='ppp'                   # das ist ein PPP-Circuit
    CIRC_1_ENABLED='yes'
    CIRC_1_UP='yes'                     # beim Booten aktivieren
    CIRC_1_TIMES='Mo-Su:00-24:0.0:Y'
    CIRC_1_PROTOCOLS='ipv4'             # IPv4 soll über die Verbindung laufen
    CIRC_1_PPP_TYPE='ethernet-server'   # PPPoE-Server
    CIRC_1_PPP_PEER_AUTH='yes'          # Client-Authentifizierung ist Pflicht
    CIRC_1_PPP_LOCALIP='192.168.222.1'  # IP-Adresse des Servers
    CIRC_1_PPP_REMOTEIP='192.168.222.2' # Start-IP-Adresse der Clients
    CIRC_1_PPP_ETHERNET_SERVER_TYPE='kernel'  # Kernel soll PPPoE-Pakete packen
    CIRC_1_PPP_ETHERNET_SERVER_DEV='eth1'     # Ethernet-Karte für PPPoE
    CIRC_1_PPP_ETHERNET_SERVER_SESSIONS='10'  # max. 10 Clients

In der Dokumentation des PPP-Pakets im Abschnitt ``Multilink PPP'' finden Sie ein Beispiel gebündelter PPPoE-Server-Verbindungen.


Footnotes

... (PPPoE4.21
``Point-to-Point Protocol over Ethernet'', siehe RFC 2516
© 2001-2022 Das fli4l-Team - September 5, 2022