Продолжение преобразования адресов
Узел, отправляющий ARP-запрос, заполняет в пакете все поля, кроме поля искомого локального адреса (для RARP-запроса не указывается искомый IP-адрес). Значение этого поля заполняется узлом, опознавшим свой IP-адрес.
Новая запись в ARP-таблице появляется автоматически, спустя несколько миллисекунд после того, как она потребовалась. Как вы помните, ранее на шаге 2 исходящий IP-пакет был поставлен в очередь. Теперь с использованием обновленной ARP-таблицы выполняется преобразование IP адреса в Ethernet-адрес, после чего Ethernet-кадр передается по сети. Полностью порядок преобразования адресов выглядит так:
1. По сети передается широковещательный ARP-запрос.
2. Исходящий IP-пакет ставится в очередь.
3. Возвращается ARP-ответ, содержащий информацию о соответствии IP- и Ethernet-адресов. Эта информация заносится в ARP-таблицу.
4. Для преобразования IP-адреса в Ethernet-адрес у IP-пакета, поставленного в очередь, используется ARP-таблица.
5. Ethernet-кадр передается по сети Ethernet.
Короче говоря, если с помощью ARP-таблицы не удается сразу осуществить преобразование адресов, то IP-пакет ставится в очередь, а необходимая для преобразования информация получается с помощью запросов и ответов протокола ARP, после чего IP-пакет передается по назначению.
Если в сети нет машины с искомым IP-адресом, то ARP-ответа не будет и не будет записи в ARP-таблице. Протокол IP будет уничтожать IP-пакеты, направляемые по этому адресу. Протоколы верхнего уровня не могут отличить случай повреждения сети Ethernet от случая отсутствия машины с искомым IP-адресом.
Некоторые реализации IP и ARP не ставят в очередь IP-пакеты на то время, пока они ждут ARP-ответов. Вместо этого IP-пакет просто уничтожается, а его восстановление возлагается на модуль TCP или прикладной процесс, работающий через UDP. Такое восстановление выполняется с помощью таймаутов и повторных передач. Повторная передача сообщения проходит успешно, так как первая попытка уже вызвала заполнение ARP-таблицы.
Следует отметить, что каждая машина имеет отдельную ARP-таблицу для каждого своего сетевого интерфейса.
ARP-таблицы имеют динамический характер: каждая запись в ней "живет" определенное время после чего удаляется. Но администратор сети может осуществить запись в ARP-таблицу, которая там будет храниться "вечно".
В глобальных сетях администратору сети чаще всего приходится вручную формировать ARP-таблицы, в которых он задает, например, соответствие IP-адреса адресу узла сети X.25, который имеет смысл локального адреса.
В последнее время наметилась тенденция автоматизации работы протокола ARP и в глобальных сетях. Для этой цели среди всех маршрутизаторов, подключенных к какой-либо глобальной сети, выделяется специальный маршрутизатор, который ведет ARP-таблицу для всех остальных узлов и маршрутизаторов этой сети.
При таком централизованном подходе для всех узлов и маршрутизаторов вручную нужно задать только IP-адрес и локальный адрес выделенного маршрутизатора. Затем каждый узел и маршрутизатор регистрирует свои адреса в выделенном маршрутизаторе, а при необходимости установления соответствия между IP-адресом и локальным адресом узел обращается к выделенному маршрутизатору с запросом и автоматически получает ответ без участия администратора.
Коды (для справки)
ARP-таблицы строятся согласно документу RFC-1213, и для каждого IP-адреса содержит четыре кода:
ifindex | Физический порт (интерфейс), соответствующий данному адресу; |
Физический адрес | MAC-адрес, например Ethernet-адрес; |
IP-адрес | IP-адрес, соответствующий физическому адресу; |
тип адресного соответствия | это поле может принимать 4 значения: 1 - вариант не стандартный и не подходит ни к одному из описанных ниже типов; 2 - данная запись уже не соответствует действительности; 3 - постоянная привязка; 4 - динамическая привязка; |
Таблица 3. Коды оборудования
Код типа оборудования | Описание |
Ethernet (10 Мбит/с) | |
Экспериментальный Ethernet (3 Мбит/с) | |
Радиолюбительская связь через X.25 | |
Proteon ProNET маркерная кольцевая сеть (Token Ring) | |
Chaos | |
Сети IEEE 802 | |
ARCNET |
Таблица 4. Коды протоколов (для IP это 0800H).
Код типа протокола | Описание | |
Десятичное значение | Hex | |
XEROX PUP | ||
PUP трансляция адреса | ||
XEROX NS IDP | ||
DOD Internet протокол (IP) | ||
X.75 Internet | ||
NBS Internet | ||
ECMA Internet | ||
Chaosnet | ||
X.25 уровень 3 | ||
Протокол трансляции адреса (ARP) | ||
XNS совместимость | ||
0A00 | Xerox IEEE-802.3 PUP | |
Bercley Trailer | ||
BBN Simnet | ||
DEC MOP Dump/Load | ||
DEC MOP удаленный терминал | ||
DEC DECnet фаза IV | ||
DEC LAT | ||
DEC | ||
DEC | ||
HP Probe | ||
Excelan | ||
Реверсивный протокол ARP (RARP) | ||
DEC LANbridge | ||
Appletalk | ||
814C | SNMP |
Программа ARP
Программа ARPпозволяет отобразить ARP-таблицу на экране.
В командной строке указывается команда ARP. Эта команда имеет следующие флаги:
- a - команда отображает всю таблицу,
- d - позволяет стереть запись,
- s - служит для внесения записей в таблицу
Флаги - d и - s доступны для операторов с системными привилегиями.
Команда ARP без флагов с адресом или именем компьютера выдаст соответствующую строку таблицы:
arp 192.148.166.129
Name: semenov.itep.ru
Address: 192.148.166.129 (IP-адрес моей персональной ЭВМ)
Aliases: yas
А команда
arp nb
выдаст запись
nb (193.124.224.60) at 0:80:ad:2:24:b7 (запись для NetBlazer ИТЭФ)
ARP запросы могут решать и другие задачи.
При загрузке сетевого обеспечения компьютера ARP запрос может выяснить, не присвоен ли идентичный IP-адрес какому-либо другому объекту в сети.
При смене физического интерфейса такой запрос может инициировать смену записи в ARP-таблице.
ARP proxy
(самостоятельно)
Протоколы верхнего уровня не могут отличить случай повреждения в среде Ethernet от случая отсутствия узла с искомым IP-адресом. Во многих реализациях в случае, если IP-адрес не принадлежит локальной сети, внешний порт сети (Gateway) или маршрутизатор откликается, выдавая свой физический адрес (режим прокси-ARP).
ARP (proxy) - смешанный протокол - разновидность протокола ARP, служая для того, чтобы один и тот же сетевой префикс адреса можно было использовать для двух сетей.
Предположим, мы имеем сеть из четырех ЭВМ (1-4; рис. 4.4.7.1), которую бы мы хотели соединить с другой сетью из четырех ЭВМ (5-8), причем так, чтобы машины взаимодействовали друг с другом так, будто они принадлежат одной сети.
Решить эту проблему можно, соединив эти сети через маршрутизатор M, работающий в соответствии со смешанным протоколом ARP (функционально это IP-мост). Маршрутизатор знает, какая из машин принадлежит какой физической сети. Он перехватывает широковещательные ARP-запросы из сети 1, относящиеся к сети 2, и наоборот. В обоих случаях в качестве физического адреса маршрутизатор возвращает свой адрес. В дальнейшем, получая дейтаграммы, он маршрутизирует их на физические адреса по их IP-адресам.
Допустим, первичная сеть имеет сетевой префикс:
195.20.140.0
Вторичная сеть имеет префикс:
195.20.142.0
Если будет сформирован ARP-запрос от компьютера 1 к компьютеру 4, то будет сформирован соответствующий широковещательный кадр и будет возвращен MAC-адрес сетевой карты компьютера 4. Если же будет ARP-запрос с IP-адресом компьютера 7 из вторичной сети, то будет возвращен ARP- ответ с MAC-адресом порта маршрутизатора. Соответственно, кадры IP-пакетами (или фрагментами) от компьютера 1 будут направлены к компьютеру 7 через порт маршрутизатора.
Рис. 2. Использование протокола proxy ARP
Не трудно видеть, что в смешанном протоколе ARP нескольким IP-адресам ставится в соответствие один и тот же физический адрес. Поэтому системы, где предусмотрен контроль за соответствием физических и IP-адресов, не могут работать со смешанным протоколом ARP.
Главным преимуществом этого протокола является то, что он позволяет путем добавления одного маршрутизатора (Gateway) подключить к Internet’y еще одну сеть, не изменяя таблиц маршрутизации в других узлах. Этот протокол удобен для сети, где есть компьютер, не способный работать с субсетями.
Протокол используется при построении сетей Internet.