ARP: IP и MAC, ARP-кэш, конфликт IP и Gratuitous ARP

Домашняя сеть · IPv4 · диагностика

ARP простыми словами: как IP превращается в MAC и почему возникают конфликты адресов

Компьютер может знать IP камеры, NAS или шлюза, но Ethernet-кадр внутри локальной сети всё равно нужно отправить на конкретный MAC-адрес. Эту связь для IPv4 обеспечивает ARP. Когда ARP-кэш содержит старую запись, два устройства используют один IP или после замены оборудования адрес перешёл к другому MAC, сеть начинает вести себя странно: ping то есть, то нет, веб-интерфейс открывается не всегда, а пакеты уходят не тому устройству. Разбираем ARP, ARP cache, ARP Probe, Gratuitous ARP, duplicate IP и Proxy ARP по шагам.

ARPсвязывает IPv4-адрес соседа с MAC-адресом на локальном Ethernet-сегменте
ARP cacheвременно хранит уже изученные соответствия IP → MAC, чтобы не спрашивать сеть каждый раз
Duplicate IPдва устройства с одним IPv4 способны поочерёдно «перетягивать» трафик на разные MAC

Что делает ARP

ARP, Address Resolution Protocol отвечает на простой вопрос: «какой MAC-адрес сейчас соответствует этому IPv4-адресу в моей локальной сети?»

Компьютер знает IP192.168.1.50
→
ARPкто имеет 192.168.1.50?
→
Ответ устройстваMAC 3C:52:82:...

После этого IP-пакет можно поместить в Ethernet-кадр с нужным destination MAC и передать через switch.

ARP относится к IPv4. В IPv6 для определения соседей используется Neighbor Discovery Protocol, NDP, на базе ICMPv6. Поэтому команда или таблица IPv4 ARP не описывает всю современную neighbor-механику компьютера.

Почему одного IP-адреса недостаточно

IP определяет логическую адресацию и маршрутизацию. Ethernet внутри LAN доставляет кадры по MAC-адресам.

L3IPv4 192.168.1.50

Куда должен идти IP-пакет.

L2MAC 3C:52:82:...

Кому передать Ethernet-кадр на этом link.

ARP связывает эти два уровня только для непосредственного IPv4-соседства.

Как уровни сети связаны между собой, подробнее разобрано в статье «Модель OSI и TCP/IP».

Как проходит обычный ARP Request

Предположим, ПК 192.168.1.20 хочет обратиться к NAS 192.168.1.50 в той же подсети и пока не знает его MAC.

  1. ПК проверяет neighbor/ARP cache. Готовой записи нет.
  2. ПК отправляет ARP Request. Запрос передаётся broadcast по локальному L2-сегменту.
  3. Устройства VLAN получают запрос. Но отвечает владелец нужного IPv4.
  4. NAS отправляет ARP Reply. В обычном сценарии ответ адресован запрашивающему узлу.
  5. ПК запоминает IP → MAC. Следующие пакеты можно отправлять без нового ARP Request до обновления записи.

ARP Request и ARP Reply

ARP Request

«Кто имеет этот IP?»

Обычно Ethernet broadcast, чтобы неизвестный владелец адреса точно получил запрос.

ARP Reply

«Этот IP у меня»

Обычно unicast обратно запрашивающему узлу с указанием MAC.

Что такое ARP cache

Если каждый IP-пакет начинался бы с нового broadcast-запроса, сеть генерировала бы много ненужного служебного трафика. Поэтому операционные системы хранят изученные IP-to-MAC mappings в neighbor cache.

192.168.1.170:4F:57:AA:...шлюз
192.168.1.3090:09:D0:BB:...NAS
192.168.1.50A4:14:37:CC:...камера

Запись не должна жить вечно. Динамические neighbor entries обновляются и стареют по правилам сетевого стека конкретной ОС.

ARP cache не является DHCP-таблицей

Это разные данные.

ARP / Neighbor cache DHCP leases
Что хранитIPv4 → MAC для соседейВыданные клиентам параметры аренды
Кто формируетКаждый узел для себяDHCP server
Статический IP виден?Да, если был ARP-обменМожет вообще отсутствовать
Показывает срок DHCP lease?НетДа
Используется для Ethernet deliveryДаНет напрямую

