ARP cache Linux

ARP — протокол канального уровня модели OSI, благодаря ARP трафик находит путь и коммутация происходит корректно. Для ARP ключевым является понятие MAC-адреса, протокол оперирует именно MAC определяя адреса по IP адресу. Кэш ARP — возможность сетевых устройств запоминать результаты обработки ARP запросов. Управление ARP cache в Linux производится при помощи утилит из набора iproute.

 

 

ARP cache Linux, добавление записей

ARP cache в Linux и в специальных сетевых устройствах представляет собой область памяти в которой сохраняются все результаты.

 

Как разрешается ARP запрос

При поступлении на роутер запроса по IP адресу роутер обращается к своему ARP кэшу и проверяет известно ли ему устройство и знает ли он на какой интерфейс отправлять фрейм с данными. Если в кэше есть ардес — фрэйм просто отправляется на получателю через интерфейс, к которому он подключен.

 

ARP cache Linux
Если значения в ARP кэше нет — роутер отправляет broadcast запрос на все интерфейсы ожидая получить ответ от того, кому принадлежит IP адрес. Все устройства, которым адрес не принадлежит на запрос не отвечают, отвечает только то устройство, которому он фактически присвоен.

 

Роутер получает MAC и заносит в свой кэш, в нем данные хранятся какое-то время и если обращение к адресу произойдет вновь broadcast запроса (которой означает передачу большого количества трафика по сети) не будет — данные будут перенаправлены основываясь на полученном ранее ответе на нужный интерфейс.

ARP cache
Если обращений не происходит — информация из кэша автоматически удаляется. Процедура в дальнейшем может быть повторена.

 

Посмотрим как это работает для Linux сервера.

 

ip neigh show

192.168.0.76 dev enp1s0 lladdr c0:18:85:bd:74:1f STALE
192.168.0.1 dev enp1s0 lladdr cc:b2:55:9a:01:ba REACHABLE

 

В выводе только локальные адреса. Добавим еще один отправив ICMP запрос на локальное устройство

ping -c 1 192.168.0.96

С ключем -c можно указать количество пакетов, которые отправляются.

 

 

ip neigh show

192.168.0.76 dev enp1s0 lladdr c0:18:85:bd:74:1f STALE
192.168.0.1 dev enp1s0 lladdr cc:b2:55:9a:01:ba REACHABLE
192.168.0.96 dev enp1s0 lladdr c9n2:55:7a:45:9i REACHABLE

 

Теперь в ARP cache добавлена еще одна строка, представляющая собой соотносящиеся IP и MAC адреса

Продолжительность жизни кэша по умолчанию 15 минут. Если повторных обращений не будет треться строка пропадет через 15 минут.

 

Также из ARP cache Linux значение можно удалить принудительно вручную

ip neigh delete 192.168.0.96 dev enp1s0

 

Указывается IP адрес и интерфейс, который используется для работы и к которому относится адрес.