In zwei WLAN-Netze verbinden mit der interfaces

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

In zwei WLAN-Netze verbinden mit der interfaces

Beitrag von Richard » 27.09.2019 15:23:01

Hallo,

ich habe Zugang zu 2 WLAN-Netzen und will meinen Raspberry Pi (Jessie) Zugang zu beiden gewähren. Das ganze soll über die /etc/network/interfaces erfolgen und nicht über dhcpd oder wpa_supplicant. Das hatte ich in der Vergangenheit versucht und endete in teils komischen Situationen (z. B. wurde auf der Fritzbox eine andere IP angezeigt als bei 'ifconfig' und der Pi war auch darüber zu erreichen). Ich bin froh, dass es jetzt so läuft. Zu Zugriff soll nicht zeitgleich passieren, da geht mit den USB-Stick auch nicht. Mein Pi ist einer von 2012 ohne onBoard-Wifi. Ich will über die Command Line wechseln können. Die aktuelle interfaces sieht so aus:

Code: Alles auswählen

auto lo
iface lo inet loopback
iface eth0 inet manual
allow-hotplug wlan0

iface wlan0 inet static
    address 192.168.10.34
    netmark 255.255.255.0
    gateway 192.168.10.1
    dns-nameserver 192.168.10.1
    wpa-ssid "router1"
    wpa-psk "password"

iface eth0 inet manual
allow-hotplug wlan1

iface wlan0 inet static
    address 192.168.178.100
    netmark 255.255.255.0
    gateway 192.168.178.1
    dns-nameserver 192.168.178.1
    wpa-ssid "router2"
    wpa-psk "password"
Was geht: Ich kann in beide Netze verbinden, wenn ich jeweils die Konfig für das andere Netz auskommentiere. Lasse ich beide so wie sie sind, verbindet er zum 2. Wifi.

Was noch laufen soll:
  • [x]es sollen beide Konfigurationen nicht auskommentiert drin stehen, die 1. Verbindung soll aber priorisiert werden. d.h. zu dieser soll immer verbunden werden, wenn der Pi startet.
    [x]ich will über die Command Line udn später Shellscripte in der Lage sein zwischen beiden zu wechseln
Für die Priorisierung kenne ich nur ifmetric, was aber dafür gedacht ist die Internetverbindung zu steuern wenn man gleichzeitig in 2 Netzwerken verbunden ist.

Für den Wechsel habe ich hier https://wiki.debian.org/WiFi/HowToUse#S ... onnections etwas gefunden, ich verstehe aber den Aufruf nicht.

Code: Alles auswählen

ifup wlan0=wlan_home
Hier wird scheinbar gesagt, dass sich das Gerät wlan0 (also der erste/einzige WLAN-Adapter) mit dem WLAN-Netz 'wlan_home' verbinden soll. Ich bin davon ausgegangen, dass ich mit

Code: Alles auswählen

iface wlan0 inet static
aber konkret das Gerät anspreche, bei mir also immer wlan0 da es nur den einen Adapter gibt. wlan0 scheint aber eher ein frei wählbarer Name zu sein. Wenn ich meine interfaces so abändere und beiden WLAN-Netzen Namen gebe, verbindet sich keines von beiden. Wie hier die Zuweisung zum Gerät 'wlan0' passieren soll verstehe ich nicht.

Ist denn der Eintrag

Code: Alles auswählen

allow-hotplug wlan1
überhaupt richtig? Die interfaces wurde von mir vor Monaten konfiguriert und das 2. WLAN auskommentiert. Daher weiß ich nicht mehr was ich damit bezweckt habe oder ob es ein Tippfehler ist. Löschen ist keine Gute Idee, dann geht das 2. WLAN nicht mehr.

TomL

Re: In zwei WLAN-Netze verbinden mit der interfaces

Beitrag von TomL » 27.09.2019 15:29:43

