Я просто предполагаю, что arp - моя проблема ...
У меня настроен кластер серверов Linux drbd, и из-за некоторых проблем с питанием мне пришлось отключить переключатель, который соединяет два сервера. В результате оба сервера стали основными и использовали один и тот же IP-адрес в течение нескольких секунд. (это вызвало раздвоение мозга состояние, но это уже другая проблема)
Моя проблема в том, что теперь некоторые серверы, похоже, могут видеть общий IP-адрес кластера, а некоторые нет. Мне интересно, может ли это быть ситуация, когда некоторые коммутаторы / порты отправляют трафик на один сервер, а некоторые на другой?
И если это проблема, как я могу это решить?
Если это действительно проблема arp, проблема будет ограничиваться сетевым устройством, выполняющим маршрутизацию (поскольку это то, для чего предназначен ARP - сопоставление адресов L3 (IP) с адресами L2 (MAC)) или, возможно, в кеше ARP сервера, сидящего в той же IP-подсети. Это не будет включать переключатель, если это не переключатель L3.
Чтобы решить проблему на маршрутизаторе cisco, вы можете выполнить следующую команду, чтобы очистить кеш arp и разрешить ему восстановление:
clear arp
Чтобы удалить неверную запись arp с сервера, который может кэшировать неверную информацию (то есть не сервер, который не может быть достигнут, а сервер, который не может достичь), вы можете вручную удалить фиктивную запись из ARP cache, где IP-адрес - это IP-адрес недоступного сервера. Обратите внимание, что этот синтаксис действует как в Linux, так и в Windows:
arp -d <ip-address>
Вы также можете отправить бесплатный ARP с сервера, который недоступен, чтобы заставить другие хосты в той же IP-подсети обновить свои кеши ARP (у меня это есть в моих заметках, но я признаю, что не использовал его долгое время). времени. Я не могу вспомнить, позволяет ли это пропустить шаги, описанные выше, или просто сокращает процесс добавления записи arp на других хостах после выполнения команд выше):
arping -q -A -c 1 -I eth0 <ip-address>
arping -q -U -c 1 -I eth0 <ip-address>
Все вышеперечисленное относится к проблеме ARP, но вы специально упоминаете переключатель в своем вопросе. Если это коммутатор, который использует только L3 для управления, тогда проблемы с потоком данных должны быть связаны с кешем MAC, а не с кешем ARP. В этом случае вы можете запустить на коммутаторе следующее, чтобы очистить содержимое динамического кеша:
clear mac-address-table dynamic
Вы можете использовать arp
в Linux, чтобы удалить конкретную запись с -d
переключатель. Если у вас есть управляемые коммутаторы, вы, вероятно, можете очистить кеш arp, с cisco это будет просто clear arp
. Помимо этого, вы, конечно, всегда можете просто выключить и включить все переключатели, и они должны перестроить свои таблицы.
выключено ли питание также из-за этого отключения электроэнергии? возможно, они потеряли последнее изменение конфигурации, которое гласит: «для этого MAC-адреса, затем пакет для этих 2 портов».
Коммутатор Cisco должен быть настроен как концентратор для виртуального Mac, поэтому они отправляют все пакеты, связанные с виртуальным Mac, на оба хоста.