Поэтому отсутствие камеры в DHCP Clients не означает, что её нет в сети. Если у неё статический адрес, она может появляться только в ARP/neighbor и MAC-таблицах.

Что происходит при обращении к устройству в другой подсети

Это ключевой момент, который часто понимают неправильно.

Если ПК 192.168.1.20/24 открывает сервер 8.8.8.8, он не ищет через ARP MAC сервера 8.8.8.8.

PC192.168.1.20
ARP →
Default Gateway192.168.1.1 / MAC router
IP route →
Internet8.8.8.8

Хост определяет по своей маске и routing table, что destination находится вне локального prefix. Затем он ищет MAC следующего hop, обычно default gateway.

ARP работает на локальном link, а не через интернет.

На каждом маршрутизируемом Ethernet-участке создаётся своё соответствие IP next-hop → MAC.

Как маска влияет на ARP

Именно IP prefix определяет, кого хост считает локальным соседом.

Если маска настроена неправильно, компьютер может:

  • пытаться ARP-ить адрес, который на самом деле находится за роутером;
  • наоборот, отправлять локальный адрес через шлюз;
  • получать странно одностороннюю связь;
  • работать только благодаря Proxy ARP, скрывающему ошибку.

Поэтому при сетевой диагностике проверяют IP, prefix/mask и gateway вместе.

Как посмотреть ARP cache в Windows

Классическая команда:

arp -a

Microsoft по-прежнему документирует её для Windows 10/11 и Windows Server 2025. Она показывает текущие ARP entries для сетевых интерфейсов.

Более современный PowerShell-вариант:

Get-NetNeighbor -AddressFamily IPv4

Get-NetNeighbor показывает neighbor cache, включая IP, link-layer address, interface и состояние записи.

Как посмотреть соседей в Linux

В современных Linux-системах удобнее использовать iproute2:

ip neigh show

Таблица neighbor объединяет понятие соседей и позволяет увидеть IPv4 ARP entries и состояния neighbor cache.

Почему ARP entry может быть неполной

Запись может существовать до того, как MAC успешно разрешён. ОС уже знает, что нужно определить соседа, но ответ ещё не получен.

В разных ОС состояния называются по-разному. В Windows PowerShell и Linux neighbour table можно увидеть состояния вроде reachable, stale, incomplete или failed.

Reachableсосед недавно подтверждён
Staleзапись есть, но её актуальность нужно подтвердить при использовании
Incompleteразрешение MAC ещё не завершилось
Failedneighbor resolution не удалось

Нужно ли регулярно очищать ARP cache

Нет. В исправной сети neighbor cache обслуживается автоматически.

Очистка записи полезна как диагностический приём, например после замены устройства с сохранением того же IP.

Очистка ARP cache не исправляет duplicate IP.

Если два устройства продолжают использовать один адрес, после очистки таблица снова изучит один из конфликтующих MAC. Нужно устранить сам конфликт адресации.

Как удалить запись ARP в Windows

Для конкретного IPv4:

arp -d 192.168.1.50

После этого при следующем обращении Windows снова выполнит neighbor resolution.

На компьютере с несколькими интерфейсами важно понимать, таблицу какого interface вы диагностируете.

Типичный случай: заменили камеру, но оставили тот же IP

Старая камера имела:

IP192.168.1.50
MACAA:AA:AA:AA:AA:AA

Её отключили и поставили новую камеру с тем же IP:

IP192.168.1.50
MACBB:BB:BB:BB:BB:BB

Некоторые узлы ещё могут временно хранить старое соответствие IP → MAC. До обновления neighbor cache соединение выглядит «зависшим», хотя новая камера физически работает.

Обычно ситуацию исправляет нормальный ARP Announcement новой камеры или естественное обновление cache. При диагностике можно удалить старую запись вручную.

Что такое Duplicate IP

Duplicate IP возникает, когда два устройства одновременно считают один IPv4-адрес своим в одном L2-сегменте.

Camera A192.168.1.50 / MAC AA...
192.168.1.50один адрес
Camera B192.168.1.50 / MAC BB...

Это не нормальная схема резервирования, если она специально не реализована соответствующим HA-протоколом.

Почему конфликт IP выглядит случайным