Richard hat geschrieben: ↑ zum Beitrag ↑
27.09.2019 15:23:01
ich habe Zugang zu 2 WLAN-Netzen und will meinen Raspberry Pi (Jessie) Zugang zu beiden gewähren.
Ja, kein Problem, auch gleichzeitig ...dann benötigst Du allerdings zwei WLAN-Geräte im PI. Wenn er eins on board hat, kann man ein zweites via USB anschließen. Nur mit einem WLAN-Gerät kann man zu einer Zeit auch nur einen Accesspoint verbinden.
Das ganze soll über die /etc/network/interfaces erfolgen und nicht über dhcpd oder wpa_supplicant.
Ohne wpa_supplicant ist das nicht möglich. Und die /etc/network/interfaces benötigt den Networkmanager oder mindestens ifup@.service... ist also der schlechteste Lösungsansatz. Sowas lässt sich sauber und wirklich konfliktfrei nur mit direkten Statements lösen.... was wiederum bedeutet, alle konkurrierenden Network-Tools idealerweise zu deaktivieren.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: In zwei WLAN-Netze verbinden mit der interfaces

Beitrag von Richard » 27.09.2019 15:45:14

Was macht denn wpa_supplicant was interfaces nicht macht?

Laut dem wiki bei UU gibt es recht viele Konflikte zwischen interfaces und NM, weshalb der da gerade deaktiviert werden sollte.

Benutzeravatar
MSfree
Beiträge: 10759
Registriert: 25.09.2007 19:59:30

Re: In zwei WLAN-Netze verbinden mit der interfaces

Beitrag von MSfree » 27.09.2019 15:54:35

Richard hat geschrieben: ↑ zum Beitrag ↑
27.09.2019 15:45:14
Was macht denn wpa_supplicant was interfaces nicht macht?
wpa_supplicant wird immer gebraucht, wenn man es mit WPA-verschlüsselten WLANs zu tun hat. Sowohl interfeces als auch NM oder systemd verwenden wpa_supplicant zum Verbindungsaufbau. Ohne geht es also nicht.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: In zwei WLAN-Netze verbinden mit der interfaces

Beitrag von Richard » 27.09.2019 16:33:47

Mag sein, aber die Konfig mach ich in der interfaces. Möglich, dass es auch über wpa_supplicant möglich ist. Hatte mir das aber so schon recht verbuggt einmal.

Es geht über die interfaces. Hab die jetzt so abgeändert:

Code: Alles auswählen

auto lo
iface lo inet loopback

iface eth0 inet manual

auto wlan0
iface wlan0 inet static
 address 192.168.10.34/24
 dns-nameserver 192.168.10.1
 gateway 192.168.10.1
 wpa-ssid "router1"
 wpa-psk "password"

iface wlan1 inet static
 address 192.168.178.100/24
 gateway 192.168.178.1
 dns-nameserver 192.168.178.1
 wpa-ssid "router2"
 wpa-psk "password"
Über 'auto wlan0' lege ich fest, dass beim booten diese Schnittstelle konfiguriert wird mit der Konfiguration "wlan0" die ich ab der nächsten Zeile festgelegt habe. Die Konfiguration 'wlan1' steht allein, ohne ein 'auto wlan1', da es ja keinen zweiten WLAN-Adapter gibt. Ich kann nun die zugewiesene Konfiguration ändern über

Code: Alles auswählen

sudo ifdown wlan0
sudo ifup wlan0=wlan1
Der zweite Befehl weist also dem Gerät 'wlan0' die Konfiguration 'wlan1' zu. Nach einem Reboot ist alles wieder wie vorher.

Möglich, dass es auch anders geht,m aber oben beschriebene Probleme waren letztlich nur durch einen Reset der Fritzbox möglich. Niemand konnte mir sagen wie es zu solch abnormen Verhalten gekommen ist.

Einen zweiten USB-Stick schafft der 1er Pi nicht. Der friert schon bei einem Speicherstick und einem WLAN-Stick ein, da der WLAN-Stick wohl in der Spitze manchmal sehr viel Leistung haben will. Dann ist es um den Pi halt geschehen. Der kann Stunden und Tage stabil laufen und dann ist Feierabend.

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: In zwei WLAN-Netze verbinden mit der interfaces

Beitrag von mat6937 » 27.09.2019 17:01:29

Richard hat geschrieben: ↑ zum Beitrag ↑
27.09.2019 16:33:47
Mag sein, aber die Konfig mach ich in der interfaces. Möglich, dass es auch über wpa_supplicant möglich ist. Hatte mir das aber so schon recht verbuggt einmal.

Es geht über die interfaces.
Die Wlan-Verbindung stellst Du immer mit dem wpa_supplicant her.
Du konfiguriert und startest den wpa_supplicant mit Hilfe bzw. aus der interfaces-Datei.
Siehe z. B. die Ausgabe von:

Code: Alles auswählen

ps aux

TomL

Re: In zwei WLAN-Netze verbinden mit der interfaces

Beitrag von TomL » 27.09.2019 17:10:08

Richard hat geschrieben: ↑ zum Beitrag ↑
27.09.2019 15:45:14
Was macht denn wpa_supplicant was interfaces nicht macht?
/etc/network/interfaces macht gar nichts.... das ist nur eine Textdatei. Die stellt nur Parameter zur Verfügung, die von bestimmten Programmen verwendet werden, wie z.B. wpa_supplicant oder ifup. Die 'interfaces' ist eine rein passive Datei, dir nur bei Bedarf von ausführenden Programmen gelesen wird.
Richard hat geschrieben: ↑ zum Beitrag ↑
27.09.2019 15:45:14
Laut dem wiki bei UU gibt es recht viele Konflikte zwischen interfaces und NM, weshalb der da gerade deaktiviert werden sollte.
Nein, es gibt keine Konflikte zwischen Networkmanager und der Interfaces, weil die interfaces wie gesagt nur eine Textdatei ist. Es gibt nur einen Konflikt, weil zwei Programme gleichzeitig das gleiche tun wollen... als übliche Problem-Quelle sind das der Network-Manager und das obligatorisch gestartete 'init.d/networking', wobei das letztere eben die Datei 'interfaces' als Einstellungsdatei verwendet und ifup startet. Meistens wird dieser Konflikt dadurch umgangen, indem die interfaces geleert wird, wodurch ifup nicht mehr weiss, was es tun soll und deshalb gar nix tut.

Mit kannst Du einfach nachschauen, ob das Gerät wlan1 überhaupt existiert. Wenns nicht existiert, kannst Du die Zeilen aus der interfaces einfach wieder löschen.... deshalb löschen, weil man ein nicht-existierendes Gerät auch nicht konfigurieren kann.

guennid

Re: In zwei WLAN-Netze verbinden mit der interfaces

Beitrag von guennid » 27.09.2019 17:33:12

Was macht denn wpa_supplicant was interfaces nicht macht?
Falls es immer noch nicht klar ist: Du vergleichst Äpfel mit - sagen wir - Dackeln. :wink: Ich würd's so formulieren :Beides hat nicht miteinander zu tun, außer: man kann wpasupplicant klomplett in der interfaces konfigurieren und spart sich damit eine separate wpa*.conf-Datei. Aber wenn ein WPA-verschlüsselter WLAN-AP benutzt werden muss, geht am Paket Debianwpasupplicant völlig unabhängig von der Existenz und/oder dem Inhalt der /etc/network/interfacces nichts vorbei.
TomL hat geschrieben:
Richard hat geschrieben:Das ganze soll über die /etc/network/interfaces erfolgen und nicht über dhcpd oder wpa_supplicant.


Ohne wpa_supplicant ist das nicht möglich.
Konfiguration über /etc/network/interfaces ist durchaus möglich. Ob wpasupplicant zusätzlich benötigt wird, hängt davon ab, ob ein Netz per WPA(2) verschlüsselt ist oder nicht. Und es sieht ja so aus, dass beide WPA-verschlüsselt sind.

Aber wie schon gesagt, Richards statements folgen der Logik von „Nachts ist es kälter als draußen!“ :mrgreen:

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: In zwei WLAN-Netze verbinden mit der interfaces

Beitrag von mat6937 » 27.09.2019 23:23:44

guennid hat geschrieben: ↑ zum Beitrag ↑
27.09.2019 17:33:12
Konfiguration über /etc/network/interfaces ist durchaus möglich. Ob wpasupplicant zusätzlich benötigt wird, hängt davon ab, ob ein Netz per WPA(2) verschlüsselt ist oder nicht.
Wenn der wpa_supplicant nicht benötigt wird, dann sollte dieser über die interfaces-Datei (oder gleichwertig) auch nicht konfiguriert werden.
Was dann über die interfaces-Datei gemacht wird, ist lediglich das zuweisen der IP-Adresse & Co. und das hat mit dem wpa_supplicant (bzw. mit dem herstellen der Wlan-Verbindung) nichts zu tun.

Antworten