[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
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: