Рейтинг:2

Linux: почему статические записи ARP сбрасываются при отключении канала

флаг ie

Это вопрос о разнице в сетевом поведении между Дебиан Бастер (ядро 4.19.0-18) и Debian Яблочко (ядро 5.10.0-9). В Buster записи прокси-сервера сохраняются, если ссылка на интерфейсе выходит из строя. На Буллсай их нет.

Ситуация: создайте статическую ARP-запись прокси на определенном интерфейсе:

ip neigh добавить прокси 1.2.3.5 dev eth0

Я могу убедиться, что запись существует:

ip neigh показать прокси

Теперь, если ссылка на этом интерфейсе отключается и снова возвращается, на Buster записи прокси-арп все еще существуют, на Bullseye они исчезли.

я бы хотел знать причина этой разницы. Это особенность ядра? Это делает udev? Есть ли настройка sysctl, управляющая этим?

Может ли кто-нибудь указать мне в правильном направлении? Если вы знаете, как создавать статические записи ARP в Bullseye/ядре 5.10, это будет еще лучше.

Обратите внимание, что я использую sysvinit, а не systemd. Спасибо!

Рейтинг:1
флаг cl
A.B

Вот история изменений, связанных с этой проблемой:

  • 2018-10-12 09:47:39 -0700

    net: исключить соседние записи на несущей

    фиксируется в дереве netdev -next: это отвечает за удаление записей соседей, когда канал отключается, с обоснованием в сообщении фиксации.

  • 2018-10-22 07:47:45 +0100

    ядро v4.19 выпущено.

    Это по-прежнему не включает коммит из ветки netdev -next.

  • 2018-10-24 06:47:44 +0100

    Слияние запроса на вытягивание Davem, включая предыдущее изменение соседа, объединяется в linux master, таким образом, чтобы быть включенным в linux v4.20 раз выпустили.

перемотка вперед...

  • 2021-11-01 19:57:14 -0700 + 2021-11-01 19:57:17 -0700

    сеть: arp: представить arp_evict_nocarrier системный параметр

    Это изменение вводит новый параметр sysctl, arp_evict_nocarrier. Если установлено (по умолчанию), кэш ARP будет очищен на NOCARRIER событие. Для этой новой опции по умолчанию установлено значение «1», что сохраняет существующие поведение.
    [...]

Таким образом, вам, вероятно, придется дождаться ядра >= 5.16 в бэкпортах буллсай, чтобы вернуть старое поведение, выполнив, например:

sysctl -w net.ipv4.conf.eth0.arp_evict_nocarrier=0

или подождите, пока какая-то более поздняя корректировка не сделает прокси записи ведут себя как постоянные записи (которые получают специальный код, который не влияет на событие отказа несущей).


Что касается второго вопроса «как создавать статические записи ARP», вот способ добавления статической записи для 192.0.2.2 с MAC-адресом 12:34:56:78:9a:bc на интерфейсе. eth0, с использованием заменять ключевое слово вместо Добавлять ключевое слово, которое может случайным образом возвращать RTNETLINK отвечает: файл существует, ошибка (или из изменение который страдал бы от обратного):

ip neigh заменить 192.0.2.2 dev eth0 lladdr 12:34:56:78:9a:bc nud постоянный

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.