В какое поле ethernet-фрейма записываются параметры arp-сообщения

Обновлено: 02.07.2024

arpsend — отправить кадр Ethernet, содержащий пакет запроса или ответа IP ARP с указанными пользователем полями

Краткий обзор

arpsend [ -c количество ] [ -d уровень отладки ] [ -h ] [ -p время_паузы ] [ -q ] [ - v ] [ -w ]
[
-i имя_интерфейса ]
[
-E адрес_эфирного_источника ] [ -e < i>ether_dest_address ]
[
-Q vlan_id ]
[
-o arp_opcode ]
/>[
-S аппаратный_адрес_отправителя ] [ -s адрес_протокола_отправителя ]
[
-T целевой_аппаратный_адрес ] -t адрес_целевого_протокола

Описание

arpsend отправляет кадр Ethernet, содержащий пакет запроса или ответа IP ARP, содержащий указанные вами поля. Это диагностический инструмент, предназначенный для использования сетевыми администраторами.

Программа не прослушивает ответы ARP; если вы хотите увидеть какие-либо ответы ARP, вызванные запросом, вам следует использовать для этого другую программу, например tcpdump(1).

Доступность

В настоящее время продукт собирается и работает на Solaris 9 и 10 в SPARC с gcc.

Программа использует библиотеку libnet(3).

Параметры

-c count Указывает количество пакетов для отправки. Если не указано, по умолчанию используется значение 1. -d debug_level Задает переменную debug_level, которая управляет количеством генерируемых отладочных сообщений. Если не указано, по умолчанию используется значение 0 (без отладки). В настоящее время никакие отладочные сообщения не определены. -E ether_source_address Указывает исходный адрес кадра Ethernet. Если не указано, по умолчанию используется Ethernet-адрес исходящего интерфейса. (Некоторые среды могут не позволить вам переопределить это значение.) -e ether_dest_address Указывает адрес назначения кадра Ethernet. Если не указано, по умолчанию используется широковещательный адрес Ethernet. -h Показать краткую сводку об использовании, затем выйти. -i interface_name Указывает имя интерфейса Ethernet, через который должен быть отправлен пакет. Если не указано, по умолчанию используется первый активный интерфейс (кроме замыкания на себя). -o arp_opcode Указывает код операции ARP; допустимые значения: 1 (запрос ARP) и 2 (ответ ARP). Если не указано, по умолчанию используется значение 1 (запрос ARP). -p pause_time Указывает количество секунд для паузы между отправкой каждого пакета, когда количество пакетов больше 1. Если не указано, по умолчанию используется 1 секунда. -q Указывает «тихую» операцию; отображаются только ошибки и предупреждения. -Q vlan_id Пометить кадр идентификатором VLAN 802.1Q. -S аппаратный_адрес отправителя Указывает аппаратный адрес отправителя ARP. Если не указано, по умолчанию используется Ethernet-адрес исходящего интерфейса. -s адрес_протокола_отправителя Указывает адрес протокола отправителя ARP. Если не указано, по умолчанию используется основной IP-адрес исходящего интерфейса. -T целевой_аппаратный_адрес Указывает целевой аппаратный_адрес ARP. Если не указано, по умолчанию используется значение 0:0:0:0:0:0. -t адрес_целевого_протокола Указывает адрес целевого протокола ARP. Эта опция должна быть указана; значение по умолчанию не указано. -v Показать номер версии программы, затем выйти. -w Указывает, что arpsend не должен предупреждать вас о значениях, которые могут вызвать проблемы с сетью.

Операция

arpsend — это диагностический инструмент, предназначенный для использования сетевым администратором. Можно указать значения, которые будут мешать нормальной работе устройств, подключенных к сети, или сети в целом.

arpsend проверяет наиболее распространенные значения, которые могут вызвать проблемы с сетью, но ни в коем случае не может перехватывать все такие комбинации значений. Если он считает, что указанные вами значения могут вызвать проблему, он отобразит предупреждение и спросит, хотите ли вы по-прежнему отправить пакет. Вы можете пропустить эти проверки (и соответствующий запрос) с помощью опции -w; ваш пакет будет отправлен без комментариев.

