Comments 13
у вас же в первой ссыле написано: Multiple Spanning Tree Protocol (MSTP). Почему MST?
Думаю, это тот самый случай, где будет уместен ответ "так исторически сложилось" :). Поясню, смысл в том, что MSTP - опирается на RSTP, но дополнительно использует концепцию деревьев, так что получается протокол всё же тут другой, а именно RSTP. Опять же, некоторая игра слов и в документации встречал оба варианта. Cisco везде указывает MST, а Juniper пишет MSTP.
С другой стороны, наверное правильно брать референс с какого-то более надежного источника, всё-таки вендора могут и что-то там себе придумать, поэтому вот нашёл статью на IEEE - https://www.ieee802.org/1/files/public/docs2005/qrev-rouyer-mstp-0105.pdf. В общем правильный вариант всё-таки MSTP.
Тот самый случай, когда статья полностью на эльфийском)
Какие заметные преимущества и в каких условиях MSTP даёт перед STP?
А так-то в ядре много чего нет. Какие-нибудь OSPFы тоже идут отдельными демонами.
Ну тут не совсем так, по крайней мере если я правильно понимаю структуру. Есть отдельные внешние демоны - это ровно то, что я рекомендовал к использованию - mstpd, а есть встроенный пакет bridge_mst.c внутрь модуля iproute2, который идёт в составе ядра, вот с ним и не вышло, хотя по идее, казалось бы что должно.
MSTP перед STP имеет основное преимущество в том, что во-первых, он быстрее, т.к. использует RSTP, во-вторых имеет возможность делить разные вланы на разные деревья и поэтому влияние на одно, не приводит к влиянию на другое, что в случае с классическими STP и RSTP не так. Есть ещё вариант от Cisco, PVST+, где они делают каждое дерево, под каждый влан, но тут минус в том, что в MSTP можно самому поуправлять и сделать соотношение VLAN:INSTANCE равное 1:1, так и N:1.
Некропостинг режим. В самом ядре реализован только механизм состояний портов + ядерная реализация основного стандарта STP (802.1d который). Более навороченные разновидности STP реализуются через user space helper демона - mstpd или какого-нибудь другого. Но тут была ещё одна сложность - MSTP долго не поддерживался ядром из-за архитектурных ограничений реализации ethernet bridge - он имеет поддержку состояния только на уровне всего порта, а для MSTP требуется поддержка состояния на уровне порт+влан. В версии 6.0+ это вроде как исправили, но в mstpd поддержку этого всего не завезли полноценно, когда я смотрел его последний раз.
MST в Linux