Назад | Перейти на главную страницу

Постоянные записи ARP становятся неразрешенными

У нас есть решение, в котором несколько серверов Solaris находятся в частной VLAN, и в этой VLAN нет прокси-серверов arp, поэтому для доступа к соседним серверам мы должны добавить статические записи arp. Каждый другой сервер в подсети, находящейся в этом частном vlan, должен иметь MAC-адрес шлюза.

например

#!/sbin/sh

ARP=/usr/sbin/arp

${ARP} -s  10.1.2.1 00:10:20:30:40:50 permanent
${ARP} -s  10.1.2.2 00:10:20:30:40:50 permanent
${ARP} -s  10.1.2.3 00:10:20:30:40:50 permanent
${ARP} -s  10.1.2.4 00:10:20:30:40:50 permanent
${ARP} -s  10.1.2.5 00:10:20:30:40:50 permanent

Предоставление нам записей arp:

arp -an
Net to Media Table: IPv4
Device   IP Address               Mask      Flags      Phys Addr
------ -------------------- --------------- -------- ---------------
oce1   10.1.2.1         255.255.255.255 SA       00:10:20:30:40:50
oce1   10.1.2.2         255.255.255.255 SA       00:10:20:30:40:50
oce1   10.1.2.3         255.255.255.255 SA       00:10:20:30:40:50
oce1   10.1.2.4         255.255.255.255 SA       00:10:20:30:40:50
oce1   10.1.2.5         255.255.255.255 SA       00:10:20:30:40:50

Проблема, с которой мы сталкиваемся, заключается в том, что по какой-то причине очень скоро записи будут отмечать «U», а затем станут невозможными перед исчезновением из таблицы ARP. В обычных файлах журнала причин не видно. Системный журнал настроен:

*.info;auth.none                /var/adm/messages

Любые предложения относительно того, в чем может быть проблема, с благодарностью принимаются. Solaris 10, x86 - это ОС.

Моя первая рекомендация - изменить сценарий на «постоянный паб», а не просто на «постоянный».

Итак, из этого;

#!/sbin/sh
ARP=/usr/sbin/arp
${ARP} -s  10.1.2.1 00:10:20:30:40:50 permanent
${ARP} -s  10.1.2.2 00:10:20:30:40:50 permanent
${ARP} -s  10.1.2.3 00:10:20:30:40:50 permanent
${ARP} -s  10.1.2.4 00:10:20:30:40:50 permanent
${ARP} -s  10.1.2.5 00:10:20:30:40:50 permanent

К этому;

#!/sbin/sh
ARP=/usr/sbin/arp
${ARP} -s  10.1.2.1 00:10:20:30:40:50 permanent pub
${ARP} -s  10.1.2.2 00:10:20:30:40:50 permanent pub
${ARP} -s  10.1.2.3 00:10:20:30:40:50 permanent pub
${ARP} -s  10.1.2.4 00:10:20:30:40:50 permanent pub
${ARP} -s  10.1.2.5 00:10:20:30:40:50 permanent pub

или просто измените скрипт на использование "arp -f имя файла"как и предполагалось. Из справочной страницы Solaris 10 arp;

 OPTIONS ...
 -f    Read the file named filename and set multiple  entries
       in  the  ARP  tables. Entries in the file should be of
       the form:
           hostname MACaddress [temp] [pub] [trail] [permanent]
       See the -s option for argument definitions.

Во-вторых, временно увеличьте уровень детализации системного журнала, изменив syslog.conf настройки и просмотрите, что происходит.

+ Изменить syslog.conf из этого;

*.info;auth.none /var/adm/messages

к этому;

*.info;auth.none;*.debug /var/adm/messages

Затем обновите службу системного журнала; svcadm -v refresh svc:/system/system-log:default

ProTIP: Если вы видите это в журналах;

ar_entry_query: Could not find the ace for source address #.#.#.#"

Тогда это означает, что arp удаляет записи для ваших физических интерфейсов. Примерно месяц назад я столкнулся с той же проблемой на нескольких серверах с ... проблемными интерфейсами, и патч ядра (120012-14) позаботился об этом.

Если в рассматриваемой системе настроены виртуальные IP-адреса и / или привязка портов, то потребуется еще несколько исправлений.