###### tags: arp
# Лабораторная рабоата. Иследуем протокол ARP.
**Цель работы:** Научиться работать с программой Wireshark. Изучить работу протокола ARP.
**Необходимые материалы:** ПК с установленной программой Wireshark.
## Теоретическая часть.
**Для определения физического адреса по IP-адресу используется протокол разрешения адреса Address Resolution Protocol (ARP)**.
Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети с возможностью широковещательного доступа одновременно ко всем узлам сети.
:::success
Протокол ARP позволяет динамически определить МАС-адрес по IP-адресу. Протокол ARP работает в пределах одной подсети и автоматически запускается, когда возникает необходимость преобразования IP-адреса в аппаратный адрес.
:::
Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP-запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP запросе отправитель указывает свой локальный адрес.
Для того чтобы уменьшить количество посылаемых запросов ARP, каждое устройство в сети, использующее протокол ARP, должно иметь специальную буферную память. В ней хранятся пары адресов (IP-адрес, физический адрес) устройств в сети. Всякий раз, когда устройство получает ARP-ответ, оно сохраняет в буферной памяти соответствующую пару. Если адрес есть в списке пар, то нет необходимости посылать ARP-запрос. Эта буферная память называется ARP-таблицей.

В ARP-таблице могут содержаться как статические, так и динамические записи. Динамические записи добавляются и удаляются автоматически, статические заносятся вручную.
Так как большинство устройств в сети поддерживает динамическое разрешение адресов, то администратору, как правило, нет необходимости вручную указывать записи протокола ARP в таблице адресов.
Каждая запись в ARP-таблице имеет свое время жизни. Политики очистки ARP-таблицы продиктованы используемой операционной системой. При добавлении записи для нее активируется таймер.
Сообщения протокола ARP при передаче по сети инкапсулируются в поле данных кадра. Они не содержат IP-заголовка. В отличие от сообщений большинства протоколов, сообщения ARP не имеют фиксированного формата заголовка. Это объясняется тем, что протокол был разработан таким образом, чтобы он был применим для разрешения адресов в различных сетях.
ARP-запросы и ответы используют один и тот же формат пакета. Так как локальные адреса могут в различных типах сетей иметь различную длину, то формат пакета протокола ARP зависит от типа сети. Пример запроса и ответа ARP

А так выглядит ARP запрос. На втором уровне мы видим заголовок Ethernet где указаны MAC адреса отправителя и получателя а также какой протокол используется на следующем уровне (ARP). Далее идет служебная информация. А после нее информация о том кому направлен запрос а также IP адрес и мак адрес который необходимо узнать.

:::warning
Вы можете заметить что mac выражен в 0-лях потому что роутер его не знает. На данном скрине роутер хочет узнать какой MAC адресс у устройства с IP 192.168.1.12.
:::
#### ARP Harvesting
Протокол ARP может быть очень полезен в рамках сетевой разведки. Сканирование ARP позволяет провести перечисление активных хостов и имеет небольшое преимущество перед ICMP-сканированием, поскольку трафик ICMP в корпоративной сети может быть ограничен, а то и вовсе выключен.
Как пример использование утилиты arp-scan в Linux:

Протокол arp имеет ряд уязвимостей о которых вы узнаете на 4 курсе.
## Практическая часть.
1. Выполните команду arp-a опишите увиденное.
2. Изучите каким образом можно добавить статическую arp запись в Windows, Linux и Cisco IOS.
3. Откройте программу Wireshark начните захват трафика на одном из активных сетевых интерфейсов, отфильтруйте трафик по протоколу arp. Найдите и опишите arp запрос и arp ответ.
Таблица Ethernet.
| Тип сообщения |Mac Адрес отправителя | MAC адрес получателя |
| -------- | -------- | -------- |
| Аrp запрос | mac адресс | mac адресс |
| Аrp ответ | mac адресс | mac адресс |
Таблица ARP.
| Тип сообщения | MAC отправителя | IP адресс отправителя | Target MAC | Target IP |
| ------------- | --------------- | --------------------- | --- | ---------- |
| Аrp запрос | text | text | text | text |
| Аrp ответ | text | text | text | text |
4. Проведите arp разведку в вашей локальной сети. Вы можете использовать Linux с утилитой arp-scan или же любую другую утилиту работающую на других OC с похожим действием.
## Контрольные вопросы.
1. Зачем нужен протокол arp в сети?
2. Зачем нужна arp таблица?
3. Зачем нужны два адреса в сети IP и MAC?
4. Обьясните как вы понимаете что такое широковещательный домен?
Ответы на некоторые вопросы вы можете найти тут: https://hackmd.io/@erikguru/HyZA5oYdo