Was ist Linux?
Bash-Befehle 1
Bash-Befehle 2
DOS VS Linux
Der VI-Editor
LInux LOader
Kernel erzeugen
United Linux
ISDN-Gateway
VPN Einführung
NEU: Debian

Ein ISDN-Gateway einrichten

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
Autor: Gast / Datum: 2000-03-12 

signature of this request:
Wieviel Freude schläft in uns - und wir wecken sie nicht! (Gorch Fock)