ARP (Address Resolution Protocol) - протокол канального уровня, чья главная задача - найти физический (MAC) адрес устройства по известному логическому (IP) адресу в пределах одной локальной сети (сегмента L2)
-Ваш ПК 192.168.1.10 хочет отправить данные другому ПК в той же сети 192.168.1.20
-Ваш ПК знает IP-адрес цели (192.168.1.20), как вы знаете имя человека в большом офисе.
-Но сетевая карта вашего ПК и коммутатора в сети для доставки кадров использует MAC-адреса, как почтальон в офисе использует номер кабинета.
ARP - это тот самый "процесс", который позволяет вашему компьютеру "кричать" в сети: "Эй, кто здесь 192.168.1.2? Отзовись и скажи свой MAC-адрес!"
Как работает ARP? (Процесс разрешения адреса)
Процесс состоит из двух сообщений: ARP Request (запрос) и ARP Reply (ответ). Рассмотрим на классическом примере.
Участники:
- Host A (Запросчик): IP = 192.168.1.10, MAC = AA:AA:AA:AA:AA:AA
- Host B (Цель): IP = 192.168.1.20, MAC = BB:BB:BB:BB:BB:BB
- Коммутатор: Соединяет все устройства в сети.
Шаг 1: Проверка кэша (ARP Table)
Прежде чем что-то делать, Host A проверяет свою ARP-таблицу. Нет ли там уже записи для 192.168.1.20? Если есть — отлично, можно сразу отправлять данные. Если нет — переходим к шагу 2.
Шаг 2: ARP Request (Запрос)
Host A создает ARP-запрос. Это широковещательный кадр (Broadcast Frame), который увидят все устройства в локальной сети.
- Заголовок кадра:
MAC назначения: FF:FF:FF:FF:FF:FF (широковещательный адрес).
MAC источника: AA:AA:AA:AA:AA:AA (MAC Host A). - Данные ARP-пакета:
Sender MAC Address: AA:AA:AA:AA:AA:AA
Sender IP Address: 192.168.1.10
Target MAC Address: 00:00:00:00:00:00 (неизвестен, поэтому нули).
Target IP Address: 192.168.1.20
По сути, этот пакет говорит: "Устройство с IP 192.168.1.10 и MAC AA:AA:AA:AA:AA:AA ищет устройство с IP 192.168.1.20. Ответьте, пожалуйста, своим MAC-адресом!"
Коммутатор получает этот широковещательный кадр и отправляет его на все свои порты, кроме того, откуда он пришел.
Шаг 3: Получение и обработка запроса
Все устройства в сети получают этот ARP-запрос. Каждое устройство смотрит на поле "Target IP Address" (192.168.1.20).
- Host C, Host D и другие: Видят, что это не их IP-адрес, и игнорируют пакет.
- Host B: Видит, что это его IP-адрес (192.168.1.20). Он понимает, что его разыскивают.
Шаг 4: ARP Reply (Ответ)
Host B формирует ARP-ответ. Это unicast-кадр, который отправляется напрямую обратно Host A.
- Заголовок кадра:
MAC назначения: AA:AA:AA:AA:AA:AA (MAC Host A).
MAC источника: BB:BB:BB:BB:BB:BB (MAC Host B). - Данные ARP-пакета:
Sender MAC Address: BB:BB:BB:BB:BB:BB
Sender IP Address: 192.168.1.20
Target MAC Address: AA:AA:AA:AA:AA:AA
Target IP Address: 192.168.1.10
Пакет говорит: "Привет, Host A! Я тот, кого ты ищешь. Мой IP 192.168.1.20, а мой MAC-адрес BB:BB:BB:BB:BB:BB."
Коммутатор узнает MAC Host A из кадра и отправляет ответ только на его порт.
Шаг 5: Обновление ARP-таблицы
Host A получает ответ от Host B. Он извлекает из пакета пару IP -> MAC (192.168.1.20 -> BB:BB:BB:BB:BB:BB) и записывает ее в свою ARP-таблицу.
Теперь Host A знает MAC-адрес Host B и может отправлять ему данные напрямую, без дополнительных ARP-запросов (пока запись в таблице не устареет).
ARP-таблица (ARP Cache)
ARP-таблица — это кэш, хранящийся в памяти каждого сетевого устройства, где содержатся недавно полученные соответствия IP и MAC-адресов. Это предотвращает необходимость делать ARP-запрос для каждого пакета данных.
Структура типичной записи в ARP-таблице:
- IP Address: Известный IP-адрес.
- MAC Address: Соответствующий ему физический адрес.
- Type (Flags): Указывает тип записи. Чаще всего C (Complete) — запись полная и проверенная. Может быть I (Incomplete) — запрос отправлен, но ответ еще не получен.
- Interface: Сетевой интерфейс, через который доступно это устройство.
Просмотр ARP-таблицы:
- В Windows: arp -a
- В Linux/macOS: arp -n или ip neigh (более современная команда).
Пример вывода в Windows:
Важные особенности ARP-таблицы:
- Динамические записи: Создаются автоматически в результате ARP-запроса. Имеют время жизни (TTL), обычно 2-20 минут. После истечения TTL запись удаляется, и для следующего пакета потребуется новый ARP-запрос.
- Статические записи: Добавляются вручную администратором (arp -s в Windows). Они постоянны и не имеют TTL. Используются для критически важных устройств (например, маршрутизаторов по умолчанию) или для защиты от ARP-спуфинга.
Резюме
- Назначение ARP: Связывает IP-адрес (логический, уровень 3) с MAC-адресом (физический, уровень 2) в локальной сети.
- Принцип работы: Широковещательный запрос ("Кто это?") и unicast-ответ ("Это я!").
- ARP-таблица: Локальный кэш для хранения результатов ARP-запросов, чтобы не выполнять их каждый раз.
- Важность: Без ARP была бы невозможна доставка данных между устройствами в одной Ethernet-сети, так как коммутаторы оперируют MAC-адресами.
Уязвимость: ARP не имеет встроенной аутентификации. Злоумышленник может отправить поддельный ARP-ответ (ARP-spoofing/poisoning), чтобы "притвориться" другим устройством и перехватывать трафик. Для борьбы с этим используются методы вроде статических ARP-записей или защитные механизмы на коммутаторах (Dynamic ARP Inspection).
#cisco #ccna #сетевыетехнологии