Один клиент может изучить MAC устройства A, а другой - MAC устройства B. Позже ARP announcements или replies обновят записи в другой последовательности.

192.168.1.50AA:AA:AA...
⇄
192.168.1.50BB:BB:BB...

В результате:

  • ping отвечает то одно устройство, то другое;
  • web-интерфейс периодически пропадает;
  • NVR теряет камеру;
  • TCP-сессии рвутся;
  • в ARP-таблице один IP меняет MAC.

Duplicate IP и MAC flapping — не одно и то же

При duplicate IP меняется соответствие один IP → разные MAC.

При классическом MAC flapping switch видит один MAC → на разных физических портах.

Проблема Что «прыгает»
Duplicate IPIP → MAC A / MAC B
MAC flappingMAC → Port 5 / Port 8

MAC flapping чаще связано с L2-петлёй, неправильным bonding или перемещением одного MAC. Про петли есть отдельный гайд про STP/RSTP.

Откуда обычно берётся конфликт IP

Static IP внутри DHCP poolDHCP server считает адрес свободным и выдаёт его другому клиенту
Два ручных static IPодин адрес случайно прописан двум устройствам
Старая камера вернуласьеё включили после длительного отключения
Клонирование VMобраз сохранил прежнюю сетевую конфигурацию
Замена роутераизменился DHCP pool и пересёкся со старой статической адресацией
Два DHCP serverне всегда дают один IP, но создают хаос адресации и шлюзов

Как правильно разделить DHCP и статические адреса

Есть два нормальных подхода:

  1. DHCP reservation. Роутер всегда выдаёт устройству один и тот же адрес.
  2. Manual static IP. Адрес выбирают осознанно и исключают из конфликтующего динамического распределения либо используют DHCP-server, который корректно знает reservation/static plan.

Для камер, NAS и Home Assistant главный принцип - адресный план должен быть понятным и документированным, а не набором случайных IP.

Что такое IPv4 Address Conflict Detection

RFC 5227 стандартизует механизм, с помощью которого хост пытается понять, свободен ли IPv4-адрес, прежде чем полноценно начать его использовать, а затем продолжает отслеживать возможный конфликт.

Probeадрес ещё не используется полноценно
→
Conflict?кто-то уже заявляет этот IPv4
→
Use / Declineиспользовать адрес или отказаться

Механизм нужен не только DHCP-клиентам. RFC 5227 прямо распространяет идею проверки и на адреса, настроенные другими способами, включая ручную конфигурацию.

Что такое ARP Probe

При ARP Probe узел проверяет, не используется ли желаемый IPv4 другим устройством.

В RFC 5227 probe выполняется ARP Request, где Sender IP Address равен 0.0.0.0, а Target IP Address содержит проверяемый адрес.

Sender IP: 0.0.0.0 Who has 192.168.1.50? Target IP: 192.168.1.50

Так хост не заявляет адрес своим до завершения проверки.

Что такое ARP Announcement

После успешной проверки устройство может объявить локальной сети, что адрес теперь принадлежит ему.

RFC 5227 определяет ARP Announcement как ARP Request, в котором Sender IP и Target IP содержат объявляемый IPv4.

Sender IP192.168.1.50=192.168.1.50Target IP

Это помогает соседям быстрее обновить cached mapping.

Gratuitous ARP: почему термин вызывает путаницу

В документации производителей термин Gratuitous ARP, GARP используется достаточно широко: это ARP-сообщение о собственном адресе, которое не является обычным ответом на предварительный запрос конкретного клиента.

В реальных реализациях можно встретить gratuitous ARP request и gratuitous ARP reply.

Для точной диагностики лучше смотреть сам пакет. RFC 5227 использует более конкретные термины ARP Probe и ARP Announcement. Название «GARP» в интерфейсе производителя не всегда полностью описывает формат сообщения.

Зачем нужен Gratuitous ARP

Новый IPсообщить соседям о mapping
Смена MACобновить cache после замены устройства
Failoverперенести виртуальный IP на новый активный узел
Duplicate detectionобнаружить неожиданный ответ на собственный адрес

Juniper, например, отдельно документирует gratuitous ARP для обнаружения duplicate IP и обновления ARP cache.

Почему GARP особенно важен при failover

