|
Einleitung:
Die Technik ist etwas trickreich, daher nur kurz: Für jede
Netzverbindung über TCP/IP muss jeder Teilnehmer eine eindeutige IP
Nummer haben. ssber diese IP Nummer und spezielle Sitzungsnummer wird
erreicht, dass Datenpakete immer an der richtigen Stelle
landen. Bei ISDN Routing aus einem privaten Netz in bspw. Das
InterNet, sind die IP Nummern der privaten Rechner ausserhalb des
privaten Netzes ungültig. Abhilfe wird dadurch geschaffen, dass der
ISDN Router alle Pakete aus dem privaten Netz umschreibt. Anstatt
der Absenderadresse aus dem privaten Netz nach aussen, bei der er
IP Nummern getauscht hat, die Sitzungsnummer merken. Kommen nun von
aussen Pakete an ihn zurück, so kann er anhand der Sitzungsnummer
diese wieder umschreiben und an den Rechner im privaten Netz
weiterleiten. Gut, gell? (Versuch das mal einer mit Windows NT
;o) Inzwischen sind
PPP-Verbindungen mit dynamischer IP-Adresszuteilung Standard bei
fast allen Providern, geroutete Subnetzte (z.B. mit 28Bit Netzmaske)
sind reine Addressverschwendung. Mir steht ebenfalls jeweils nur
eine IP-Adresse zu Verfuegung. Deshalb habe ich mich entschieden,
das im Linuxkernel als Option vorhandene Masquerading
auszuprobieren. Es funktioniert absolut stabil und problemlos. Für
das lokale Netz nimmt man dann am am besten IP-Addressen aus
192.168.0.0/16.
Anleitung für Masquerading ohne
Filterung:
Vorgehen Das Paket ipchains (Serie sec) muss installiert
sein. Die Variable START_FW in /etc/rc.config setzen sie
auf "no".
Legen Sie die Datei /sbin/init.d/masquerade mit
folgendem Inhalt
an:
#!/bin/bash
./etc/rc.config
PROG="/sbin/ipchains"
WORLD_DEV="ippp0"
return=$rc_done
case "$1" in
start)
echo -n "Activating Masquerading"
echo "1" > /proc/sys/net/ipv4/ip_forward
$PROG -F || return=$rc_faild
$PROG -A forward -i $WORLD_DEV -j MASQ || return=$rc_failed
echo -e "$return"
;;
stop)
echo -n "Deactivating Masquerading"
echo "0" > /proc/sys/net/ipv4/ip_forward
$PROG -F || return=$rc_failed
echo -e "$return"
;;
*)
echo "Usage: ´basename $0´ {start|stop}"
exit 1
;;
esac
exit 0 Sie müssen
"ippp0" durch das richtige Device ersetzen, mit dem sie die Verbindung zum Internet herstellen.
Machen sie die Datei ausführbar:
chmod 700 /sbin/init.d/masquerade.
Legen sie die entsprechenden Links zum automatischen Start in
den entsprechenden Runlevels an:
ln -s /sbin/init.d/masquerde /sbin/init.d/rc2.d/S99masquerade
ln -s /sbin/init.d/masquerde /sbin/init.d/rc2.d/K51masquerade
ln -s /sbin/init.d/masquerde /sbin/init.d/rc2.d/S99masquerade
ln -s /sbin/init.d/masquerde /sbin/init.d/rc2.d/K51masquerade Ab
dem nächsten Booten können Rechner aus dem internen Netz auf das
Internet zugreifen, sofern sie diesen, der Masquerading-Rechner, als
Default-Gateway eingetragen
haben.
Bemerkungen:
Befehl für die automatische ISDN-Einwahl:
isdnctrl dialmode ippp0 auto [off, manual, auto]
Es sei in diesem Zusammenhang noch einmal explizit auf den trivialen
Sachverhalt hingewiesen, dass jede aufgebaute Verbindung Geld kostet. Wenn z. B. ein
Domain-Name nicht innerhalb des eigenen Systems aufgelöst werden kann, wird ein Request
an den externen Name-Server gerichtet. Hierzu baut ipppd eigens eine Verbindung auf.
Das selbe gilt natürlich für jeden ping, telnet, ftp, etc.
und noch etwas...
Die ISDN-Karte bekommt die IP erst wenn man einwählt, aber um automatisch
wählen zu können braucht die Karte schon vorher eine (dummy) IP, das heisst es darf nicht über
dhcp eingewählt werden !!!!
Problemlösung: Man gibt der Karte eine feste IP! Es funktioniert! Wenn man eingewählt hat,
übernimmt die Karte die dynamische IP, und wenn man nicht mehr verbunden ist, hat man wieder
die statische IP!
Weitere nützliche Befehle:
isdnctrl system off [off, on] # isdn: Global Mode stopped
/sbin/init.d/i4l stop # Shutting down network
# device an ipppd for ippp0
/sbin/init.d/i4l_hardware stop # unloading ISDN drivers
/sbin/isdnctrl hangup ippp0 # hang up
|
|