Hallo liebe Forenmitglieder,
als neues member habe ich gleich ein kerniges Problem, dass sich seit 10 Stunden nicht lösen hat lassen.
Was ich möchte:
Ein intranet aus raspberries, welche über mdns und avahi miteinander reden.
Im folgenden nur noch
Router A
Wlan Client B
LAN Client C
Was ich gemacht hab (A):
Für meinen wlan-adapter hostapd compiled und ersetzt nach dieser Anleitung.
dnsmasq installiert und configuriert mit /etc/dnsmasq.conf
# Configuration file for dnsmasq.
# ...
# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
interface=wlan0
interface=eth0
# ...
# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally
# a lease time. If you have more than one network, you will need to
# repeat this for each network on which you want to supply DHCP
# service.
dhcp-range=10.0.0.2,10.0.0.254,255.255.255.0,12h
#dhcp-range=169.254.0.2,169.254.0.254,255.255.255.0,12h
# ...
Alles anzeigen
Meinem raspberry eine feste IP vergeben mit /etc/network/interfaces
iface lo inet loopback
iface eth0 inet dhcp
#iface eth0 inet static
#address 10.0.0.1
#netmask 255.255.255.0
#iface wlan0 inet dhcp
iface wlan0 inet static
address 10.0.0.1
netmask 255.255.255.0
iptables für die portweiterleitung auf /etc/network/if-up.d/accesspoint als mit ausführbare Datei angelet
#!/bin/sh
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface wlan0 -j MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT
avahi und mdns installiert (brauche ich nicht unbedingt, ich wollte nur schauen, ob von routerseite wenn die routen ok sind die beiden netzwerke erreichbar sind)
mdns-repeater compiled und mit sudo ./mdns-repeater wlan0 eth0 ausgeführt
Diese route hinzugefügt, weil mdns-repeater einen fehler geschmissen hat:
route add -net 224.0.0.0 netmask 224.0.0.0 eth0
Auf dem einen client läuft wpa_supplicant welcher offensichtlich einen dhcp server verlangt.
Auf dem Router habe ich auch noch folgendes script ausgeführt (sollte eigentlich auch net notwendig sein):
#!/bin/sh
sudo killall avahi-autoipd
sudo avahi-autoipd wlan0 --daemonize
sudo avahi-autoipd eth0 --daemonize
sudo route del default dev eth0
sudo route del default dev wlan0
Mit diesen Einstellungen starte ich die Pi's und bekomme 3 routen.
Router A
Wlan Client B
LAN Client C
Router A:
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0
224.0.0.0 0.0.0.0 224.0.0.0 U 0 0 0 eth0
Wlan Client B
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 wlan0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0
Ich hab gemerkt, dass der lan client keine route in richtung eth0 mit 10.0.0.0 hat, also habe ich diese noch hinzugefügt.
LAN Client C
0.0.0.0 0.0.0.0 0.0.0.0 U 1002 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
Letztendlich habe ich versucht jeweils vom lan client zum wlan client und Vice Versa zu pingen. Sowohl mit IP als auch mit mdns Adresse konnte der Router nichts durchreichen, ich bekomme:
ping: unknown host piC.local
oder eben
ping: unknown host piB.local
pinge ich die jeweilg andere IP an, so kommt:
PING 10.0.0.63 (10.0.0.63) 56(84) bytes of data.
From 169.254.236.88 icmp_seq=1 Destination Host Unreachable
was darauf deutet, dass der Router die Anfrage nicht weiterleitet, was meine iptables aber eigtl. machen sollten.
Anders rum ist es das gleiche.
PING 169.254.236.88 (169.254.236.88) 56(84) bytes of data.
From 10.0.0.63 icmp_seq=1 Destination Host Unreachable
Ihr merkt also, ich hab da ein wenig Energie reingesteckt. Ich bin mit meinem Latein am Ende. Ich hab noch keine Muse gehabt, auf den PIs mitzusniffen was schief läuft. Das wäre dann der nächste Schritt. Aber ich denke, dass mein router trotz mdns-repeater verwirft.
ps aux sagt jedenfalls, dass das Programm läuft.
root 2902 0.0 0.5 4592 2616 ? S 11:53 0:00 sudo ./mdns-repeater -f wlan0 eth0
root 2903 0.0 0.2 1684 988 ? S 11:53 0:00 ./mdns-repeater -f wlan0 eth0
Habe ich irgendwas übersehen? Hat irgendwer eine Idee? Ich bin sehr verzweifelt. Ich nutze keine bridge, weil ich so leichter zum wlan router switchen kann. Außerdem bin ich mir gar nicht sicher, ob im kernel aktiviert ist, dass ich ein wlan device zur bridge hinzufügen kann. Evtl. wechsel ich ja mal den kernel, wollte es aber erstmal vernünftig mit iptables hinbekommen, damit ich eventuell noch firewall optionen hinzufügen kann.