Одними из основных проблем в сети являются «петли» и «единая точка отказа».
Традиционным способом победить «петли» является использование протокола STP. Но в то же время этот протокол приносит проблему неэффективного использования пропускной способности портов и линков коммутатора. При наличии нескольких возможных линков, активным будет один, все-равно, что купить домой крутой и дорогой компьютер для игры в пасьянс «Косынку» — не используется весь потенциал устройства. Низкая сходимость, особенно в сложных топологиях. А если в сети бегает голос или потоковое видео? Путь между двумя соседними коммутаторами может идти через корневой – не оптимально.
Традиционным способом уйти от «единой точки отказа» и сделать сеть отказоустойчивой является использование стека. Не поспоришь, вариант хорош, но все-равно возникает ряд вопросов: какое будет время сходимости при выходе из строя master-node? Хватит ли пропускной способности стека между коммутаторами (хотим больше скорость – платим больше)? Как себя будет вести стек при “split-brain”? Об этом под катом.
Эти проблемы и вопросы с успехом может решить технология Extreme Networks – M-LAG.
Справедливости ради стоит упомянуть о том, что подобные технологии есть и других производителей, но с некоторыми различиями. Также, часто используют комбинации, например: стек + M-LAG.
В данной статье мы рассмотрим именно M-LAG от Extreme Networks как отдельную технологию.
M-LAG – Multi-Chassis Link Aggregation, модификация обычной аггрегации. Отличие и преимущество в том, что в данном случае линки начинаются на одном устройстве, а заканчиваются на двух, то есть резервирование не только линка как в LAG, но и резервирование устройства.
Со стороны Device1 настраивается обычный LAG, со стороны Device2 и Device3 все немного сложнее.
Давайте рассмотрим принцип работы M-LAG.
Между Device2 и Device3 должен быть линк на котором настраивается ISC (Inter-Switch Connection).
ISC покрывает несколько задач:
1. Поскольку со стороны Device1 настроен LAG, то в зависимости от алгоритма балансировки, пакеты могут передаваться разным коммутаторам. Поскольку это 2 разных коммутатора, data plane каждого работает самостоятельно – обеспечивается загрузка обоих линков. Но нам нужна синхронная и совместная работа control plane обоих устройств (синхронизация таблиц коммутации), для этого и нужен ISC (Inter-Switch Connection).
2. Из рисунка видно, что у нас организовалась «петля». ISC блокирует клиентский трафик при нормальной работе, если нет падений линка или отказа коммутаторов.
Также, стоит упомянуть особенность M-LAG: коммутаторы между которыми настраивается ISC должны быть одного производителя, мало того, строго рекомендуется чтоб эти коммутаторы были одного типа и серии, с одинаковой версией ExtremeXOS. К тому же желательно использовать коммутаторы с одинаковым количеством портов, например: Summit X460-24t & Summit X460-24x; BlackDiamond 8900-G48X-xl & BlackDiamond 8900-G48T-x. В то же время, нижестоящие или вышестоящие устройства, на которых настраивается LAG могут быть различных производителей.
Справедливости ради нужно указать, что на данный момент можно настроить 1 пир M-LAG, но в то же время количество M-LAG-ов для каждой пары коммутаторов может достигать 768.
M-LAG поддерживается всеми коммутаторами Extreme Networks за исключением L2 коммутаторов.
Это все относится к обычной работе M-LAG. Но что же происходит при появлении fault?
Рассмотрим несколько вариантов отказов:
1. Выход из строя одного из пары коммутаторов:
В этом случае все просто – весь трафик плавно утечет на линк между Device1 и Device3.
2. Выход из строя линка между Device2 и Device1
Тут открывается ISC и трафик перенаправляется через него. Для исключения данного отказа используется схема, когда на таких линках, например: между Device2 и Device1 настраивается LAG
3. Выход из строя ISC (так называемый split-brain)
В данном случае Device1 не будет знать об отказе ISC, Device2 и Device3 сохранят свои System Identifier, трафик от Device1 будет отправляться согласно алгоритма балансировки, а Device2 и Device3 будут направлять трафик согласно своих правил коммутации.
В то же время для исключения проблемы пропадания линка ISC на нем настраивается LAG:
Собрав стенд, мы можем посмотреть время сходимости при имитации отказов.
При экспериментировании:
1. Отключались линки между Summit X440-48t и X460-24x, X460-24t
2. Отключались линки между Summit X460-24p и X460-24x, X460-24t
3. Отключался линк ISC между X460-24x и X460-24t
Extreme Networks утверждает, что время сходимости:
Попробуем запустить PING от одного ПК к другому, при выставлении интервала ICMP Echo 50мс:
Видно, что время сходимости составляет не более 50 мс.
Причем, данные показаны при выходе из строя линка LAG, а при пропадании линка ISC — потерь пакетов вообще не наблюдалось.
Но мы не сдаемся и посмотрим при интервале ICMP Echo = 10мс:
При пропадании линка LAG время сходимости равно 40-70 мс, а при пропадании ISC потерь пакетов вновь не наблюдается.
На мой взгляд, результаты тестирования показали замечательные значения сходимости при отказах, да и получше STP.
Из чего делаем вывод: M-LAG отличная альтернатива устоявшимся технологиям STP и Стекирования, легок в конфигурировании, да и не требует дополнительного капиталовложения, не лицензируется, доступен в базовой лицензии ExtremeXOS.
Заключение:
Хотелось бы отметить, что M-LAG отличная технология, которая имеет огромный спектр применений, но она не является «пилюлей от всех болезней», поэтому применять можно в совокупности с тем же STP и стеком. Все зависит от топологии сети и задач которые ставятся перед ней. Также, есть перспективные, более интересные, на мой взгляд, решения, такие как TRILL (Transparent Interconnection of Lots of Links) или набирающий бешенной популярности SDN (Software-Defined Networking), но это уже отдельная тема для статьи. Да и коммутаторы Extreme Networks имеют поддержку данных технологий.
Автор: stmn