STP, RSTP, MSTP протоколы в роутерах R2 и R4 серии

Последние изменения: 06.07.2020

В роутерах iRZ изначально нет софта, отвечающего за протоколы STP, RSTP, MSTP. Для этого необходимо установить доплнительный программный пакет. Сделать это не сложно, так как необходимый функционал присутствует в web-интерфейсе роутера.

Important

Настоятельно не рекомендуем применять данную инструкцию на прошивках роутеров старше 2020 года.

Установка пакета и предварительная настройка

Important

По умолчанию при применении данного пакета будет использоваться протокол RSTP. Для применения другого протокола следует внести опцию с нужным протоколом в конфигурационный файл /etc/config/mstpd: option setforcevers rstp, где rstp может принимать значения [mstp|rstp|stp].

В меню настроек роутер Tools ⇒ Management в блоке - Install package необходимо указать программный пакет mstpd_X.X.X.-X_X.ipk (где под X подразумевается версия пакета и тип платформы, для которой собран пакет - R2 или R4, то есть ramips_24kec или kirkwood соответственно) и нажать клавишу Install. Будет произведена установка пакета, который необходимо будет активировать и настроить вручную из консоли роутера.

Important

Если вы пользуетесь операционной системой Windows, то мы настоятельно не рекомендуем использовать для подключения по протоколам SSH или Telnet клоны и разновидности программы Putty, так как они некорректно работают.

Для настройки необходимо подключиться по telnet или ssh в консоль роутера и выполнить следующую последовательность действий:

  • Включить STP протокол на LAN интерфейсе, но не применять изменения, то есть нельзя перезагружать сетевые интерфейсы, в противном случае произойдёт потеря управления роутером и придёться сбрасывать его к заводским настройкам. Для включения настройки необходимо выполнить команду:
uci set network.lan.stp='1'
  • Включить MSTPD выполнив команду:
uci set mstpd.lan.enable='1'
  • Последним этапом сохраняем настроки и перезапускаем сетевую подсистему, затем проверяем что настройки применились:
uci commit

/etc/init.d/network restart

brctl show

Команда brctl show должна показать, что протокол STP включен, приблизительно так должен выглядеть вывод:

 

 

Important

Для назначения приоритета свитча необходима опция option treeprio 8 - это значение приоритета по умолчанию, значение изменяется в пределах от 0 до 15, чем ниже число тем выше приоритет свитча.

Настройка сетевой подсистемы

 

В данном разделе я опишу, как настроить сетевую конфигурацию на наших роутерах для работы установленного в предыдущем пункте пакета.

 

Основной смысл настройки заключается в том чтобы выделить каждый порт роутера в отдельный vlan и собрать их в один сетевой мост. Данная настройка необходима, так как пакет mstpd работает только на программном свитче, а все порты роутера по умолчанию включены в аппаратный свитч. Данную операцию необходимо проделать на всех задействованных роутерах iRZ.

 

Данную настройку невозможно произвести из web интерфейса роутера, необходимые действия следует выполнять из консоли роутера по протоколу SSH или Telnet. Подключившись в консоль роутера, выполняем команду на открытие и редактирования файла network:

 

vi /etc/config/network

 

Данная команда вызывает текстовый редактор "vi", который открывает файл "network" по указанному адресу.

 

Important

После проведённых манипуляций с конфигурационным файлом сетевых настроек роутера нельзя вносить исправления в настройки Local Network или Wired Internet из web интерфейса роутера. В противном случае произведённые настройки будут перезаписаны, что в свою очередь приведёт к нарушению работы протокола STP. Отображения произведённых настроек в web интерфейсе роутера не будет.

Important

Если настраиваемый роутер должен подключаться к проводному доступу во внешнюю сеть, то настройки в разделе Wired Internet следует сделать до изменения конфигурации файла "network".

В данном файле курсором необходимо переместиться в конец файла, где есть блоки данных (блоки разделены пустыми строками), начинающиеся со строк "config switch_vlan vlan_1".

Пример:

 

config switch_vlan 'vlan_1'
        option cpu_port '6'
        option ports '1 2 3 4 6t'
        option device 'switch0'
        option vid '1'
        option vlan '1'

Данный блок настроек говорит о том что все 4 порта роутера (пример взят из конфигурации роутера серии R2) находятся в одном влане. Нам необходимо настроить для каждого порта свой влан и включить их в один интерфейс.

Примерно так:

 

config switch_vlan 'vlan_1'
        option cpu_port '6'
        option ports '1 6t'
        option device 'switch0'
        option vid '1'
        option vlan '1'

config switch_vlan 'vlan_1'
        option cpu_port '6'
        option ports '2 6t'
        option device 'switch0'
        option vid '2'
        option vlan '2'

config switch_vlan 'vlan_1'
        option cpu_port '6'
        option ports '3 6t'
        option device 'switch0'
        option vid '3'
        option vlan '3'

config switch_vlan 'vlan_1'
        option cpu_port '6'
        option ports '4 6t'
        option device 'switch0'
        option vid '4'
        option vlan '4'

Для того чтобы это сделать, необходимо перейти в режим редактирования по нажатию клавиши i на клавиатуре, далее удалить блок данных (блоки разделены пустыми строками), начинающийся с "config switch_vlan vlan_1" и на его место скопировать блок данных из последнего примера выше или же скопировать этот блок данных три раза и исправить значения названий вланов, их vid и vlan, а также порты.

 

Следующий блок данных, который необходимо исправить выглядит примерно так:

 

config interface 'lan'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option macaddr 'f0:81:af:00:94:9d'
        option auto '1'
        option ifname 'eth0.1'
        option proto 'static'
        option type 'bridge'
        option force_link '1'
        option stp '1'

Данный блок описывает сетевой мост между портами Lan сети роутера. Здесь необходимо исправить строку "option ifname eth0.1" и добавить туда интерфейсов, в итоге данный блок данных должен выглядеть приблизительно так:

 

config interface 'lan'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option macaddr 'f0:81:af:00:94:9d'
        option auto '1'
        option ifname 'eth0.1 eth0.2 eth0.3 eth0.4'
        option proto 'static'
        option type 'bridge'
        option force_link '1'
        option stp '1'

На этом настройка сетевой подсистемы закончена. Следует нажать клавишу Esc на клавиатуре для выхода из режима редактирования. После этого следует сохранить и выйти из текстового редактора, для этого необходимо нажать сочетание клавиш Ctrl + : и набрать буквы wq, а затем нажать Enter.

После произведённых манипуляций следует перезапустить сетевую подсистему роутера и проверить работу пакета mstpd. Выполните для этого две команды:

 

/etc/init.d/network restart

/etc/init.d/mstpd restart

Проверять работу пакета можно командами:

 

mstpctl showport br-lan

mstpctl showbridge

Данные команды достаточно информативны для понимания того какой порт в каком стостоянии находится.

Оригинал статьи взят с radiofid.ru 

Помогла ли вам статья?