Примеры

Чтобы передать запрос ARP на первый подключенный интерфейс, запрашивая, чтобы 192.168.1.1 ответил ответом ARP:

В приведенном выше примере, если бы мой собственный IP-адрес (на этом интерфейсе) был 192.168.1.1, пакет был бы запросом Gratuitous ARP. Хотя значение целевого аппаратного адреса не имеет значения в запросе Gratuitous ARP, типичные реализации ARP устанавливают его равным ff:ff:ff:ff:ff:ff при отправке запроса Gratuitous ARP; вы можете продублировать это поведение с помощью:

Чтобы выполнить одноадресную рассылку запроса ARP через интерфейс le1 на 0:0:1:1:2:3, запрашивая, чтобы 192.168.1.1 ответил ответом ARP:

Чтобы отправить ответ ARP, который кажется исходящим от устройства с IP-адресом 192.168.1.3 и адресом Ethernet 0:0:1:1:1:1, одноадресной рассылкой пакета на 0:0:1:9:9: 9 (предположим, что IP-адрес целевого устройства — 192.168.1.4):

Автор

Эту программу написал Ирвин Тиллман из OIT Network Switching and Routing Принстонского университета. Он был написан для работы в Solaris 9 и 10 с использованием общедоступной библиотеки libnet(3).

Базовый формат кадра, необходимый для всех реализаций MAC, определен в стандарте IEEE 802.3. Хотя для расширения основных возможностей протокола используется несколько дополнительных форматов.
Кадр Ethernet начинается с преамбулы и SFD, оба работают на физическом уровне. Заголовок Ethernet содержит MAC-адреса источника и получателя, после чего идет полезная нагрузка кадра. Последнее поле — CRC, которое используется для обнаружения ошибки. Теперь давайте изучим каждое поле базового формата фрейма.

Формат кадра Ethernet (IEEE 802.3) —

  • ПРЕАМБУЛА. Фрейм Ethernet начинается с 7-байтовой преамбулы. Это шаблон альтернативных нулей и единиц, который указывает начало кадра и позволяет отправителю и получателю установить битовую синхронизацию. Первоначально PRE (преамбула) была введена, чтобы допустить потерю нескольких битов из-за задержки сигнала. Но современный высокоскоростной Ethernet не нуждается в преамбуле для защиты битов кадра.
    PRE (преамбула) указывает получателю, что идет кадр, и позволяет получателю зафиксировать поток данных до начала фактического кадра.
  • Разделитель начала кадра (SFD) — это 1-байтовое поле, которое всегда имеет значение 10101011. SFD указывает, что предстоящие биты начинаются с кадра, который является адресом назначения. Иногда SFD считается частью PRE, поэтому преамбула во многих местах описывается как 8 байт. SFD предупреждает станцию ​​или станции, что это последний шанс для синхронизации.
  • Адрес назначения. Это 6-байтовое поле, содержащее MAC-адрес машины, для которой предназначены данные.
  • Исходный адрес — это 6-байтовое поле, содержащее MAC-адрес исходного компьютера. Поскольку исходный адрес всегда является индивидуальным адресом (одноадресным), младший значащий бит первого байта всегда равен 0.
  • Длина. Длина представляет собой 2-байтовое поле, которое указывает длину всего кадра Ethernet. Это 16-битное поле может содержать значение длины от 0 до 65 534, но длина не может превышать 1500 из-за некоторых собственных ограничений Ethernet.
  • Данные. Это место, куда вставляются фактические данные, также называемые полезной нагрузкой. Здесь будут вставлены как IP-заголовок, так и данные, если Интернет-протокол используется через Ethernet. Максимальный объем данных может достигать 1500 байт. Если длина данных меньше минимальной длины, т. е. 46 байт, то для соответствия минимально возможной длине добавляются нули.
  • Циклическая проверка избыточным кодом (CRC) – CRC представляет собой 4-байтовое поле. Это поле содержит 32-битный хэш-код данных, который генерируется по полям адреса назначения, адреса источника, длины и данных. Если контрольная сумма, вычисленная пунктом назначения, не совпадает с отправленным значением контрольной суммы, полученные данные повреждены.

Примечание. Размер кадра Ethernet IEEE 802.3 варьируется от 64 до 1518 байт, включая длину данных (от 46 до 1500 байт).

Краткий обзор расширенного кадра Ethernet (кадра Ethernet II):


Основной формат кадра стандарта IEEE 802.3 подробно описан выше. Теперь давайте посмотрим на расширенный заголовок кадра Ethernet, с помощью которого мы можем получить полезную нагрузку даже больше 1500 байт.

DA [MAC-адрес назначения]: 6 байт
SA [Исходный MAC-адрес]: 6 байт
Тип [0x8870 (Ethertype)]: 2 байта
DSAP [802.2 Destination Service Access Point]: < em>1 байт
SSAP [802.2 Source Service Access Point] : 1 байт
Ctrl [поле управления 802.2] : 1 байт
Данные [данные протокола]: > 46 байт
FCS [контрольная сумма кадра]: 4 байта

Хотя поле длины отсутствует в кадре Ethernet II, длина кадра известна благодаря тому, что кадр принимается сетевым интерфейсом.

Угловые вопросы GATE CS

Отработка следующих вопросов поможет вам проверить свои знания. Все вопросы были заданы в GATE в предыдущие годы или в пробных тестах GATE. Настоятельно рекомендуется попрактиковаться в них.

Ссылки —

Пожалуйста, напишите комментарии, если обнаружите что-то неправильное или хотите поделиться дополнительной информацией по теме, обсуждавшейся выше.

Протокол разрешения адресов (ARP) — один из основных протоколов семейства протоколов TCP/IP. Целью протокола разрешения адресов (ARP) является преобразование адреса IPv4 (32-битного логического адреса) в соответствующий физический адрес (48-битный MAC-адрес). Сетевые приложения на прикладном уровне используют адрес IPv4 для связи с другим устройством. Но на уровне канала передачи данных используется MAC-адрес (48-битный физический адрес), и этот адрес постоянно записывается в сетевую карту.Чтобы четко понять эту концепцию, вам нужно посетить формат кадра Ethernet, который представляет собой пакет данных, сгенерированный на уровне канала передачи данных. Вы можете просмотреть аппаратный адрес вашей сетевой карты, введя команду "ipconfig /all" в командной строке (без двойных кавычек в операционных системах Windows).

Другими словами, существует два типа адресов, используемых для связи IPv4. Адрес, используемый на уровне 3 (сетевой уровень), представляет собой адрес IPv4 (32-битные логические адреса), а адрес, используемый на уровне 2 (уровень канала передачи данных), представляет собой MAC-адрес (48-битный физический адрес). Когда компьютер инкапсулирует дейтаграмму IPv4, ему требуется адрес IPv4 источника, адрес IPv4 назначения, MAC-адрес источника и MAC-адрес назначения. Исходный IPv4-адрес, целевой IPv4-адрес, исходный MAC-адрес уже доступны, поскольку исходный IPv4-адрес и целевой IPv4-адрес доступны локально, а целевой IPv4-адрес находится там, где мы пытаемся установить связь. На уровне 2 (уровень канала передачи данных) компьютера-отправителя, если компьютер хочет инкапсулировать дейтаграмму IPv4 в кадр Ethernet, ему требуется MAC-адрес назначения. Протокол разрешения адресов (ARP) используется для разрешения MAC-адреса уровня 2 получателя (MAC-адреса назначения).

Целью протокола разрешения адресов (ARP) является определение MAC-адреса устройства в вашей локальной сети (LAN) для соответствующего IPv4-адреса, с которым сетевое приложение пытается установить связь.

