Добрый вечер, уважаемые читатели моего скромного блога! Прошу прощения, что давно ничего не писал, я был занят одним проектом, да и идей особо не было. Однако сегодня я хочу поделиться с вами своей историей о нагрузке на CPU моего MikroTik hAP ac. Вы узнаете про FastTrack на MikroTikи оптимизацию Firewall.
Итак, что мы имеем:
- 2 постоянно работающих L2TP+IPSec подключения
- 18 правил Firewall
- 13 правил NAT
- 3 правила Mangle
- 10 скриптов в Scheduler (5 из которых выполняются каждую минуту)
- Один игровой сервер
- Один личный компьютер
- Мобильные устройства
Все это дело вроде бы работало без сбоев, пока однажды, когда я был на работе, у меня не пропала связь с Микротиком. Поскольку я работаю в провайдере и от него же у меня дома интернет, я зашел в биллинг – интернет оплачен, сессии нет. Зашел на свитч – линк на порту есть, ошибки не копятся, но маки не приходят. Перезагрузка порта не помогла.
Когда я наконец пришел домой после смены, было похоже что Микротик завис. Лампочки горели, но DHCP он не раздавал, по MAC к нему подключиться тоже не удалось. После его перезагрузки связь восстановилась. Подозреваю что причиной стала высокая и длительная нагрузка на CPU, но выяснил я это уже позже. Как оказалось, при скачивании торрента на компьютере со скоростью 25-30 МБ/сек, нагрузка на CPU Микротика держится в районе 90-100%. А перед уходом на работу я как раз поставил скачиваться 5 сезонов сериала.
Как же я решил проблему высокой нагрузки на CPU MikroTik?
- Оптимизация маркировки пакетов. Не помню почему, но у меня было сделано 2 правила маркировки и соответственно 2 маршрута на VPN – отдельно для Telegram и отдельно для всего остального. Практической необходимости для этого я не нашел, поэтому объединил все в одно правило и исправил Address Lists. Быть может это никак не сказывалось на производительности, но все же я решил сделать нормально.
- Оптимизация Firewall.
- В первую очередь необходимо убедиться, что правила расположены в нужном порядке. Сделать это не трудно – достаточно посмотреть статистику трафика. Правила с наибольшим количеством трафика должны быть самыми первыми. В идеале, самым первым правилом должно быть
action=accept chain=forward connection-state=established,related
. - Далее, я сократил число правил, объединив некоторые правила. Например тот же forward портов, порты можно было указать в одном правиле через запятую. Не знаю, почему не сделал этого раньше.
- В первую очередь необходимо убедиться, что правила расположены в нужном порядке. Сделать это не трудно – достаточно посмотреть статистику трафика. Правила с наибольшим количеством трафика должны быть самыми первыми. В идеале, самым первым правилом должно быть
- Настраиваем FastTrack на MikroTik.
- Если у вас есть бридж, объединяющий локальные интерфейсы, убедитесь что у него включена галочка Fast Forward. Также не забываем отключить IP Firewall для бриджа:
/interface bridge settings set use-ip-firewall=no
- Добавляем правило Firewall:
/ip firewall filter add action=fasttrack-connection chain=forward connection-state=established,related
- Сразу под ним должно быть расположено правило:
/ip firewall filter add action=accept chain=forward connection-state=established,related
- Если вы маркируете часть трафика и заворачиваете его на VPN, проверьте, чтобы в IP => Settings не стояла галочка Route Cache. При одновременно включенных FastTrack и Route Cache, у меня сильно проседала скорость открытия сайтов, которые заворачиваются на VPN.
- Если у вас есть бридж, объединяющий локальные интерфейсы, убедитесь что у него включена галочка Fast Forward. Также не забываем отключить IP Firewall для бриджа:
- Оптимизация торрент-клиента. Если не качаете торренты, можете не читать это. Если в вашем торрент-клиенте включен протокол uTP – выключите его. Практической пользы от него я не увидел, зато из-за него очень сильно возрастает количество сетевых пакетов и соответственно нагрузка на CPU. Живой пример: после отключения uTP на моем торрент-клиенте, нагрузка на CPU Микротика при скачивании торрента у меня упала на 40%.
Подводим итоги: после выполнения этих манипуляций, при скачивании торрента со скоростью 25-30 МБ/сек, а также работающем игровом сервере (с игроками онлайн), двумя активными VPN соединениями и параллельном серфинге интернета – нагрузка на CPU моего Микротика не превышает 20-25%.