DSL konfigurieren unter NetBSD

[moR-pH-euS]

Magnum P.I.
Da es keine deutsche übersetzung für die DSL Konfiguration unter NetBSD gibt (zumindest habe ich keine gefunden) habe ich die passage im Handbuch mal übersetzt und erweitert. Hoffe es hilft einigen NetBSD-Usern.


Zuerst bauen wir eine manuelle Test Verbindung via DSL auf. Wenn ihr einen neuen Kernel
gebaut habt, ueberprueft ob ihr auch die option "pseudo-device pppoe" noch im Kernel habt.
(Die Option ist allerdings im Generic-Kernel)
Ueberpruefen koennt ihr es ganz schnell mit folgendem Kommando:

morpheus@netbsd-gw# ifconfig -C
tun pppoe

wenn ihr als aus Ausgabe "tun pppoe" bekommt, ist alles in ordnung, ansonsten heisst
es den Kernel nochmal kompilieren.

Fangen wir also mit der manuellen Test Verbindung an (manuell deswegen damit wir
einen Fehler schneller ausmaerzen koennen, bei einer automatischen Einwahl ist die
Fehlersuche etwas aufwendiger, deswegen dieser Weg).

Zuerst erstellen wir das pppoe0 Interface und weissen ihr eine dummy-ip zu die spaeter
beim Verbindungsaufbau durch die zugewiesene ersetzt wird.
Die Befehle muesst ihr als root ausfuehren und das interface das bei mir zum dsl-modem geht
heisst ne0, das interne das ins lan geht ist rtk0.

root@netbsd-gw# ifconfig pppoe0 create

root@netbsd-gw# ifconfig pppoe0 inet 0.0.0.0 0.0.0.1 down

Als naechtes wird dem pppoe0 Interface die NIC die zum DSL-Modem geht zugewiesen (hier ne0)

root@netbsd-gw# ifconfig ne0 up

root@netbsd-gw# pppoectl -e ne0 pppoe0

Nun geben wir unseren Loginnamen und das Passwort an (bei myauthname kommt der login hin, bei
t-online eben t-onlinenummer, bei myauthsecret das passwort, der rest bleibt so wie er ist)

syntax fuer myauthname bei t-online: anschlusskennung+t-online-nr+#0001@t-online.de
wenn die anschlusskennung aus ueber 12 Zeichen besteht, entfaellt die Raute.

root@netbsd-gw# pppoectl pppoe0 myauthproto=pap 'myauthname=000123456789123456789123#0001@t-online.de' 'myauthsecret=01234567' hisauthproto=none#

Jetzt setzen wir Anzahl der Fehlerversuche auf eins (ansonsten versucht er staendig sich einzuwahlen
mit vielleicht falschen Login-Daten und wenn er das sieben mal macht wird euer
Anschluss bis Mitternacht gesperrt)

root@netbsd-gw# pppoectl pppoe0 max-auth-failure=1

probieren wir jetzt den Verbindungsaufbau

root@netbsd-gw# ifconfig pppoe0 up

wenn ein Ping auf eine webseite noch nicht geht muesst ihr wohl noch die /etc/resolv.conf editieren und nameserver
eintragen, hier seht ihr meine /etc/resolv.conf:

root@netbsd-gw# cat /etc/resolv.conf
nameserver 194.152.64.35
nameserver 194.25.2.132
lookup file bind

wenn ihr nun noch folgende ausgabe bekommt:

root@netbsd-gw# pppoectl -d pppoe0
pppoe0: state = session
Session ID: 0x91a
PADI retries: 0
PADR retries: 0

d.h. state = session, dann habt ihr eine Verbindung via DSL mit euere NetBSD-Kiste, was ihr nun
auch mit ifconfig sehen solltet:

root@netbsd-gw# ifconfig -a
rtk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:50:fc:ca:da:df
media: Ethernet none (none)
inet 192.168.1.200 netmask 0xffffff00 broadcast 192.168.1.255
ne0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:40:95:45:4a:a2
media: Ethernet manual
lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 33220
inet 127.0.0.1 netmask 0xff000000
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
inet 217.230.135.213 -> 217.5.98.56 netmask 0xff000000

wenn ein ping geht und ihr keine webseiten erreichen koennt, habt ihr ein dns-problem, d.h. ihr
habt vergessen einen nameserver in der /etc/resolv einzutragen;
wenn ein ping nicht geht (no route to host), aber ihr trotzdem eine ip zugewiesen bekommt und
"state = session" kommt habt ihr ein routing problem;
Das seht ihr mit "netstat -r" bzw. "route show", damit seht ihr eure default route bzw. gateways
der default gateway muss auf die interne ip zeigen, in diesem Fall bei mir 217.230.135.213);
(bei der dsl-verbindung werden 2ip's angzeigt, eine lokale und eine von der gegenstelle,
da dsl eine punkt-zu-punkt verbindung ist, hier in meinem fall ist meine ip, unter der ich
auch erreichbar bin, die 217.230.135.213)

