Назад | Перейти на главную страницу

Тайм-аут кэша arp по умолчанию

Я не нашел, как проверить и изменить тайм-аут кеша arp по умолчанию в Linux. Я использую debian с ядром 3.x (но я предполагал, что то же самое и со старыми ядрами)

60 секунд

вы можете проверить это с помощью:

cat /proc/sys/net/ipv4/neigh/ethX/gc_stale_time

и измените это с помощью

echo timeout > /proc/sys/net/ipv4/neigh/ethX/gc_stale_time

тайм-аут - новое значение

Я понимаю, что когда я пишу это, это вопрос трехлетней давности. Но я столкнулся с этим вопросом во время исследования того же предмета и в процессе подтверждения ответа Вахмански (https://serverfault.com/a/684381/188907), Я узнал немного больше о ситуации, по крайней мере, в ее нынешнем виде.

В соответствии с https://linux.die.net/man/7/arp, Настройки

gc_stale_time

влияет на частоту проверки кэша ARP на наличие устаревших записей. (Или собран мусор, отсюда и "gc_" в начале имени настройки.)

Между тем ценность

base_reachable_time_ms

фактически контролирует, как долго запись кэша ARP является действительной, и по умолчанию она составляет 30000 миллисекунд. Но каждая новая запись кэша ARP фактически получит значение времени жизни, случайно установленное где-то между base_reachable_time_ms / 2 and 3*base_reachable_time_ms / 2*.

Это означает, что для каждой новой кэшированной записи ARP будет начальный тайм-аут от 15 до 45 секунд, если только значение base_reachable_time_ms изменено.

Это предполагает, что текущее значение тайм-аута для кэшированной записи ARP проверяется перед использованием и что скорость сборки мусора не влияет на эффективную достоверность записей кэша.

(* Подтверждено чтением кода на https://elixir.bootlin.com/linux/v4.17.11/source/net/core/neighbour.c#L115)