Wlan Profile

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
nightfly
Beiträge: 31
Registriert: 26.10.2004 19:32:48

Wlan Profile

Beitrag von nightfly » 24.07.2005 15:44:11

Hi

bei jedem Systemstart muß ich für mein Wlan0 Interface mit ifconfig die IP setzen, danach mit iwconfig den channel, essid und key einstellen, und ein default gw hinzufügen.

Kann ich das automatisieren? Und geht das sogar soweit das mein Laptop mitbekommt, ob ich daheim oder im Büro bin, und die Daten automatisch setzt?

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 24.07.2005 17:18:55

Hallo,
du kannst in deiner /etc/network/interfaces verschiedene Profile anlegen. Bei mir sieht die Datei dann an den entscheidenden Stellen so aus:

Code: Alles auswählen

mapping ath0
        script /etc/network/map-scheme.sh
        map home ath0-home
        map uni ath0-uni

iface ath0-home inet dhcp
        wireless_essid MyHomeNetwork
        wireless_key xxxxxxxxxxxxxxxxxxxxxxxxx restricted

iface ath0-uni inet dhcp
        wireless_essid infvpn
        wireless_key off
das mapping script:

Code: Alles auswählen

#!/bin/sh                                                                       

iface="$1"
if [ "$iface = ''" ]; then iface="ath0"; fi
[ -f /etc/network/scheme ] || exit 1
scheme=$(cat /etc/network/scheme)
echo $iface-$scheme
exit 0
Die Datei scheme wird bei mir während des booten mit einem kleinen init script erstellt. Da wird dann entweder "home"oder "uni" reingeschrieben, je nachdem wo ich bin.
Zum booten verwende ich dann zwei runlevel welche ich im bootmanager auswählen kann, eines für zu Hause und eines für die Uni. Das bietet sich an, da ich an der Uni sowieso weniger Sachen lade, z.B. kein sshd, nfs-server, cups usw.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

nightfly
Beiträge: 31
Registriert: 26.10.2004 19:32:48

Beitrag von nightfly » 27.07.2005 10:13:48

Sieht gut aus, aber ich verstehe nur sehr grobe Züge davon, könnteest du das zum verständniss für einen Linux neuling etwas kommentieren?
Was genau tun die Bereiche in der /etc/network/interfaces?

Das untere Zitat ist die map-sheme.sh, richtig? Woher bekommt die beim Aufruf ihre Parameter? Könntest du das etwas kommentieren?

Vielen dank.

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 27.07.2005 13:38:43

Hallo,
ok ich versuche es mal etwas zu erklären.

Fangen wir von unten an, du entscheidest dich z.B. das runlevel 2 bei dir zu Hause gebootet wird und runlevel 3 im Büro. Dafür legst du jetzt zwei Einträge in deinem bootmenu (grub oder lilo) an, dass du beim booten auswählen kannnst welches runlevel gebootet wird.
In den runlevels hast du dann ein Script (S89netscheme) das ungefahr so aussieht:

Code: Alles auswählen

#!/bin/sh
echo -n "setting network scheme: home"
echo "home" > /etc/network/scheme
echo "."
echo -n "Starting wlan interface: ath0"
ifup ath0 > /dev/null
Zeile 2, 4 und 5 sind nur ein paar Meldungen die dann während des booten ausgegeben werden, braucht man nicht wirklich sieht aber etwas schöner aus.
In Zeile 3 wird die Datei /etc/network/scheme mit erzeugt in der nur "home" steht. Danach wird in Zeile 6 das Netzwerkinterface gestartet (bei mir ath0).
Das gleiche script machst du jetzt in runlevel 3 nur dass dann bei mir "uni" in die Datei geschrieben wird und bei dir vielleicht "buero" oder was ähnliches. Den device für die Netzwerkkarte mußt du vielleicht auch anpassen.

Jetzt kommt die /etc/network/interfaces ins Spiel, diese wird durch den ifup Befehl von oben ausgelesen.
Die sieht im ganzen so aus:

Code: Alles auswählen

auto lo
iface lo inet loopback

mapping ath0
       script /etc/network/map-scheme.sh
        map home ath0-home
        map uni ath0-uni

iface ath0-home inet dhcp
        wireless_essid MyHomeNetwork
        wireless_key xxxxxxxxxxxxxxxxxxxxxxxxx restricted

iface ath0-uni inet dhcp
        wireless_essid infvpn
        wireless_key off 
In mapping wird jetzt gesagt, dass du den "normalen" device Namen (bei mir ath0) auf einen anderen "ändern" willst. Dazu wird das script /etc/network/map-scheme.sh aufgerufen. Dieses gibt "home" oder "uni" zurück, je nachdem wird dann aus ath0 ath0-home oder ath0-uni und das entsprechende interface darunter geladen.

Das script:

Code: Alles auswählen

 #!/bin/sh                                                                       

iface="$1"
if [ "$iface = ''" ]; then iface="ath0"; fi
[ -f /etc/network/scheme ] || exit 1
scheme=$(cat /etc/network/scheme)
echo $iface-$scheme
exit 0 
macht nichts anderes als in die Datei /etc/network/scheme (die haben wir ja beim booten erzeugt) zu schauen und den Inhalt zurück zu geben. Wichtig ist, dass du hier wieder evtl. das Interface anpasst (also mein ath0 ist bei dir vielleicht ein eth0, wlan0 oder was ähnliches).
Als Parameter kannst du den device übergeben, wenn kein Device übergeben wurde wird der Device genommen der in der Datei angegeben ist, hier ath0.

Ich hoffe das war jetzt einigermaßen verständlich.
Probier es einfach mal aus und wenn etwas nicht ganz klappt, dann melde dich wieder.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

nightfly
Beiträge: 31
Registriert: 26.10.2004 19:32:48

Beitrag von nightfly » 27.07.2005 14:02:55

Ja, dankeschön, so hab ich das verstanden, werds heut abend mal ausprobieren, hab mein Notebook nicht hier.

Code: Alles auswählen

iface ath0-uni inet dhcp
        wireless_essid infvpn
        wireless_key off
        gateway 192.168.115.1
    


Is das dann auch der ort um mir ein "route add default gw...." zu sparen?

languitar
Beiträge: 80
Registriert: 07.03.2005 17:06:42
Kontaktdaten:

Beitrag von languitar » 27.10.2005 21:20:54

Also falls es noch wen interessiert: Ich hab das jetzt mit guessnet gelöst, welches anhand der gefundenen essid auswählt. Für Debian muss man folgendes beachten: http://wiki.clug.org.za/index.php/Wireless_Roaming
Take a look here!

Antworten