OpenBSD 4.0 In-Kernel-PPPOE

schnipp

New Member
Hallo erstmal,

also ich bin noch ein ziemlicher Anfänger was Unix/Linux angeht. Das vorweg.
Ich habe mir in den Kopf gesetzt zu Hause einen Router mit OpenBSD zu "bauen". Mir war auch klar das das mit einem anderen OS vielleicht viel einfacher wäre. Aber bei meinen Recherchen über infragekommende Betriebssysteme bin ich da einfach "hängen" geblieben. Zumal mich die Herausforderung ein möglichst minimalistisches System aufzusetzten auch gereizt hat.
Naja, die Installation war relativ unproblematisch. Die ist ja auch sehr ausführlich beschrieben auf openbsd.org und auf diversen anderen Seiten im Internet.
(Ich habe mir dazu auf meinem Win2k-Arbeitsrechner den Systemeigenen FTP eingerichtet und alle notwendigen Daten für die Installation dort gespeichert.)
Jetzt wollte ich natürlich die Internetverbindung einrichten. ich habe t-dsl. Und da bin ich jetzt schon ein paar Wochen dabei. In dieser Zeit habe ich einiges gelesen und auch gelernt. Unter anderem auch das "In-Kernel-PPPOE" schneller ist und weniger Systemlast erzeugt. Sowas läßt mir ja keine ruhe. Also steht das auch auf meiner "Wunschliste". Dafür muß man aber den Kernel kompilieren. Also wieder suchen/lesen/lernen. Gut, ich habe die Quellen für den kernel runtergeladen und entpackt und editiert. achja, ich kann jetzt auch ganzgut mit vi arbeiten. :)
Das editieren beschränkte sich auf das hinzufügen der Zeile:
Code:
pseudo-device pppoe
hoffe ich zumindest. Als "config GENERIC" ausführte erhielt ich eine Warnung:
Code:
config: warning: dublicate definition of `pppoe´, will use latest definition
heißt aber eigentlich nur das er die neusten pppoe-Daten zum bau des kernels benutzen würde, oder? Das Kompilieren des Kernels hat dann aufjedenfall über 10 std gedauert. Wie lange genau weiß ich nicht. Ich bin dann schlafen gegangen. habe ich das richtig verstanden das der kernel immer derselbe ist, zumindest inerhalb der jeweiligen Architektur? könnte ich das nächste Mal den kernel auf einem anderen PC kompilieren und dann einfach "rüberkopieren"? Das sind allerdings nur sekundäre Fragen.
An nächsten Morgen war er aufjedenfall fertig und es gab auch keine Fehlermeldungen. Jetzt kam der spannende Augenblick den Pc rebooten zu lassen und sehen ob oder was passiert. Tja was soll ich sagen - Ich würde sicherlich nicht hier schreiben wenn alles wunderbar geklappt hätte.
Folgende Meldung bekomme ich:
Code:
route: writing to routing socket: Network is unreachable
add net default: gateway 0.0.0.1: Network is unreachable
Hier komme ich irgendwie alleine nicht mehr weiter.
Ich hänge hier mal noch die Daten von der Netzwerkkonfiguration an:

/etc/hostname.fxp0 - ist die Netzwerkkarte in meinem eigenen Netzwerk
Code:
inet 192.168.0.100 255.255.255.0 NONE

/etc/hostname.xl0 - ist die Netzwerkkarte über die die pppoe-verbindung laufen soll
Code:
up

/etc/hostname.pppoe0 - die "virtuelle" pppoe-Schnittstelle
Code:
inet 0.0.0.0 255.255.255.255 0.0.0.1 pppoedev ne0 \
        authproto pap authname <Anschlusskennung+T-Online-Nr+#0001@t-online.de> authkey <Kennwort> up
!/sbin/route add default 0.0.0.1
ich hatte erst die konfigution hier aus dem Forum (von janus)http://www.bsdforen.de/showthread.php?t=13610&highlight=pppoe+kernel
/etc/hostname.pppoe0:


Code:
pppoedev xl0 description "pppoe device (virtual)" group uplink !/sbin/ifconfig xl0 up !/usr/sbin/spppcontrol \$if myauthproto=chap myauthname=y myauthkey=x !/sbin/ifconfig \$if inet 0.0.0.0 0.0.0.1 netmask 0xffffffff up !/sbin/route add default 0.0.0.1

Wichtig in /etc/pf.conf:

Code:
scrub out on pppoe0 max-mss 1440

Und das was du noch meintest muss in /etc/sysctl.conf:


Code:
net.inet.tcp.mssdflt=1440
Ich bin dann aber über folgendes gestolpert:
http://www.openbsd.org/faq/de/upgrade40.html
# spppcontrol(8) wurde entfernt

Die Konfiguration vom In-Kernel-PPP wird nun vollständig von ifconfig(8) unterstützt. Das überholte Werkzeug spppcontrol(8) wurde entfernt. Wirf einen Blick auf die beiden Manualseiten sppp(4) und pppoe(4) wenn du Konfigurationsbeispiele sehen möchtest.

Bisher sah die /etc/hostname.pppoe0-Datei wie folgt aus:

pppoedev ne0
!/sbin/ifconfig ne0 up
!/usr/sbin/spppcontrol \$if myauthproto=pap myauthname=testcaller \
myauthkey=donttell
!/sbin/ifconfig \$if inet 0.0.0.0 0.0.0.1 netmask 0xffffffff
!/sbin/route add default 0.0.0.1
up

Diese Datei sollte basierend auf dem folgenden Beispiel ersetzt werden:

inet 0.0.0.0 255.255.255.255 0.0.0.1 pppoedev ne0 \
authproto pap authname testcaller authkey donttell up
!/sbin/route add default 0.0.0.1


Das physikalische Interface muss ebenfalls auf UP gesetzt werden:

# echo "up" > /etc/hostname.ne0
Die beiden Dateien von janus (/etc/pf.conf und /etc/sysctl.conf) habe ich beibehalten.
Wäre wirklich nett wenn mir jemand etwas weiterhelfen könnte.
 
Gut, hab es auch alleine zum laufen bekommen.
Jetzt stört mich noch das ich nicht weiß wie "er" die DNS-Serveradressen beziehen kann. Momentan habe ich einfach zwei DNS-Server von der Telekom in die resolv.conf eingetragen und das funktioniert auch. Wenn ich aber alles richtig verstanden habe wird bei der Einwahl per PPPoE nicht nur mir eine IP vergeben sondern auch DNS-Serveradressen übermittelt. Wie kann ich die denn "abgreifen" und in die resolv.conf schieben?
Hat dazu vielleicht jemand wenigstens einen Tipp?

Hm...Bind muß auch noch rauf damit ich bei den Clients nicht mehr die DNS-Server von der Telekom eintragen muß. naja, kommt noch...
 
Wenn ich aber alles richtig verstanden habe wird bei der Einwahl per PPPoE nicht nur mir eine IP vergeben sondern auch DNS-Serveradressen übermittelt. Wie kann ich die denn "abgreifen" und in die resolv.conf schieben?
Hat dazu vielleicht jemand wenigstens einen Tipp?

Das geht AFAIK im Kernel-PPPoE noch nicht.
 
hi schnipp,

bind ist schnell eingerichtet und gestartet und dann kannst du auch einfach die lokale ip in die resolv.conf schreiben.

falls du ein wenig unterstüzung brauchst:

http://www.kernel-panic.it/openbsd/dns/

noch ein kleiner tipp zu der mtu von deinem pppoe0-interface:

diese kannst du direkt mit in die hostname.if schreiben, dann kannst du dir die scrubrule und das andere sparen. ich musste das für arcor machen, weil die ne kleinere verwenden. das sieht dann so aus:

marc@losraidonos
~ $ cat /etc/hostname.pppoe0
inet 0.0.0.0 255.255.255.255 0.0.0.1 pppoedev rl0 authproto pap authname meinarcorname authkey strenggeheim mtu 1488 up
!sbin/route add default 0.0.0.1
du solltest da die 1492 eintragen (t-dsl).
bei mir ging das mit dem scrub nämlich nicht.

und wenn du es dir ganz einfach machen willst, dann kannst du die kiste auch dhcp machen lassen... dazu gibts ne FAQ und die manpage hilft auch :)

hth,
marc
 
Zurück
Oben