PPPoE braucht gut 2 Minuten zur Einwahl

Herakles

Profifragensteller
Moin!

Ich habe soeben ein neues OpenBSD aufgesetzt und lasse es als reinen Router auf einem ALIX-Board von PCEngines laufen. Soweit nichts spektakuläres. Das System wählt sich per PPPoE in einen DSL-Account der Telekom ein und dient dann 5 Rechnern als Internetgateway. Ein bisschen OpenVPN und DNS noch dazu - alles nichts Neues.

Nun beobachte ich beim booten des Gerätes auf der seriellen Konsole folgendes:

Code:
(...)
setting tty flags
pf enabled
net.inet.ip.forwarding: 0 -> 1
starting network
openvpn: writing to routing socket: No such process
openvpn: writing to routing socket: No such process
openvpn: writing to routing socket: No such process
openvpn: writing to routing socket: No such process
add net 192.168.111.0: gateway 192.168.111.2  
Working in ddial mode                           
Using interface: tun0                 
no IP address found for tun0
/etc/pf.conf:114: could not parse host specification
pfctl: Syntax error in config file: pf rules not loaded
starting early daemons: syslogd pflogd ntpd.
(...)

Da steht also, dass pf nicht hochfahren will, weil tun0 noch keine IP hat. Exakt 2:15 min nach diesen Meldungen auf der seriellen Konsole ist das behoben, was ich daran merke, dass sich der Router entsprechend des pf-Regelwerkes verhält und meine Internetverbindung auch von den Rechnern dahinter funktioniert.

OpenVPN hat offenbar auch Hochfahrprobleme - aus demselben Grund?

Wie kann es sein, dass die ppp-Verbindung noch nicht steht oder noch besser gefragt: was kann ich dagegen tun, dass es so ist, wie es ist? Ich habe mich sicher "verkonfiguriert" - fragt sich nur, wo...!?

Wer hilft mir aus der Patsche? Ich bin für jeden Hinweis dankbar.

Viele Grüße
Herakles
 
Hmm, ich würde einfach mal den Splitter für ein paar Sekunden von seiner Energieversorgung trennen.
 
Mit pf hat das eigtl nichts zu tun.

2 Sachen beachten: Interfaces nur in Klammern und keine Hostnamen benutzen. Zur Not Hostnamen in Tabellen pushen per cron.
 
hatte mal das gleiche (?) Problem, allerdings auf FreeBSD.
In Ermangelung einer *offiziellen* Lösung hab ich das über (in menem Fall mpd)_linkup gelöst.
Äquivalent dazu ist wohl (FreeBSD) ppp_linkup oder ähnliches.
Code:
#!/bin/sh
pfctl -d        ###  disable pf before (re)enabling
pfctl -e -f /etc/pf.dmz -o basic

Das läßt das System/den Router *einen_Augenblick* ohne pf, Risiko ist aber bei einer dynamischen IP naturgemäß überschaubar.

hth

edit:
Ein gutes Archiv ist doch immer was wert. :rolleyes:
Also: pf startet vor tun0 und dies hat noch keine IP, also: siehe Fehlermeldung.
Meine Lösung oben war für mpd, und das hat eine etwas andere Syntax.
Für ppp ist das eher wie folgt:
ppp liest ppp.linkup und diese braucht eine Eintrag zur Reinitialisierung von pf um dann, nachdem der Link und die IP existiert, in pf nochmals die korrekten Werte einzulesen. man ppp(8) hat mehr.
Etwas wie das Folgende sollte funktionieren.
Code:
MYADDR:
   !bg /sbin/pfctl  -d 
   !bg /sbin/pfctl  -e -f /pfad/zu/pf.conf
 
Zuletzt bearbeitet:
Welche pppoe benutzt du? Das aus dem Userland oder das kernelseitige pppoe(4)? Das Userland pppoe ist alt, lahm und sollte eigentlich nicht mehr verwendet werden.

Desweiteren scheinst du einen Syntax Error zu haben, aber ohne deine pf.conf kann dir da nur wenig geholfen werden.
 
@makenoob: Ich nutze Userland pppoe, weil ich keine vernünftige Doku zum Kernel-pppoe gefunden habe. Fragt sich, was "lahm" bedeutet - merke ich das in einem Standardnutzer-Heimnetzwerk derart, dass es sich lohnt, in Kernel-pppoe einzufuchsen?
Was den Syntax error angeht: der ist natürlich da, weil eben noch keine Adresse an der Stelle vorhanden ist. Sobald pppoe die Verbindung aufgebaut hat, gibt es keinen Syntax error mehr - das war der Kern meiner anfänglichen Frage. Der Error entsteht durch ein simples:

Code:
block on $ExtDev

@metro: Ich werde mein Script mal anpassen und sehen, was geschieht. Danke!
 
man 4 pppoe. Im Grunde einfach ein /etc/hostname.pppoe0 anlegen in dem die Zugangsdaten hinterlegt sind, die Netzwerkkarte dazu brauch nur ein simples "up" und schon sollte es laufen. Die Examples sind m.M.n. hilfreich und ausführlich.
 
Zurück
Oben