Формат сообщения протокола разрешения адресов (ARP)

Протокол разрешения адресов ARP Формат сообщения

Формат сообщения протокола разрешения адресов (ARP)

Ниже приведены поля в формате сообщения протокола разрешения адресов (ARP).

Тип оборудования: поле «Тип оборудования» в сообщении протокола разрешения адресов (ARP) указывает тип оборудования, используемого для локальной сети, передающей сообщение протокола разрешения адресов (ARP). Ethernet — это общий тип оборудования, и значение для Ethernet равно 1. Размер этого поля — 2 байта.

Тип протокола: каждому протоколу присваивается номер, используемый в этом поле. IPv4 — 2048 (0x0800 в шестнадцатеричном формате).

Длина аппаратного адреса: Длина аппаратного адреса в сообщении протокола разрешения адресов (ARP) представляет собой длину аппаратного (MAC) адреса в байтах. MAC-адреса Ethernet имеют длину 6 байт.

Длина адреса протокола: длина логического адреса в байтах (адрес IPv4). Адреса IPv4 имеют длину 4 байта.

Код операции . Поле кода операции в сообщении протокола разрешения адресов (ARP) определяет характер сообщения ARP. 1 для запроса ARP и 2 для ответа ARP.

Аппаратный адрес отправителя: адрес уровня 2 (MAC-адрес) устройства, отправляющего сообщение.

Адрес протокола отправителя: адрес протокола (адрес IPv4) устройства, отправляющего сообщение

Адрес целевого оборудования: Уровень 2 (MAC-адрес) предполагаемого получателя. Это поле игнорируется в запросах.

Адрес целевого протокола: адрес протокола (IPv4-адрес) предполагаемого получателя.

Работа протокола разрешения адресов (ARP)

Шаг 1. Когда исходное устройство хочет установить связь с другим устройством, исходное устройство проверяет свой кэш протокола разрешения адресов (ARP), чтобы обнаружить, что оно уже имеет разрешенный MAC-адрес целевого устройства. Если он есть, он будет использовать этот MAC-адрес для связи. Чтобы просмотреть локальный кэш протокола разрешения адресов (ARP), откройте командную строку и введите команду «arp -a» (без двойных кавычек в операционных системах Windows).

Шаг 2. Если разрешение ARP отсутствует в локальном кэше, исходный компьютер сгенерирует сообщение запроса протокола разрешения адресов (ARP), поместит свой собственный адрес канального уровня в качестве аппаратного адреса отправителя и свой собственный IPv4-адрес в качестве Адрес протокола отправителя. Он заполняет адрес IPv4 назначения в качестве адреса целевого протокола. Адрес целевого оборудования останется пустым, так как машина пытается найти адрес целевого оборудования.

Шаг 3. Источник передает сообщение запроса протокола разрешения адресов (ARP) в локальную сеть.

Шаг 4. Сообщение принимается каждым устройством в локальной сети, поскольку оно является широковещательным. Каждое устройство сравнивает адрес целевого протокола (IPv4-адрес машины, с которой источник пытается установить связь) со своим собственным адресом протокола (IPv4-адрес). Те, кто не соответствует, отбрасывают пакет без каких-либо действий.

Шаг 5. Когда целевое устройство проверяет адрес целевого протокола, оно находит совпадение и генерирует ответное сообщение протокола разрешения адресов (ARP).Он берет поля аппаратного адреса отправителя и адреса протокола отправителя из сообщения запроса протокола разрешения адресов (ARP) и использует эти значения для целевого аппаратного адреса и адреса целевого протокола ответного сообщения.

Шаг 6. Устройство-получатель обновит свой кэш протокола разрешения адресов (ARP), так как вскоре ему нужно будет связаться с машиной-отправителем.

Шаг 7. Целевое устройство отправляет ответное сообщение протокола разрешения адресов (ARP), и это будет НЕ широковещательная рассылка, а одноадресная рассылка.

Шаг 8. Исходный компьютер обработает ответ протокола разрешения адресов (ARP) от адресата и сохранит аппаратный адрес отправителя в качестве адреса уровня 2 адресата.

Шаг 9. Исходный компьютер обновит свой кэш протокола разрешения адресов (ARP), указав аппаратный адрес отправителя и адрес протокола отправителя, полученные из ответного сообщения протокола разрешения адресов (ARP).

Протокол разрешения адресов на примере

Давайте возьмем пример приведенной ниже топологии.

arp 01

Я сижу по адресу 192.168.0.84. Я хочу пропинговать 192.168.0.122, чтобы проверить подключение к сети. При выполнении команды ping мы никогда не указываем MAC-адрес целевого устройства (192.168.0.122).

arp 02

Мы знаем, что команда ping работает с использованием ICMP. ICMP инкапсулируется внутри дейтаграммы IP, а дейтаграмма IP инкапсулируется в кадре Ethernet. Нам нужен исходный IP-адрес (мой IP-адрес, 192.168.0.84), целевой IP-адрес (192.168.0.122), исходный MAC-адрес (мой MAC-адрес 08:00:27:58:58:98) и целевой MAC-адрес, чтобы сделать Кадр Ethernet для сообщения ICMP. IP-адрес источника, IP-адрес назначения, MAC-адрес источника известны в этом экземпляре, но MAC-адрес назначения в этом экземпляре неизвестен.

Чтобы собрать кадр Ethernet, MAC-адрес моего устройства должен соответствовать IP-адресу 192.168.0.122.

Нам нужно разрешить MAC-адрес назначения, соответствующий IP-адресу 192.168.0.122.

Шаг 1. Перед разрешением MAC-адреса назначения, соответствующего IP-адресу 192.168.0.122, с использованием протокола разрешения адресов (ARP), исходное устройство проверяет свой кэш протокола разрешения адресов (ARP), чтобы обнаружить, что оно уже имеет разрешенный MAC-адрес целевое устройство. Мы можем просмотреть кеш ARP с помощью команды arp -a

Кэш ARP на моем компьютере пуст. В моем кэше ARP нет записей.

arp 03

Шаг 2. Теперь моему компьютеру необходимо разрешить MAC-адрес назначения с помощью ARP. Мой компьютер подготовит сообщение запроса ARP и отправит его с MAC-адресом назначения в виде FF:FF:FF:FF:FF:FF (широковещательный MAC-адрес) на коммутатор LAN.

arp 04

Шаг 3. Поскольку MAC-адрес назначения — FF:FF:FF:FF:FF:FF (широковещательный MAC-адрес), коммутатор LAN рассылает его на все подключенные порты, и каждое устройство в локальной сети получит копию из него.

На следующем снимке экрана показано окно захвата Wireshark сообщения запроса ARP. Вы должны сравнить приведенный ниже снимок экрана с изображением формата сообщения ARP в начале этого урока. На приведенном ниже снимке экрана видно, что MAC-адрес назначения — FF:FF:FF:FF:FF:FF (широковещательный MAC-адрес), код операции ARP — 1 (для запроса ARP), а целевой MAC-адрес — 00:00. :00:00:00:00, что в данном случае неизвестно.

На приведенном ниже снимке экрана также видно, что IP-адрес источника — 192.168.0.84, IP-адрес назначения — 192.168.0.122, MAC-адрес источника — 08:00:27:58:58:98, а MAC-адрес назначения — 00. :00:00:00:00:00.

ARP Request Wireshark Capture

Шаг 4. Сообщение запроса ARP принимается каждым устройством в локальной сети, поскольку оно является широковещательным. Каждое устройство сравнивает адрес целевого протокола (192.168.0.122) со своим собственным IP-адресом. Те, кто не соответствует, отбрасывают пакет без каких-либо действий.