dabei seht ihr bei route show eure ip:

root@netbsd-gw# route show
Routing tables

Internet:
Destination Gateway Flags
default 217.230.135.213 UG
loopback 127.0.0.1 UGR
localhost 127.0.0.1 UH
192.168.1.0 link#1 U
192.168.1.5 00:10:5a:d8:39:ee UH
217.5.98.56 217.230.135.213 UH


und bei netstat -r den dns-namen (hier pD9E687D5.dip.t-di...)

root@netbsd-gw# netstat -r
Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu Interface
default pD9E687D5.dip.t-di UGS 0 34 - pppoe0
loopback localhost UGRS 0 0 33220 lo0
localhost localhost UH 1 0 33220 lo0
192.168.1 link#1 UC 1 0 - rtk0
192.168.1.5 00:10:5a:d8:39:ee UHLc 1 1302 - rtk0
217.5.98.56 pD9E687D5.dip.t-di UH 0 0 - pppoe0

AppleTalk:
Destination Gateway Flags Refs Use Mtu Interface

so sollte es aussehen...
Ich nehme an das sind die haeufigsten Fehler die auftauchen, neben dem vertippen ;-)

Nachdem die manuelle Verbindung nun hoffentlich geklappt hat koennen sollten wir eine
automatische Verbindung erstellen lassen, da wir ansonsten jeden tag uns neu einwaehlen
muessten. (wenn ihr keine flatrate habt ist das nicht zu empfehlen bzw. wenn ihr fuer
die zeit die ihr online seit zahlt... dann solltet ihr eine dial on demand loesung in
betracht ziehen http://www.netbsd.org/Documentation/network/pppoe/#connect-on-demand)

Dieses Script wird dann immer wenn der Server hochfaehrt bzw. wenn die Verbindung gekappt wird
den Server neu einwaehlen.
Zuerst erstellen wir die /etc/ifconfig.pppoe0
Sie sollte so aussehen:

root@netbsd-gw# cat /etc/ifconfig.pppoe0
create
# Mark the physical interface used by this PPPoE interface up
! /sbin/ifconfig ne0 up
# Let $int use ne0 as its Ethernet interface
! /sbin/pppoectl -e ne0 $int
# Configure authentication
! /sbin/pppoectl $int myauthproto=pap 'myauthname=000123456789320012345678#0001@t-online.de' 'myauthsecret=01234567' hisauthproto=none
# Configure the PPPoE interface itself. These addresses are magic
# meaning we don't care about either address and let the remote
# ppp choose them.
0.0.0.0 0.0.0.1 up

dann noch ein

root@netbsd-gw# chmod 700 ifconfig.pppoe0

dann erstellen wir das ppp verzeichniss in /etc/

root@netbsd-gw# mkdir /etc/ppp

und die beiden scripte ip-up bzw. ip-down kommen in das /etc/ppp/ verzeichniss:

root@netbsd-gw# cat /etc/ppp/ip-up
#! /bin/sh
/sbin/route add default $5

mit dem ip-up wird beim aufbauen der connection die defaultroute auf die interne ip der dsl-verbinding
gesetzt, muss jedesmal gemacht werden, da ja bei jedem neuen verbindungsaufbau eine neue ip zugewiesen
wird;

root@netbsd-gw# cat /etc/ppp/ip-down
#! /bin/sh
/sbin/route delete default $5

hier wird die route beim verbindungsabbau wieder geloescht;

jetzt muessen sie nur noch ausfuehrbar fuer root gemacht werden:

root@netbsd-gw# chmod 700 ip-down ip-up

am ende noch ein ifwatchd=YES in die /etc/rc.conf einfuegen und das wars dann...
jetzt sollte der server sich nach einem reboot bzw. beim verbindungsabbau wieder
einwaehlen;
ifwatchd ist im uebrigen dafuer zustaendig das die ip-up bzw. -down scripte ausgefuehrt werden;

jetzt solltet ihr ohne probleme mit dem router online kommen und er sollte sich immer einwaehlen;
als naechstes konfigurieren wir nat, damit auch alle Rechner hinter dem Router online gehen
koennen.

Zuerst setzen wir in der /etc/sysctl.conf folgenden Wert ein:

# Obey interface MTUs when calculating MSS
net.inet.tcp.mss_ifmtu=1
net.inet.ip.forwarding = 1

und passen danach noch die /etc/ipnat.conf an bzw. erstellen sie mit folgenden Werten:

map pppoe0 192.168.1.0/24 -> 0/32 portmap tcp/udp 44000:49999 mssclamp 1440
map pppoe0 192.168.1.0/24 -> 0/32 mssclamp 1440

meine ip-range daheim ist 192.168.1.0 mit Netmask 255.255.255.0 bzw. /24, diese Werte
muesst ihr natuerlich an eure anpassen.

nun erstellen wir noch die /etc/ipf.conf und zum testen lassen wir alle pakete durch den
paketfilter passieren:

pass in from any to any
pass out from any to any

in die /etc/rc.conf muss nun noch folgender eintrag damit die firewall und nat immer
gestartet wird:

ipfilter=YES
ipnat=YES

nach einem neustart bzw. einem /etc/rc.d/ipfilter start und /etc/rc.d/ipnat start
sollten die clients online gehen koennen.
Ihr muesst natuerlich noch den Paketfilter anpassen, sonst ist euer Router nach aussen
offen wie ein Scheunentor (und von innen kann auch jeder alles nach draussen machen).

bei Fehlern bitte eine pm an mich
 
Zuletzt bearbeitet:
Problem Netzwerkkonfiguration DSL-Modem

Hallo,
wie ich schon gelesen habe, bin ich nicht der Erste, der Probleme mit der Netzwerkkonfiguration unter NetBSD hat, aber vielleicht kann ich das doch noch abstellen.
Ich versuche mich gerade an NetBSD 1.6.2 (Generic-Kernel).
Die Hardware: Netgear FA311 und Teledat 3331Lan DSL-Modem.
Ich bin der Anleitung von moR-pH-euS gefolgt, was soweit auch funktioniert. Ich bekomme eine Verbindung, so denke ich.

pppoectl -d pppoe0
pppoe0: state=session
session ID: 0xadd
PADI retries: 0
PADR retries: 0

ifconfig pppoe0
pppoe0: flags=8851<UP,POINTOPOINT,SIMPLEX,MULTICAST> MTU 1454
inet 80.185.114.71 -> 62.104.190.40 netmask 0xff000000
inet6 fe80::209:5bff: fe20:a6cb%pppoe0-> :: prefixlen 64 scopeid 0x9

Aber es funktioniert kein ping.
Immer "no route to host".
Und nslookup meldet "Can't find server name for ...". "Default servers are not available".
In die resolv.conf habe ich die Nameserver eingetragen, welche ich auf meiner Linux-Partition (Gentoo) für den DSL-Zugang benutze.
In der Datei hosts steht nur
::1 localhost
127.0.0.1 localhost.

route show liefert folgendes
internet
Destination Gateway Flags
62.104.190.40 80.185.126.54 UH
loopback 127.0.0.1 UGR
localhost 127.0.0.1 UH

Leider sind meine Netzwerkkenntnisse zu schlecht, um mit die Meldungen richtig zu deuten.
Woran liegts? Muss ich die Netzwerkkarte noch irgendwie konfigurieren?
Muss ich die Variable defaultroute setzen? Ich dachte, dies macht meine hosts Datei?
Sorry, falls ich Euch langweile.
 
und weiter gehts

Also meine Ausgabe von netstat -r ist etwas karg:

internet
destination gateway flags refs use mtu interface
62.104.190.40 80.185.116.166 UH 0 0 - pppoe0
loopback localhost UGRS 0 0 33220 lo0
localhost localhost UH 1 0 33220 lo0

Der Rest (XSN, ...) ist ohne Einträge, bis auf IP6

Wo finde ich das Script ip-up? Wie sollte es aussehen? Bisher habe ich daran noch nichts geändert.
 
Ich habe NetBSD 1.6.2 installiert und PPPOE exakt nach dem Tutorial konfiguriert. Soweit läuft auch alles, zwischendurch gibt es aber Probleme:
Bei 2 von 10 Neustarts wird anscheinend das IP-UP Script nicht ausgeführt und deshablb die Route nicht gesetzt .
Irgendeine Idee, was das sein kann?
 
Sagrotan schrieb:
Bei 2 von 10 Neustarts wird anscheinend das IP-UP Script nicht ausgeführt und deshablb die Route nicht gesetzt .

wieso "anscheinend" ?
was sagt denn ein
#route show
bzw.
#ifconfig -a
steht die ip, die du bei ifconfig bekommst als default gateway in den routing tables ?
manchmal dauert es auch ein paar minuten etwas bis die connection aufgebaut wird...
 
[moR-pH-euS] schrieb:
wieso "anscheinend" ?
was sagt denn ein
#route show
bzw.
#ifconfig -a
steht die ip, die du bei ifconfig bekommst als default gateway in den routing tables ?
manchmal dauert es auch ein paar minuten etwas bis die connection aufgebaut wird...

Gut, dann formuliere ich es anders =)