Представим виртуальный IP шлюза 192.168.1.1. Активный router A отказал, и адрес переехал на router B.

До192.168.1.1 → MAC A
failover
После192.168.1.1 → MAC B

Если клиенты продолжат хранить старый mapping, они будут отправлять кадры старому MAC. ARP announcements помогают быстро сообщить новый путь.

Почему статическая ARP-запись может мешать

Статический mapping IP → MAC не стареет так же, как динамический. Это может быть полезно в специфических схемах, но дома часто создаёт дополнительную проблему.

После замены устройства с тем же IP статическая запись продолжит указывать на старый MAC, пока её не изменить вручную.

Не используйте static ARP как обычный способ «закрепить IP».

Для постоянного IPv4 устройству обычно нужна DHCP reservation или корректный static IP. ARP binding решает другую задачу.

Что такое Proxy ARP

Proxy ARP означает, что router отвечает на ARP Request за другой IPv4-адрес своим MAC, а затем маршрутизирует полученный трафик дальше.

Host«кто имеет IP X?»
→
Router«отправляй на мой MAC»
→
Targetдостигается через route

Juniper описывает restricted и unrestricted Proxy ARP. В restricted mode устройство не проксирует адреса, когда source и target находятся в одной подсети, что является более безопасным и предсказуемым вариантом.

Почему Proxy ARP может скрыть ошибку маски

Хост с неправильной слишком широкой маской может считать удалённый IP локальным и отправлять ARP вместо пакета на default gateway.

Если router отвечает Proxy ARP, связь неожиданно заработает.

Это удобно в отдельных legacy-сценариях, но способно скрыть неправильную адресацию. После замены роутера, отключения Proxy ARP или переноса VLAN такая сеть внезапно перестаёт работать.

ARP между VLAN не проходит как обычный broadcast

Каждая VLAN является отдельным L2 broadcast domain. ARP Request из VLAN 10 не должен просто flood-иться в VLAN 20.

VLAN 10192.168.10.0/24
→ Router/L3 →
VLAN 20192.168.20.0/24

Хост в VLAN 10 ARP-ит MAC своего gateway в VLAN 10. Router отдельно определяет next-hop в VLAN 20.

Основы сегментации: «VLAN простыми словами».

ARP и таблица MAC на коммутаторе — разные таблицы

Таблица Mapping Где обычно находится
ARP / NeighborIPv4 → MACПК, router, L3 switch, NAS
MAC / FDBMAC → switch portEthernet switch

Для поиска камеры полезно сначала получить её MAC из ARP/neighbor table, а затем найти этот MAC в forwarding database switch и определить физический порт.

Если оборудование поддерживает discovery, ещё быстрее может помочь LLDP.

Как диагностировать конфликт IP по шагам

  1. Зафиксируйте проблемный IPv4. Не меняйте адреса сразу.
  2. Посмотрите ARP/neighbor mapping. Запишите MAC.
  3. Повторите проверку через время. Не меняется ли MAC у одного IP.
  4. Найдите оба MAC в switch. Определите физические порты.
  5. Проверьте DHCP leases. Не входит ли адрес в динамический pool.
  6. Проверьте статические настройки устройств. Камеры, NVR, NAS, принтеры, AP.
  7. Отключите один подозрительный узел. Убедитесь, что конфликт исчез.
  8. Исправьте адресный план. А не только ARP cache.

Практический тест: один IP меняет MAC

На Windows можно несколько раз посмотреть конкретный адрес:

arp -a 192.168.1.50

Или в PowerShell:

Get-NetNeighbor -IPAddress 192.168.1.50

Если один и тот же IPv4 быстро появляется с двумя разными реальными MAC при стабильной топологии, duplicate IP становится сильным подозрением.

Но учитывайте HA и virtual MAC. В VRRP/кластерных решениях смена владельца виртуального адреса может быть штатной. Сначала поймите архитектуру.

Почему ping не всегда помогает найти конфликт

Ping проверяет ICMP-доступность текущего владельца mapping, но не сообщает, тот ли это физический узел.

Если два устройства отвечают за один IPv4, ping может выглядеть вполне успешным, пока ARP cache у вашего ПК закреплён за одним из них.

Поэтому конфликт ищут через связку:

  • IP;
  • MAC;
  • switch port;
  • DHCP/static configuration.

