В некоторых случаях бывает полезно просмотреть или изменить содержание
ARP-таблицы, например, когда Вы подозреваете, что двойной адрес является
причиной сетевой неустойчивости. Утилита arp была
сделана для исправления подобных вещей. Синтаксис командной строки:
arp [-v] [-t hwtype] -a [hostname]
arp [-v] [-t hwtype] -s hostname hwaddr
arp [-v] -d hostname [hostname]
|
Аргумент hostname может быть как
именем, так и IP адресом в стандарте dotted quad.
Первая строка отображает ARP-запись для IP-адреса, указанного хоста или
всех известный хостов, если hostname не
задается. Например, вызов arp на
vlager может выдать:
# arp -a
IP address HW type HW address
172.16.1.3 10Mbps Ethernet 00:00:C0:5A:42:C1
172.16.1.2 10Mbps Ethernet 00:00:C0:90:B3:42
172.16.2.4 10Mbps Ethernet 00:00:C0:04:69:AA
|
Это показывает Ethernet-адреса vlager,
vstout и vale
.
При использовании опции -t Вы увидите информацию
только о том типе аппаратных средств, который укажете. Это могут быть:
ether, ax25
или pronet для Ethernet 10Mbps, AMPR AX.25 и
IEEE 802.5 token ring, соответственно.
Опция -s используется, чтобы добавить
Ethernet-адрес хоста к ARP-таблицам. Аргумент
hwaddr определяет адрес аппаратных средств, который по умолчанию
предполагается Ethernet-адресом, указанным как шесть шестнадцатиричных байт,
разделяемых двоеточиями. Вы можете также устанавливать адреса для других
типов аппаратных средств, используя опцию -t.
Одна из проблем, которая может потребовать, чтобы Вы вручную добавили
IP-адрес к ARP-таблице, это когда по некоторым причинам ARP-запросы для
удаленного хоста не доходят, например, когда есть сбой ARP-драйвера, или
имеется другой хост в сети, который ошибочно опознает себя с IP-адресом
другого хоста. Твердая установка IP-адреса в ARP-таблице также является
мерой защиты себя от хостов в Вашем Ethernet, которые прикидываются кем-то
другим.
Вызов arp с использованием ключа
-d удаляет все ARP-записи, касающиеся данного хоста.
Это может быть необходимо, чтобы вынудить интерфейс повторно получить
Ethernet-адрес для данного IP. Это полезно, когда переконфигурированная
система имеет неправильную ARP-информацию.
Опция -s может также использоваться, чтобы создать
proxy ARP. Это специальная техника когда хост,
скажем, gate действует как gateway для
другого хоста, назовем его fnord, делая вид,
что оба адреса относятся к тому же самому хосту, а именно,
gate. Это делается так: на
gate создается ARP-запись о
fnord, которая указывает на его собственный
Ethernet-интерфейс. Теперь, когда хост посылает ARP-запрос о
fnord, gate
будет возвращать ответ, содержащий собственный Ethernet-адрес. Спрашивающий
хост будет посылать все пакеты gate, который
перенаправит их к fnord.
Эта схема может быть необходима, например, когда Вы хотите работать с
fnord с DOS-машины с нестандартным TCP,
которое плохо работает с маршрутизацией. Когда Вы используете proxy ARP,
DOS-машине будет казаться, что fnord
находится в локальной подсети, так что ей не требуется что-либо знать
относительно маршрутов и gateway.
Другое очень полезное применение proxy ARP, когда один из Ваших хостов
действует как gateway к некоторому другому хосту только временно, например,
по телефону. В предыдущем примере мы уже столкнулись с laptop
vlite, который был связан с
vlager через PLIP-связь только в небольшом
промежутке времени. Конечно, это будет работать только, если адрес хоста, для
которого Вы хотите обеспечить proxy ARP, находится в той же самой IP-подсети,
что и Ваш gateway. Например, vstout мог бы
быть proxy ARP для любого хоста из подсети Brewery (
172.16.1.0), но не для хоста из подсети Winery
(172.16.2.0).
Требуемые действия для обеспечения proxy ARP для
fnord приведены ниже. Конечно, Ethernet-адрес
должен быть от gate:
# arp -s fnord 00:00:c0:a1:42:e0 pub
|
Запись proxy ARP может быть удалена: