Achtung! Die Howtos stammen aus der Zeit vor 2006 und sind nur noch aus historischen Gründen online!
Ich möchte ganz kurz und schmerzlos die Konfiguration eines ADSL Zugangs unter FreeBSD mit Hilfe des mpd, dem "netgraph multi-link PPP daemon", erläutern. Mpd verwendet das Netgraph Subsystem des FreeBSD-Kernel zur eigentlichen Kommunikation, wobei die PPP Implementation in einem User-Prozess erfolgt. Somit werden Geschwindigkeit und Robustheit der Kernel-Implementation von Netgraph mit der Flexibilität der User-Implementation von PPP in mpd kombiniert.
Anmerkung: Leider gibt es Probleme mit mpd und dem Alcatel 1000 ADSL Modem (ISDN und ADSL). Mpd funktioniert aber einwandfrei mit den Alcatel Modems für Analog und ADSL. Es handelt sich scheinbar um einen Bug in der Firmware des Alcatel 1000 ADSL Modems.
Mpd kann ohne weiters auch für normale PPP Verbindungen mit einem Modem verwendet werden, ich werde mich hier aber auf die Verwendung für einen ADSL Zugang mit PPTP (Point to Point Tunneling Protocol von Microsoft) konzentrieren.
options NETGRAPH #netgraph(4) system options NETGRAPH_ASYNC options NETGRAPH_BPF options NETGRAPH_CISCO options NETGRAPH_ECHO options NETGRAPH_FRAME_RELAY options NETGRAPH_HOLE options NETGRAPH_IFACE options NETGRAPH_KSOCKET options NETGRAPH_LMI # MPPC compression requires proprietary files (not included) #options NETGRAPH_MPPC_COMPRESSION options NETGRAPH_MPPC_ENCRYPTION options NETGRAPH_PPP options NETGRAPH_PPPOE options NETGRAPH_PPTPGRE options NETGRAPH_RFC1490 options NETGRAPH_SOCKET options NETGRAPH_TEE options NETGRAPH_TTY options NETGRAPH_UI options NETGRAPH_VJC
Bei einer Standardinstallation kann man ohne weiteres Netgraph automatisch laden lassen, was für einen FreeBSD-Neuling wesentlich einfacher (Plug and Play) ist, da er keinen neuen Kernel übersetzen muss.
Entweder durch Download des mpd-netgraph-Packages von einem FreeBSD FTP Server und pkg_add oder durch Übersetzen des Ports unter /usr/ports/net/mpd-netgraph. Beim Übersetzen des Ports ist als Benutzer root wie folgt vorzugehen:
Und schon ist mpd übersetzt und installiert.
Als erstes konfigurieren wir die Datei /usr/local/etc/mpd/mpd.conf:
default: load adsl adsl: new -i ng0 adsl adsl set iface disable on-demand set iface addrs 192.168.1.1 192.168.2.2 set iface idle 0 set iface route default set bundle disable multilink set bundle authname xyz@inode.at set bundle password abcdefg12 set link no acfcomp protocomp set link no pap set link disable chap set link accept chap set ipcp no vjcomp open
Die beiden Adressen 192.168.1.1 und 192.168.2.2 sind willkürlich gewählt und werden vom PPP als Platzhalter für die tatsächlichen IP-Adressen verwendet. Eventuell sollten diese beiden Adressen in keinem lokalen Netzwerk vorkommen.
Als nächstes folgt die Datei /usr/local/etc/mpd/mpd.links:
adsl: set link type pptp set pptp self 10.0.0.1 set pptp peer 10.0.0.138 set pptp enable originate incoming outcall
Die Adresse 10.0.0.1 ist die Adresse des Computers der mit ADSL mit dem Internet verbunden werden soll, 10.0.0.138 ist die IP-Adresse der ADSL-Modems der Telekom Austria. 10.0.0.138 ist fix vergeben und kann nicht geändert werden.
Start des mpd erfolgt als Benutzer root aus der Shell mit:
Auf diese Art wird mpd im Vordergrund gestartet und man erhält einige Logging-Informationen. Um mpd im Hintergrund zu starten gibt man folgendes Kommando ein:
Wenn alles geklappt hat, sollte man folgende ähnliche Ausgabe bei netstat -in erhalten:
# netstat -in Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll ed0 1500 00:00:21:6b:28:fd 32155 0 32453 0 5 ed0 1500 10 10.0.0.1 32155 0 32453 0 5 ed1 1500 00:4f:49:06:6b:52 13813 0 4789 0 3 ed1 1500 192.168.202 192.168.202.1 13813 0 4789 0 3 lp0* 1500 0 0 0 0 0 ppp0* 1500 0 0 0 0 0 ppp1* 1500 0 0 0 0 0 lo0 16384 163 0 163 0 0 lo0 16384 127 127.0.0.1 163 0 163 0 0 ng0 1500 20285 0 19404 0 0 ng0 1500 213.229.7.154 213.229.7.154 20285 0 19404 0 0
Wesentlich ist die Zeile mit ng0. Ng0 ist das Netgraph Interface, an der IP-Adresse erkennen wir, das die Verbindung aufgebaut werden konnte. Es sollte ausserdem einen Eintrag für den Default-Router geben:
# netstat -rn Routing tables Internet: Destination Gateway Flags Netif Expire default 195.58.161.6 UGSc 3 0 ng0 10 link#1 UC 0 0 ed0 => 10.0.0.1 0:0:21:6b:28:fd UHLW 2 2 lo0 10.0.0.138 0:90:d0:e:c2:4f UHLW 2 33279 ed0 882 127.0.0.1 127.0.0.1 UH 1 161 lo0 192.168.202 link#2 UC 0 0 ed1 => 195.58.161.6 213.229.7.154 UH 4 0 ng0
Wir erkennen einen Eintrag fuer default auf 195.58.161.6 bzw. für 195.58.161.6 auf Gateway 213.229.7.154 (ng0). Die IP-Adressen sind natürlich von Provider zu Provider und Computer zu Computer unterschiedlich
Wenn nun auch der Resolver für DNS korrekt konfiguritert ist, siehe /etc/resolv.conf:
domain jawa.at nameserver 195.58.160.2 nameserver 195.58.161.3
sollte nun einem nslookup www.yahoo.com oder einem ping www.yahoo.com nichts mehr im Wege stehen:
# nslookup www.yahoo.com Server: web1.inforum.at Address: 195.58.178.86 Non-authoritative answer: Name: www.yahoo.akadns.net Addresses: 216.32.74.51, 216.32.74.52, 216.32.74.53, 216.32.74.55 216.32.74.50 Aliases: www.yahoo.com # ping www.yahoo.com PING www.yahoo.akadns.net (216.32.74.51): 56 data bytes 64 bytes from 216.32.74.51: icmp_seq=0 ttl=235 time=1141.945 ms 64 bytes from 216.32.74.51: icmp_seq=1 ttl=235 time=1028.090 ms 64 bytes from 216.32.74.51: icmp_seq=2 ttl=235 time=817.856 ms 64 bytes from 216.32.74.51: icmp_seq=3 ttl=235 time=970.859 ms 64 bytes from 216.32.74.51: icmp_seq=4 ttl=235 time=887.007 ms ^C --- www.yahoo.akadns.net ping statistics --- 6 packets transmitted, 5 packets received, 16% packet loss round-trip min/avg/max/stddev = 817.856/969.151/1141.945/112.225 ms
Entweder man erzeugt ein Startscript in /usr/local/etc/rc.d oder man erzeugt einen Eintrag in der Datei rc.local:
/usr/local/sbin/mpd -b adsl
Copyright ©2000 Michael Ranner mranner@bugat.at
BSD Usergroup Austria