У нас есть набор устройств, соединенных в кольцо, которые используют STP (используяhttps://github.com/mstpd/mstpdна данный момент) для избежания проблем с петлей. Мы увидели, что хотя stp может адаптировать сеть, когда соединение полностью разорвано, он игнорирует ситуацию, когда одно из соединений сталкивается с большой потерей пакетов.
Поддерживает ли это stp? То есть, учитывать потерю пакетов в сетевых соединениях в стоимости, связанной с данным интерфейсом, и адаптировать сеть на основе этого? Если нет, есть ли хорошие альтернативы?
Мы столкнулись с этим, потому что были некоторые адаптеры usb to eth, которые в некоторых случаях выходили из строя после перезагрузки или после ручного переподключения кабеля eth. Хотя проблема, скорее всего, связана с драйвером/ОС, она очень хорошо показала, что stp по-прежнему выбирает частично неисправный канал, что приводит к постоянной потере 50% пакетов вместо 0% избегания этого канала.
решение1
Мы увидели, что хотя stp может адаптировать сеть, когда связь полностью разорвана, он игнорирует ситуацию, когда одна из связей видит большую потерю пакетов. Поддерживает ли это stp?
Качество связи не имеет значения для STP и не предназначено для его обработки.
STP работает между коммутаторами. Если теряется больше, чем несколько пакетов, соединение плохое и его нужно исправить.
Единственный способ избежать этих плохих ссылок — это мониторинг и отключение порта при определенной частоте ошибок. Поскольку ссылки обычно практически безошибочны, это не то, что вы обычно найдете в коммутаторе.
В качестве обходного пути можно использовать приоритеты портов, чтобы STP избегал заведомо неисправного соединения, сохраняя при этом его в качестве отказоустойчивого.