Die Defaultroute wird nicht gesetzt und ich vermute, dass es daran liegt, dass aus irgendeinem Grund ip-up nicht gestartet wird.
Die Connection ist sofort aufgebaut, das sehe ich ja daran, dass ich eine IP erhalte. Ich kann dann per Hand die Route setzen, dann geht's.
Wie gesagt - 8 mal klappt's, bei 2 Versuchen nicht...

Ach so, ifwatchd läuft, das hab ich überprüft.
 
Gerade nochmal ausprobiert... Wieder das Problem, dass die Defaultroute nicht gesetzt wird.
Wenn ich jetzt ifconfig pppoe0 down und danach wieder ifconfig pppoe0 up tippe, wählt er sich neu ein und die Route wird gesetzt... Sehr merkwürdig.... Wie gesagt: exakt wie im howto, deshalb poste ich meine Konfigurationsdateien auch nicht. Auf nem anderen Rechner hatte ich dieses Problem übrigens vor einiger Zeit auch schon, hab mich aber dann nicht weiter damit beschäftigt.
Irgendwer ne Idee?
 
Sagrotan schrieb:
Gerade nochmal ausprobiert... Wieder das Problem, dass die Defaultroute nicht gesetzt wird.
Wenn ich jetzt ifconfig pppoe0 down und danach wieder ifconfig pppoe0 up tippe, wählt er sich neu ein und die Route wird gesetzt... Sehr merkwürdig.... Wie gesagt: exakt wie im howto, deshalb poste ich meine Konfigurationsdateien auch nicht. Auf nem anderen Rechner hatte ich dieses Problem übrigens vor einiger Zeit auch schon, hab mich aber dann nicht weiter damit beschäftigt.
Irgendwer ne Idee?