Почему камера или принтер может «оживать» после перезагрузки

Перезагрузка способна временно изменить порядок ARP announcements и neighbor learning.

Если после reboot устройство заработало, а позже снова пропало, это не доказательство неисправного питания или прошивки. При duplicate IP новый порядок ARP-кэшей просто временно отдал трафик нужному MAC.

Для камер полная диагностика есть в статье «Почему IP-камера показывает “нет сети”».

ARP spoofing и ARP poisoning

ARP изначально не содержит сильного механизма аутентификации соответствия IP → MAC. Это позволяет злоумышленнику в одном L2-сегменте пытаться отправлять ложные ARP mappings и перенаправлять трафик через себя.

НормальноGateway IP → MAC роутера
PoisoningGateway IP → MAC атакующего

Это отдельная задача от случайного duplicate IP, хотя внешне обе ситуации могут проявляться изменением ARP mappings.

Dynamic ARP Inspection

В управляемых enterprise/SMB switch существует Dynamic ARP Inspection, DAI.

Cisco в актуальной документации IOS XE 2026 года описывает DAI как механизм, который проверяет ARP packets и отбрасывает invalid IP-to-MAC bindings.

В DHCP-сетях DAI обычно опирается на базу DHCP Snooping. Для статически настроенных адресов могут потребоваться ARP ACL или другие ручные bindings.

Не включайте DAI вслепую на работающей сети.

Если DHCP Snooping bindings, trusted ports и статические endpoints не настроены правильно, можно заблокировать легитимные ARP-пакеты и потерять доступ к устройствам.

Статические ARP entries не являются универсальной защитой от spoofing

Теоретически жёсткий mapping критичного IP к MAC уменьшает часть рисков на конкретном хосте. Практически в большой сети ручные static ARP entries плохо масштабируются, мешают failover и усложняют замену оборудования.

Гораздо правильнее использовать архитектурные механизмы: VLAN, DHCP Snooping, DAI, port security и нормальное управление access-портами там, где оборудование это поддерживает.

ARP и Wi‑Fi

Клиент Wi‑Fi внутри обычной bridged WLAN всё равно участвует в IPv4 neighbor resolution.

Но guest isolation, client isolation и proxy/ARP optimization у точки доступа могут менять фактическое прохождение broadcast/ARP между беспроводными клиентами.

Поэтому ситуация «два телефона в одном SSID не видят друг друга» не обязательно означает проблему ARP. Возможно, это сознательная client isolation.

ARP и Mesh

Нормальная Mesh-система должна сохранять L2/L3-связность клиентов при roaming и смене точки доступа.

При перемещении клиента его MAC может появляться за другим backhaul/uplink, но IPv4 остаётся тем же. Switch и Mesh-инфраструктура должны обновить forwarding state.

Не путайте это со случаем, когда один IP одновременно используют два разных MAC.

ARP и виртуальные машины

После клонирования VM особенно важно проверить:

  • IPv4;
  • MAC виртуальной NIC;
  • hostname;
  • DHCP reservation;
  • статические network settings.

Если clone сохранил тот же static IPv4, конфликт может начаться сразу после запуска обеих VM.

ARP и NAS с несколькими интерфейсами

NAS может иметь несколько физических NIC, LACP bond, VLAN interfaces и виртуальные сетевые interfaces контейнеров.

При диагностике важно понимать, какой MAC и какой логический interface должен владеть конкретным IPv4.

Если NAS использует LACP, IP обычно назначается bond/interface, а не рассматривается как два независимых одинаковых адреса на member-портах.

Про агрегацию: «LACP и Link Aggregation».

ARP и IPv6: почему команды отличаются

IPv6 не использует ARP. Neighbor Discovery выполняется через ICMPv6.

Поэтому Windows Get-NetNeighbor концептуально современнее старой команды arp: cmdlet умеет работать с neighbor cache и для IPv4, и для IPv6.

Если проблема существует только по IPv6, чистка IPv4 ARP cache её не исправит.

ARP и Port Forwarding никак не заменяют друг друга

ARP определяет local next-hop MAC. Port Forwarding занимается входящим NAT на router.

Но неисправный ARP на LAN может косвенно ломать опубликованный сервис: router выполняет DNAT правильно, а затем не может доставить packet внутреннему серверу из-за неправильного neighbor mapping.

