Skip to main content

Руководство пользователя

Отключение поддержки 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-систему, так как в этом случае образуется петля.