Flap на Ethernet портовете на MikroTik RB3011

Рутерът RB3011на MikroTik понякога има проблеми с прекъсване на Ethernet портовете, което се получава от използването на различни скорости на връзката на един чип на комутатора (switch). RB3011 съдържа два чипа за свързване (switch, комутатор), като и двата са QCA8337. Първият комутатор е съставен от Ethernet портове 1-5, а вторият е съставен от Ethernet портове 6-10.

Всеки чип на комутатор има 1 Gb/s връзка към всяко от двете ядра на процесора (2Gb/s агрегирано. Вижте блоковата диаграма по-долу). Ако имате flap на портове и забележите, чe сa различни скорости на връзката на едни и същи чип на комутатора (1-5 или 6-10), тази статия ще ви помогне да разрешите този проблем.

Блоковата диаграма по-горе показва двата чипа за комутиране, етернет портовете и как се свързват обратно към основните ядра на процесора.

Причина

Основната причина на проблема изглежда е необходимостта за изчистване на буфера на комутатора (switch), преди да пренасочи трафика към другия порт с различни скорости на връзката (пример 100Mbits и 1Gbits).

Заобиколно решение

Очевидното просто решение за този проблем е да се уверите, че всички Ethernet портове, свързани към един и същ чип на комутатор, работят със същата скорост на връзката. Това може да изисква изключване на автоматичното договаряне и ръчно намаляване на скоростта на връзката. Ethernet портове 1-5 са свързани към един от чиповете на комутатора, а портове 6-10 са свързани към другия.

Частично решение

Това може да не разреши проблема напълно но flap-а ще намалее значително чрез деактивиране на опцията за flow control на процесора, която беше въведена във версия на RouterOS v6.47.

...
*) switch - correctly enable and disable CPU Flow Control on RB3011UiAS;
...

За съжаление тези опции не са налични от WinBox GUI и трябва да се правят с помощта на CLI. Можете да определите дали в момента имате активиран или деактивиран flow control, като изпълните следната команда:

/interface ethernet switch export verbose

Трябва да видите нещо подобно:

/interface ethernet switch
set 0 cpu-flow-control=yes mirror-source=none mirror-target=none name=switch1
set 1 cpu-flow-control=yes mirror-source=none mirror-target=none name=switch2

За да деактивирате опцията CPU-flow-control, използвайте следните команди:

/interface ethernet switch set switch1 cpu-flow-control=no
/interface ethernet switch set switch2 cpu-flow-control=no 

Допълнително решение

В моя случай забелязах голям брой отпадане на опашката (/interface print stats, колона “tx-queue-drops”) което си е ясен знак за проблем. Него ще го решим по този начин:

/queue type set ethernet-default pfifo-limit=300
/queue interface set [find where queue!=no-queue] queue=ethernet-default

Четири дни след тази конфигурация нямам флапнат порт а преди това – средно на два три часа имах отпадане по на 10-15 поредни пакета в ICMP.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.