Про внешний доступ: «Проброс портов на роутере».

Какой минимальный набор проверки нужен дома

IP / maskправильная ли подсеть
Gatewayправильный ли next-hop
ARPкакой MAC у нужного IPv4
DHCPне пересекается ли lease со static IP
MAC tableна каком switch-порту устройство
LLDPкакой сосед за uplink, если поддерживается

Типовые ошибки

01Считать ARP таблицей всех устройств сети.
02Искать через ARP MAC удалённого интернет-сервера.
03Путать ARP cache с DHCP leases.
04Очищать ARP cache вместо устранения duplicate IP.
05Прописывать static ARP вместо нормальной DHCP reservation.
06Делать static IP внутри DHCP pool без адресного плана.
07Путать duplicate IP и MAC flapping.
08Считать Gratuitous ARP всегда одним конкретным форматом packet.
09Включать Proxy ARP или DAI без понимания топологии.
10Пытаться диагностировать IPv6 только через arp -a.

Техническая основа

RFC 826

Базовый Ethernet Address Resolution Protocol, IPv4-to-MAC resolution.

RFC 5227

IPv4 Address Conflict Detection, ARP Probe, Announcement и защита от duplicate address.

Microsoft 2025/2026

arp и Get-NetNeighbor для Windows 11 / Windows Server 2025.

Cisco IOS XE 2026

Dynamic ARP Inspection, DHCP Snooping bindings и защита от invalid ARP mappings.

Домашние сети и диагностика в Туле

Камера, NAS или принтер периодически исчезает по одному и тому же IP?

Можно проверить адресный план, DHCP, ARP/neighbor cache, MAC-таблицу switch, VLAN, конфликт адресов и физический порт устройства. В нормальной сети должно быть понятно, какой IP кому принадлежит и где именно подключён этот узел.

Частые вопросы

Что такое ARP простыми словами?

ARP помогает IPv4-устройству узнать MAC-адрес локального соседа или next-hop по известному IPv4-адресу, чтобы сформировать Ethernet-кадр.

Что показывает arp -a?

Команда показывает текущие IPv4 ARP cache entries: IP-адреса и соответствующие им физические MAC-адреса для сетевых интерфейсов компьютера.

Почему одного IP в ARP-таблице нет?

Компьютер мог ещё не обращаться к этому соседу, запись могла устареть, адрес находится в другой подсети или устройство не отвечает на neighbor resolution.

Что будет, если два устройства имеют один IP?

У разных клиентов один IPv4 может поочерёдно сопоставляться с разными MAC. Связь становится нестабильной: сессии рвутся, устройство периодически пропадает или открывается не тот узел.

Поможет ли очистка ARP cache при конфликте IP?

Только временно для диагностики. Если оба устройства продолжают использовать один адрес, новый конфликт появится снова. Нужно изменить адресацию.

Что такое Gratuitous ARP?

Общее название ARP-сообщений, которыми устройство объявляет или подтверждает собственное IPv4-to-MAC соответствие без обычного предварительного запроса конкретного клиента. Формат зависит от реализации и сценария.

Что такое Proxy ARP?

Это режим, в котором router отвечает своим MAC на ARP-запрос за другой IPv4 и затем маршрутизирует полученный трафик к реальному destination.

Использует ли IPv6 ARP?

Нет. IPv6 использует Neighbor Discovery Protocol на базе ICMPv6.

Чем ARP table отличается от MAC table switch?

ARP связывает IPv4 с MAC. MAC/FDB table коммутатора связывает MAC с физическим switch-портом. Для поиска устройства часто используют обе таблицы вместе.

Техническая основа: RFC 826 Address Resolution Protocol, RFC 5227 IPv4 Address Conflict Detection, актуальная документация Microsoft по arp/Get-NetNeighbor, Juniper по Gratuitous/Proxy ARP и Cisco IOS XE 2026 по Dynamic ARP Inspection.

ARP-поведение, timers и neighbor states зависят от операционной системы и сетевого оборудования. Перед созданием статических ARP bindings, включением Proxy ARP или DAI сохраните конфигурацию и убедитесь, что понимаете адресный план, VLAN и доверенные uplink.