Я подключил камеру HikVision к Raspberry Pi через два сетевых адаптера Ethernet TP-Link TL-PA4010.
Я настроил интерфейс eth0 малины на статический IP-адрес. В /etc/dhcpcd.conf
:
interface eth0
static ip_address=192.168.0.10/24
Я настроил DHCP-сервер с помощью dnsmasq со следующей конфигурацией:
# Disable DNS
port=0
# Configuring the DHCP server
interface=eth0
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
# The MAC address of the IP camera
dhcp-host=xx:xx:xx:xx:xx:xx,192.168.0.11
# I've added this later, didn't do anything
dhcp-authoritative
# Some logging
log-dhcp
log-queries
log-facility=/var/log/dnsmasq.log
Эта установка работала недолго, и я мог получать изображения с нее. Но теперь камера не подключается: не может получить IP. Он правильно подключается к моей домашней сети, и я могу загрузить веб-страницу камеры. Пытался сбросить камеру до заводских настроек по умолчанию и перенастроить ее для DHCP, но безуспешно.
Пытался захватить пакет, проходящий через eth0, используя tcmdump, и я вижу некоторый трафик с камеры, что-то связанное с запросом маршрутизатора и кучу других вещей, но я также вижу:
17:46:36.725552 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from xx:xx:xx:xx:xx:xx (oui Unknown), length 284
17:46:39.726180 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from xx:xx:xx:xx:xx:xx (oui Unknown), length 284
17:46:42.727918 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from xx:xx:xx:xx:xx:xx (oui Unknown), length 284
Я отфильтровал журналы с помощью dhcpdump, и это все, что я вижу, среди прочего трафика на eth0 только они связаны с DHCP.
Но нет ответа от dnsmasq. В логах dnsmasq ничего нет:
Apr 29 17:33:57 dnsmasq[590]: started, version 2.85 DNS disabled
Apr 29 17:33:57 dnsmasq[590]: compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset auth cryptohash DNSSEC loop-detect inotify dumpfile
Я удалил файл аренды (/var/lib/dhcp/dhclient.leases
), который первоначально содержал запись из моей предыдущей успешной попытки после чего-то, что я прочитал в сети.
Служба работает корректно:
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-04-29 17:33:57 CEST; 15min ago
Process: 538 ExecStartPre=/etc/init.d/dnsmasq checkconfig (code=exited, status=0/SUCCESS)
Process: 570 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
Process: 594 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/SUCCESS)
Main PID: 590 (dnsmasq)
Tasks: 1 (limit: 779)
CPU: 435ms
CGroup: /system.slice/dnsmasq.service
└─590 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -r /run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e06d44b80b8f1d3>
Apr 29 17:33:55 raspberrypi systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Apr 29 17:33:57 raspberrypi systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Я думаю, что проблема малины исходит из того, что:
- видим трафик значит адаптеры PL работают
- камера может получить IP-адрес от DHCP-сервера моего интернет-шлюза
Raspberry работает под управлением Raspbian (Debian GNU/Linux 11 (яблочко)), что довольно стандартно. Брандмауэра нет (по крайней мере, насколько я знаю).
pi@raspberrypi:~ $ sudo systemctl stop firewall
Failed to stop firewall.service: Unit firewall.service not loaded.
Я пришел к концу моего остроумия здесь. Есть идеи, в чем может быть проблема? Что я мог исследовать дальше?
1 ответ
Твой dnsmasq
конфигурация не обеспечивает DHCP
обслуживание должным образом, просто укажите DHCP
диапазон и другие параметры в dnsmasq
файл конфигурации, например:
port=0
interface=eth0
dhcp-range=192.168.0.11,192.168.0.20,255.255.255.0,1h
dhcp-option=3,192.168.0.10 # Gateway
dhcp-option=6,8.8.8.8,8.8.4.4 # DNS servers
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
dhcp-authoritative
log-dhcp
log-queries
log-facility=/var/log/dnsmasq.log
Перезагружаемся и должно работать sudo systemctl restart dnsmasq
Если проблема не устранена, проверьте, работает ли другой DHCP-сервер на вашем Raspberry Pi. sudo systemctl list-units --type=service | grep -i dhcp
и отключите его.
Сакстефляйн