PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Netzwerkkonfiguration LAN/WLAN [gentoo]



albernenase
28.05.08, 21:32
Hallo.

Ich habe ein kleines Netzwerkproblem, das ich bisher immer relativ unsauber gelöst habe.

Sei eth1 Wlan und eth2 LAN.

Ich möchte, dass sich zuerst mein Wlan-Adapter ein AP sucht und sich mit diesem verbindet. Nennen wir die beiden AP mal ap_heim und ap_arbeit.
Falls die beiden nicht zur Verfügung stehen, soll er einfach den erst besten nehmen und einen dhclient starten. Ok, das war noch nicht so schwer, hab ich auch alles in der wpa_supplicant.conf eingetragen.

Nun das eigentliche Problem: Je nach AP soll das LAN eine andere IP/Gateway/resolv.conf Eintrag erhalten. Natürlich kann man sich da Skripte basteln. Früher hatte ich das ganze mit einem Kernelparameter gelöst. Je nach Kernel/Bootparamter wurde eben die Konfigurationsdatei entweder von Datei1 oder aber von Datei 2 überschrieben. Aber ich habe mir vorgenommen, das ganze mit den Möglichkeiten anzugehen, die mir gentoo bietet.

Meine erste Idee war, net.eth2 (LAN) aus dem default runlevel zu entfernen und in /etc/conf.d/net folgende Abfrage einzubauen:


modules_eth1=( "wpa_supplicant" )
config_eth1=( "dhclient" )
wpa_timeout_eth1=60
wpa_supplicant_eth1="-Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf"



postup() {
if [[ ${ESSID} == "ap_heim" ]] ; then
vpnc
ifconfig eth2 xxx.xxx.xxx.xxx netmask 255.255.255.0 broadcast xxx.xxx.xxx.255 up
route add default gw xxx.xxx.xxx.xxx

elif [[ ${ESSID} == "ap_arbeit" ]] ; then
ifconfig eth2 ....

else
dhclient eth2

fi

return 0
}

postdown() {
if [[ ${ESSID} == "ap_heim" ]] ; then
ifconfig eth2 down
vpnc-disconnect

elif [[ ${ESSID} == "ap_arbeit" ]] ; then
ifconfig eth2 down

else
ifconfig eth2 down

fi

return 0
}



Das Problem ist dann nur, dass ich entweder mit /etc/init.d/net.eth1 stop auch eth2 stoppe (oder eben nicht, wenn ich die Einträge in postdown() entferne). Aber es muss doch einen besseren Weg geben, oder?

Ich denke da an etwas in der Art:


if ESSID_eth1 == "ap_heim" then
config_eth2=( "192.168.2.1 netmask 255.255.255.0 brd 192.168.2.255" )


Leider konnte ich so etwas nicht in der gentoo-Dokumentation finden. Kann man da jemand weiterhelfen?