
Ich habe eine Linux-Maschine auf Raspberry, die als Zugriffspunkt fungiert.
Linux raspberrypi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l GNU/Linux
Und ich habe einen DHCP-Server darauf. In /etc/network/interfaces habe ich eine statische IP-Adresse definiert, aber immer wenn ich es starte, bekomme ich eine IP, die nicht die statische ist, sondern vom DHCP-Server. Dieses Verhalten ist nicht konsistent und manchmal bekomme ich die statische IP.
Dies ist ein Modul als Teil eines Projekts, das basierend auf Parametern in einem Skript manchmal als AP und manchmal als Client fungiert. In einigen Fällen wird beim Zurückwechseln zum AP die IP falsch ausgegeben, obwohl die Konfigurationsdateien in allen Fällen wie unten lauten.
dies ist meine hostapd.conf
interface=wlan0
driver=rtl871xdrv
ssid=my ssid
hw_mode=g
channel=6
auth_algs=1
ieee80211n=1
das ist meine Schnittstellendatei
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.50;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "domain";
}
ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 74:da:38:26:9f:d6
inet addr:192.168.0.33 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:129 errors:0 dropped:5369 overruns:0 frame:0
TX packets:0 errors:0 dropped:726 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:65760423 (62.7 MiB) TX bytes:12737873 (12.1 MiB)
ifquery wlan0
address: 192.168.0.1
netmask: 255.255.255.0
broadcast: 192.168.0.255
Ping an 192.168.0.1 wurde auf 192.168.0.33 geändert und Ziel nicht erreichbar erhalten Ping an 192.168.0.33 funktioniert
der eth0 hat keine IP bekommen.
Antwort1
Stellen Sie sicher, dass sich eth0 und wlan0 in unterschiedlichen IP-Adressbereichen befinden und dass Ihr DHCP-Server nur auf dem wlan0-Gerät lauscht. Stellen Sie außerdem sicher, dass es keine geleaste Adresse für die wlan0-MAC-Adresse enthält.
Stellen Sie dann sicher, dass keine anderen Dienste, die wlan0 betreffen, aktiv sind (ich denke dabei an NetworkManager, wicd und ähnliche Dienste). Außerdem müssen Sie irgendwie garantieren, dass beim Wechsel vom „Client-Modus“ in den „AP-Modus“ keine Race Conditions auftreten können. Andernfalls könnte ein verirrter DHCP-Client aus dem Client-Modus beschließen, die IP-Adresse wieder zu ändern.
Antwort2
Es gab einen Race Condition zwischen dem DHCP-Client und dem „AP-Modus“, was bedeutet, dass ich eine IP von meinem eigenen DHCP erhielt.
Ich habe das Problem behoben, indem ich dem DHCP-Server die gewünschte statische IP-Adresse übermittelt habe, mit der Einschränkung, dass sie nur auf meine MAC-Adresse beschränkt ist.