Я викину на розгляд те, що більшість вважатиме трохи неортодоксальним рішенням.
Подумайте, як вирішити це за допомогою рівня 3 замість рівня 2.
Поставте обидва перемикачі на свої місця, і НЕ з’єднуйте їх. Підключіть маршрутизатор (и) до обох комутаторів. Підключіть свої сервери HP до обох комутаторів. Використовуйте два різних IP-блоки внутрішньо для того, щоб сервери могли спілкуватися з маршрутизатором (іми) ... по одному блоку на кожному комутаторі (і, отже, інтерфейс на маршрутизаторах (іх) та серверах). Поставте IP-адреси, які ви фактично використовуєте для спілкування з серверами, на інтерфейс зворотного зв'язку. Помістіть quagga на сервери та запустіть OSPF (у вашому масштабі, просто киньте все в області 0, не biggie) ... переконайтеся, що адреси / інтерфейси циклічного включення в конфігурацію OSPF. Покладіть OSPF на маршрутизатор (и).
Voila ', маршрутизатор (и) дізнаються про адреси, які ви насправді використовуєте для розмови з серверами через OSPF як маршрути хоста ... Якщо комутатор загине, відповідні адреси відходять, а трафік перенаправляється на інший комутатор .
Як бонус, якщо ви використовуєте різну IP-адресу для різних служб, які запускаєтесь на ваших серверах Linux, ви можете переміщати служби та пов’язані з ними IP-адреси безперешкодно, а мережа адаптується чисто та легко.
Немає небезпеки в цій установці поганої поведінки в ситуації з розділеним мозком, якщо зв’язок між двома комутаторами не працює ... немає небезпеки поганої поведінки з боку FHRP, таких як VRRP, HSRP тощо), немає небезпеки падіння комутаторів повернутися до неефективно затопленого руху, якщо ви зіткнетеся з асиметричною ситуацією.
Я використовую це рішення в набагато більшій обстановці, і його НЕОБХІДНО працює , він надзвичайно надійний і стійкий як до відмов обладнання, так і до помилок у налаштуваннях людини.