Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ к ЛР (СиСПИ).doc
Скачиваний:
15
Добавлен:
07.05.2019
Размер:
1.68 Mб
Скачать

Адрес назначения и адрес источника – это адреса подуровня управления доступом к среде (MAC, Media Access Control) канального уровня структуры стандартов IEEE 802.x, или MAC-адреса. Для простоты эти адреса можно считать адресами канального уровня, т.к., например, в наиболее часто используемом формате кадра Ethernet II (DIX) поле подуровня управления логическим каналом (LLC, Logical Link Control) отсутствует. MAC-адреса называются также локальными, аппаратными или физическими адресами. В отличие от MAC-адресов, IP-адреса я

Уникальный идентификатор организации (OUI)

Назначаются производителем

24 Разряда

вляются логическими и называются также сетевыми или протокольными адресами. Фактически, MAC-адрес – это адрес сетевой платы хоста, записанный ее производителем в П ЗУ. Он состоит из 48 разрядов. Структура MAC-адреса показана на рис. 2.

6 Шестнадцате-ричных цифр 6 Шестнадцате-ричных цифр 00 60 2f 50 1a 25 Cisco Конкретное устройство

Рис. 2. Структура MAC-адреса

К

24 Разряда

ак видно из рис. 2, 48-разрядный MAC-адрес состоит из двух частей – 24-разрядного уникального идентификатора организации (OUI, Organizationally Unique Identifier), назначаемого Комитетом IEEE каждому производителю оборудования, и 24-разрядов, назначаемых самим производителем каждой изготовленной им плате. Например, для компании Cisco Комитет OUI назначил OUI 00 60 2F (в шестнадцатеричной форме). Таким образом, в старших 24 разрядах MAC-адреса всех сетевых плат, произведенных компанией Cisco, будет двоичная комбинация 0000 0000 0110 0000 0010 1111.

В поле тип протокола указывается идентификатор протокола вышележащего уровня, вложившего свой пакет в поле данных кадра. Как было упомянуто выше, кадр – это протокольный блок данных канального уровня. Вышележащим по отношению к канальному является сетевой уровень. Примеры протоколов сетевого уровня – IP, IPX. Например, если в поле данных кадра вложен пакет IP, то значение поля тип протокола в шестнадцатеричной форме – 0800, что идентифицирует протокол IP.

В поле данные вкладывается протокольный блок данных вышележащего уровня, например, пакет IP. Для обеспечения надежного распознавания коллизий длина поля данных не должна быть меньше 46 байт. Если в поле данных вкладывается пакет длиной менее 46 байт, поле данных дополняется до 46 байт нулями или единицами.

Контрольная последовательность кадра (FCS, Frame Check Sequence) – это 32 бита циклического избыточного кода для обнаружения ошибок.

Использование протокола ARP для определения MAC-адреса по IP-адресу

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

Протокол ARP работает на основе кадров Ethernet, т.е. пакет протокола ARP вкладывается в поле данных кадра Ethernet (при этом значение поля тип протокола кадра Ethernet в шестнадцатеричной форме – 0806). Перед описанием работы протокола ARP на конкретных примерах передачи данных в сети Ethernet рассмотрим формат ARP-сообщения (см. рис. 3).

(6 байт)

(6 байт)

(2 байта)

(2 байта)

(2 байта)

(1 байт)

(1 байт)

(2 байта)

(6 байт)

(4 байта)

(6 байт)

(4 байта)

Адрес назначения (Destination)

Адрес источника (Source)

Тип протокола (Protocol Type)

Тип аппаратного адреса (Hardware)

Тип протокольного адреса (Protocol)

Длина аппаратного адреса (Hardware Addr Length)

Длина протокольного адреса (Protocol Addr Length)

Код операции (Operation)

Аппаратный адрес отправителя (Sender Hardware Addr)

Сетевой адрес отправителя (Sender Internet Addr)

Аппаратный адрес получателя (Target Hardware Addr)

Сетевой адрес получателя (Target Internet Addr)

З аголовок кадра Ethernet

Поле данных кадра Ethernet (ARP-пакет)

Рис. 3. Формат ARP-сообщения (поле концевика FCS кадра Ethernet не показано)

Описание полей

В скобках указаны названия полей на английском языке, которые можно увидеть в окне захвата пакетов анализатора протоколов EtherPeek.

Как было указано в разделе 4, адрес назначения и адрес источника – это MAC-адреса получателя и отправителя кадра. В ARP-сообщении значение поля тип протокола в шестнадцатеричной форме – 0806. Это значение идентифицирует протокол ARP, который вкладывает свой пакет в поле данных кадра Ethernet.

Первые четыре поля ARP-пакета, формат которого определен в документе RFC 826, служат для определения двух адресных структур, между которыми устанавливается соответствие, и длин используемых в них адресов. Протокол ARP может применяться для разных пар соотносимых им адресов сетевого и канального уровней. Однако основное применение протокола ARP – установление соответствия между IP-адресом назначения и MAC-адресом назначения.

Для Ethernet в поле тип аппаратного адреса указывается 1, что означает использование адресов Ethernet, т.е. MAC-адресов, а поле длина аппаратного адреса содержит значение 6, т.к. длина MAC-адреса – 6 байт. При использовании IP-адресов в поле тип протокольного адреса указывается шестнадцатеричное значение 0800, т.е. то же значение, что и в поле тип протокола заголовка кадра Ethernet, когда в поле данных кадра Ethernet вложен пакет IP. При этом поле длина протокольного адреса содержит значение 4, т.к. длина IP-адреса – 4 байта.

Поле код операции определяет тип ARP-пакета – запрос на определение MAC-адреса по известному IP-адресу или ответ с результатом запроса. Для ARP-запроса в поле код операции указывается 1, а для ARP-ответа – 2.

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

В поле сетевой адрес отправителя указывается IP-адрес отправителя данного запроса или ответа.

Поле аппаратный адрес получателя в ARP-запросах содержит одни нули, что означает, что эта информация неизвестна, а в ARP-ответах – MAC-адрес хоста, пославшего ARP-запрос.

В поле сетевой адрес получателя указывается IP-адрес получателя данного запроса или ответа.

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

5.1 Расположение хоста-отправителя и хоста-получателя в одной сети

Рассмотрим пример. Пусть хост A с именем UNDER-XP и хост B с именем OVER-XP находятся в одной сети класса C 192.168.0.0, не разделенной на подсети, и хост A хочет передать некоторые данные хосту B. На рис. 4 приведена соответствующая иллюстрация с указанием MAC-адресов и IP-адресов хостов A и B.

Хост A

UNDER-XP (отправитель)

Хост B

OVER-XP (получатель)

MAC-адрес: 00-50-BF-20-01-21

MAC-адрес: 00-E0-06-09-55-66

IP-адрес: 192.168.0.2

IP-адрес: 192.168.0.1

ARP-запрос

ARP-ответ

Рис. 4. Расположение хоста-отправителя и хоста-получателя в одной сети

Чтобы передать какие-либо данные, хост A должен обратиться к хосту B по его IP-адресу 192.168.0.1 (например, на хосте A можно ввести команду ping 192.168.0.1, в результате чего на хост B будет послан эхо-запрос). Однако по физическому каналу данные передаются в кадре Ethernet, в заголовке которого должен быть указан не IP-адрес, а MAC-адрес хоста B (IP-адрес хоста B указывается в IP-пакете, находящемся в поле данных кадра Ethernet, и считывается программным обеспечением хоста B только после приема кадра Ethernet сетевой платой и отбрасывания заголовка Ethernet). Соответствия между IP-адресами и MAC-адресами хостов одной сети хранятся в таблице протокола ARP, расположенной в специальной области памяти каждого хоста сети, причем эти соответствия (записи) могут быть статическими и динамическими. Статические записи вводятся администратором и хранятся до перезагрузки компьютера, а динамические определяются с помощью протокола ARP и хранятся в течение некоторого времени. В операционных системах Windows по умолчанию это время равно двум минутам для невостребованных записей и десяти минутам для записей, к которым было обращение. Для отображения таблицы ARP хоста служит команда arp –a.

Н а рис. 5 приведен пример выходных данных команды arp –a, введенной в командной строке хоста A. Таблица ARP хоста A в данном случае содержит одну динамическую запись, отражающую соответствие между IP-адресом и MAC-адресом хоста B.

Рис. 5. Таблица ARP хоста A для сети, представленной на рис. 4

При обращении к хосту B хост A действует следующим образом.

Сначала хост A определяет, в какой сети – локальной или удаленной – находится хост B. Для этого он выполняет операцию логического И для своего IP-адреса 192.168.0.2 и стандартной маски подсети класса C 255.255.255.0 (IP-адрес и маска задаются в настройках TCP/IP хоста). Затем он выполняет операцию логического И для IP-адреса хоста B 192.168.0.1 и той же маски 255.255.255.0. Если результаты выполнения этих операций совпадают (в данном случае – да, результаты обеих операций И – 192.168.0.0), значит, хост B находится в той же сети, что и хост A (т.е. в локальной сети), а если нет, то хост B расположен в другой (удаленной) сети.

Затем хост A просматривает собственную таблицу ARP на предмет наличия в ней записи, устанавливающей соответствие между IP-адресом и MAC-адресом хоста B. Если такая запись имеется, хост A вводит MAC-адрес хоста B в поле адрес назначения заголовка кадра Ethernet (см. рис. 1) и передает кадр хосту B. Если нужной записи нет, то для выяснения MAC-адреса хоста B хост A использует протокол ARP. В этом случае последовательность событий следующая.

Хост A посылает в локальную сеть широковещательный кадр Ethernet (см. рис. 6, где первые четыре поля ARP-пакета для простоты опущены, т.к. при определении в сети Ethernet MAC-адресов по IP-адресам содержимое этих полей всегда одно и то же) со всеми единицами в поле адрес назначения и идентификатором 080616 (протокол ARP) в поле тип протокола заголовка кадра, указывая в поле код операции ARP-пакета код ARP-запроса (1), а в поле сетевой адрес получателя – IP-адрес хоста B. При этом поле аппаратный адрес получателя содержит одни нули, что означает, что MAC-адрес хоста B неизвестен, и хост A хочет этот адрес выяснить. Широковещательный кадр с ARP-запросом принимается всеми хостами сети (на рис. 4 показаны только два хоста), но ответ на него должен дать только хост, IP-адрес которого совпадает с IP-адресом, указанным в поле сетевой адрес получателя, т.е. только хост B.

Хост B, обработав принятый кадр, понимает, что некоторый хост с MAC-адресом 00-50-BF-20-01-21 и IP-адресом 192.168.0.2 запрашивает у него MAC-адрес. Хост B записывает в свою таблицу ARP соответствие между IP-адресом и MAC-адресом хоста A и посылает в локальную сеть кадр Ethernet с ARP-ответом (см. рис. 7), указывая в поле адрес назначения заголовка кадра MAC-адрес хоста A. Таким образом, кадр с ARP-ответом посылается не широковещательно, а направленно – конкретному хосту, пославшему ARP-запрос. Как видно из рис. 7, поле код операции ARP-пакета содержит значение 2, идентифицирующее ARP-ответ, а в поле аппаратный адрес отправителя хост B указывает свой MAC-адрес, который запросил хост A.

Получив ARP-ответ, хост A записывает в свою таблицу ARP соответствие между IP-адресом и MAC-адресом хоста B и направляет хосту B кадр с данными.

(6 байт)

(6 байт)

(2 байта)

(2 байта)

(6 байт)

(4 байта)

(6 байт)

(4 байта)

Адрес назначения (Destination)

FF-FF-FF-FF-FF-FF

Адрес источника (Source)

00-50-BF-20-01-21

Тип протокола (Protocol Type)

08-06

Код операции (Operation)

00-01

Аппаратный адрес отправителя (Sender Hardware Addr)

00-50-BF-20-01-21

Сетевой адрес отправителя (Sender Internet Addr)

192.168.0.2

Аппаратный адрес получателя (Target Hardware Addr)

00-00-00-00-00-00

Сетевой адрес получателя (Target Internet Addr)

192.168.0.1

З аголовок кадра Ethernet

Поле данных кадра Ethernet (ARP-запрос)

Рис. 6. Широковещательная передача ARP-запроса хостом A

(6 байт)

(6 байт)

(2 байта)

(2 байта)

(6 байт)

(4 байта)

(6 байт)

(4 байта)

Адрес назначения (Destination)

00-50-BF-20-01-21

Адрес источника (Source)

00-E0-06-09-55-66

Тип протокола (Protocol Type)

08-06

Код операции (Operation)

00-02

Аппаратный адрес отправителя (Sender Hardware Addr)

00-E0-06-09-55-66

Сетевой адрес отправителя (Sender Internet Addr)

192.168.0.1

Аппаратный адрес получателя (Target Hardware Addr)

00-50-BF-20-01-21

Сетевой адрес получателя (Target Internet Addr)

192.168.0.2

З аголовок кадра Ethernet

Поле данных кадра Ethernet (ARP-ответ)

Рис. 7. Направленная передача ARP-ответа хостом B хосту A

На рис. 8 показано окно захвата Capture 1 анализатора EtherPeek на хосте A после ввода на хосте A команды ping –n 1 192.168.0.1 при условии, что таблица ARP хоста A пуста (по умолчанию команда ping посылает четыре эхо-запроса; ввод параметра –n 1 приводит к передаче только одного эхо-запроса, чтобы уменьшить число захваченных анализатором пакетов для упрощения восприятия полученных результатов).

Рис. 8. Окно захвата анализатора EtherPeek на хосте A после ввода на хосте A команды ping –n 1 192.168.0.1

К ак видно из рис. 8, хост с MAC-адресом 00-50-BF-20-01-21 (хост A с именем UNDER-XP) сначала посылает широковещательный ARP-запрос, пытаясь выяснить MAC-адрес хоста B с именем OVER-XP (пакет 1). Затем хост OVER-XP сообщает, что его MAC-адрес – 00-E0-06-09-55-66 (пакет 2). Выяснив MAC-адрес хоста OVER-XP, хост UNDER-XP посылает на хост OVER-XP эхо-запрос (пакет 3) и принимает от этого хоста эхо-ответ (пакет 4).

Отметим, что кадры ARP-запроса и ARP-ответа имеют минимально допустимую для кадра Ethernet длину – 64 байта (столбец Size) (без учета преамбулы и начального ограничителя кадра), причем поле ARP-пакета (в соответствии с рис. 3) имеет длину 28 байт, а минимально допустимая длина поля данных, как было отмечено в разделе 4, – 46 байт. Поэтому поле данных кадра в ARP-запросе и ARP-ответе дополняется до 46 байт восемнадцатью байтами из одних нулей или единиц.

На рис. 9 представлено содержимое захваченного кадра ARP-запроса от хоста A, т.е. кадра, показанного в строке 1 таблицы на рис. 8. Это содержимое эквивалентно данным, приведенным на рис. 6. Выделена секция Extra bytes, служащая для дополнения поля данных кадра до 46 байт восемнадцатью дополнительными байтами. В нижней части данных анализатора выделены шестнадцатеричные значения этих 18 байт (все нули).

Рис. 9. Содержимое захваченного кадра широковещательного ARP-запроса от хоста A (UNDER-XP)

На рис. 10 представлено содержимое захваченного кадра ARP-ответа хоста B хосту A, т.е. кадра, показанного в строке 2 таблицы на рис. 8. Это содержимое эквивалентно данным, приведенным на рис. 7. Как видно из рис. 10, в ARP-ответе дополнительные байты состоят и з одних единиц.

Рис. 10. Содержимое захваченного кадра ARP-ответа хоста B (OVER-XP) хосту A (UNDER-XP)

При использовании анализатора EtherPeek в лабораторной работе понадобятся фильтры. Дело в том, что в локальной сети может работать много хостов, а для изучения протокола ARP удобно наблюдать за передачей данных только между конкретными хостами, выбранными для эксперимента. Если не использовать фильтров, то анализатор будет захватывать пакеты не только от хостов, выбранных для эксперимента, но и от других хостов. Кроме того, даже между выбранными хостами во время эксперимента могут передаваться служебные данные протоколов верхних уровней, которые также будут захватываться анализатором. В результате в информации, полученной в окне захвата анализатора, будет довольно трудно разобраться. Поэтому следует использовать фильтры.

В анализаторе EtherPeek имеется ряд фильтров, предназначенных для фильтрации пакетов различных протоколов. Предусмотрена также возможность создания фильтров пользователем, например, для фильтрации пакетов с учетом MAC-адресов и IP-адресов источника и получателя. В лабораторной работе понадобятся фильтры с фильтрацией по протоколам и адресам. В частности, в эксперименте для случая, когда хост-отправитель и хост-получатель находятся в одной сети, с хоста A на хост B будет посылаться эхо-запрос (ping), причем в момент отправки этого запроса таблица ARP хоста A должна быть пуста. В результате обмен данными между хостами A и B будет следующим (как было описано выше): сначала с хоста A в сеть будет послан широковещательный ARP-запрос, затем хост B направит хосту A ARP-ответ, после чего с хоста A на хост B будет послан эхо-запрос, и, наконец, с хоста B на хост A будет отправлен эхо-ответ. Чтобы в окне захвата анализатора увидеть только эти четыре пакета (и больше никакого “мусора”), нужно создать для них четыре фильтра.

Н а рис. 11 показано окно создания фильтра (Edit Filter) для захвата ARP-запросов от хоста A.

Рис. 11. Фильтр для захвата ARP-запросов от хоста A

В поле Filter введено название фильтра. В поле Comment – комментарий. Кроме того, в этом окне имеются секции фильтрации по адресам (Address filter), по протоколу (Protocol filter) и по портам (Port filter). В поле Address 1 введен MAC-адрес хоста A, а значение Ethernet Broadcast в поле Address 2 идентифицирует широковещательный MAC-адрес. В поле Type выбрана опция Physical, указывающая, что в полях Address 1 и Address 2 заданы физические адреса. Надпись Address 1 to 2 на кнопке с большой стрелкой вправо означает, что фильтрация пакетов будет осуществляться в направлении от адреса 1 к адресу 2, т.е. в данном случае будут захватываться кадры от хоста A с широковещательным MAC-адресом назначения. В секции Protocol filter указано, что будут фильтроваться только ARP-запросы (ARP Request). Секция Port filter не заполнена, поскольку в формате ARP-сообщения (см. рис. 3) отсутствуют номера портов, т.к. протокол ARP относится к протоколам нижних уровней семиуровневой модели OSI, а номера портов используются только для протоколов верхних уровней.

Н а рис. 12 показано окно создания фильтра для захвата ARP-ответов хоста B хосту A.

Рис. 12. Фильтр для захвата ARP-ответов хоста B хосту A

На рис. 13 и 14 показаны окна создания фильтров для захвата эхо-запросов от хоста A к любому хосту и эхо-ответов от любого хоста к хосту A; эти “универсальные” фильтры подойдут и для эксперимента, когда хост-получатель расположен в удаленной сети.

Р ис. 13. Фильтр для захвата эхо-запросов от хоста A к любому хосту

Рис. 14. Фильтр для захвата эхо-ответов от любого хоста к хосту A

Секции Port filter для фильтров эхо-запросов и эхо-ответов также не заполнены, поскольку в эхо-запросах и эхо-ответах порты не используются, т.к. протокол ICMP, как и протокол ARP, относится к протоколам нижних уровней модели OSI.

5.2 Расположение хоста-отправителя и хоста-получателя в разных сетях

Р

Хост C

(получатель)

IP-адрес: 195.151.99.68

ассмотрим другой пример. Пусть хост A с именем UNDER-XP и хост B с именем OVER-XP так же, как и в первом примере, находятся в одной сети класса C 192.168.0.0, не разделенной на подсети, но хост B подключен к Интернету и помимо своих обычных функций выполняет функции шлюза (маршрутизатора). Хост A хочет обратиться через Интернет к некоторому хосту C с IP-адресом 195.151.99.68, т.е. хост-получатель находится в другой сети. На рис. 15 приведена соответствующая иллюстрация.

Х ост A

UNDER-XP (отправитель)

MAC-адрес: 00-50-BF-20-01-21

MAC-адрес: 00-E0-06-09-55-66

Хост B

OVER-XP (шлюз)

IP-адрес: 192.168.0.2

IP-адрес: 192.168.0.1

ARP-запрос

ARP-ответ

Рис. 15. Расположение хоста-отправителя и хоста-получателя в разных сетях (ISP; Internet Service Provider, поставщик услуг Интернета)

При обращении хоста A к хосту C, например, при вводе на хосте A команды ping –n 1 195.151.99.68, хост A действует следующим образом.

Сначала хост A определяет, в какой сети – локальной или удаленной – находится хост C. Для этого он “накладывает” стандартную маску подсети класса C 255.255.255.0 на свой IP-адрес 192.168.0.2 и получает результат 192.168.0.0. Затем он “накладывает” ту же маску на IP-адрес хоста-получателя 195.151.99.68 и получает результат 195.151.99.0. Т.к. результаты этих двух операций различны, хост A делает вывод о том, что хост C находится в другой сети и передачу данных нужно выполнить через шлюз (хост B).

Затем хост A должен послать кадр Ethernet с эхо-запросом, указав в заголовке вложенного в этот кадр пакета ICMP IP-адрес хоста-получателя 195.151.99.68, а в заголовке кадра Ethernet – MAC-адрес шлюза, т.е. хоста B (а не MAC-адрес хоста-получателя), т.к. сначала кадр по сети Ethernet должен достигнуть шлюза. Следовательно, хост A должен знать MAC-адрес шлюза, но в настройках TCP/IP хоста указывается не MAC-адрес, а IP-адрес шлюза. Если хост A недавно обращался к шлюзу, то MAC-адрес шлюза может находиться в таблице ARP хоста A. Если же хост A после начальной загрузки еще не обращался к шлюзу или обращался к нему давно и соответствующая динамическая запись соответствия “IP-адрес – MAC-адрес” уже удалена, то таблица ARP хоста A не будет содержать MAC-адреса шлюза (если только он не введен туда администратором вручную). В этом случае хост A должен выяснить MAC-адрес шлюза с помощью протокола ARP.

Процесс выяснения хостом A MAC-адреса шлюза (хоста B) полностью совпадает с процессом выяснения хостом A MAC-адреса хоста B в примере, рассмотренном в пункте 5.1, где хост B был хостом-получателем.

После определения MAC-адреса шлюза хост A посылает эхо-запрос хосту C. Этот эхо-запрос поступает на хост B, который, выполняя функцию маршрутизатора, направляет эхо-запрос хосту C через Интернет.

На рис. 16 показано окно захвата Capture 2 анализатора EtherPeek на хосте A после ввода на х осте A команды ping –n 1 195.151.99.68 при условии, что таблица ARP хоста A пуста.

Рис. 16. Окно захвата анализатора EtherPeek после ввода на хосте A команды ping –n 1 195.151.99.68

Содержимое таблицы анализатора, представленной на рис. 16, отличается от содержимого таблицы анализатора, приведенной на рис. 8, тем, что в столбце Destination третьей строки и в столбце Source четвертой строки указан IP-адрес хоста-получателя (хоста C) удаленной сети. Первые две строки этих таблиц совпадают (за исключением содержимого столбца Absolute Time, где указано время передачи данных).

В ажно понимать, что при передаче данных от хоста-отправителя к хосту-получателю, находящемуся в удаленной сети, в заголовке IP-пакета указывается IP-адрес хоста-получателя, а в заголовке кадра Ethernet указывается MAC-адрес не хоста-получателя, а MAC-адрес шлюза, через который должны быть переданы данные. В этом можно убедиться, просмотрев на рис. 17 содержимое поля Destination (адрес назначения) заголовка кадра Ethernet (секция Ethernet Header) и поля Dest. IP Address (IP-адрес назначения) заголовка IP-пакета (секция IP Header – Internet Protocol Datagram) протокола ICMP.

Рис. 17. Заголовки Ethernet и IP захваченного эхо-запроса от хоста A (UNDER-XP) к хосту C

Аналогично, при поступлении на хост-отправитель (в данном случае хост UNDER-XP) ответных данных от хоста-получателя (хоста C) через шлюз (хост OVER-XP) в поле MAC-адреса источника заголовка кадра Ethernet указывается MAC-адрес не хоста C, а MAC-адрес шлюза (хоста OVER-XP), а в поле IP-адреса источника заголовка IP-пакета указывается IP-адрес не шлюза OVER-XP, а IP-адрес хоста C. В этом можно убедиться, просмотрев на рис. 18 содержимое поля Source (адрес источника) заголовка кадра Ethernet (секция Ethernet Header) и поля Source IP Address (IP-адрес источника) заголовка IP-пакета (секция IP Header – Internet Protocol D atagram) протокола ICMP.

Рис. 18. Заголовки Ethernet и IP захваченного эхо-ответа хоста C хосту A (UNDER-XP)

6. Использование протокола ARP для проверки наличия в сети дублированного IP-адреса

Протокол ARP выполняет еще одну важную функцию. При загрузке хоста и при изменении его IP-адреса протокол ARP позволяет определить, нет ли в локальной сети другого хоста, имеющего такой же IP-адрес, как у данного хоста. Для этого при загрузке хоста и после изменения его IP-адреса хост посылает ARP-запрос, указывая в поле сетевой адрес получателя ARP-пакета (см. рис. 3) свой собственный IP-адрес. Такой запрос называется самообращенным (gratuitous; дословно – “беспричинным”, т.е. не вызванным необходимостью последующей передачи данных, или “безвозмездным”, т.е. не требующим ответа). Хост, пославший самообращенный ARP-запрос, не ждет на него ответа. Если ответа на самообращенный ARP-запрос не поступает, значит, такого же IP-адреса, как у данного хоста, в локальной сети больше нет. Если же какой-либо хост локальной сети отвечает на самообращенный ARP-запрос своим MAC-адресом, значит, в локальной сети уже есть хост с таким IP-адресом. В этом случае на экране хоста, пославшего самообращенный ARP-запрос, и на экране хоста, ответившего на этот запрос, выводятся сообщения об ошибке “Конфликт IP-адреса с другой системой в сети”.

Для примера, приведенного на рис. 4, на рис. 19 показано окно захвата анализатора EtherPeek, активизированное на хосте A во время перезагрузки хоста B, на котором до перезагрузки был установлен такой же IP-адрес, как у хоста A (192.168.0.2).

Рис. 19. Окно захвата анализатора EtherPeek на хосте A во время перезагрузки хоста B с IP-адресом, совпадающим с IP-адресом хоста A

К ак видно из рис. 19, сначала хост B посылает самообращенный ARP-запрос (пакет 1), чтобы выяснить, есть ли в локальной сети хост с IP-адресом 192.168.0.2. Хост B не ждет ответа на этот запрос, т.к. на самом хосте B установлен такой IP-адрес. Однако поскольку хост A уже имеет IP-адрес 192.168.0.2, он посылает хосту B соответствующий ARP-ответ (пакет 2). Хост B повторяет самообращенный ARP-запрос (пакет 3) и снова получает такой же ARP-ответ (пакет 4). В результате на экранах хостов A и B появляются сообщения “Конфликт IP-адреса с другой системой в сети”, и хост B не будет иметь никакого IP-адреса.

Н а рис. 20 представлено содержимое захваченного кадра первого из ARP-запросов от хоста B.

Рис. 20. Содержимое захваченного кадра самообращенного ARP-запроса от хоста B

Из рис. 20 видно, что в поле Target Internet Addr (сетевой адрес получателя) ARP-пакета содержится тот же адрес (192.168.0.2), что и в поле Sender Internet Addr (сетевой адрес отправителя). Это означает, что данный ARP-запрос – самообращенный.

На рис. 21 для примера, приведенного на рис. 4, показано окно захвата анализатора EtherPeek, активизированное на хосте A во время перезагрузки хоста B с IP-адресом 192.168.0.1. В этом случае IP-адрес хоста B не совпадает с IP-адресом хоста A и поэтому ни на один из самообращенных ARP-запросов ARP-ответа не поступает. Хосту B присваивается IP-адрес 192.168.0.1.

Рис. 21. Окно захвата анализатора EtherPeek на хосте A во время перезагрузки хоста B с IP-адресом, не совпадающим с IP-адресом хоста A

С ледует иметь в виду, что помимо ARP-запросов, показанных на рис. 21, при загрузке хоста B или изменении его IP-адреса в окне захвата анализатора на хосте A могут появиться и другие ARP-запросы, связанные с активизацией различных служб хоста B (особенно при использовании в локальной сети более двух хостов).

Д ля примера, приведенного на рис. 4, на рис. 22 показано окно создания фильтра для захвата широковещательных ARP-запросов от хоста B, а на рис. 23 – окно создания фильтра для захвата ARP-ответов хоста A хосту B.

Рис. 22. Фильтр для захвата ARP-запросов от хоста B

Рис. 23. Фильтр для захвата ARP-ответов хоста A хосту B