Я пытаюсь эмпирически проверить время, в течение которого запись остается в ARP cache
стол.
Это время, кажется, определяется /proc/sys/net/ipv4/neigh/default/gc_stale_time
файл и /proc/sys/net/ipv4/route/gc_timeout
и /proc/sys/net/ipv4/route/gc_interval
файлы для garbage collector
.
Поскольку значения равны соответственно 60, 300 и 60, оно не должно превышать 420 секунд, не так ли?
В любом случае, кажется, продержится намного дольше (если я что-то не пропущу). В самом деле, то, что я делаю, чтобы убедиться в этом, - это выполнить следующую команду bash:
while true; do date; sudo arp -n; sleep 30; done
и спустя более 15 минут запись все еще находится в ARP table
.
Обратите внимание: поскольку я прочитал, что ядро может изменять значения тайм-аута на основе положительных отзывов от протоколов более высокого уровня, я не пытался получить доступ к веб-сайту в это время.
Итак, мой вопрос: почему запись все еще упоминается в таблице после такого долгого времени? Что я делаю не так или не хватает?
Я бы спросил себя:
В заключение:
Ответы на первые три вопроса, вероятно, позволят уточнить процедуру тестирования, заданную в последнем вопросе.