- ARP протокол
- Важная информация по ARP
- Как узнать MAC адрес по IP адресу
- Протокол ARP — протокол разрешения адресов, принцип работы
- Таблица соответствия ARP
- ARP-запрос
- Формат ARP-запроса
- Формат ARP-ответа
- Место в модели OSI
- ARP-таблица
- Оптимизация ARP
- Добровольный ARP-запрос (Gratuitous ARP)
- Выводы по протоколу ARP
ARP протокол
ARP (Address Resolution Protocol) — протокол, предназначенный для определения MAC адреса по известному IP‐адресу. Он используется для установления соответствия между физическим (MAC) и логическим (IP) адресом.
Сложно определённо сказать, на каком уровне модели OSI он работает. Если учитывать тот факт, что протокол работает только в сетях Ethernet с MAC адресом, то это однозначно канальный уровень. С другой стороны, ARP находит MAC адрес, посылая запрос на IP адрес. Это уже сетевой уровень. Будем считать, что протокол “болтается между небом и землёй” – между 2 и 3 уровнями.
Когда на сетевое устройство приходят данные и в таблице MAC-адресов не обнаруживается соответствие IP к MAC, коммутатор при помощи протокола ARP формирует широковещательную рассылку.
При наличии IP-адреса узла ARP определяет и сохраняет MAC-адрес узла в локальной сети в три этапа.
1. Отправляющий узел создает и отправляет кадр по MAC-адресу широковещательной рассылки. В кадре находится сообщение с IP-адресом узла назначения.
2. Каждый сетевой узел получает этот кадр и сравнивает IP-адрес из сообщения со своим. Узел с соответствующим IP-адресом посылает отправителю свой MAC-адрес.
3. Узел-отправитель получает сообщение и сохраняет MAC-адрес и IP-адрес в таблице ARP.
Когда MAC-адрес назначения оказывается в таблице ARP отправителя, появляется возможность отправлять кадры напрямую, минуя запрос ARP.
Важная информация по ARP
У протокола ARP есть близнец, который по функционалу делает всё наоборот. Этот протокол называется RARP.
На коммутаторе второго уровня нет таблицы ARP, только таблица пересылки. Коммутатор записывает каждый MAC-адрес src (источник), который видит входящим, в таблицу пересылки и приписывает его порту, так что кадры с dst MAC будут отправляться только на порт, известный для этого MAC. Многие люди называют это «таблицей или кешем arp», хотя это не так.
В управляемом коммутаторе второго уровня есть таблица переадресации плюс таблица ARP, но последняя используется только для интерфейса управления (ПК, который вы используете для настройки коммутатора.) В управляемом коммутаторе уровня 3 будет таблица переадресации плюс таблица ARP, поскольку она необходима для интерфейса управления, а также существует функциональность маршрутизатора для пересылки между подсетями.
Твой MAC адрес виден до шлюза. Например, MAC адрес сетевой карты — роутеру, mac роутера — коммутатору и так далее. Мак адрес вообще не виден за пределами твоего локального сегмента. Интерфейс виден интерфейсу.
Как узнать MAC адрес по IP адресу
Чтобы узнать mac адрес по IP адресу, сперва нужно хосты пингануть.
Вначале пропингуй нужные хосты, а потом : arp -a
Даём команду arp -a, смотрим таблицу. Нужного IP в ней нет.
Делаем команду ping 192.168.5.30
MAC адрес устройства появился.
По умолчанию данная таблица живет 300 секунд.
Для очистки кэша используется следующая команда:
netsh interface ip delete arpcache
Протокол ARP — протокол разрешения адресов, принцип работы
Протокол ARP расшифровывается, как Address Resolution Protocol — протокол разрешения адресов. В сети обычно взаимодействуем с компьютерами с помощью IP-адресов, или с помощью доменных имен, которые службой DNS все равно преобразуются в IP-адреса.
Но в реальности данные передаются с помощью какой-нибудь технологии канального уровня, например Ethernet. Коммутаторы Ethernet ничего не знают об IP-адресах и для передачи данных используют MAC-адреса. Следовательно, необходимо средство, которое позволяет по IP-адресу компьютера определить его МАК-адрес.
Таблица соответствия ARP
Самое простое средство это таблица соответствия. Мы создаем таблицу, в которой пишем IP-адрес и соответствующий ему MAC-адрес.
Такое средство действительно используется на практике, например в Linux такая табличка хранится в файле /etc/ethers. Однако в крупной сети такой подход не работает.
ARP-запрос
Протокол ARP позволяет автоматически определить МАК-адрес компьютера по его IP-адресу. Протокол работает в режиме запрос-ответ.
Компьютер, который хочет узнать МАК-адрес по известному IP-адресу, направляет ARP запрос “У кого IP 192.168.10.43?” Запрос отправляется на широковещательный МАК-адрес (FF:FF:FF:FF:FF:FF).
И этот запрос получают все компьютеры в сети. Тот компьютер, который узнал в запросе свой IP-адрес подготавливает и отправляет ARP ответ. В ответ включается IP-адрес компьютера (IP:192.168.10.43) и его МАК-адрес (MAC: 54:BE:F7:88:15:47).
Отправитель ARP запроса получает ответ, извлекает из него МАК-адрес и использует его для передачи данных по технологии канального уровня.
Формат ARP-запроса
ARP разрабатывался, как протокол общего назначения с возможностью применять его не только в Ethernet и не только для IP-адресов. Поэтому в начале ARP пакета идет служебная информация, которая позволяет определить с каким типом сетевого оборудования и с каким протоколом сетевого уровня мы работаем.
- Первое поле “тип сети”, говорит о том, какое оборудование мы используем в сети, 1 — соответствует Ethernet.
- Второе поле “тип протокола” в нем указывается протокол сетевого уровня 2048 означает IP.
- Дальше идет “длина локального адреса”, в нашем случае МАК-адреса 6 байт, “длина глобального адреса в нашем случае IP-адреса” 4 байта.
- Следующее поле код операции, 1 — соответствует ARP запросу, а 2 — ARP ответу.
- Затем идет полезная информация о локальных (1С:75:08:D2:49:45) и глобальных адресах (192.168.10.15). Указывается МАК-адрес и IP-адрес отправителя, для того, чтобы получатель знал, кому отправлять ответ.
- Глобальный адрес получателя (192.168.10.43).
- Локальный адрес получателя неизвестен (00:00:00:00:00:00)
Формат ARP-ответа
Формат ARP ответа точно такой же, только в поле “операция” стоит значение 2 и адрес, который мы ищем находится в поле локальный адрес отправителя.
Место в модели OSI
В модели взаимодействия открытых систем OSI протокол ARP находится между канальным и сетевым уровнем. Пакеты ARP вкладываются напрямую в кадры Ethernet без IP.
Из-за того, что ARP находится ниже сетевого уровня, пакеты ARP не проходят через маршрутизаторы. Таким образом, с помощью ARP можно узнать только МАК-адреса компьютеров, которые находятся в одной подсети, а адреса компьютеров, которые находятся в другой подсети отделенные маршрутизатором узнать нельзя.
Почему так происходит? ARP запрос отправляется на широковещательный адрес который получают все компьютеры внутри сети, но широковещательный трафик не проходит через маршрутизаторы, поэтому компьютеры в другой подсети за маршрутизатором ARP запрос не получат и не смогут отправить на него ответ.
ARP-таблица
После того, как МАК-адрес получателя найден, он кэшируется на компьютеры отправителя в ARP-таблице для того, чтобы не запрашивать МАК-адрес каждый раз по протоколу ARP.
Таблица состоит из 3-х полей — IP-адрес, MAC-адрес и Тип записи в ARP таблице. Есть статическая запись, которая внесена в таблицу вручную и динамическая запись, которая появилась в результате работы протокола ARP. Динамические записи имеют срок жизни после которого они удаляются, это нужно для того, чтобы отслеживать изменения IP-адресов в компьютерах.
Посмотреть ARP таблицу на компьютере можно с помощью команды arp -a.
Оптимизация ARP
ARP запрос отправляется на широковещательный адрес и его получают все компьютеры в сети, кроме ip-адреса для которого необходимо получить мак-адрес в ARP запрос. Отправитель также включает свой ip-адрес и свой мак-адрес, эти данные могут быть записаны всеми компьютерами в сети в ARP-таблицу, чтобы использовать когда они понадобятся.
Добровольный ARP-запрос (Gratuitous ARP)
Это запрос по ARP собственного ip-адреса, он используется для двух целей. Первая цель, быстрое оповещение всех компьютеров в сети от том, что у компьютера появился новый ip-адрес.
Другая цель это проверка использования данного ip-адреса другим компьютером. Если на добровольный ARP запрос пришел ответ, это значит, что какой-то компьютер в сети уже использует этот ip-адрес и назначать его компьютеру отправителя нельзя.
Выводы по протоколу ARP
ARP — протокол разрешения адресов, который позволяет по IP-адресу определить MAC-адрес компьютера в сети. ARP работает в режиме запрос-ответ. Запрос отправляется на широковещательный адрес и его получают все компьютеры в сети, а отвечает только тот компьютер, который узнал свой ip-адрес и в ответ он вкладывает искомый мак-адрес. Результаты ARP запросов для повышения производительности записываются в ARP-таблицу.