Lösung gesucht: dnsmasq unterscheidet nicht zwischen LAN- und WLAN-Geräten

Whoopie

Aktives Mitglied
Mitglied seit
19 Okt 2004
Beiträge
855
Punkte für Reaktionen
7
Punkte
18
Hi,

ich wollte gestern auf dnsmasq wegen statischem DHCP umsteigen.

Folgendes Problem gibt es:

Im Bridge-Modus ("Alle Computer befinden sich im selben IP-Netzwerk") kann dnsmasq nicht zwischen LAN- und WLAN-Geräten unterscheiden. Das hat die Folge, dass verbundene WLAN-Geräte unter "Bekannte Netzwerkgeräte (LAN-Anschluss)" angezeigt werden und nicht unter "Bekannte Netzwerkgeräte (WLAN)".

Das Problem liegt in der Datei /var/tmp/multid.leases. Hier werden WLAN-Geräten "lease" vorangestellt und nicht "wlease".

knox hatte das Problem versucht zu lösen, könnte es aber nur für den nicht-Bridge-Modus lösen.

Aus 100-multid-leases.patch:
Code:
+	  /* lease 00:12:79:41:AA:01 192.168.178.40 1122416 "computer" 0100127941b4a0 */
+	  fprintf(multid_leases,"%s %.2X:%.2X:%.2X:%.2X:%.2X:%.2X %s %lu \"%s\" ",
+	  lease->ifrname && strcmp(lease->ifrname, "wlan") == 0 ? "wlease" : "lease",
+	  lease->hwaddr[0], lease->hwaddr[1], lease->hwaddr[2],
+	  lease->hwaddr[3], lease->hwaddr[4], lease->hwaddr[5],
+	  inet_ntoa(lease->addr), lease->expires, 
+	  lease->hostname && strlen(lease->hostname) != 0 ? lease->hostname : "");

Daher brauche ich Eure Hilfe, um eine Lösung zu finden. Die Frage stellt sich natürlich, wie AVM das mit dem multid macht.

Vielen Dank im Voraus.

Beste Grüße,
Whoopie
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Vielleicht hättest du noch folgenden Thread aus der dnsmasq-Mailingliste zitieren sollen (http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2005q3/000421.html).
I don't think what you are asking for is possible: once the packet is
bridged and arrives on the bridge interface, there's no way to determine
where is came from: the layer-two bridging is transparent to the higher levels.
Man müsste die Herkunft des Pakets also auf andere Weise ermitteln.

MfG Oliver
 

Whoopie

Aktives Mitglied
Mitglied seit
19 Okt 2004
Beiträge
855
Punkte für Reaktionen
7
Punkte
18
RalfFriedl schrieb:
Die andere Frage ist, warum das von Bedeutung ist.
Um eine Anregung zu bekommen, wie man es lösen kann. Aber natürlich geht es auch ohne!
 

meimi039

Mitglied
Mitglied seit
7 Jun 2005
Beiträge
323
Punkte für Reaktionen
0
Punkte
16
Wie könnte man das auf einer 7050 eintragen, bei der jedes Interface an einem seperaten Segment hängt?
 

Whoopie

Aktives Mitglied
Mitglied seit
19 Okt 2004
Beiträge
855
Punkte für Reaktionen
7
Punkte
18
FYI, nachdem ich hier gelesen habe, dass multid auch für das Bridging verantwortlich ist, ist es natürlich für multid einfach, LAN- und WLAN-Geräte zu unterscheiden.
 

SeeDyX

Neuer User
Mitglied seit
7 Dez 2004
Beiträge
80
Punkte für Reaktionen
0
Punkte
6
In dem zitierten Post von der dnsmasq Mailingliste steht aber auch, das es wohl möglich ist, wenn man den dnsmasq nicht auf dem bridge interface, sondern direkt auf dem LAN und WLAN interface laufen lässt... Zwar verbunden mit etwas aufwand aber prinzipiell wohl möglich.

Oder ist das auf der FriBo so nicht möglich aufgrund anderer Struktur?
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
1
Punkte
0
Bei der BritzBox wird aus eth0 und ggf. noch anderen interfaces die bridge "lan" erstellt. Auf dieser werden auch die IP-Adressen konfiguriert.

Es käme auf einen Versuch an, ob es möglich ist, zusätzlich oder statt dessen Adressen an das zugrunde liegende eth0 zu vergeben und darüber dnsmasq laufen zu lassen.

Solange man das nicht in ein Start-Skript einträgt, kann man bei Problemen immer noch den Stecker ziehen und die Box startet neu wie gewohnt.
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Code:
[B]-i, --interface=<interface name>[/B]
Listen only on the specified interface(s). Dnsmasq automatically adds the
loopback (local) interface to the list of interfaces to use when the [B]--interface[/B]
option  is used. If no [B]--interface[/B]  or [B]--listen-address[/B] options are given
dnsmasq listens on all available interfaces except any given in
[B]--except-interface[/B]  options. IP alias interfaces (eg "eth1:0") cannot 
be used with [B]--interface[/B]  or [B]--except-interface[/B]  options, use
--listen-address instead.
Also einfach mit "--execept-interface=lan" probieren?

MfG Oliver
 

E.Nevesky

Neuer User
Mitglied seit
12 Jun 2007
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Gibt es nun eine Loesung zu diesem Problem? wuerde sicherlich nicht nur mich intressieren, ob das klappt (und wenn, wie im detail!)
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Anscheinend interessiert es keinen, sonst hätte ja einer die Idee von Ralf und mir ausprobiert. Sollte doch nicht so schwer sein, das im Webinterface einzutragen, oder?

MfG Oliver
 

Whoopie

Aktives Mitglied
Mitglied seit
19 Okt 2004
Beiträge
855
Punkte für Reaktionen
7
Punkte
18
Ich werd's die Tage mal testen.

Aber was ich nicht verstehe: müsste man den Patch nicht so abändern, dass er "lease" bei cpmac0 nutzt und "wlease" bei tiwlan0? So lauten jedenfalls die Interfaces bei mir mit der USB-Labor-Firmware.

EDIT:

Hab's getestet. Funktioniert nicht mit "--except-interface=lan". Scheinbar ist es das einzige Interface, worauf dnsmasq lauscht.
 
Zuletzt bearbeitet: