Какой адрес назначения используется в кадре запроса arp?

11 ответов на вопрос “Какой адрес назначения используется в кадре запроса arp?”

  1. DaInekto Ответить

    Спасибо хабраюзеру hardex за публикацию первоначальной статьи, а также всем, кто плюсанул в карму для возможности моей собственноручной публикации. Теперь дополненная версия с учетом пожеланий и дополнений. Добро пожаловать под кат.
    Доброго времени суток, дорогие хабраюзеры. Этой статьей я хочу начать цикл повествования о протоколах, которые помогают нам прозрачно, быстро и надежно обмениваться информацией. И начать с протокола ARP.
    Как известно, адресация в сети Internet представляет собой 32-битовую последовательность 0 и 1, называющихся IP-адресами. Но непосредственно связь между двумя устройствами в сети осуществляется по адресам канального уровня (MAC-адресам).
    Так вот, для определения соответствия между логическим адресом сетевого уровня (IP) и физическим адресом устройства (MAC) используется описанный в RFC 826 протокол ARP (Address Resolution Protocol, протокол разрешения адресов).
    ARP состоит из двух частей. Первая – определяет физический адрес при посылке пакета, вторая – отвечает на запросы других станций.
    Протокол имеет буферную память (ARP-таблицу), в которой хранятся пары адресов (IP-адрес, MAC-адрес) с целью уменьшения количества посылаемых запросов, следовательно, экономии трафика и ресурсов.
    Пример ARP-таблицы.
    192.168.1.1 08:10:29:00:2F:C3
    192.168.1.2 08:30:39:00:2F:C4

    Слева – IP-адреса, справа – MAC-адреса.
    Прежде, чем подключиться к одному из устройств, IP-протокол проверяет, есть ли в его ARP-таблице запись о соответствующем устройстве. Если такая запись имеется, то происходит непосредственно подключение и передача пакетов. Если же нет, то посылается широковещательный ARP-запрос, который выясняет, какому из устройств принадлежит IP-адрес. Идентифицировав себя, устройство посылает в ответ свой MAC-адрес, а в ARP-таблицу отправителя заносится соответствующая запись.
    Записи ARP-таблицы бывают двух вид видов: статические и динамические. Статические добавляются самим пользователем, динамические же – создаются и удаляются автоматически. При этом в ARP-таблице всегда хранится широковещательный физический адрес FF:FF:FF:FF:FF:FF (в Linux и Windows).
    Создать запись в ARP-таблице просто (через командную строку):
    arp –s
    Вывести записи ARP-таблицы:
    arp –a
    После добавления записи в таблицу ей присваивается таймер. При этом, если запись не используется первые 2 минуты, то удаляется, а если используется, то время ее жизни продлевается еще на 2 минуты, при этом максимально – 10 минут для Windows и Linux (FreeBSD – 20 минут, Cisco IOS – 4 часа), после чего производится новый широковещательный ARP-запрос.
    Сообщения ARP не имеют фиксированного формата заголовка и при передаче по сети инкапсулируются в поле данных канального уровня
    Формат сообщения ARP.
    тип сети (16 бит): для Ethernet – 1;
    тип протокола (16 бит): h0800 для IP;
    длина аппаратного адреса (8 бит);
    длина сетевого адреса (8 бит);
    тип операции (16 бит): 1 – запрос, 2 — ответ;
    аппаратный адрес отправителя (переменная длина);
    сетевой адрес отправителя (переменная длина);
    аппаратный адрес получателя (переменная длина);
    сетевой адрес получателя (переменная длина).
    А вот как происходит определение маршрута с участием протокола ARP.
    Пусть отправитель A и получатель B имеют свои адреса с указанием маски подсети.
    Если адреса находятся в одной подсети, то вызывается протокол ARP и определяется физический адрес получателя, после чего IP-пакет инкапсулируется в кадр канального уровня и отправляется по указанному физическому адресу, соответствующему IP-адресу назначения.
    Если нет – начинается просмотр таблицы в поисках прямого маршрута.
    Если маршрут найден, то вызывается протокол ARP и определяется физический адрес соответствующего маршрутизатора, после чего пакет инкапсулируется в кадр канального уровня и отправляется по указанному физическому адресу.
    В противном случае, вызывается протокол ARP и определяется физический адрес маршрутизатора по умолчанию, после чего пакет инкапсулируется в кадр канального уровня и отправляется по указанному физическому адресу.
    Главным достоинством проткола ARP является его простота, что порождает в себе и главный его недостаток – абсолютную незащищенность, так как протокол не проверяет подлинность пакетов, и, в результате, можно осуществить подмену записей в ARP-таблице (материал для отдельной статьи), вклинившись между отправителем и получателем.
    Бороться с этим недостатком можно, вручную вбивая записи в ARP-таблицу, что добавляет много рутинной работы как при формировании таблицы, так и последующем ее сопровождении в ходе модификации сети.
    Существуют еще протоколы InARP (Inverse ARP), который выполняет обратную функцую: по заданному физическому адресу ищется логический получателя, и RARP (Reverse ARP), который схож с InARP, только он ищет логический адрес отправителя.
    В целом, протокол ARP универсален для любых сетей, но используется только в IP и широковещательных (Ethernet, WiFi, WiMax и т.д.) сетях, как наиболее широко распространенных, что делает его незаменимым при поиске соответствий между логическими и физическими адресами.
    P.S. Эту статью писал я сам, никуда не подглядывая, основываясь только на своих знаниях, полученных в ходе изучения сетей.

  2. СоНыЙ Ответить

    Gratuitous ARP
    Механизм Gratuitous ARP используется для оповещения устройств в рамках широковещательного домена о появлении новой привязки IP-адреса и MAC-адреса. Когда сетевой интерфейс устройства получает настройки IP (вручную или по DHCP), устройство отправляет Gratuitous ARP сообщение, чтобы уведомить соседей о своём присутствии. Gratuitous ARP сообщение представляет собой особый вид ARP-ответа. Поле opcode принимает значение 2 (ARP-ответ). MAC-адрес получается как в заголовке Ethernet, так и в теле ARP-ответа является широковещательным (ff:ff:ff:ff:ff:ff). Поле Target IP Address в теле ARP-ответа совпадает с полем Sender IP Address.
    Механизм Gratuitous ARP используется для многих целей. Например, с помощью Gratuitous ARP можно уведомить о смене MAC-адреса или обнаружить конфликты IP-адресов. Другой пример — использование протоколов резервирования первого перехода (First Hop Redundancy Protocols), например, HSRP у Cisco. Напомню, HSRP позволяет иметь виртуальный IP-адрес, разделённый между двумя или более сетевыми устройствами. В нормальном режиме работы обслуживание виртуального IP-адреса (ответы на ARP-запросы и т.д.) обеспечивает основное устройство. При отказе основного устройства обслуживание виртуального IP-адреса переходит ко второму устройству. Чтобы уведомить о смене MAC-адреса ответственного устройства, как раз отправляется Gratuitous ARP-сообщения.
    В примере ниже представлено Gratuitous ARP сообщение при включении сетевого интерфейса маршрутизатора с настроенным IP-адресов 198.18.0.1.

    Если на маршрутизаторе настроен secondary IP-адрес, при переходе интерфейса в состояние UP будут отправлены Gratuitous ARP уведомления для каждого IP-адреса интерфейса. В примере ниже представлены Gratuitous ARP сообщения, отправляемые при включении интерфейса маршрутизатора с основным IP-адресом 198.18.0.1 и secondary IP-адресом 198.18.2.1.

    Безусловно, маршрутизатор будет отвечать на ARP-запросы как для основного, так и для secondary IP-адреса.
    Логично предположить, что как только устройство получает Gratuitous ARP, сразу добавляется новая запись в ARP-таблицу. Однако это не так. Если в таблице устройства отсутствовала ARP-запись, связанная с IP-адресом из Gratuitous ARP сообщения, новая запись добавлена не будет. При необходимости отправить трафик будет сформирован ARP-запрос и получен ARP-ответ. Только после этой процедуры новая запись добавится в ARP-таблицу.
    Пример на маршрутизаторе Cisco. Включим debug arp и подключим в широковещательный домен новое устройство с адресом 198.18.0.200. До подключения нового устройства ARP-таблица маршрутизатора выглядит следующим образом:
    cisco#sh arp | inc 198.18.0.200
    Включаем новое устройство с адресом 198.18.0.200. Получаем debug-сообщение о приходе Gratuitous ARP:
    IP ARP: rcvd rep src 198.18.0.200 64e9.50c8.d6cd, dst 198.18.0.200 GigabitEthernet0/0/1
    Проверяем ARP-таблицу:
    cisco#sh arp | inc 198.18.0.200
    Новая запись не появилась. Делаем пинг до нового адреса:
    cisco#ping 198.18.0.200
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 198.18.0.200, timeout is 2 seconds:
    019275: Feb 4 10:23:06 UTC: IP ARP: creating incomplete entry for IP address: 198.18.0.200 interface GigabitEthernet0/0/1
    019276: Feb 4 10:23:06 UTC: IP ARP: sent req src 198.18.0.1 d8b1.902e.e741,
    dst 198.18.0.200 0000.0000.0000 GigabitEthernet0/0/1
    019277: Feb 4 10:23:06 UTC: IP ARP: rcvd rep src 198.18.0.200 64e9.50c8.d6cd, dst 198.18.0.1 GigabitEthernet0/0/1
    .!!!!
    Success rate is 80 percent (4/5), round-trip min/avg/max = 2/2/3 ms
    Debug-сообщения показывают, что прошла процедура ARP-запрос/ARP-ответ. Проверяем ARP-таблицу:
    cisoc#sh arp | i 198.18.0.200
    Internet 198.18.0.200 6 64e9.50c8.d6cd ARPA GigabitEthernet0/0/1
    Новая запись появилась.
    ARP и NAT на маршрутизаторах Cisco
    Теперь рассмотрим, как обстоят дела с ARP, если на маршрутизаторе используются правила трансляции сетевых адресов – NAT или PAT. В этом случае, мы можем транслировать адрес или адреса локальной сети либо в адрес интерфейса маршрутизатора, либо в какой-либо другой адрес, который будет называться в терминологии NAT внутренним глобальным адресом (inside global или inside mapped). Если трансляция происходит в адрес интерфейса, с ARP вопросов нет. В случае трансляции в адрес, отличный от адреса интерфейса, действуют следующие правила:
    Если внутренний глобальный адрес находится в той же IP-подсети, что и адрес интерфейса маршрутизатора, маршрутизатор будет отвечать на ARP-запросы к этому адресу. При этом в собственной arp-таблице маршрутизатора создаётся статическая запись для внутреннего глобального адреса.
    Если внутренний глобальный адрес находится в IP-подсети, отличной от адреса интерфейса маршрутизатора, маршрутизатор не будет отвечать на ARP-запросы к этому адресу. В собственной arp-таблице статическая запись не создаётся. Чтобы связь с таким IP-адресом заработала, требуется дополнительная настройка. Мы рассмотрим данный случай более подробно далее в статье.
    Отдельно следует упомянуть поведение Gratuitous ARP. Рассматривать варианты генерации Gratuitous ARP для различных случаев (переход интерфейса в состояние UP, изменение основного IP-адреса интерфейса, изменение Secondary IP-адреса и т.д.) не буду, так как получится слишком много вариантов. Хочу указать только два момента. Первый момент: настройка нового правила NAT не приводит к генерации Gratuitous ARP уведомления. Второй момент: с помощью команды clear arp-cache можно не только очистить все динамические записи arp в таблице маршрутизатора, но и заставить маршрутизатор отправить Gratuitous ARP для всех IP-адресов, на которые маршрутизатор должен отвечать, включая внутренние глобальные адреса из правил NAT.
    Рассмотрим примеры на основании следующей простейшей топологии:

    Примечание: для тестов использовался маршрутизатор C4321 с программным обеспечением 15.4(3)S3 и межсетевой экран Cisco ASA5505 c программным обеспечением 9.1(6)6.
    Компьютер Wireshark с адресов 198.18.0.250 в нашем случае будет обозначать подключение к внешней сети (например, к Интернет-провайдеру). С помощью сниффера Wireshark будем просматривать обмен сообщениями ARP между маршрутизатором и компьютером.
    Настройки интерфейсов маршрутизатора:
    interface GigabitEthernet0/0/0
    description === inside ===
    ip address 192.168.20.1 255.255.255.0
    no ip proxy-arp
    ip nat inside
    !
    interface GigabitEthernet0/0/1.7
    description === outside ===
    ip address 198.18.0.1 255.255.255.0
    no ip proxy-arp
    ip nat outside
    Добавим правило динамического NAT, чтобы транслировать адрес компьютера из LAN (192.168.20.5) во внутренний глобальный адрес 198.18.0.5 при обращении к компьютеру во вне (Wireshark). Добавим правило статического PAT для публикации TCP порта 3389 (RDP) компьютера из LAN под глобальным адресом 198.18.0.2.

    ip access-list standard acl-test-arp
    permit 192.168.20.5
    ip nat pool test-pool 198.18.0.5 198.18.0.5 netmask 255.255.255.252
    ip nat inside source list acl-test-arp pool test-pool overload
    ip nat inside source static tcp 192.168.20.5 3389 198.18.0.2 3389 extendable
    Посмотрим ARP-таблицу на маршрутизаторе:
    cisco#sh arp
    Protocol Address Age (min) Hardware Addr Type Interface
    . . .
    Internet 198.18.0.1 – d8b1.902e.e741 ARPA GigabitEthernet0/0/1.7
    Internet 198.18.0.2 – d8b1.902e.e741 ARPA GigabitEthernet0/0/1.7
    Internet 198.18.0.5 – d8b1.902e.e741 ARPA GigabitEthernet0/0/1.7
    . . .
    Видим, что в ARP-таблице присутствуют статические записи как для внешнего интерфейса маршрутизатора (198.18.0.1), так и для внутренних глобальных адресов из правил динамического и статического NAT.
    Сделаем clear arp-cache на маршрутизаторе и посмотрим в Wireshark, какие Gratuitous ARP уведомления будут отправлены с внешнего интерфейса:

    Как видно, маршрутизатор уведомил о готовности обслуживать адрес интерфейса, адрес из правила динамического NAT и адрес из правила статического NAT.
    А теперь представим ситуацию, когда провайдер расширяет пул публичных адресов, выданных клиенту, за счёт другой подсети. Предположим, дополнительно к IP-подсети 198.18.0.0/24 на внешнем интерфейсе маршрутизатора мы получаем от провайдера новый пул 198.18.99.0/24 и хотим публиковать наши внутренние сервисы под новыми IP-адресами. Для наглядности приведу схему с провайдером:

    Добавим правило статического PAT для публикации TCP порта 3389 (RDP) компьютера из LAN под новым глобальным адресом 198.18.99.2:
    ip nat inside source static tcp 192.168.20.5 3389 198.18.99.2 3389 extendable
    Если снова посмотреть ARP-таблицу маршрутизатора командой show arp, увидим, что статическая запись для IP-адреса 198.18.99.2 не добавилась.
    Чтобы иметь возможность отправлять ARP-запросы в новую сеть 198.18.99.0/24 с компьютера Wireshark, расширим маску его сетевых настроек до 255.255.0.0 (/16). Напомню, для нашего примера компьютер Wireshark выступает в роли маршрутизатора Интернет-провайдера.
    После ввода clear arp-cache сниффер по-прежнему показывает Gratuitous ARP только для трёх IP-адресов: 198.18.0.1, 198.18.0.2, 198.18.0.5. Для нового адреса 198.18.99.2 Gratuitous ARP не срабатывает. Попробуем открыть tcp-порт 3389 адреса 198.18.99.2 и одновременно посмотреть сниффер:


    Неуспех. Проверим ARP-таблицу:

    ARP-запись для нового IP-адреса 198.18.99.2 не появилась. Причина – новый IP-адрес 198.18.99.2 находится в IP-подсети, отличной от адреса интерфейса маршрутизатора. Как же нам заставить работать новый пул выданных провайдером IP-адресов? Есть четыре варианта:
    Попросить провайдера прописать статические ARP-записи для каждого IP-адреса из нового диапазона. Это не очень удобно, если выдаётся широкий диапазон как в нашем примере.
    Попросить провайдера прописать статический маршрут. Часто, чтобы выдать дополнительный диапазон белых IP-адресов, провайдер прописывает на интерфейсе своего оборудования secondary IP-адрес. Вместо этого мы можем попросить провайдера прописать статический маршрут к новой IP-подсети через IP-адрес внешнего интерфейса маршрутизатора. В этом случае оборудование провайдера будет знать, что новая подсеть доступна через IP-адрес интерфейса маршрутизатора, а маршрутизатор, в свою очередь, будет отвечать на ARP-запросы, отправленные к собственному интерфейсу.
    Прописать secondary IP-адрес из нового диапазона на внешнем интерфейсе маршрутизатора. В этом случае любой IP-адрес нового диапазона будет принадлежать той же подсети, что и IP-адрес (пусть и secondary) интерфейса маршрутизатора. Маршрутизатор автоматически добавит статические записи в свою ARP-таблицу, будет слать Gratuitous ARP и отвечать на ARP-запросы.
    Использовать механизм Proxy Arp на маршрутизаторе. На этом варианте остановимся чуть более подробно.
    Proxy ARP на маршрутизаторах Cisco
    Функциональность Proxy ARP позволяет маршрутизатору отвечать на ARP-запросы при выполнении трёх следующих условий:
    Целевой IP-адрес ARP-запроса находится в IP-подсети, отличной от IP-подсети, в которой ARP-запрос получен;
    Маршрутизатор имеет один или несколько маршрутов к целевому IP-адресу ARP-запроса;
    Маршруты к целевому IP-адресу ARP-запроса указывают на исходящий интерфейс, отличный от интерфейса, на который ARP-запрос был получен.
    По умолчанию Proxy ARP включен на всех интерфейсах маршрутизатора. Однако использование механизма Proxy ARP имеет несколько недостатков. В первую очередь Proxy ARP вносит потенциальную уязвимость к атакам типа Man-in-the-middle, когда злоумышленник получит возможность перехватывать сетевой трафик. Поэтому, рекомендуется отключать Proxy ARP как минимум на интерфейсах, к которым подключены внешние сети.
    Настройка Proxy ARP на интерфейсе маршрутизатора:
    interface GigabitEthernet0/0/1.7
    ip proxy-arp
    Отключить Proxy ARP на всех интерфейсах маршрутизатора можно глобально:
    ip arp proxy disable
    Данная настройка имеет приоритет над настройками Proxy ARP, применёнными на интерфейсах.
    Помимо команды ip proxy arp в настройках интерфейса существует команда ip local-proxy-arp. Данная команда работает только когда ip proxy arp включён на интерфейсе и позволяет маршрутизатору отвечать на ARP-запросы, даже если целевой IP-адрес находится в той же IP-подсети, откуда ARP-запрос поступил. Пример настройки:
    no ip arp proxy disable
    interface GigabitEthernet0/0/1.7
    ip proxy-arp
    ip local-proxy-arp
    Данная настройка может пригодится, если мы хотим, чтобы трафик в рамках одного широковещательного домена шёл через интерфейс нашего маршрутизатора. Данную задачу можно реализовать с использованием Protected port (PVLAN edge) настроек на L2-коммутаторе (switchport protected).
    Включение Proxy ARP на внешнем интерфейсе маршрутизаторе позволит решить проблему с новым пулом адресов, выданных провайдером. Попробуем открыть tcp-порт 3389 адреса 198.18.99.2 после включения Proxy ARP на интерфейсе маршрутизатора и одновременно посмотреть сниффер:

    Успех. Маршрутизатор отвечает на ARP-запрос и порт открывается. Таким образом, функциональность Proxy ARP также можно использовать при необходимости трансляции адресов в новый пул.
    Итоги
    Попробую тезисно обобщить основные моменты первой части статьи:
    Сетевое оборудование Cisco добавляет ARP-запись о новом удалённом устройстве в ARP-таблицу сразу по приходу ARP-запроса от удалённого устройства. Данное поведение позволяет сократить ARP-трафик в сети.
    Маршрутизатор Cisco будет отвечать на ARP-запросы к внутреннему глобальному IP-адресу правила NAT, если данный IP-адрес принадлежит той же IP-подсети, что и интерфейс маршрутизатора. Дополнительные настройки для работы ARP не требуются.
    Если внутренний глобальный IP-адрес правила NAT маршрутизатора не принадлежит IP-подсети интерфейса маршрутизатора, требуются дополнительные настройки. Существуют четыре варианта:
    Статические ARP-записи на внешнем оборудовании;
    Статический маршрут на внешнем оборудовании;
    Настройка secondary IP-адреса на интерфейсе маршрутизатора;
    Использование Proxy ARP.
    Первый и второй вариант подразумевают изменение настроек на «чужом» сетевом оборудовании и не всегда может быть приемлем.
    Третий вариант является наиболее предпочтительным.
    Четвёртый вариант может быть использован, но открывает уязвимость с точки зрения сетевой безопасности.
    Функциональность Proxy ARP включена на интерфейсах маршрутизатора по умолчанию. Рекомендуется отключать Proxy ARP как минимум на интерфейсах, подключаемых к Интернет-провайдерам.

  3. UPALIJED Ответить

    Экзамен по главе . курса CCNA Introduction to Networks
    1 Какое утверждение о MAC-адресах является верным?
    MAC-адреса реализуются программным обеспечением.
    Сетевому адаптеру требуется MAC-адрес только при подключении к глобальной сети (WAN).
    **Первые три байта используются OUI, назначенным поставщиком.
    ISO отвечает за правила использования MAC-адресов.
    2 В чем заключается одна из особенностей конкурентного способа доступа к среде передачи данных?
    Он обрабатывает больше нагрузки, чем при использовании способов контролируемого доступа.
    Он использует механизмы для отслеживания очереди доступа к среде.
    Это недетерминированный способ.
    Он очень хорошо масштабируется при высокой загруженности среды.
    3 Какие два утверждения описывают свойства или функции подуровня управления логическим каналом в стандартах Ethernet? (Выберите два варианта ответа.)
    **LLC (управление логическим каналом) реализуется в ПО.
    LLC регламентируется стандартом IEEE 802.3.
    Подуровень LLC непосредственно взаимодействует с программным обеспечением драйвера сетевой платы.
    **Канальный уровень использует LLC для связи с верхними уровнями набора протоколов.
    Подуровень LLC отвечает за размещение и извлечение кадров в среде передачи данных.
    4 Каково назначение преамбулы в кадре Ethernet?
    используется в качестве заполнителя для данных
    **используется для синхронизации
    используется для определения адреса источника
    используется для определения адреса назначения
    5 Какой MAC-адрес мультиадресной рассылки уровня 2 соответствует адресу многоадресной передачи IPv4 224.139.34.56 уровня 3?
    00-00-00-0B-22-38
    **01-00-5E-0B-22-38
    01-5E-00-0B-22-38
    FE-80-00-0B-22-38
    FF-FF-FF-0B-22-38
    6 Какие два утверждения о MAC- и IP-адресах во время передачи данных без преобразования сетевых адресов (NAT) являются верными? (Выберите два варианта ответа.)
    Пакет, который прошел четыре маршрутизатора, изменял IP-адрес назначения четыре раза.
    MAC-адреса получателей никогда не изменятся в кадре, который проходит через семь маршрутизаторов.
    **MAC-адреса назначения и источника имеют локальное значение и меняются при каждом переходе кадра из одной локальной сети в другую.
    **IP-адреса назначения в заголовке пакета не меняются по всему пути к узлу назначения.
    После каждой инкапсуляции кадра с новым MAC-адресом назначения необходим новый IP-адрес назначения.
    7 Укажите две характеристики протокола ARP. (Выберите два варианта ответа.)
    **Если узел готов отправить пакет локальному устройству назначения и у него есть IP, но не MAC-адрес назначения, он создаёт широковещательную рассылку ARP.
    Запрос ARP отправляется всем устройствам в сети Ethernet для локальных сетей, а также содержит IP-адрес узла назначения и его MAC-адрес мультиадресной рассылки.
    Когда узел инкапсулирует пакет в кадр, он обращается к таблице MAC-адресов для определения маршрута от IP-адресов к MAC-адресам.
    Если ни одно устройство не отвечает на запрос ARP, узел-отправитель передаёт пакеты данных всем устройствам, находящимся в сегменте сети.
    **Если устройство, которое получает запрос ARP, имеет адрес назначения IPv4, то отвечает ответом ARP.
    8 Посмотрите на рисунок. ПК1 отправляет запрос ARP, поскольку ему нужно отправить пакет на ПК2. Что происходит дальше?
    **ПК2 отправит ответ ARP со своим MAC-адресом.
    Маршрутизатор RT1 отправит ответ ARP со своим MAC-адресом Fa0/0.
    Маршрутизатор RT1 отправит ответ ARP со своим MAC-адресом PK2.
    Коммутатор SW1 отправит ответ ARP со своим MAC-адресом PK2.
    Коммутатор SW1 отправит ответ ARP со своим MAC-адресом Fa0/1.
    9 Узел пытается отправить пакет устройству в удалённом сегменте локальной сети, но в настоящее время в его кэш-памяти ARP нет сопоставлений. Как устройство получит MAC-адрес назначения?
    Оно отправит запрос ARP для получения MAC-адреса устройства назначения.
    **Оно отправит запрос ARP для получения MAC-адреса шлюза по умолчанию.
    Оно отправит кадр и будет использовать свой собственный MAC-адрес в качестве адреса назначения.
    Оно отправит кадр с MAC-адресом широковещательной рассылки.
    Оно отправит запрос на DNS-сервер для получения MAC-адреса назначения.
    10 Какие две потенциальные проблемы сети могут возникнуть в результате работы протоколов ARP? (Выберите два варианта ответа.)
    Ручная настройка статических связей ARP может привести к «отравлению» кэша ARP или спуфингу MAC-адресов.
    **В крупных сетях с низкой пропускной способностью широковещательная рассылка ARP может стать причиной задержки передачи данных.
    **Хакеры могут использовать схемы MAC- и IP-адресов в сообщениях ARP с целью перехвата сетевого трафика.
    Большое количество широковещательных запросов ARP может привести к переполнению таблицы MAC-адресов узла и нарушению коммуникации по сети.
    Множественные ответы ARP формируют таблицу MAC-адресов коммутатора, в которой содержатся записи, соответствующие MAC-адресам узлов, подключённых к порту коммутатора.
    11 Сетевой администратор подключает два современных коммутатора с помощью прямого кабеля. Коммутаторы новые и никогда не настраивались. Какие три утверждения о конечном результате подключения являются верными? (Выберите три варианта ответа.)
    **Канал между коммутаторами будет работать на самой высокой скорости, поддерживаемой этими коммутаторами.
    **Канал между коммутаторами будет работать в полнодуплексном режиме.
    Если оба коммутатора поддерживают различные скорости, они будут работать на самой быстрой для себя скорости.
    **Автоматическая MDIX-функция настроит интерфейсы без необходимости кроссового кабеля.
    Связь невозможна, если администратор заменит кабель на кроссовый кабель.
    Дуплексный канал необходимо настраивать автоматически.
    12 Коммутатор уровня 2 используется для коммутации входящих кадров от порта 1000BASE-T к порту, подключённого к сети 100Base-T. Какой метод буферизации памяти наилучшим образом подходит для этой задачи?
    буферизация на основе портов
    буферизация кэша уровня 1
    **буферизация совместного доступа к памяти
    буферизация фиксированной конфигурации
    13 Когда коммутатор вносит много записей для одного порта коммутатора в таблице MAC-адресов?
    когда маршрутизатор подключён к порту коммутатора
    когда пересылается несколько широковещательных рассылок ARP
    **когда другой коммутатор подключён к порту коммутатора
    когда коммутатор настроен для коммутации на уровне 3
    14 Посмотрите на рисунок. На изображении показаны небольшая сеть с коммутатором и содержимое таблицы MAC-адресов коммутатора. ПК1 отправил кадр, адресованный ПК3. Что коммутатор сделает с кадром?
    Коммутатор отбросит кадр.
    Коммутатор перешлёт кадр только на порт 2.
    **Коммутатор перешлёт полученный кадр на все порты, за исключением порта 4.
    Коммутатор перешлёт кадр на все порты.
    Коммутатор перешлёт кадр только на порты 1 и 3.
    15 Какие два утверждения характеризуют фиксированную конфигурацию коммутатора Ethernet? (Выберите два варианта ответа.)
    Коммутатор нельзя настроить для работы в нескольких VLAN (виртуальная локальная сеть).
    SVI нельзя настроить на коммутаторе.
    **Коммутатор с фиксированной конфигурацией может быть стекируемым.
    **Число портов на коммутаторе нельзя увеличить.
    Плотность портов коммутатора определяется компанией CISCO IOS.
    16 Как добавление линейной платы Ethernet влияет на форм-фактор коммутатора?
    увеличивает скорость коммутации соединительной панели
    **увеличивает плотность портов
    делает коммутатор стекируемым
    расширяет ёмкость NVRAM
    17 Администратор сети выполняет следующие команды на коммутаторе уровня 3:
    DLS1 (config)# interface f0/3
    DLS1(config-if)# no switchport
    DLS1(config-if)# ip-address 172.16.0.1 255.255.255.0
    DLS1(config-if)# no shutdown
    DLS1(config-if)# end
    .Что настраивает администратор?
    **порт с маршрутизацией
    коммутируемый виртуальный интерфейс
    экземпляр Cisco Express Forwarding
    магистральный интерфейс
    18 Какой адрес или комбинация адресов используется коммутатором уровня 3 для принятия решений о пересылке?
    только IP-адрес
    только адрес порта
    только MAC-адрес
    MAC- и адреса порта
    **MAC- и IP-адреса
    19 Какое утверждение характеризует недостаток множественного доступа с контролем несущей (CSMA/CD)?
    Обусловленные протоколы доступа к среде передачи данных ухудшают производительность сети.
    Он сложнее, чем необусловленные протоколы.
    **Коллизии могут снизить производительность сети.
    Технологии локальной сети CSMA/CD доступны только при более низкой скорости по сравнению с другими технологиями локальной сети.
    20 Заполните пустое поле.
    Двоичное число 0000 1010 можно выразить в
    шестнадцатеричной системе.
    Правильный ответ: 0A
    23 Откройте интерактивное задание PT. Выполните задания, указанные в описании упражнения, а затем ответьте на вопрос.
    Какой адрес назначения ПК1 добавит в поле адреса назначения кадра Ethernet, который отправляется на ПК2?
    192.168.0.17
    192.168.0.34
    **0030.a3e5.0401
    00e0.b0be.8014
    0007.ec35.a5c6

  4. Kaziramar Ответить

    ARP: протокол определения адреса

    Введение

    Проблема, которую мы будем обсуждать в этой главе, заключается в том,
    что IP адреса имеют какое-либо значение только в семействе протоколов TCP/IP.
    Канальные уровни, такие как Ethernet или Token ring, имеют собственную схему
    адресации (в основном 48-битные адреса); сетевые уровни, в свою очередь,
    используют эти канальные уровни. Сеть Ethernet, может быть использована
    различными сетевыми уровнями в одно и то же время. Компьютеры использующие
    разные сетевые протоколы могут находиться на одном и том же физическом кабеле.
    Когда фрейм Ethernet отправляется от одного хоста по локальной сети к
    другому, по его 48-битному Ethernet адресу определяется, к какому интерфейсу он
    должен быть доставлен. Драйвер сетевой платы никогда не смотрит на IP адрес
    назначения в IP датаграмме.
    Другими словами возникает необходимость установить соответствие между
    двумя различными формами адресов: 32-битными IP адресами и каким-либо типом
    адресов канального уровня. RFC 826 [Plummer 1982] –
    официальная спецификация ARP.
    На рисунке 4.1 показаны два протокола, которые мы рассмотрим в этой и
    следующей главах: протокол определения адреса (ARP – address
    resolution protocol) и обратный протокол определения адреса (RARP – reverse
    address resolution protocol).

    Рисунок 4.1 Протоколы определения адреса: ARP и
    RARP.
    ARP предоставляет динамическое сопоставление IP адресов и
    соответствующих аппаратных адресов. Мы используем термин динамическое, так как
    это происходит автоматически и обычно не зависит от используемых прикладных
    программ или воли системного администратора.
    RARP, в основном, используется системами без жестких дисков
    (бездисковые рабочие станции или X терминалы), однако здесь требуется ручная
    конфигурация с участием системного администратора. Мы рассмотрим RARP в главе
    5.

    Пример

    Если мы введем команду
    % ftp bsdi

    будет выполнена следующая последовательность действий. (См. рисунок
    4.2.)
    Приложение, FTP клиент, вызывает функцию gethostbyname(3), чтобы конвертировать имя хоста (bsdi) в
    32-битный IP адрес. Эта функция в DNS (Domain Name System) называется разборщиком (resolver) , мы опишем это подробно в главе 14.
    Подобное преобразование осуществляется с использованием DNS или, если существует
    маленькая сеть, то с помощью статического файла хостов (/etc/hosts).
    FTP клиент требует установить TCP соединение с указанным IP
    адресом.
    TCP посылает запрос на установление соединения удаленному хосту,
    посылая IP датаграммы по указанному IP адресу. (Мы рассмотрим как это делается
    более подробно в главе 18.)
    Если хост назначения подключен к сети (Ethernet, Token ring, или к
    другому концу канала точка-точка), IP датаграмма может быть послана
    непосредственно хосту. Если хост назначения находится в удаленной сети, IP
    маршрутизатор определяет Internet адрес непосредственно подключенного маршрутизатора следующей пересылки, чтобы послать туда IP
    датаграмму. В обоих случаях IP датаграмма посылается либо хосту, либо
    маршрутизатору, подключенные непосредственно к данной сети.
    Если используется Ethernet, посылающий хост должен конвертировать
    32-битный адрес в 48-битный Ethernet адрес. Или другими словами, осуществить
    преобразование из логического Internet адреса в соответствующий физический
    аппаратный адрес. Этим занимается ARP. ARP работает в широковещательных сетях,
    где много хостов или маршрутизаторов подключено к одной и той же сети.
    ARP посылает фрейм Ethernet, который называется ARP запрос (ARP
    request), каждому хосту в сети. Подобный метод рассылки называется широковещательным запросом (broadcast). На рисунке 4.2
    широковещательный запрос показан пунктирными линиями. ARP запрос содержит IP
    адрес хоста назначения (имя которого bsdi) и запрос “если Вы владелец этого
    IP адреса, пожалуйста сообщите мне Ваш аппаратный адрес”.

    Рисунок 4.2 Реакция ARP на ввод пользователя: ftp
    hostname.
    Хост назначения на ARP уровне получает этот широковещательный запрос,
    определяет, что отправитель спрашивает именно его IP адрес, и отвечает на него
    ARP откликом (ARP reply). Этот отклик содержит IP адрес и соответствующий
    аппаратный адрес.
    ARP отклик принимается, и IP датаграмма, из-за которой начался обмен
    ARP запрос – ARP отклик, может быть послана.
    IP датаграмма отправляется на хост назначения.
    Фундаментальная концепция, заложенная в ARP, заключается в следующем.
    Сетевой интерфейс имеет аппаратный адрес (48-битное значение для Ethernet или
    Token ring). Фреймы, которыми обмениваются на аппаратном уровне, должны
    адресоваться к корректному интерфейсу. Однако TCP/IP испоьзует собственную схему
    адрессации: 32-битные IP адреса. Знание IP адреса хоста не позволяет ядру
    послать датаграмму этому хосту. Драйвер Ethernet должен знать аппаратный адрес
    пункта назначения, чтобы послать туда данные. В задачу ARP входит обеспечение
    динамического соответствия между 32-битными IP адресами и аппаратными адресами,
    используемыми различными сетевыми технологиями.
    Каналы точка-точка не используют ARP. Когда эти каналы конфигурируются
    (обычно во время загрузки), ядру необходимо сказать IP адрес для каждого конца
    канала. Аппаратные адреса, такие как Ethernet адреса, в данном случае не
    используются.

    ARP Кэш

    Эффективность функционирования ARP во многом
    зависит от ARP кэша (ARP cache), который присутствует на
    каждом хосте. В кэше содержатся Internet адреса и соответствующие им аппаратные
    адреса. Стандартное время жизни каждой записи в кэше составляет 20 минут с
    момента создания записи.
    Содержимое ARP кэша можно увидеть с использованием команды arp(8). Опция -a показывает все записи,
    содержащиеся в кэше:
    bsdi % arp -a
    sun
    (140.252.13.33) at 8:0:20:3:f6:42
    svr4 (140.252.13.34) at
    0:0:c0:c2:9b:26
    48-битные Ethernet адреса приведены в виде шести шестнадцатиричных
    чисел, разделенных двоеточиями. Дополнительные функции команды arp обсуждаются в
    разделе “Команда arp” главы
    4.

    Формат пакета ARP

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

    Рисунок 4.3 Формат ARP запроса или отклика при работе с
    Ethernet.
    Два первых поля в Ethernet заголовке – поля источника и назначения
    Ethernet. Специальный адрес назначения Ethernet, состоящий из всех единиц,
    означает широковещательный адрес. Фреймы с таким адресом будут получены всеми
    Ethernet интерфейсами на кабеле.
    Двухбайтовый тип фрейма (frame type) Ethernet
    указывает, данные какого типа, пойдут следом. Для ARP запроса или ARP отклика
    это поле содержит 0x0806.
    Выражения аппаратный (hardware) и протокол (protocol) используются для
    описания полей в пакетах ARP. Например, ARP запрос запрашивает аппаратный адрес
    (в данном случае Ethernet адрес) соответствующий адресу протокола (в данном
    случае IP адрес).
    Поле hard type указывает на тип аппаратного адреса. Для Ethernet это
    значение равно единице. Prot type указывает тип адреса протокола, к которому
    будет приведено соответствие. Для IP адресов используется значение 0x0800. По
    своему целевому назначению это значение соответствует полю типа во фрейме
    Ethernet, который содержит IP датаграмму. (См. рисунок 2.1.)
    Два следующих однобайтных поля, hard size и prot size, указывают на
    размеры в байтах аппаратного адреса и адреса протокола. В ARP запросах и
    откликах они составляют 6 для Ethernet и 4 для IP адреса.
    Поле op указывает на тип операции: ARP запрос
    (значение устанавливается в 1), ARP отклик (2), RARP запрос (3) и RARP отклик
    (4). (Мы поговорим о RARP в главе 5.) Это поле необходимо, так как
    поля типа фрейма (frame type) одинаковы для ARP запроса и
    ARP отклика.
    Следующие четыре поля: аппаратный адрес
    отправителя (Ethernet адрес в данном примере), адрес
    протокола (IP адрес), аппаратный адрес назначения и адрес протокола назначения.
    Обратите внимание, что в данном случае происходит некоторое дублирование
    информации: аппаратный адрес отправителя может быть получен как из Ethernet
    заголовка, так и из ARP запроса.
    Для ARP запроса все поля заполнены, за исключением аппаратного адреса
    назначения. Когда система получает ARP запрос, который предназначается ей, она
    вставляет свой аппаратный адрес, меняет местами адреса источника и назначения,
    устанавливает поле op в значение 2 и отправляет отклик.

    Примеры ARP

    В этом разделе мы воспользуемся командой tcpdump,
    чтобы посмотреть, как в действительности работает ARP при запуске обычного TCP
    приложения, например, Telnet. В приложении А содержится дополнительная
    информация о работе программы tcpdump.

    Типичный пример

    Чтобы посмотреть как функционирует ARP, мы запустим команду telnet, чтобы подсоединиться к discard (discard server –
    сервер, не предоставляющий пользователю никаких услуг) серверу.
    bsdi% arp -a                  проверяем, что ARP кэш пуст
    bsdi%
    telnet svr4 discard     подсоединяемся к серверу
    Trying 140.252.13.34

    Connected to svr4.
    Escape character is ‘^]’ .
    ^]
                               нажимаем Control и правую квадратную
    скобку,
    telnet> quit                  чтобы получить приглашение
    Telnet и закрыть сессию
    Connection closed.
    Пока осуществляются эти действия, мы запускаем команду tcpdump с
    опцией -e на другом хосте (sun). Это позволит нам посмотреть
    аппаратные адреса (48-битные адреса Ethernet).
    1 0.0                 0:0:c0:6f:2d:40 ff:ff:ff:ff:ff:ff arp 60:
    arp who-has svr4 tell bsdi
    2 0.002174 (0.0022)
    0:0:c0:c2:9b:26 0:0:c0:6f:2d:40 arp 60:
    arp reply svr4
    is-at 0:0:c0:c2:9b:26
    3 0.002831 (0.0007)  0:0:c0:6f:2d:40 0:0:c0:c2:9b:26 ip
    60:
    bsdi.1030>svr4.discard: S 596459521:596459521
    (0)
    win 4096 [tos 0x10]
    4 0.007834
    (0.0050)  0:0:c0:c2:9b:26 0:0:c0:6f:2d:40 ip 60:
    svr4.discard>bsdi.1030: S 3562228252:3562228252 (0)
    ack 596459522 win 4096
    5 0.009615 (0.0018)  0:0:c0:6f:2d:40
    0:0:c0:c2:9b:26 ip 60:
    bsdi.1030>svr4.discard: . ack
    1 win 4096 [tos 0x10]
    Рисунок 4.4 ARP запрос и ARP отклик, сгенерированные при запросе на
    Telnet соединение.
    На рисунке А.3 в приложении А
    показан реальный вывод команды tcpdump, которую мы запустили
    на рисунке 4.4. Так как это первый пример вывода tcpdump в тексте, Вам стоит
    посмотреть приложение, чтобы увидеть как мы преобразовали вывод, чтобы он стал
    более красивым и читаемым.
    Мы удалили 4 заключительные строки из вывода tcpdump, которые
    соответствуют разрыву соединения (более подробно рассматривается в главе 18),
    так как они не имеют отношения к нашему обсуждению.
    В строке 1 приводится аппаратный адрес источника (bsdi), в данном
    случае – 0:0:c0:6f:2d:40. Аппаратный адрес назначения ff:ff:ff:ff:ff:ff,
    являющийся широковещательным адресом Ethernet. Каждый Ethernet интерфейс на
    кабеле получит фрейм и обработает его, как показано на рисунке 4.2.
    Следующее поле вывода в строке 1, arp, означает, что тип фрейма (frame
    type) установлен в 0x0806, что означает либо ARP запрос, либо ARP отклик.
    Значение 60, напечатанное после слов arp и ip, в каждой из 5 строк
    означает длину фрейма Ethernet. Так как размер ARP запроса и ARP отклика
    составляет 42 байта (28 байт – ARP сообщение, 14 байт – Ethernet заголовок),
    каждый фрейм дополняется до минимума Ethernet: 60 байт.
    Если обратиться к рисунку 1.7, то можно увидеть, что минимальный
    размер (60 байт) включает в себя 14-байтный Ethernet заголовок, однако не
    включает 4-байтный Ethernet завершитель. В некоторых книгах минимум приводится
    как 64 байта, что включает в себя и Ethernet завершитель. Мы целенаправленно не
    включили 14 байт заголовка Ethernet в минимум из 46 байт, показанных на рисунке
    1.7. Максимальный размер составляет 1500 байт. Обычно эта величина называется
    максимальный блок передачи (MTU – maximum transmission unit) (См. рисунок 2.5).
    Мы часто используем понятие MTU, потому что оно ограничивает размер IP
    датаграммы, однако оно никак не связано с минимальным размером. Большинство
    драйверов устройств или интерфейсных плат автоматически дополняют Ethernet
    фреймы до минимального размера. IP датаграммы в строках 3, 4 и 5 (содержащие TCP
    сегменты) меньше чем минимум и также будут дополнены до 60 байт.
    Следующее поле в строке 1, “arp кто имеет” (arp who-has),
    идентифицирует фрейм как ARP запрос с IP адресом svr4 в качестве адреса
    назначения и IP адресом bsdi в качестве адреса отправителя. tcpdump по умолчанию
    приводит имена хостов соответствующие IP адресам. (В разделе “Беспричинный ARP” мы воспользуемся
    опцией -n, чтобы посмотреть реальные IP адреса в ARP
    запросе.)
    В строке 2 мы видим, что ARP запрос распространяется как
    широковещательный, тогда как адрес назначения ARP отклика это адрес bsdi
    (0:0:c0:6f:2d:40). ARP отклик посылается непосредственно запрашивающему хосту;
    он не является широковещательным.
    tcpdump печатает для этого фрейма arp reply вместе
    с именем хоста и аппаратным адресом отвечающего.
    В строке 3 отправляется первый TCP сегмент, содержащий требование об
    установлении соединения. Аппаратный адрес назначения это адрес хоста назначения
    (svr4). Мы рассмотрим этот сегмент более подробно в главе 18.
    Число, которое печатается в каждой строке, после номера строки – это
    время (в секундах) когда пакет был принят программой tcpdump. В каждой строке
    после первой содержится разница во времени (в секундах) с предыдущей строкой.
    Это значение приводится в скобках. Как видно из рисунка, время между отправкой
    ARP запроса и получением ARP отклика составляет 2,2 мс. Первый TCP сегмент
    послан через 0,7 мс после этого. Таким образом, для динамического определения
    адреса с использованием ARP, в данном примере, потребовалось менее чем 3 мс.
    И последнее на что следует обратить внимание в выводе tcpdump: мы не
    увидим ARP запрос от svr4, когда он посылает свой первый TCP сегмент (строка 4).
    Дело в том, что svr4 уже имеет данные о bsdi в своем ARP кэше, так как, когда
    система получает ARP запрос, помимо того что она посылает ARP отклик, она также
    сохраняет аппаратный адрес и IP адрес запросившего в своем ARP кэше. Это
    логично, так как если запросивший собирается послать IP датаграмму, то
    получившему скорее всего придется отправить ответ на эту
    датаграмму.

    ARP запрос на несуществующий хост

    Что произойдет, если запрашиваемый хост выключен или не существует
    вообще? Попробуем указать несуществующий Internet адрес – идентификатор сети и
    идентификатор подсети будет от нашего локального Ethernet, однако указанного
    идентификатора хоста не существует. На рисунке 3.10 мы видели, что
    идентификаторов хостов с 36-го по 62-ой не существуют (идентификатор хоста 63 –
    широковещательный адрес). В данном примере мы будем использовать идентификатор
    хоста 36.
    в этот раз telnet на IP адрес, а не на имя хоста (hostname)
    bsdi % date
    ; telnet 140.252.13.36 ; date

    Sat Jan 30 06:46:33 MST 1993
    Trying
    140.252.13.36 …
    telnet: Unable to connect to remote host : Connection timed
    out
    Sat Jan 30 06:47:49 MST 1993             прошло 76 секунд
    bsdi %
    arp -a                           проверяем ARP кэш
    ? (140.252.13.36)
    at (incomplete)
    На рисунке 4.5 мы видим вывод tcpdump.
    1  0.0                  arp who-has 140.252.13.36 tell bsdi
    2  5.509069 (
    5.5091)  arp who-has 140.252.13.36 tell bsdi
    3 29.509745 (24.0007)  arp
    who-has 140.252.13.36 tell bsdi
    Рисунок 4.5 ARP запрос на несуществующий хост.
    Сейчас мы не указываем опцию -e, так как мы уже знаем, что ARP запрос
    широковещательный.
    Здесь интересно посмотреть, с какой частотой рассылаются ARP запросы:
    5,5 секунд после первого запроса и снова через 24 секунды. (Мы рассмотрим
    тайм-ауты TCP и алгоритм повторных передач более подробно в главе 21.)
    Полное время, показанное в выводе tcpdump, составляет 29,5 секунды. Однако вывод
    от команды date перед и после команды telnet показывает, что запрос на соединение от Telnet клиента
    длился в течении 75 секунд. И действительно, мы увидим позже, что большинство
    BSD реализаций устанавливают ограничение в 75 секунд для завершения запроса на
    установление TCP соединения.
    В главе 18, при рассмотрении
    последовательности TCP сегментов, которые посылаются в процессе установления
    соединения, мы увидим, что моменты отправки ARP запросов полностью совпадают с
    отправкой сегментов TCP SYN.
    Обратите внимание на то, что в кабеле мы никогда не увидим TCP
    сегменты. Все что мы можем увидеть это ARP запросы. Пока не получен ARP отклик,
    TCP сегменты не могут быть отправлены, так как неизвестен аппаратный адрес
    назначения. Если запустить tcpdump в
    фильтрующем режиме, чтобы увидеть только данные TCP, вывода не будет вообще.

    Тайм-аут ARP кэша

    Для записей, вводимых в ARP кэш, обычно устанавливается тайм-аут. (В
    разделе “Команда arp” мы увидим,
    что команда arp позволяет системному
    администратору поместить в кэш определенную запись, и на нее тайм-аут
    распространяться не будет.) Реализации, произошедшие от Berkeley, обычно
    установливают тайм-аут, в 20 минут для завершенной записи и 3 минуты для
    незавершенной записи. (Мы видели незавершенную запись в предыдущем примере,
    когда заставили отправить ARP запрос на несуществующий хост.) Эти реализации
    обычно перестартовывают 20-минутный тайм-аут для записи каждый раз, когда эта
    запись используется.
    Требования к хостам Host Requirements RFC говорит, что запись должна удаляться по
    тайм-ауту, даже если данная запись используется, однако большинство реализаций,
    произошедших от Berkeley, не делают этого – они перестартовывают тайм-аут каждый
    раз, когда происходит обращение к записи.

    Уполномоченный агент ARP

    Уполномоченный агент ARP позволяет маршрутизатору отвечать на ARP
    запросы в одну сеть, в то время как запрашиваемый хост находится в другой сети.
    С помощью этого средства происходит обман отправителя, который отправил ARP
    запрос, после чего он думает, что маршрутизатор является хостом назначения,
    тогда как в действительности хост назначения находится “на другой
    стороне” маршрутизатора. Маршрутизатор выступает в роли уполномоченного
    агента хоста назначения, перекладывая пакеты от другого хоста.
    Для того чтобы лучше описать работу уполномоченных агентов ARP, мы
    рассмотрим пример. Из рисунка 3.10 видно, что система sun подключена к двум
    сетям Ethernet. Однако в действительности это не так, в чем можно убедиться,
    если сравнить этот рисунок с рисунком, который приведен на внутренней стороне
    обложки. Между sun и подсетью 140.252.1 находится маршрутизатор, который
    выступает в роли уполномоченного агента ARP, при этом все выглядело так, как
    будто sun находится в подсети 140.252.1. На рисунке 4.6 показано, что Telebit
    NetBlazer, названный netb, находится между подсетью и хостом sun.

    Рисунок 4.6 Пример уполномоченного ARP.
    Когда какой-либо другой хост в подсети 140.252.1 (скажем, gemini)
    хочет послать IP датаграмму хосту sun на адрес 140.252.1.29, gemini сравнивает
    идентификатор сети (140.252) и идентификатор подсети (1), и если они идентичны,
    отправляет ARP запрос в верхний Ethernet (на рисунке 4.6) на IP адрес
    140.252.1.29. Маршрутизатор netb распознает этот IP адрес как принадлежащий
    одному из dialup хостов и отвечает, отправив аппаратный адрес этого Ethernet
    интерфейса в кабель 140.252.1. Хост gemini посылает IP
    датаграмму в netb по Ethernet, а netb направляет датаграмму в sun по SLIP
    каналам с дозвоном (dialup). Это делает его прозрачным для всех хостов подсети
    140.252.1, так как хост sun действительно находится “позади”
    маршрутизатора netb.
    Если мы запустим команду arp на хосте gemini после общения с хостом
    sun, то увидим, что оба эти адреса принадлежат подсети 140.252.1 (netb и sun) и
    что им соответствует один аппаратный адрес. Как правило, это основная причина,
    по которой используется уполномоченный агент ARP.
    gemini % arp -a
    появится много строк про хосты из подсети
    140.252.1
    netb (140.252.1.183) at 0:80:ad:3:6a:80
    sun (140.252.1.29) at
    0:80:ad:3:6a:80
    Еще одна деталь на рисунке 4.6, которую необходимо объяснить, это
    отсутствие IP адреса под квадратиком, который обозначает маршрутизатор netb
    (SLIP канал). Почему на обоих концах SLIP канала нет IP адреса, как между bsdi и
    slip? В разделе “Команда ifconfig”
    главы 3, из вывода команды ifconfig, мы заметили, что адрес
    назначения SLIP канала 140.252.1.183. NetBlazer не требует наличия IP адресов на
    каждом конце SLIP канала. (Это позволяет сэкономить несколько столь ценных в
    настоящее время IP адресов.) Он определяет какой хост посылает пакет в
    зависимости от того по какому последовательному интерфейсу прибыл пакет, поэтому
    нет необходимости каждому хосту на SLIP канале использовать уникальный IP адрес
    для своего канала с маршрутизатором. Все dialup хосты используют адрес
    140.252.1.183 в качестве адреса назначения для своих SLIP каналов.
    Уполномоченный агент ARP обеспечивает доставку
    датаграмм к маршрутизатору sun, однако как это делают другие хосты из подсети
    140.252.13? Для направления датаграмм в другие хосты должна использоваться
    маршрутизация. Где-либо в сети 140.252 должны быть сделаны записи в таблице
    маршрутизации, поэтому все датаграммы, направляющиеся в подсеть 140.252.13 или в
    указанные хосты этой подсети, будут направляться на маршрутизатор netb. Этот
    маршрутизатор знает, как доставить датаграммы в их конечный пункт назначения,
    отправляя их через маршрутизатор sun.
    Уполномоченный агент ARP также называется смешанным (promiscuous ARP) или расщепленным (ARP hack). Эти имена появились благодаря другому
    использованию уполномоченных агентов ARP: они применялись для того, чтобы
    спрятать друг от друга две физические сети между которыми находился
    маршрутизатор. В этом случае обе физические сети использовали один и тот же
    идентификатор сети, так как маршрутизатор, находящийся между ними, был
    сконфигурирован как уполномоченный ARP агент, чтобы отвечать на ARP запросы из
    одной сети к хостам в другой сети. Эта техника использовалась в прошлом, чтобы
    спрятать группу хостов с более старой версией TCP/IP на отдельном физическом
    кабеле. Две причины, по которым приходилось отделять эти “устаревшие”
    хосты, заключались в том, что, во-первых, они не могли поддерживать разделение
    на подсети и, во-вторых, использовали старые широковещательные адреса
    (идентификатор хоста состоял из всех нулевых бит вместо современного стандарта,
    при котором идентификатор хоста состоит из единичных битов).

    “Беспричинный” ARP

    Другая характеристика ARP, которую стоит рассмотреть –
    “беспричинный” ARP (gratuitous ARP). Он проявляется, когда хост
    посылает ARP запрос, основываясь на собственном IP адресе. Обычно это делается,
    когда интерфейс конфигурируется во время загрузки.
    Если мы запустим tcpdump на хосте sun при загрузке
    хоста bsdi, то увидим пакет, показанный на рисунке 4.7.
    1  0.0                 0:0:c0:6f:2d:40 ff:ff:ff:ff:ff:ff arp 60:
    arp who-has 140.252.13.35 tell
    140.252.13.35
    Рисунок 4.7 Пример “беспричинного” ARP.
    (Мы использовали флаг -n программы tcpdump, чтобы
    напечатать адреса в цифровом десятичном виде вместо имен хостов.) В терминах
    полей ARP запроса, адрес протокола отправителя и адрес протокола назначения
    идентичны: 140.252.13.35 (что соответствует хосту bsdi). Адрес источника в
    заголовке Ethernet, 0:0:c0:6f:2d:40 как показано программой tcpdump,
    эквивалентен аппаратному адресу отправителя (из рисунка 4.4).
    “Беспричинный” ARP предоставляет две характеристики.
    Он позволяет хосту определить, существует ли другой хост с тем же
    самым IP адресом. Хост bsdi не ожидает отклика на свой запрос, однако если
    отклик принят, на консоли возникает сообщение об ошибке “обнаружен
    дублирующий IP адрес с Ethernet адресом: a:b:c:d:e:f”. Это предупреждение
    системному администратору о том, что одна из систем неправильно
    сконфигурирована.
    Если хост, посылающий “беспричинный” ARP, только что
    изменил свой аппаратный адрес (может быть потому, что хост был выключен, удалена
    интерфейсная плата и затем хост был перезагружен), этот пакет заставляет другой
    хост на кабеле, который имеет запись в своем кэше для старого аппаратного
    адреса, обновить ARP кэш соответствующим образом. Малоизвестный факт о протоколе
    ARP [Plummer 1982] заключается в том, что если хост получает ARP запрос для IP
    адреса, который он уже имеет в кэше, содержимое кэша обновляется аппаратным
    адресом отправителя (Ethernet адресом) из запроса ARP. Это делается для любого
    запроса ARP, полученного хостом. (Повторим, что ARP запросы широковещательные,
    поэтому такие действия осуществляются всеми хостами в сети каждый раз при
    появлении ARP запроса.) [Bhide, Elnozahy, and Morgan 1991]
    описывает приложения, которые используют эту характеристику ARP. Она позволяет
    запасному (backup) файл-серверу занять место вышедшего из строя сервера с
    использованием “беспричинного” ARP запроса с запасным аппаратным
    адресом, однако с тем же IP адресом, который имел вышедший из строя хост. При
    этом все пакеты, направляемые серверу, вышедшему из строя, будут посланы на
    запасной сервер, а пользовательские приложения не будут знать о том, что
    основной сервер вышел из строя.
    К сожалению, авторы затем отказались
    от этого подхода, так как он зависит от корректности реализации ARP на всех
    типах клиентов. Существуют различные типы ARP, которые не поддерживают эту
    спецификацию.
    Наблюдения за всеми системами в подсети, используемой в
    этой книге, показывает, что SunOS 4.1.3 и 4.4BSD используют “беспричинный” ARP при загрузке, а
    SVR4 не поддерживает эту характеристику.

    Команда arp

    Мы использовали эту команду с флагом -a, чтобы
    отобразить все записи ARP кэша. Существуют и другие опции.
    Суперпользователь может использовать опцию -d,
    чтобы удалить запись из ARP кэша. (Это было сделано перед запуском некоторых
    примеров, чтобы показать изменения ARP.)
    Записи могут быть добавлены с использованием опции -s. При использовании этой опции необходимо указать имя хоста и
    Ethernet адрес, IP адрес, соответствующий имени хоста, и Ethernet адрес
    добавляются в кэш. Подобная запись делается на постоянной основе (она не будет
    удалена из кэша по тайм-ауту), если только в конце командной строки не будет
    использовано ключевое слово temp.
    Ключевое слово pub в конце командной строки с
    опцией -s приведет к тому, что система будет функционировать как ARP агент для
    этого хоста. Система будет отвечать на ARP запросы для IP адресов,
    соответствующих имени хоста, при этом ответ будет содержать указанный Ethernet
    адрес. Если объявленный адрес это адрес самой отвечающей системы, это означает,
    что система работает как уполномоченный агент ARP для указанного имени
    хоста.

    Краткие выводы

    ARP это основной протокол, который используется практически во всех
    реализациях TCP/IP. Обычно его функционирование не зависит от используемых
    приложений или воли системного администратора. ARP кэш
    является фундаментом этой работы. Мы использовали команду arp, чтобы просмотреть
    или модифицировать кэш. Каждая запись в кэше имеет таймер, который используется
    для удаления незавершенных или завершенных записей. Команда arp отображает
    модифицированные записи в ARP кэше.
    Мы посмотрели обычное функционирование ARP и специализированные
    версии: уполномоченный агент ARP (когда маршрутизатор отвечает на ARP запросы
    для хостов, находящихся на другом интерфейсе маршрутизатора) и
    “беспричинный” ARP (посылающий ARP запросы для своего собственного IP
    адреса, обычно во время загрузки).

    Упражнения

    Вернемся к команде, которую мы исполнили,
    чтобы получить вывод, показанный на рисунке 4.4. Что произойдет, если после того
    как мы проверили локальный ARP кэш и он оказался пустым, мы введем
    команду
    bsdi % rsh svr4 arp -a

    чтобы проверить, что ARP кэш также пуст на хосте назначения? (Эта команда
    исполнит команду arp -a на хосте svr4.)
    Опишите тест, который позволит определить, корректно ли обрабатывает
    определенный хост “беспричинные” ARP запросы.
    Шаг номер 7 в разделе “Пример”
    может занять определенное время (миллисекунды), потому что пакет отправлен и ARP
    ожидает ответа. Как Вы думаете, обработает ли ARP несколько датаграмм, которые
    прибыли от IP на тот же адрес назначения в течение этого периода времени?
    В конце раздела “Примеры ARP”
    мы упомянули, что RFC Host Requirements и Berkeley
    реализации отличаются с точки зрения обработки тайм-аутов для активных записей
    ARP. Что произойдет, если клиент Berkeley постарается установить контакт с
    сервером, который был выключен и из него была удалена плата Ethernet? Изменится
    ли что-нибудь, если сервер выдаст “беспричинный” ARP запрос при
    загрузке?
    Назад
    Содержание
    Вперёд

  5. ПРОСТО Русик Ответить

    В ARP-таблице, помимо IP и MAC адреса, еще указывается тип связи, существует два типа записей:
    Статические записи создаются вручную, они существуют до тех пор, пока компьютер или маршрутизатор остается включенным.
    Динамические записи должны периодически обновляться. Если запись не обновлялась в течении определенного времени (приблизительно 2 минуты), то она исключается из таблицы. В ARP-таблице содержаться записи не обо всех узлах сети. А только те, которые активно участвуют в сетевых операциях. Такой способ хранения называется ARP-кэшем.
    В IPv6 функциональность ARP обеспечивает протокол NDP (Neighbor Discovery Protocol Протокол Обнаружения Соседей).
    RARP (англ. Reverse Address Resolution Protocol – Обратный протокол преобразования адресов) – протокол третьего (сетевого) уровня модели OSI, выполняет обратное отображение адресов, то есть преобразует аппаратный адрес в IP-адрес.

    Существует четыре типа ARP-сообщений:
    ARP-запрос(ARPrequest);
    ARP-ответ(ARP reply);
    RARP-запрос(RARP-request);
    RARP-ответ(RARP-reply).

    Структура заголовка ARP


    Hardware type (HTYPE) Каждый канальный протокол передачи данных имеет свой номер, который хранится в этом поле. Например, Ethernet имеет номер 0x0001
    Protocol type (PTYPE) Код сетевого протокола. Например, для IPv4 будет записано 0x0800
    Hardware length (HLEN) Длина физического адреса в байтах. Адреса Ethernet имеют длину 6 байт.
    Protocol length (PLEN) Длина логического адреса в байтах. IPv4 адреса имеют длину 4 байта.
    Operation Код операции отправителя: 1 в случае запроса и 2 в случае ответа.
    Sender hardware address (SHA) Физический адрес отправителя.
    Sender protocol address (SPA) Логический адрес отправителя.
    Targethardwareaddress (THA) Физический адрес получателя. Поле пусто при запросе.
    Target protocol address (TPA) Логический адрес получателя.
    Рассмотрим структуру заголовка ARP запроса (request) на примере перехваченного пакета с помощью сетевого анализатора Wireshark

    Рассмотрим структуру заголовка ARP ответа (reply) на примере перехваченного пакета с помощью сетевого анализатора Wireshark

  6. СоНыЙ Ответить

    Поскольку он работает на низком уровне, он требует прямых адресов в сети, что затрудняет работу приложений для создания сервера. Он не полностью использует возможности такой сети, как ethernet, которая применяется для отправки минимального пакета. Поскольку ответ с сервера содержит только одну небольшую часть информации, 32-разрядный интернет-адрес RARP формально описан в RFC903.

    ICMP-протокол

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

    Связующее звено

    Протокол управления интернет-протоколом позволяет шлюзам отправлять сообщения об ошибках или управлять сообщениями на другие шлюзы или хосты. ICMP предоставляет связь между программным обеспечением протокола Интернета между компьютерами. Это механизм сообщений так называемого специального назначения, добавленный разработчиками к протоколам TCP/IP. Это позволяет шлюзам в Интернете информировать об ошибках либо направлять информацию о непредвиденных обстоятельствах.
    Сам протокол IP не содержит ничего, чтобы помочь подключиться к тестированию отправителя или узнать о сбоях. Отчеты об ошибках и их исправлении сообщаются посредством ICMP только в отношении исходного источника. Он должен связывать ошибки с отдельными прикладными программами и предпринимать действия для устранения проблем. Таким образом, он предоставляет возможность для шлюза сообщать об ошибке. При этом он не полностью определяет действие, которое необходимо предпринять для исправления неполадок.

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

    Формат сообщения ICMP

    Оно насчитывает в себе три поля:
    8-битное целочисленное поле TYPE, идентифицирующее сообщение;
    8-битовое поле CODE, которое предоставляет дополнительную информацию о его типе;
    16-разрядное поле CHECKSUM (ICMP использует одну и ту же контрольную сумму алгоритма, которая охватывает только сообщение этого протокола).
    Кроме того, сообщения ICMP, информирующие об ошибках, во всех случаях включают в себя заголовок и начальные 64 бита данных дейтаграммы, вызывающих проблему.

    Запросы и ответы

    Протоколы TCP/IP предоставляют средства, помогающие сетевым менеджерам или пользователям идентифицировать сетевые проблемы. Один из чаще всего используемых инструментов отладки делает вызовы эхо-запроса ICMP и сообщения эхо-ответа. Хост или шлюз отправляет сообщение к определенному пункту назначения.
    Любой компьютер, который принимает эхо-запрос, создает ответ, и возвращает его исходному отправителю. Запрос включает в себя необязательную область направляемых данных. Ответ имеет в себе копию данных, отправленных в запросе. Эхо-запрос и отклик, связанный с ним, могут применяться для проверки доступности достижимой цели и отклика.
    Поскольку как запрос, так и ответ направляются в IP-датаграммах, успешное его получение подтверждает, что система исправно работает. Для этого должны быть соблюдены следующие условия:
    IP-программное обеспечение источника должно маршрутизировать датаграмму;
    Промежуточные шлюзы пунктом назначения и источником должны работать и правильно маршрутизировать дейтаграмму;
    Должен быть запущен конечный компьютер, и на нем должно работать как программное обеспечение ICMP, так и IP;
    Маршруты в шлюзах по обратному пути должны быть правильными.

    Как это работает?

    Работа протоколов ARP и ICMP тесно связана. Всякий раз, когда ошибка предотвращает маршрутизацию или доставку шлюзу датаграммы, он отправляет сообщение о недоступности адресата обратно в исходный код, а затем удаляет датаграмму. Неисправляемые неполадки в сети обычно подразумевают сбои в передаче данных. Поскольку сообщение включает в себя короткий префикс дейтаграммы, вызывавшей проблему, источник точно знает, какой из адресов недоступен. Направление может быть недоступно, поскольку аппаратное обеспечение временно не работает, отправитель сообщил несуществующий адрес назначения или потому, что шлюз не имеет маршрута к целевой сети.
    Несмотря на то, что шлюзы отправляют не доходящие сообщения по назначению, если они не могут маршрутизировать или доставлять датаграммы, не все такие ошибки могут быть обнаружены. Если дейтаграмма содержит параметр исходного маршрута с неправильными данными, она может инициировать сообщение об ошибке маршрута источника.

Добавить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *