
У меня есть машина Linux на Raspberry, которая выполняет функцию точки доступа.
Linux raspberrypi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l GNU/Linux
И у меня есть DHCP-сервер на нем. В /etc/network/interfaces я определил статический IP-адрес, однако всякий раз, когда я его запускаю, я получаю IP, который не является статическим, а от DHCP-сервера. Такое поведение непоследовательно, и иногда я получаю статический IP.
Это модуль как часть проекта, который иногда функционирует как точка доступа, а иногда как клиент на основе параметров в скрипте. В некоторых случаях при переключении обратно на точку доступа IP-адрес оказывается неверным, хотя файлы конфигурации во всех случаях соответствуют приведенным ниже.
это мой hostapd.conf
interface=wlan0
driver=rtl871xdrv
ssid=my ssid
hw_mode=g
channel=6
auth_algs=1
ieee80211n=1
это мой файл интерфейсов
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)
если запрос wlan0
address: 192.168.0.1
netmask: 255.255.255.0
broadcast: 192.168.0.255
ping на 192.168.0.1 был изменен на 192.168.0.33 и получил сообщение о недоступности пункта назначения ping на 192.168.0.33 работает
eth0 не получил IP.
решение1
Убедитесь, что ваши eth0 и wlan0 находятся в разных диапазонах IP-адресов, и что ваш DHCP-сервер прослушивает только устройство wlan0. Также убедитесь, что он не содержит арендованный адрес для MAC-адреса wlan0.
Затем убедитесь, что никакие другие службы, затрагивающие wlan0, не активны (я имею в виду NetworkManager, wicd и подобные службы). Также вам нужно как-то гарантировать, что при переключении из "Client Mode" в "AP Mode" не возникнет состояния гонки. В противном случае, случайный DHCP-клиент из клиентского режима может решить изменить IP-адрес обратно.
решение2
Возникла гонка между DHCP-клиентом и «режимом AP». Это означает, что я получил IP-адрес от своего собственного DHCP.
Я исправил это, предоставив DHCP-серверу нужный мне статический IP-адрес с ограничением только моим MAC-адресом.