---
# System prepended metadata

title: Лабораторная рабоата. Иследуем протокол ARP.
tags: [сети]

---

###### 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-таблицей.

![](https://i.imgur.com/V7qU00t.png)

В ARP-таблице могут содержаться как статические, так и динамические записи. Динамические записи добавляются и удаляются автоматически, статические заносятся вручную.


Так как большинство устройств в сети поддерживает динамическое разрешение адресов, то администратору, как правило, нет необходимости вручную указывать записи протокола ARP в таблице адресов.

Каждая запись в ARP-таблице имеет свое время жизни. Политики очистки ARP-таблицы продиктованы используемой операционной системой. При добавлении записи для нее активируется таймер.

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

ARP-запросы и ответы используют один и тот же формат пакета. Так как локальные адреса могут в различных типах сетей иметь различную длину, то формат пакета протокола ARP зависит от типа сети. Пример запроса и ответа ARP 

![](https://i.imgur.com/AvWxKlf.png)

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

![](https://i.imgur.com/mnTXI8w.png)

:::warning
Вы можете заметить что mac выражен в 0-лях потому что роутер его не знает. На данном скрине роутер хочет узнать какой MAC адресс у устройства с IP 192.168.1.12. 
:::

#### ARP Harvesting
Протокол ARP может быть очень полезен в рамках сетевой разведки. Сканирование ARP позволяет провести перечисление активных хостов и имеет небольшое преимущество перед ICMP-сканированием, поскольку трафик ICMP в корпоративной сети может быть ограничен, а то и вовсе выключен.

Как пример использование утилиты arp-scan в Linux: 

![](https://i.imgur.com/1kQoMtu.png)

Протокол 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