Шаг 5. Когда компьютер с IP-адресом 192.168.0.122 получает запрос ARP, он должен подготовить ответ ARP и отправить обратно компьютеру, отправившему запрос ARP. Ответ ARP будет одноадресным для экономии сетевых ресурсов.

arp 05

Обратите внимание, что код операции ARP-ответа равен 2, что используется для идентификации ответа ARP.

Поле «MAC-адрес отправителя» (отмеченное ниже) в ответе ARP — это ответ на запрос ARP.

ARP Ответный захват wireshark

Теперь оба компьютера могут обновить свой кэш ARP, чтобы сопоставление MAC-адреса и IP-адреса можно было использовать для связи в будущем. Однако через небольшой промежуток времени кэш ARP очищается, чтобы избежать некорректных сопоставлений (IP-адрес любого устройства может измениться в любое время)

Кэш ARP, заполненный сопоставлением MAC-адреса с IP-адресом, показан ниже.

ARP Cache

Вы узнали о протоколе разрешения адресов (ARP), формате сообщений протокола разрешения адресов (ARP) и о том, как протокол разрешения адресов (ARP) работает в локальной сети. Нажмите "Далее", чтобы продолжить.

<р>3. Введите шестнадцатеричное значение для двухбайтового поля типа кадра. Какому протоколу верхнего уровня это соответствует?
0x0800, соответствует IPv4

<р>4. Через сколько байтов с самого начала кадра Ethernet появляется буква ASCII «G» в
«GET» в кадре Ethernet?
55 байт

p5

<р>5. Каково значение адреса источника Ethernet? Это адрес вашего компьютера или gaia.cs.umass.edu (Подсказка: ответ нет). Какое устройство имеет этот адрес Ethernet?

Это адрес моего роутера

p6

<р>6. Каков адрес назначения в кадре Ethernet? Это Ethernet-адрес вашего компьютера?

Это адрес моего компьютера

<р>7. Введите шестнадцатеричное значение для двухбайтового поля типа кадра. Какому протоколу верхнего уровня это соответствует?
0x0800, соответствует IPv4

<р>2. Протокол разрешения адресов

<р>9. Запишите содержимое кэша ARP вашего компьютера. Что означает значение каждого столбца?

Три столбца представляют собой IP-адрес на сетевом уровне, MAC-адрес для физической связи с оборудованием, расположенным на этом IP-адресе, а также меняется ли он (динамический) или статический.

10. Каковы шестнадцатеричные значения адресов источника и получателя в кадре Ethernet, содержащем сообщение запроса ARP?

11. Введите шестнадцатеричное значение для двухбайтового поля типа кадра Ethernet. Какому протоколу верхнего уровня это соответствует?

0x0806, битовые флаги представляют многоадресную (широковещательную) рассылку, которая отправляется в подсеть, а не в Интернет

b) Каково значение поля opcode в части полезной нагрузки ARP кадра Ethernet, в котором выполняется запрос ARP?
001

c) Содержит ли сообщение ARP IP-адрес отправителя?
Да

d) Где в запросе ARP появляется «вопрос» — Ethernet-адрес машины, соответствующий IP-адрес которой запрашивается?
В целевом IP-адресе

<р>13. Теперь найдите ответ ARP, отправленный в ответ на запрос ARP.
a) Через сколько байтов от самого начала кадра Ethernet начинается поле opcode в ARP?
21 байт

b) Каково значение поля opcode в части полезной нагрузки ARP кадра Ethernet, в котором создается ответ ARP?
002

c) Где в сообщении ARP появляется «ответ» на более ранний запрос ARP — IP-адрес машины, имеющей Ethernet-адрес, соответствующий IP-адрес которого запрашивается?
В MAC-адресе отправителя

<р>14. Каковы шестнадцатеричные значения адресов источника и получателя в кадре Ethernet, содержащем ответное сообщение ARP?
Назначение: ff:ff:ff:ff:ff:ff
Источник: 00:22:75:8e:5c:7f

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

Читайте также: