DHCP ошибка добавления ARP

Базовая функциональность RouterOS
alexdek
Сообщения: 12
Зарегистрирован: 28 апр 2025, 16:04

DHCP ошибка добавления ARP

Сообщение alexdek »

Ситуация:
модель: E50UG, ver.: 7.19.1
DHCP пул - 101 адрес, занято 21.
На задействованных интерфейсах LAN-bridge (ether4) установлено: ARP: enabled.
При начальной конфигурации DHCP, для сохранения существующей адресации, все записи Leases для клиентов DHCP были внесены в ручную, через Add Lease и для них установлен статус Static (Make Static).

Все работает отлично и без проблем... за исключением:

При штатном рестарте роутера возникают сообщения об ошибке добавления ARP (пример):

Код: Выделить всё

dhcp-hv: failed to add arp entry for IP 192.168.2.30: already have such arp (6)
И такие ошибки возникают только для клиентов DHCP добавленных вручную.
Ситуация, в принципе, никак не влияет на работу роутера, но раздражает...

Никак не могу понять/определить как с этим бороться...
Есть ли у кого мысли/знания как от этого избавиться?

P.S.
Скриншоты для информации.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Chupaka
Сообщения: 4156
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: DHCP ошибка добавления ARP

Сообщение Chupaka »

У вас там в DHCP-сервере галка Add ARP For Leases установлена. Т.е. DHCP-сервер при выдаче аренды пытается адрес в ARP-таблицу добавить. А ещё у вас ARP: Enabled на интерфейсе - это значит, что роутер сам добавляет динамические записи, когда обнаруживает соседние хосты в сети. Когда роутер перезагружается - у клиентов уже есть адреса, поэтому они обнаруживаются и попадают динамически в ARP-таблицу. Но потом клиенты начинают переполучать адреса - и DHCP-сервер тоже пытается эти ARP-записи добавить, а они уже есть. Вот вам и ошибка.

Решение - либо снять галку Add ARP For Leases, либо переключить интерфейс в ARP: reply-only, тогда в ARP-таблицу будут попадать только те адреса, которым выдан адрес DHCP-сервером. Кто-то руками пропишет статику - роутер его обслуживать не будет.
alexdek
Сообщения: 12
Зарегистрирован: 28 апр 2025, 16:04

Re: DHCP ошибка добавления ARP

Сообщение alexdek »

Спасибо!
Значит я иначе понимал реализованное влияние и взаимодействие опций DHCP сервера "Add ARP for Leases" и интерфейса "ARP enabled/reply-only".
Теперь почти понятно...
Не понял, правда, вот это:
"... Но потом клиенты начинают переполучать адреса - и DHCP-сервер тоже пытается эти ARP-записи добавить, а они уже есть. Вот вам и ошибка."
Каким образом и почему клиенты инициализируют повторное (раньше срока и одновременное) получение адресов сразу после перезапуска роутера?
Это как-то не по спецификации протокола.
Клиенты, в принципе, даже не будут знать, что роутер перегрузился.
Возможно это какая-то специфика реализации работы с ARP самого Mikrotik.
Поэкспериментирую на досуге. :)
Аватара пользователя
Chupaka
Сообщения: 4156
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: DHCP ошибка добавления ARP

Сообщение Chupaka »

А, тогда, может, роутер при перезагрузке сохраняет действующие лизы, и когда их пытается восстановить - к этому моменту уже клиенты динамику понасоздавали
alexdek
Сообщения: 12
Зарегистрирован: 28 апр 2025, 16:04

Re: DHCP ошибка добавления ARP

Сообщение alexdek »

Судя по проведенным обследованиям и выявленным "нюансам", скорее всего это некритичный баг в инициализации ARP (а может и DHCP) после штатного рестарта.
Таблица DHCP Leases, включая статические и динамические назначения, при рестарте роутера сохраняется на диске и восстанавливается при загрузке MK ROS.
Таблица ARP роутера (arp cache) существует в единственной сущности и она хранится в памяти, с временем жизни (arp-timeout) 30 сек по умолчанию.
Но роутер НЕ УДАЛЯЕТ "просроченные" ARP записи, он с ними ВООБЩЕ ничего не делает по истечению arp-timeout.
То есть в реалиях оказывается, что параметр "arp-timeout" практически ничего не значит, если только у вас не циклопичеcкий ARP cache, исчисляемый тысячами записей.
При рестарте роутера ARP таблица должна, по "принципам" Linux-системы, просто исчезнуть :-).
Но не все так просто.
Статические записи сохраняются на диск (именно как записи ARP) и считываются (восстанавливаются) после старта.
Динамические пропадают, но пропадают, именно как ARP записи, т.е. их роутер не сохраняет...
Но, и это уже интересно ;), роутер их так же восстанавливает после старта!!!

Судя по всему роутер создает начальную, "после-стартовую" ARP таблицу на основе сохраненной таблицы статических записей ARP и сохраненной таблицы "DHCP Leases", и вносит из "DHCP Leases" записи в ARP без какого-либо анализа их сути (или vice-versa - сначала DHCP, затем сохраненный вариант ARP, но судя по логам скорее всего первый вариант - ARP, затем DHCP).

И вот здесь, ВОЗМОЖНО, и есть причина появления "задвоения" ARP записей.
Роутер вносит записи ARP статики из сохраненной версии и затем повторно пытается внести те же статические адреса из "DHCP Leases", вызывая тем самым "единомоментный" пакет ошибок добавления ARP при старте.
Это конечно мое предположение, но оно подтверждается "симптоматикой" MK ROS - в arp cahe на старте попадают динамические записи об IP-MAC хостов, которые вообще отсутствовали (несколько суток) в сети на момент рестарта роутера.
Только после "ухода по старости" этих хостов из "DHCP Leases" они перестанут оказываться в ARP после старта роутера.

Вот такая картина.
И это не единственный "интересный" момент в отношении ARP и DHCP в актуальной версии ROS.
Есть еще некоторое количество "недоработок", которые вроде и не мешают правильной работе роутера, но могут ввести в заблуждение или просто выпадают из логики работы/восприятия.
Это и ошибки в логике/отображении в GUI, странные расхождения в выводе информации CLI vs GUI и пр.
Но, на сколько я знаю, Support MK в курсе этих вопросов, и будем надеяться это будет исправлено в следующих релизах.
Аватара пользователя
Chupaka
Сообщения: 4156
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: DHCP ошибка добавления ARP

Сообщение Chupaka »

Но всё же Add ARP For Leases и ARP: Enabled в целом не предназначены для одновременной работы.
alexdek
Сообщения: 12
Зарегистрирован: 28 апр 2025, 16:04

Re: DHCP ошибка добавления ARP

Сообщение alexdek »

Chupaka писал(а): 21 июн 2025, 21:55 Но всё же Add ARP For Leases и ARP: Enabled в целом не предназначены для одновременной работы.
Согласен.
Да и разработчик на это указывает, отмечая default значения для этих двух установок. :-)