eth0 ODER wlan0

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich habe meinen pie mit einem WLAN-Stick ausgerüstet und möchte diesen auch nutzen. Alternativ möchte ich aber auch über das Ethernet-Kabel kommunizieren.

    In beiden Fällen möchte ich eine statische IP-Adresse vorgeben und über den Router 192.168.2.1 als Gateway den Weg ins Internet finden.

    Wenn das Ethernet-Kabel angeschlossen ist, möchte ich dieses nutzen, sonst die WLAN-Verbindung.

    Meiner Meinung nach kann ich aber in der interfaces-Datei nicht 2x das gleiche Gateway eintragen.

    Was muss getan werden? Wie muss die interfaces aussehen.

    Danke für eure Hilfe.
    Joe

  • Doch du kannst Interfaces unabhängig voneinander konfigurieren, also auch 2x das selbe Gateway
    LAN-IPs müssen unterschiedlich sein aber ob 10x das selbe Gateway genutzt wird is wurscht ;)

    Alternativ könntest du die Feste IP aber auch vom Router zuweisen lassen, über dessen DHCP Server


    Allerdings möchtest du ja wahlweise das eine ODER das andere nutzen, also müsstest du dir dafür ein Script schreiben welches bei Verbinden des LAN Kabels die wlan Verbindung kappt und die LAN-IP auf die vorherige IP der WLAN Verbindung stellt - denn sonst haben LAN und WLAN unterschiedliche IPs und du müsstest beim ansprechen immer eine andere, je nachdem ob LAN aktiv ist oder nicht, ansprechen

  • Hi,

    danke für den Hinweis. Unterschiedliche IP-Adressen ist schon OK.

    Also müsste doch aber dieses hier funktionieren:

    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address 192.168.2.20
    netmask 255.255.255.0
        gateway 192.168.2.1
    dns-nameservers 192.168.2.1

    auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet static
    address 192.168.2.21
    netmask 255.255.255.0
        gateway 192.168.2.1
    dns-nameservers 192.168.2.1
    wpa-ap-scan 1
    wpa-scan-ssid 1
    wpa-ssid "..."
    wpa-psk "..."

    Wenn das Kabel dran ist, funktioniert alles und die Routing-Tabelle sieht so aus:
    Ziel Router Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
    192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
    192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0


    Wenn ich das Kabel abziehe, habe ich keinen Internetzugang und die Routing-Tabelle sieht so aus:
    Ziel Router Genmask Flags Metric Ref Use Iface
    192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0

    Kannst du mir auch zeigen, wie so ein Script aussehen müsste und wo man das einbindet?

    Gruß
    Joe

  • Dafür braucht man kein script.

    Betriebssysteme entscheiden anhand der Metric, welche Route zuerst verwendet wird.
    Es wird die mit der kleinsten Metric genommen.

    Also in interfaces für jede Schnittstelle eine Zeile mit

    Code
    metric n

    aufnehmen und n ist eine positive ganze Zahl.

    Keep it simple [,&] stupid

  • Naja das muss nichts mit dem Gateway zu tun haben - ich würd erstmal das WLAN verdächtigen also das allgemein keine WLAN Verbindung zustande kommt, oder funktioniert das wenn du den eth0 part raus löschst?


    Wie genau so ein Script aussehen müsste kann ich dir nicht sagen da ich sowas bisher noch nie gebraucht habe - was ich aber weiss ist das sowas über /etc/network/if-up.d/ oder /etc/network/if-down.d/ geregelt werden könnte..
    Darüber managed man zB auch Firewall Scripts die erst dann ausgeführt werden soll wenn ein Interface verbunden wird. Zum Beispiel so:

    Code
    iface eth0 inet static
        address 192.168.2.20
        netmask 255.255.255.0
        gateway 192.168.2.1
        dns-nameservers 192.168.2.1
        pre-up /etc/network/if-up.d/disableWlan.start

    pre-up: wird ausgeführt bevor das device "up" geht
    post-up: wird ausgeführt nachdem das device "up" ging

    Mehr dazu kann man auch in den Manual Pages nachlesen: man interfaces

    Und in dem Script können dann eben auch festgelegte Variablen genutzt werden wie zum Beispiel $IFACE was zB 'eth0' beinhalten würde, oder $MODE was 'start' oder 'stop' beinhalten würde..

    In dem Script könnte man dann zum Beispiel versuchen das wlan0 Interface einfach "down" zu schicken: ifdown wlan0
    Ob das aber tatsächlich so einfach funktioniert kann ich dir nicht sagen ;) Du solltest da auf jedenfall eine if-Schleifen einbauen und prüfen ob $IFACE passt damit das Script nicht bei "lo" oder so ausgeführt wird


    /EDIT: kungel: und wenn die Anzahl der Hops identisch is, was dann? :D
    Davon abgesehen kann man über den von dir beschriebenen Weg nicht die selbe IP für beide Interfaces nutzen...

  • /EDIT: kungel: und wenn die Anzahl der Hops identisch is, was dann? :D
    Davon abgesehen kann man über den von dir beschriebenen Weg nicht die selbe IP für beide Interfaces nutzen...

    Was dichtest du denn da immer zu?

    Von identischen IPs habe ich nirgends was gesagt!
    Und von Hops auch nichts!

    Ich sprach von metric

    Keep it simple [,&] stupid


  • Was dichtest du denn da immer zu?

    Von identischen IPs habe ich nirgends was gesagt!

    Du vielleicht nicht aber der ThemenErsteller möchte das

  • kungel: gaaaaaanz ruhig bleiben, bitte. Tät mich schon interessieren, wie das mit ein und derselben IP auf den Interfaces gehen könnte.

    meigrafd: OK, mit pre-up probiere ich auch gerade rum. Grundsätzlich geht WLAN, aber eben nur, wenn ich das Kabel dran habe. Die eth0 section möchte ich nicht rauslassen, da ich sonst gar nicht mehr an den pie komme.

    Gruß
    Joe


  • Allerdings möchtest du ja wahlweise das eine ODER das andere nutzen, also müsstest du dir dafür ein Script schreiben welches bei Verbinden des LAN Kabels die wlan Verbindung kappt und die LAN-IP auf die vorherige IP der WLAN Verbindung stellt - denn sonst haben LAN und WLAN unterschiedliche IPs und du müsstest beim ansprechen immer eine andere, je nachdem ob LAN aktiv ist oder nicht, ansprechen

    Kannst du mir auch zeigen, wie so ein Script aussehen müsste und wo man das einbindet?

    Ich lese hier was anderes....

    Aber nun gut, der TE wird entscheiden wie Er das haben möchte - nun weiss er zumindest was Sache is .......


    Wichtig ist dass der Script file Name keine extension also ".sh" beinhaltet. Setz also an den Anfang des Scripts den Shebang und mach das Script ausführbar. Zum beispiel so:

    nano /etc/network/if-up.d/stop.wlan

    chmod +x /etc/network/if-up.d/stop.wlan


    Für den anderen Zustand brauch man dann auch noch eins um wlan0 wieder zu starten:


    nano /etc/network/if-down.d/start.wlan

    chmod +x /etc/network/if-down.d/start.wlan

  • Ich glaube, ich hab's:

    auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet static
    pre-up [ -z "$(ifconfig eth0 | grep -i 'inet ad')" ] && true
    address 192.168.2.21
    netmask 255.255.255.0
    gateway 192.168.2.1
    dns-nameservers 192.168.2.1
    wpa-ap-scan 1
    wpa-scan-ssid 1
    wpa-ssid "..."
    wpa-psk "..."

    auto eth0
    iface eth0 inet static
    pre-up [ -z "$(ifconfig wlan0 | grep -i 'inet ad')" ] && true
    address 192.168.2.21
    netmask 255.255.255.0
    gateway 192.168.2.1
    dns-nameservers 192.168.2.1

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!