Особенности работы ARP в Linux

  • 13.11.2020
  • 90
  • 0
  • 1
  • 1
  • 0
Особенности работы ARP в Linux

Особенность посылки ARP-запроса

Первая особенность касается посылки ARP-запроса. В ARP-пакете есть поле source IP, в котором хост проставляет свой IP. Большинство систем ставят IP из той же подсети, что и запрашиваемый адрес. Linux по умолчанию может поставить любой свой IP-адрес, точнее: если пакет исходит от хоста (а не форвардится от другого), то Linux копирует адрес из поля source IP этого пакета (есть и другие случаи). Этот эффект легко проверить командами tcpdump и ping. Сетевые гуру Linux утверждают, что такое поведение соответствует RFC и является в некоторых случаях желательным. Но многие системы, в частности Cisco IOS, не отвечают на запросы, в которых source IP принадлежит "левой" подсети. Для управления этим поведением был введён sysctl под названием arp_announce, подробнее в Documentation/networking/ip-sysctl.txt. Рекомендую ставить значение этого sysctl ненулевым для любого хоста, у которого есть IP-адреса из разных подсетей, например:

echo 1 > /proc/sys/net/ipv4/conf/all/arp_announce

Особенность ответа ядра

Вторая важная особенность связана с тем, на какие запросы отвечает ядро. По умолчанию ответ даётся на запрос любого из IP-адресов, которые установлены на хосте. Обычно это не приводит к проблемам, но может помешать реализации некоторых схем обеспечения отказоустойчивости или распределения нагрузки. Отключить это можно с помощью sysctl-параметров arp_filter и arp_ignore.

Кроме параметров sysctl, в ядре Linux реализован механизм arptables, позволяющий проводить более тонкие модификации работы протокола ARP с помощью одноимённой программы.

Была ли эта статья Вам полезна?

Добавить комментарий

Ваш адрес email не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.