Network Framework
1. Über
Es gibt viele Netzwerkspezifische Funktionen die man oft verwendet
(Verbindung aufbauen, trennen und überprüfen). Diese Aktionen sind
aber stark abhängig davon welchen Netzwerktyp man verwendet. Dieses
Framework soll die gleichen Befehle für alle Typen bereitstellen.
Damit ist natürlich nicht möglich Netzwerktypische Befehle
auszuführen.
1.1 Vorteile
Man verwendet immer die gleichen Befehle für alle Verbindungsarten.
Die Konfiguration wird vereinfacht. Es ist möglich Skripte beim
Beenden und Starten von jeder Verbindung auszuführen. Einheitliche
Befehle vereinfachen die Verwendung in Skripte. Man kann das ganze
einfach für neue Verbindungen erweitern.
1.2 Bereits vorhandes
Um Routen einrichten, Netzwerkkarten konfigurieren oder auflisten
braucht man kein weiteres Framework, da dort bereits eine konsistente
und flexible Tools (ifup,ifdown,ifconfig) vorhanden sind.
2. Netzwerktypen
Für jeden Netzwerktyp braucht man ein eigenes Programm, welches den
Netzwerktypischen Code enthält.
möglich sind:
- isdn über CAPI (pppd)
- isdn über isdn4linux (isdnctrl)
- Analoge Modem (ppd)
- Netzwerk 10/100 MB
- Bluetooth
- USB Netzwerk
- serielle/paralle Schnittstelle
3. Feststellen ob eine Verbindung besteht
Es ist auch relativ schwierig tatsächlich festzustellen ob eine
Verbindung tatsächlich besteht.
Es gibt mehrere Möglichkeiten:
- Schauen ob derzeit eine Verbindung aufgebaut ist
VT: Sehr sichere Möglichkeit um Vorhandensein festzustellen
- Überprüfen ob eine Verbindung zu einem vorgegebenen Host möglich ist.
NT: langsam im Fehlerfall (timeouts)
NT: Belastung des Netzwerkes
VT: Sehr sichere Möglichkeit um Vorhandensein festzustellen
- Kernel fragen ob Verbindung besteht
- Schauen ob Interface vorhanden ist
- Usertools von Netzwerktyp verwenden (isdnctrl, pppd)
- Datenraten anschauen
NT: geht vielleicht über ein Loopback Interface, weil Verbindung
nicht besteht (vorallem bei dial on demand)
- Usertools wie imontty verwenden.
Optimal ist eine Kombination von obigen Punkten.
4. Interface
Da es für jeden Typ anderer Code verwendet wird, ist es am besten
das ganze wie bei fsck aufzuteilen, und ein Masterprogramm zu
verwenden, dass die richtige Komponente für eine bestimmte
Verbinung aufruft, bzw. für die Defaultverbindung wenn keine
Parameter gegeben.
4.1 Rechte
Die Programme sollten alle nur von root und Gruppe dialout ausgeführt
werden können, damit Intern davon ausgegangen werden kann, dass
der Benutzer auch die Rechte hat die Aktionen durchzuführen. Das
ganze ist sehr distributionsspezifisch und die Distributionen
müssen dafür sorge Tragen, dass alle Versionen zusammenspielen und
bei allen Devices die Rechte richtig gesetzt sind.
4.2 Tools
ifctrl
Wobei Aktion:
- dial
- hangup
- status