Arp запрос через маршрутизатор

Структура и принцип работы протокола ARP

Маршрутизаторы передают пакеты по какому-либо логическому пути, который состоит из определённого количества каналов передачи данных, “читая” и “взаимодействуя” с сетевыми адресами. Пакеты, инкапсулированные в кадры (фреймы), передаются через канальную среду. Фреймы содержат уникальные идентификаторы канальной среды (например, MAC-адреса) для определения адресата источника и назначения в канальной среде.

Устройствам в канальной среде необходим способ определения идентификаторов канальной среды соседей для того чтобы фреймы могли быть отправлены корректному адресату назначения. Одним из таких механизмов определения для протокола IP версии 4 является протокол ARP — Address Resolution Protocol, описанный в RFC 826.

1. Основы работы протокола ARP

На рисунке 1 изображён процесс работы протокола ARP

Устройство, которому необходимо узнать идентификатор канальной среды другого устройства, создает пакет ARP Request. Данный запрос содержит в себе IP-адрес устройства для которого необходимо узнать идентификатор канального среды ( Target ), а также данные канальной среды (в данном случае MAC-адрес) и IP-адрес устройства, которое данный запрос сформировало ( Source ).

Пакет ARP Request инкапсулируется в фрейм. В качестве MAC-адреса источника выступает сам источник, в качестве MAC-адреса назначения используется broadcast адрес ( FFFF.FFFF.FFFF ).

Вот как выглядит ARP Request если захватить его с помощью wireshark

Подробно рассмотреть каждое поле запроса ARP можно скачав данный дамп

Broadcast адрес используется для того чтобы все узлы в канальной среде получили данный фрейм и обработали инкапсулированный внутри пакет. Все устройства, за исключением адресата назначения, поймут, что данный пакет не предназначается для них и попросту отбросят его. Устройство назначения обработает пакет и в ответ отправит ARP Reply адресату источника. Внутри ARP Reply будет содержаться как раз-таки MAC-адрес адресата назначения.

Читайте также:  Роутер дир 300 установить пароль

На следующем изображении можно увидеть как выглядит ARP Reply

Также скачав дамп с трафиком можно более подробно увидеть каждое поле пакета

2. Структура полей протокола ARP

Протокол ARP имеет следующие поля:

Стоит напомнить, что формат протокола обычно показывается в разрезе 4 байт. Из-за этого часть информации из полей протокола может быть показана как часть следующих 4 байт (на примере Hardware и IP адресации).

Hardware Type — 16-битное поле, определяющее “тип канальной среды”. Наиболее часто используемые типы представлены в таблице ниже

Номер Тип среды
1 Ethernet
15 Frame Relay
17 HDLC
18 Fiber Channel
20 Serial Link

Но основную часть всё же занимает именно Ethernet.

Protocol Type — 16-битное поле, определяющее протокол сетевого уровня, который отправитель связывает с идентификатором канала передачи данных. Для протокола IP версии 4 значение данного поля равно 0x0800

Hardware Address Length — 8-битное поле, определяющее длину идентификатора канальной среды в байтах. MAC-адреса имеет длину 48 бит или 6 байт.

Protocol Address Length — 8-битное поле, определяющее длину адреса сетевого уровня в байтах. IP-адреса имеет длину 32 бита или 4 байта.

Operation — 16-битное поле, которое определяет какой тип пакета ARP используется:

  • ARP Request — 1
  • ARP Reply — 2
  • Reverse ARP Request — 3
  • Reverse ARP Reply — 4
  • Inverse ARP Request — 8
  • Inverse ARP Reply — 9

Последние 20 байт приходятся на адресацию канальной среды и сетевого уровня источника и назначения запроса (MAC-адрес 6 байт * 2 + IP-адрес 4 байт * 2 = 20)

3. Практика

Посмотрим небольшую практику на примере следующей схемы:

Для того чтобы отследить пакеты arp на устройствах cisco можно воспользоваться утилитой debug . Для этого необходимо в привилегированном режиме выполнить команду debug arp

Читайте также:  Как включить роутер zyxel

Стоит обратить внимание на колонку Age в выводе команды на маршрутизаторе. Данная колонка показывает через какое количество времени данная запись будет удалена из таблицы ARP. Это сделано для того чтобы предотвратить перегрузку таблицы ARP устаревшими записями.

По умолчанию устройства cisco хранятся информацию у себя в таблице ARP в течение 4 часов, это можно проверить командой show interface | include ARP

Router# show int gi0/0 | inc ARP Encapsulation ARPA, loopback not set ARP type: ARPA, ARP Timeout 04:00:00 Router# 

Поведение по умолчанию можно изменить, выполнив следующий набор команд (настройка актуальна для отдельного интерфейса)

Router# conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)# interface gi0/0 Router(config-if)# arp timeout 1800 Router(config-if)# end *Oct 4 20:56:43.122: %SYS-5-CONFIG_I: Configured from console by console Router# show int gi0/0 | inc ARP Encapsulation ARPA, loopback not set ARP type: ARPA, ARP Timeout 00:30:00 Router# 

Для очистки ARP кэша можно выполнить команду

В следующий раз я вкратце рассмотрю другие разновидности протокола ARP: Proxy ARP , Gratuitous ARP , Reverse ARP .

P.S. вся информация представленная здесь используется исключительно в образовательных целях. Все совпадения с реальными объектами, адресами, именами и т.д. случайна и не несёт цели получить от этого выгоду или причинить кому-либо вред.

Updated: October 2, 2021

Источник

Оцените статью
Adblock
detector