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

  • 13.11.2020
  • 3 235
  • 0
  • 05.02.2021
  • 2
  • 2
  • 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 рабочих дня.