ShareIT — поделись знаниями!
Содержание
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Зачем вам 802.1X и что он решает?
- Модель OSI – это просто!
- Как установить все устройства для этичного хакинга в Kali Linux
- Межсетевой экран
- Address resolution protocol — что это?
- Содержание
- Описание [ править | править код ]
- Вариации ARP-протокола [ править | править код ]
- Inverse ARP [ править | править код ]
- Сравнение ARP и InARP [ править | править код ]
- Принцип работы [ править | править код ]
- Структура пакета [ править | править код ]
- Кэш ARP [ править | править код ]
- Обнаружение конфликтов адресов (Address Conflict Detection) [ править | править код ]
- ARP-оповещение [ править | править код ]
Полезно
Узнать IP — адрес компьютера в интернете
Онлайн генератор устойчивых паролей
Онлайн калькулятор подсетей
Калькулятор инсталляции IP — АТС Asterisk
Руководство администратора FreePBX на русском языке
Руководство администратора Cisco UCM/CME на русском языке
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Популярное и похожее
Зачем вам 802.1X и что он решает?
Модель OSI – это просто!
Как установить все устройства для этичного хакинга в Kali Linux
Межсетевой экран
Address resolution protocol — что это?
В семиуровневой модели OSI на различных уровнях имеются разные типы адресов. На канальном это MAC-адрес, а на сетевом это IP-адрес. И для того чтобы установить соответствие между этими адресами используется протокол Address Resolution Protocol – ARP. Именно о нем мы поговорим в этой статье.
Адресация
Адреса 2-го уровня используются для локальных передач между устройствами, которые связаны напрямую. Адреса 3-го уровня используются устройств, которые подключены косвенно в межсетевой среде. Каждая сеть использует адресацию для идентификации и группировки устройств, чтобы передачи прошла успешно. Протокол Ethernet использует MAC-адреса, которые привязаны к сетевой карте.
Чтобы устройства могли общаться друг с другом, когда они не находятся в одной сети MAC-адрес должен быть сопоставлен с IP-адресом. Для этого сопоставления используются следующие протоколы:
- Address Resolution Protocol (ARP)
- Reverse ARP (RARP)
- Serial Line ARP (SLARP)
- Inverse ARP (InARP)
Address Resolution Protocol
Устройству 3го уровня необходим протокол ARP для сопоставления IP-адреса с MAC-адресом, для отправки IP пакетов. Прежде чем устройство отправит данные на другое устройство, оно заглянет в свой кеш ARP где хранятся все сопоставления IP и MAC адресов, чтобы узнать, есть ли MAC-адрес и соответствующий IP-адрес для устройства, которому идет отправка. Если записи нет, то устройство-источник отправляет широковещательное сообщение каждому устройству в сети чтобы узнать устройству с каким MAC-адресом принадлежит указанный IP-адрес. Все устройства сравнивают IP-адрес с их собственным и только устройство с соответствующим IP-адресом отвечает на отправляющее устройство пакетом, содержащим свой MAC-адрес. Исходное устройство добавляет MAC-адрес устройства назначения в свою таблицу ARP для дальнейшего использования, создает пакет с новыми данными и переходит к передаче.
Проще всего работу ARP иллюстрирует эта картинка:
Первый компьютер отправляет broadcast сообщение всем в широковещательном домене с запросом “У кого IP-адрес 10.10.10.2? Если у тебя, то сообщи свой MAC-адрес” и на что компьютер с этим адресом сообщает ему свой MAC.
Когда устройство назначения находится в удаленной сети, устройства третьего уровня одно за другим, повторяют тот же процесс, за исключением того, что отправляющее устройство отправляет ARP-запрос для MAC-адреса шлюза по умолчанию. После того, как адрес будет получен и шлюз по умолчанию получит пакет, шлюз по умолчанию передает IP-адрес получателя по связанным с ним сетям. Устройство уровня 3 в сети где находится устройство назначения использует ARP для получения MAC-адреса устройства назначения и доставки пакета.
Кэширование ARP
Поскольку сопоставление IP-адресов с MAC-адресами происходит на каждом хопе в сети для каждой дейтаграммы, отправленной в другую сеть, производительность сети может быть снижена. Чтобы свести к минимуму трансляции и ограничить расточительное использование сетевых ресурсов, было реализовано кэширование протокола ARP.
Кэширование ARP — это способ хранения IP-адресов и связанных c ними MAC-адресов данных в памяти в течение определенного периода времени, по мере изучения адресов. Это минимизирует использование ценных сетевых ресурсов для трансляции по одному и тому же адресу каждый раз, когда отправляются данные. Записи кэша должны поддерживаться, потому что информация может устаревать, поэтому очень важно, чтобы записи кэша устанавливались с истечением срока действия. Каждое устройство в сети обновляет свои таблицы по мере передачи адресов.
Статические и динамические записи в кеше ARP
Существуют записи статического ARP-кэша и записи динамического ARP-кэша. Статические записи настраиваются вручную и сохраняются в таблице кеша на постоянной основе. Статические записи лучше всего подходят для устройств, которым необходимо регулярно общаться с другими устройствами, обычно в одной и той же сети. Динамические записи хранятся в течение определенного периода времени, а затем удаляются.
Для статической маршрутизации администратор должен вручную вводить IP-адреса, маски подсети, шлюзы и соответствующие MAC-адреса для каждого интерфейса каждого устройства в таблицу. Статическая маршрутизация обеспечивает больший контроль, но для поддержания таблицы требуется больше работы. Таблица должна обновляться каждый раз, когда маршруты добавляются или изменяются.
Динамическая маршрутизация использует протоколы, которые позволяют устройствам в сети обмениваться информацией таблицы маршрутизации друг с другом. Таблица строится и изменяется автоматически. Никакие административные задачи не требуются, если не добавлен лимит времени, поэтому динамическая маршрутизация более эффективна, чем статическая маршрутизация.
Устройства, которые не используют ARP
Когда сеть делится на два сегмента, мост соединяет сегменты и фильтрует трафик на каждый сегмент на основе MAC-адресов. Мост создает свою собственную таблицу адресов, которая использует только MAC-адреса, в отличие от маршрутизатора, который имеет кэш ARP адресов, который содержит как IP-адреса, так и соответствующие MAC-адреса.
Пассивные хабы — это устройства центрального соединения, которые физически соединяют другие устройства в сети. Они отправляют сообщения всем портам на устройства и работают на уровне 1, но не поддерживают таблицу адресов.
Коммутаторы уровня 2 определяют, какой порт подключен к устройству, к которому адресовано сообщение, и отправлять сообщение только этому порту, в отличие от хаба, который отправляет сообщение всем его портам. Однако коммутаторы уровня 3 — это маршрутизаторы, которые создают кеш ARP (таблица).
Inverse ARP
Inverse ARP (InARP), который по умолчанию включен в сетях ATM, строит запись карты ATM и необходим для отправки одноадресных пакетов на сервер (или агент ретрансляции) на другом конце соединения. Обратный ARP поддерживается только для типа инкапсуляции aal5snap. Для многоточечных интерфейсов IP-адрес может быть получен с использованием других типов инкапсуляции, поскольку используются широковещательные пакеты.
Reverse ARP
Reverse ARP (RARP) — работает так же, как и протокол ARP, за исключением того, что пакет запроса RARP запрашивает IP-адрес вместо MAC-адреса. RARP часто используется бездисковыми рабочими станциями, потому что этот тип устройства не имеет способа хранить IP-адреса для использования при их загрузке. Единственный адрес, который известен — это MAC-адрес, поскольку он выжигается в сетевой карте. Для RARP требуется сервер RARP в том же сегменте сети, что и интерфейс устройства.
Proxy ARP
Прокси-ARP был реализован для включения устройств, которые разделены на физические сегменты сети, подключенные маршрутизатором в той же IP-сети или подсети для сопоставления адресов IP и MAC. Когда устройства не находятся в одной сети канала передачи данных (2-го уровня), но находятся в одной и той же IP-сети, они пытаются передавать данные друг другу, как если бы они находились в локальной сети. Однако маршрутизатор, который отделяет устройства, не будет отправлять широковещательное сообщение, поскольку маршрутизаторы не передают широковещательные сообщения аппаратного уровня. Поэтому адреса не могут быть сопоставлены.
Прокси-сервер ARP включен по умолчанию, поэтому «прокси-маршрутизатор», который находится между локальными сетями, отвечает своим MAC-адресом, как если бы это был маршрутизатор, к которому адресована широковещательная передача. Когда отправляющее устройство получает MAC-адрес прокси-маршрутизатора, он отправляет данные на прокси-маршрутизатор, который по очереди отправляет данные на указанное устройство.
Proxy ARP вызывается следующими условиями:
- IP-адрес назначения не находится в той же физической сети (LAN), на которой получен запрос.
- Сетевое устройство имеет один или несколько маршрутов к IP-адресу назначения.
- Все маршруты к IP-адресу назначения проходят через интерфейсы, отличные от тех, на которых получен запрос.
Когда proxy ARP отключен, устройство отвечает на запросы ARP, полученные на его интерфейсе, только если IP-адрес назначения совпадает с его IP-адресом или если целевой IP-адрес в ARP-запросе имеет статически настроенный псевдоним ARP.
Serial Line Address Resolution Protocol
Serial Line ARP (SLARP) используется для последовательных интерфейсов, которые используют инкапсуляцию High Link Level Link Control (HDLC). В дополнение к TFTP-серверу может потребоваться сервер SLARP, промежуточное (промежуточное) устройство и другое устройство, предоставляющее услугу SLARP. Если интерфейс напрямую не подключен к серверу, промежуточное устройство требуется для пересылки запросов сопоставления адреса на сервер. В противном случае требуется напрямую подключенное устройство с сервисом SLARP.
Пожалуйста, расскажите почему?
Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!
Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.
Address Resolution Protocol (ARP) – это стандартный сетевой протокол поиска MAC-адреса узла, когда известен только его IP-адрес. В случае подмены адреса атака ARP негативно влияет на всю сеть при её возникновении.
Существует два возможных вида атак ARP, одни направлены на маршрутизаторы, а другие – на компьютеры. Оба типа атак могут возникнуть одновременно. В любом случае, если в сети присутствует подмена ARP, данные между компьютерами и маршрутизаторами будут отсылаться к некорректному адресату (на неправильный MAC-адрес) и сеть не будет нормально работать.
Поскольку существует два вида подмены, нужно предупредить их возникновение как на маршрутизаторе, так и на компьютере.
Когда вы активируете функцию предупреждения подмены ARP (IP Address & MAC Address binding) на маршрутизаторе TP-Link, необходимо назначить вашему компьютеру статический IP-адрес. В противном случае возможна некорректная работа функции после выполнения привязки МАС и IP адресов.
Вы можете назначить статический IP адрес вручную. Чтобы узнать, как это сделать, прочтите раздел « Как настроить свойства TCP / IP для подключения к маршрутизатору TP — LINK ».
Отключите DHCP сервер на маршрутизаторе. Для этого вам понадобится войти в web -интерфейс управления.
(1) Нажмите DHCP — DHCP Settings ( DHCP — Настройки DHCP ) в левой части страницы.
(2) Укажите Disable (Отключить) возле поля DHCP Server ( DHCP Сервер).
(3) Нажмите Save (Сохранить), чтобы сохранить настройки.
Как настроить функцию предупреждения подмены ARP на маршрутизаторе?
Откройте браузер и в адресной строке введите сетевой IP адрес маршрутизатора, по умолчанию это 192.168.1.1. Нажмите Enter (Ввод).
Введите логин и пароль для входа в web -интерфейс. По умолчанию и логин, и пароль admin .
Нажмите IP & MAC Binding -> Binding setting (Привязка IP и MAC -> Настройки привязки) в левой части страницы.
Выберите Enable ARP Binding (Активация привязки ARP ), затем нажмите Save (Сохранить).
Нажмите ARP List (Список ARP ) в левой части страницы, и вы увидите таблицу ARP , которую запоминает маршрутизатор.
Если данные таблицы ARP правильные, пожалуйста, нажмите Load All (Загрузить все) и Bind All (Выполнить привязку всех), после чего все IP и MAC-адреса ваших компьютеров, перечисленные в списке ARP, будут связаны.
В противном случае введите адреса вручную.
(1) Нажмите Add New (Добавить), чтобы ввести адреса для привязки.
(2) Активируйте опцию Bind (Привязка) и введите МАС и IP адрес вашего компьютера.
Вы должны знать МАС адреса компьютеров, для которых хотите открыть доступ в Интернет. Вы можете узнать МАС адрес с помощью командной строки.
(1)Нажмите Start -> Run (Пуск -> Выполнить), введите cmd и нажмите Enter (Ввод).
(2) Введите ipconfig / all в диалоговом окне, нажмите Enter (Ввод), и вы увидите всю адресную информацию компьютера.
Нажмите Save (Сохранить) для сохранения настроек.
Как настроить функцию предупреждения подмены ARP на компьютере?
Для начала вам нужно определить MAC-адрес маршрутизатора, который можно найти на странице состояния LAN web -интерфейса управления.
Программа ARP является встроенной командой операционных систем от Microsoft, поэтому ее можно использовать в командной строке.
Нажмите Start -> Run (Пуск -> Выполнить), введите cmd и нажмите Enter (Ввод).
Введите arp–s 192.168.1.1 00-19-e0-fa-5b-2b в диалоговом окне, нажмите Enter (Ввод). После этого введите arp–a . Так выполняется проверка, что тип добавленных данных – Static (статический).
Теперь, после добавления записи arp привязки на компьютере, информация, отправляемая на маршрутизатор, не будет отправлена в ином направлении. Статическая привязка ARP будет существовать до перезагрузки компьютера. После перезагрузки её приходится задавать заново.
Как установить автоматическое выполнение привязки без повторения всей вышеописанной операции заново?
Нужно создать командный файл с расширением .bat, например, static_arp.bat, и отредактировать его. Впишите в файл команду ARP для связывания IP и MAC-адреса маршрутизатора, затем сохраните его.
Нажмите Start -> All Programs (Пуск -> Все программы), дважды кликните на Startup (Автоматический запуск) и скопируйте командный файл static_arp.bat в открывшуюся папку.
После этого команда ARP будет выполняться автоматически при каждом запуске компьютера.
ARP (англ. Address Resolution Protocol — протокол определения адреса) — протокол в компьютерных сетях, предназначенный для определения MAC-адреса по IP-адресу другого компьютера.
Рассмотрим суть функционирования ARP на простом примере. Компьютер А (IP-адрес 10.0.0.1) и компьютер Б (IP-адрес 10.22.22.2) соединены сетью Ethernet. Компьютер А желает переслать пакет данных на компьютер Б, IP-адрес компьютера Б ему известен. Однако сеть Ethernet, которой они соединены, не работает с IP-адресами. Поэтому компьютеру А для осуществления передачи через Ethernet требуется узнать адрес компьютера Б в сети Ethernet (MAC-адрес в терминах Ethernet). Для этой задачи и используется протокол ARP. По этому протоколу компьютер А отправляет широковещательный запрос, адресованный всем компьютерам в одном с ним широковещательном домене. Суть запроса: «компьютер с IP-адресом 10.22.22.2, сообщите свой MAC-адрес компьютеру с МАС-адресом (напр. a0:ea:d1:11:f1:01)». Сеть Ethernet доставляет этот запрос всем устройствам в том же сегменте Ethernet, в том числе и компьютеру Б. Компьютер Б отвечает компьютеру А на запрос и сообщает свой MAC-адрес (напр. 00:ea:d1:11:f1:11) Теперь, получив MAC-адрес компьютера Б, компьютер А может передавать ему любые данные через сеть Ethernet.
Наибольшее распространение ARP получил благодаря повсеместности сетей IP, построенных поверх Ethernet, поскольку практически в 100 % случаев при таком сочетании используется ARP. В семействе протоколов IPv6 ARP не существует, его функции возложены на ICMPv6.
Содержание
Описание [ править | править код ]
Описание протокола было опубликовано в ноябре 1982 года в RFC 826. ARP был спроектирован для случая передачи IP-пакетов через кадры Ethernet. При этом общий принцип, предложенный для ARP, может, и был использован и для сетей других типов.
Существуют следующие типы сообщений ARP: запрос ARP (ARP request) и ответ ARP (ARP reply). Система-отправитель при помощи запроса ARP запрашивает физический адрес системы-получателя. Ответ (физический адрес узла-получателя) приходит в виде ответа ARP.
Перед тем как передать пакет сетевого уровня через сегмент Ethernet, сетевой стек проверяет кэш ARP, чтобы выяснить, не зарегистрирована ли в нём уже нужная информация об узле-получателе. Если такой записи в кэше ARP нет, то выполняется широковещательный запрос ARP. Этот запрос для устройств в сети имеет следующий смысл: «Кто-нибудь знает физический адрес устройства, обладающего следующим IP-адресом?» Когда получатель с этим IP-адресом примет этот пакет, то должен будет ответить: «Да, это мой IP-адрес. Мой физический адрес следующий: …» После этого отправитель обновит свой кэш ARP и будет способен передать информацию получателю. Ниже приведён пример запроса и ответа ARP.
Записи в кэше ARP могут быть статическими и динамическими. Пример, данный выше, описывает динамическую запись кэша. Можно также создавать статические записи в таблице ARP. Это можно сделать при помощи команды:
В системах семейства Windows до NT 6.0 записи в таблице ARP, созданные динамически, остаются в кэше в течение 2 минут. Если в течение этих двух минут произошла повторная передача данных по этому адресу, то время хранения записи в кэше продлевается ещё на 2 минуты. Эта процедура может повторяться до тех пор, пока запись в кэше просуществует до 10 минут. После этого запись будет удалена из кэша, и будет отправлен повторный запрос ARP [1] . Сейчас же время хранения записей в ARP-таблице и метод хранения выбираются программно и при желании их можно изменить.
Вариации ARP-протокола [ править | править код ]
ARP изначально был разработан не только для IP-протокола, но в настоящее время в основном используется для сопоставления IP- и MAC-адресов.
ARP также можно использовать для разрешения MAC-адресов для различных адресов протоколов 3-го уровня (Layer 3 protocols addresses). ARP был адаптирован также для разрешения других видов адресов 2-го уровня (Layer 2 addresses); например, ATMARP используется для разрешения ATM NSAP адресов в Classical IP over ATM протоколе.
Inverse ARP [ править | править код ]
Inverse Address Resolution Protocol, Inverse ARP или InARP — протокол для получения адресов сетевого уровня (например IP адресов) других рабочих станций по их адресам канального уровня (например, DLCI в Frame Relay сетях). В основном используется во Frame Relay и ATM сетях.
Сравнение ARP и InARP [ править | править код ]
ARP переводит адреса сетевого уровня в адреса канального уровня, в то же время InARP можно рассматривать как его инверсию. InARP реализовано как расширение ARP. Форматы пакетов этих протоколов одни и те же, различаются лишь коды операций и заполняемые поля.
Reverse ARP (RARP), как и InARP, переводит адреса канального уровня в адреса сетевого уровня. Но RARP используется для получения логических адресов самих станций отправителей, в то время как в InARP-протоколе отправитель знает свои адреса и запрашивает логический адрес другой станции. От RARP отказались в пользу BOOTP, который был в свою очередь заменён DHCP.
Принцип работы [ править | править код ]
- Узел, которому нужно выполнить отображение IP-адреса на локальный адрес [2] , формирует ARP-запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно.
- Все узлы локальной сети получают ARP-запрос и сравнивают указанный там IP-адрес с собственным.
- В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP-запросе отправитель указывает свой локальный адрес.
Преобразование адресов выполняется путём поиска в таблице. Эта таблица, называемая ARP-таблицей, хранится в памяти и содержит строки для каждого узла сети. В двух столбцах содержатся IP- и Ethernet-адреса. Если требуется преобразовать IP-адрес в Ethernet-адрес, то ищется запись с соответствующим IP-адресом. Ниже приведен пример упрощённой ARP-таблицы.
Структура пакета [ править | править код ]
Ниже проиллюстрирована структура пакета, используемого в запросах и ответах ARP. В сетях Ethernet в этих пакетах используется EtherType 0x0806, и запросы рассылаются на широковещательный MAC-адрес — FF:FF:FF:FF:FF:FF. Отметим, что в структуре пакета, показанной ниже, в качестве SHA, SPA, THA и TPA условно используются 32-битные слова — реальная длина определяется физическим устройством и протоколом.
| + | Bits 0 — 7 | 8 — 15 | 16 — 31 | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Hardware type (HTYPE) | Protocol type (PTYPE) | ||||||||||||||||||||||||||||||
| 32 | Hardware length (HLEN) | Protocol length (PLEN) | Operation (OPER) | |||||||||||||||||||||||||||||
| 64 | Sender hardware address (SHA) | |||||||||||||||||||||||||||||||
| ? | Sender protocol address (SPA) | |||||||||||||||||||||||||||||||
| ? | Target hardware address (THA) | |||||||||||||||||||||||||||||||
| ? | Target protocol address (TPA) | |||||||||||||||||||||||||||||||
Hardware type (HTYPE) Каждый канальный протокол передачи данных имеет свой номер, который хранится в этом поле. Например, Ethernet имеет номер 0x0001. Protocol type (PTYPE) Код сетевого протокола. Например, для IPv4 будет записано 0x0800. Hardware length (HLEN) Длина физического адреса в байтах. Адреса Ethernet имеют длину 6 байт (0x06). Protocol length (PLEN) Длина логического адреса в байтах. IPv4 адреса имеют длину 4 байта (0x04). Operation Код операции отправителя: 0x0001 в случае запроса и 0x0002 в случае ответа. Sender hardware address (SHA) Физический адрес отправителя. Sender protocol address (SPA) Логический адрес отправителя. Target hardware address (THA) Физический адрес получателя. Поле пусто при запросе. Target protocol address (TPA) Логический адрес получателя.
Пример запроса [ править | править код ]
Если хост с IPv4 адресом 10.10.10.123 и MAC адресом 00:0D:9D:86:59:E5 хочет послать пакет другому хосту с адресом 10.10.10.140, но не знает его MAC адрес, то он должен послать ARP запрос для разрешения адреса.
Пакет, изображённый ниже, изображает широковещательный запрос. Если хост с IP 10.10.10.140 присутствует в сети и доступен, то он получает этот запрос ARP и возвращает ответ.
| Bits 0 — 7 | 8 — 15 | 16 — 31 | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Hardware type = 0x0001 | Protocol type = 0x0800 | ||||||||||||||||||||||||||||||
| 32 | Hardware length = 0x06 | Protocol length = 0x04 | Operation = 0x0001 | |||||||||||||||||||||||||||||
| 64 | SHA (first 32 bits) = 0x000D9D86 | |||||||||||||||||||||||||||||||
| 96 | SHA (last 16 bits) = 0x59E2 | SPA (first 16 bits) = 0x0A0A | ||||||||||||||||||||||||||||||
| 128 | SPA (last 16 bits) = 0x0A7B | THA (first 16 bits) = 0x0000 | ||||||||||||||||||||||||||||||
| 160 | THA (last 32 bits) = 0x00000000 | |||||||||||||||||||||||||||||||
| 192 | TPA = 0x0A0A0A8C | |||||||||||||||||||||||||||||||
Пример ответа [ править | править код ]
В ситуации, описанной выше, если узел с адресом 10.10.10.140 имеет MAC-адрес 00:09:58:D8:33:AA, то он отправит в ответ пакет, проиллюстрированный ниже. Заметим, что блоки адресов отправителя и получателя теперь поменяли значения (отправитель ответа теперь получатель запроса; получатель ответа — отправитель запроса). Кроме того, в ответе есть MAC-адрес узла 10.10.10.140 в поле физического адреса отправителя (SHA), а поле THA не пустое (одноадресный ответ).
Любой узел в той же сети, что и отправитель с получателем, тоже получит запрос (так как он широковещательный) и таким образом добавит в свой кэш информацию об отправителе. Ответ ARP направлен только источнику запроса ARP, поэтому ответ ARP не доступен другим узлам в сети.
| + | Bits 0 — 7 | 8 — 15 | 16 — 31 | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Hardware type = 0x0001 | Protocol type = 0x0800 | ||||||||||||||||||||||||||||||
| 32 | Hardware length = 0x06 | Protocol length = 0x04 | Operation = 0x0002 | |||||||||||||||||||||||||||||
| 64 | SHA (first 32 bits) = 0x000958D8 | |||||||||||||||||||||||||||||||
| 96 | SHA (last 16 bits) = 0x33AA | SPA (first 16 bits) = 0x0A0A | ||||||||||||||||||||||||||||||
| 128 | SPA (last 16 bits) = 0x0A8C | THA (first 16 bits) = 0x000D | ||||||||||||||||||||||||||||||
| 160 | THA (last 32 bits) = 0x9D8659E2 | |||||||||||||||||||||||||||||||
| 192 | TPA = 0x0A0A0A7B | |||||||||||||||||||||||||||||||
- Замечание. Длина полей SHA, SPA, THA, TPA зависит от параметров Hardware length и Protocol length соответственно.
Кэш ARP [ править | править код ]
Эффективность функционирования ARP во многом зависит от кэша ARP (ARP cache), который присутствует на каждом хосте. В кэше содержатся IP-адреса и соответствующие им аппаратные адреса.
Время жизни записи в кэше оставлено на усмотрение разработчика. По умолчанию может составлять от десятков секунд (например, 20 секунд) до четырёх часов (Cisco IOS). [3]
Обнаружение конфликтов адресов (Address Conflict Detection) [ править | править код ]
Протокол ARP может использоваться для обнаружения конфликтов IP-адресов в локальной сети. RFC 5227 определяет формат запроса ‘ARP Probe’ с полем SPA, состоящим из всех нулей (ip-адрес 0.0.0.0). Перед использованием IP-адреса хост может проверить, что данный IP-адрес не используется другим хостом сегмента локальной сети.
ARP-оповещение [ править | править код ]
ARP-оповещение (ARP Announcement) — это пакет (обычно ARP-запрос [4] ), содержащий корректную SHA и SPA хоста-отправителя, с TPA, равной SPA. Это не разрешающий запрос, а запрос на обновление ARP-кэша других хостов, получающих пакет.
Большинство операционных систем посылает такой пакет при включении хоста в сеть, что позволяет предотвратить ряд проблем. Например, при смене сетевой карты (когда необходимо обновить связь между IP- и MAC-адресами), такой запрос исправит записи в ARP-кэше других хостов в сети.
ARP-оповещения также используются для ‘защиты’ IP-адресов в RFC 3927 (Zeroconf) протоколе.
ARP-запросы могут решать и другие задачи. Так, при загрузке сетевого обеспечения ЭВМ такой запрос может выяснить, не присвоен ли идентичный IP-адрес какому-то еще объекту в сети.
В рамках протокола ARP возможны самообращённые запросы (gratuitous ARP). При таком запросе инициатор формирует пакет, где в качестве IP-адреса используется его собственный адрес. Это бывает нужно, когда осуществляется стартовая конфигурация сетевого интерфейса. В таком запросе IP-адреса отправителя и получателя совпадают.
Самообращённый запрос позволяет ЭВМ решить две проблемы. Во-первых, определить, нет ли в сети объекта, имеющего тот же IР-адрес. Если на такой запрос придёт отклик, то ЭВМ выдаст на консоль сообщение Duplicate IP address sent from Ethernet address . Во-вторых, в случае смены сетевой карты производится корректировка записи в АRP-таблицах ЭВМ, которые содержали старый МАС-адрес инициатора. Машина, получающая ARP-запрос c адресом, который содержится в её таблице, должна обновить эту запись.
Вторая особенность такого запроса позволяет резервному файловому серверу заменить основной, послав самообращённый запрос со своим МАС-адресом, но с IP-адресом вышедшего из строя сервера. Этот запрос вызовет перенаправление кадров, адресованных основному серверу, на резервный. Клиенты сервера при этом могут и не знать о выходе основного сервера из строя. При этом возможны и неудачи, если программные реализации в ЭВМ не в полной мере следуют регламентациям протокола ARP.




