Отключение поддержки STP на порту коммутатора роутера
В некоторых случаях, при подключении домашних устройств к роутеру по проводу (телевизор, NAS, компьютер, ТВ-приставка и др.) можно наблюдать, что постоянно на сетевом порту пропадает/появляется линк. Это может быть связано с работой протокола STP (Spannig Tree Protocol), который используется в роутерах Keenetic для организации Mesh Wi-Fi-системы.
В этом случае в системном журнале роутера можно наблюдать сообщения вида (в показанном примере проблема на порту 2
):
[I] 01:08:14 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link up at port 2 (1000FD/AN). [I] 01:08:14 kernel: br0: port 1(eth2.1) entered blocking state [I] 01:08:14 kernel: br0: port 1(eth2.1) entered listening state [I] 01:08:17 kernel: br0: port 1(eth2.1) entered learning state [I] 01:08:18 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link down at port 2. [I] 01:08:18 kernel: br0: port 1(eth2.1) entered blocking state [I] 01:08:18 kernel: br0: port 1(eth2.1) entered listening state [I] 01:08:21 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link up at port 2 (1000FD/AN). [I] 01:08:21 kernel: br0: port 1(eth2.1) entered blocking state [I] 01:08:21 kernel: br0: port 1(eth2.1) entered listening state [I] 01:08:24 kernel: br0: port 1(eth2.1) entered learning state [I] 01:08:27 kernel: br0: port 1(eth2.1) entered forwarding state [I] 01:08:27 kernel: br0: topology change detected, propagating
Начиная с версии операционной системы KeeneticOS 3.4.1
для предотвращения образования петель добавлен протокол STP. Этот протокол используется для всех проводных соединений в Wi-Fi-системе.
При изменении топологии, дерево STP перестраивается в коммутаторе проходят стадии blocking > listening > learning > forwarding.
Когда появляется новое подключение на порту, роутер должен проверить не приведет ли его включение к возникновению петли. Для этого он временно блокирует обмен данными (entered blocking state
) и изучает приходящие сетевые пакеты (entered listening state
и entered learning state
). Это требует некоторого времени (в такие моменты передача данных через все локальные порты блокируется на несколько секунд). Как только роутер поймет, что включение порта безопасно и не ведет к возникновению петли, передача данных возобновляется (entered forwarding state
).
Также срабатывание STP может возникать, если в локальной сети роутера есть устройства, которые часто изменяют состояние Ethernet-подключения (например, из-за наличия плохого проводного соединения). Вот пример лога, когда на 2-м порту
наблюдается частое "дергание
" линка:
[I] 08:43:10 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link up at port 2 (1000FD/AN). [I] 08:43:21 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link down at port 2. [I] 08:43:23 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link up at port 2 (1000FD/AN). [I] 08:43:36 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link down at port 2. [I] 08:43:38 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link up at port 2 (1000FD/AN). [I] 08:43:50 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link down at port 2. [I] 08:43:53 ndm: Network::Interface::Switch: "GigabitEthernet0/1": switch link up at port 2 (1000FD/AN).
Такое поведение приводит к перестроению топологии STP и как следствие — отключению на короткое время линка. Чтобы избежать подобного поведения, можно отключить протокол STP на сетевом порту встроенного коммутатора, к которому подключено конечное оборудование. Для этого, начиная с версии операционной системы KeeneticOS 3.5
, была добавлена специальная команда role iseg
.
На роутере (контроллере Wi-Fi-системы) через интерфейс командной строки (CLI) выполните команду role iseg
, чтобы роутер не реагировал на изменения линка на порту.
Например, для отключения STP на порту 2
коммутатора выполните последовательно команды:
interface GigabitEthernet0/1 role iseg system configuration save
Важно
Не подключайте
в порт, на котором используется команда role iseg
, ретранслятор Keenetic, захваченный в Wi-Fi-систему, так как в этом случае образуется петля.