also ich habe mittlerweile einige netbsd-dsl-router aufgesetzt und hatte noch nie ein derartiges problem. sicher das die configs stimmen ? wenn du das gleiche problem schon auf einem anderen rechner hattest, dann hast du irgendetwas falsch gemacht...
leider kann ich aus deinen postings den fehler auch nicht weiter einschränken :confused:
 
[moR-pH-euS] schrieb:
wenn du das gleiche problem schon auf einem anderen rechner hattest, dann hast du irgendetwas falsch gemacht...
leider kann ich aus deinen postings den fehler auch nicht weiter einschränken :confused:

Keine Ahnung.. Abschreiben ist eigentlich nicht so schwer ;-) Und PPPOE unter NetBSD zu konfigurieren ist ja eigentlich ein Kinderspiel.... Ausserdem klappt es ja in den meisten Fällen, nur eben zwischendurch nicht...

Hier mal meine Konfigurationsdateien, vielleicht hab ich ja wirklich was übersehen:

/etc/ifconfig.pppoe0:

create
! /sbin/ifconfig ex0 up
! /sbin/pppoectl -e ex0 $int
! /sbin/pppoectl $int myauthproto=pap myauthname=sagrotan myauthsecret=sagichnich hisauthproto=none
0.0.0.0 0.0.0.1 up


/etc/ppp/ip-up:

#!/bin/sh
/sbin/route add default $5


und in /etc/rc.conf:

ifwatchd=YES



Unter FreeBSD, OpenBSD oder Linux nie ein Problem gehabt... Ich WILL aber NetBSD nutzen =)
 
ich kann keine fehler bei dir feststellen in den scripts... es könnte vielleicht sein das die connection manchmal bei dir nicht so schnell aufgebaut wird und ifwatchd das zulange dauert und er deswegen kein route setzt weil sich pppoe noch nicht connected hat und keine ip hat und er dadurch noch keinen gateway setzen kann... (ist jetzt mal ein schuss ins blaue).
tritt es bei dir exakt nach jedem 8.ten boot auf bzw. ist es reproduzierbar nach z.B. dem 4.ten boot, oder ist das unterschiedlich ?
 
Hallo moR-pH-euS!

Die Verbindung ist immer sofort da...
Ich habe mal den Programmierer von ifwatchd gefragt, was er zu dem Problem sagt. Seiner Meinung nach kann es sich dabei nur um ein Kernelproblem handeln.
Ich hab nen neuen Kernel gebaut und seitdem keinerlei Probleme mehr gehabt.
 
Sagrotan schrieb:
Hallo moR-pH-euS!

Die Verbindung ist immer sofort da...
Ich habe mal den Programmierer von ifwatchd gefragt, was er zu dem Problem sagt. Seiner Meinung nach kann es sich dabei nur um ein Kernelproblem handeln.
Ich hab nen neuen Kernel gebaut und seitdem keinerlei Probleme mehr gehabt.

und was hast du an deinem kernel geändert ?
 
Zurück
Oben