Как PCC на MikroTik поможет вам экономить и обходить лимиты
Опубликовано 12.06.2025
В современном цифровом мире, где каждый мегабайт на счету, а стабильное соединение — золото, одного интернет-канала порой катастрофически не хватает. Возможно, у вас есть несколько внешних IP-адресов, которые просто пылятся без дела, или ваш хостер вдруг ввёл те самые “неприятные” лимиты на трафик, ставя под угрозу ваш бюджет и спокойствие. Но не спешите паниковать! PCC (Per Connection Classifier) на вашем роутере MikroTik с обновлённой RouterOS 7.x — это ваш билет в мир без ограничений, позволяющий оптимизировать расходы и обойти надоедливые лимиты.
Что такое PCC и почему он станет вашим спасением?
Представьте, что у вас есть скоростное многополосное шоссе, но по какой-то причине весь транспорт движется только по одной полосе. PCC делает так, чтобы все полосы использовались максимально эффективно и равномерно. Он берёт каждое новое интернет-соединение и интеллектуально распределяет его между вашими различными внешними IP-адресами. Это как если бы у вас было не одно, а сразу несколько интернет-подключений, работающих в унисон!
Зачем вам это нужно? Вот главные причины:
- Интернет будет летать быстрее! Вместо того чтобы весь ваш исходящий трафик “давился” через один IP-адрес, PCC распределит его по всем доступным. Вы получите значительное увеличение пропускной способности и забудете о перегрузках.
- Реальная экономия и обход лимитов. Многие провайдеры и хостеры устанавливают лимиты трафика для каждого отдельного IP. С PCC вы можете распределить нагрузку так, чтобы каждый IP оставался в пределах своего лимита, даже если общий объём данных намного превышает норму для одного адреса. Это поможет избежать переплат за превышение лимитов и максимально эффективно использовать каждый купленный IP-адрес. Считайте это вашей личной стратегией “умного потребления”!
- Надёжность и отказоустойчивость. Хотя PCC сам по себе не обеспечивает автоматическое переключение при полном отказе канала, он является фундаментом для построения таких систем. Если один из ваших внешних IP-адресов вдруг станет недоступен, остальные смогут принять на себя его нагрузку (с небольшими дополнительными настройками).
- Используйте все свои IP по максимуму. Если вы платите за несколько IP, почему бы не выжать из них всё? PCC гарантирует, что ни один из ваших ценных ресурсов не будет простаивать без дела.
- Точный контроль над трафиком. Хотите, чтобы ваш игровой трафик шёл через один IP, а загрузки файлов — через другой? PCC даёт вам такую гибкость, позволяя направлять определённые типы соединений через нужные адреса.
В этом руководстве мы настроим PCC для шести внешних IP-адресов, используя метод both-addresses-and-ports
. Это наиболее эффективный способ равномерного распределения нагрузки, который учитывает как IP-адреса, так и порты. А чтобы ваши важные соединения (например, онлайн-банкинг или видеозвонки) не прерывались, мы активируем функцию sticky-connection
. Она гарантирует, что все пакеты одного соединения будут проходить через один и тот же IP-адрес.
Настраиваем PCC на MikroTik RouterOS 7.x: Пошаговая инструкция
Прежде чем приступить, убедитесь, что ваш маршрутизатор MikroTik обновлён до актуальной версии RouterOS 7.x.
1. Добавляем ваши внешние IP-адреса
Это как “входы” на ваше цифровое шоссе. Все они должны быть привязаны к вашему внешнему сетевому порту. В нашем примере это wan-bridge
; если у вас другое название, обязательно замените его.
/ip address
add address=100.77.214.99/24 interface=wan-bridge network=100.77.214.0 comment="Main IP"
add address=100.77.214.97/24 interface=wan-bridge network=100.77.214.0
add address=100.77.214.109/24 interface=wan-bridge network=100.77.214.0
add address=100.77.214.110/24 interface=wan-bridge network=100.77.214.0
add address=100.77.214.111/24 interface=wan-bridge network=100.77.214.0
add address=100.77.214.112/24 interface=wan-bridge network=100.77.214.0
2. Настраиваем DNS-серверы
Это ваши цифровые “дорожные знаки”, которые помогают маршрутизатору находить нужные сайты в интернете.
/ip dns
set servers="8.8.8.8, 1.1.1.1"
3. Создаём “индивидуальные” таблицы маршрутизации
Для каждого внешнего IP-адреса, который будет участвовать в балансировке, мы создадим отдельную таблицу маршрутизации. Это позволит роутеру точно направлять трафик через нужный IP.
/routing table
add name=to_wan1 fib
add name=to_wan2 fib
add name=to_wan3 fib
add name=to_wan4 fib
add name=to_wan5 fib
add name=to_wan6 fib
4. Определяем “главный выезд” для каждой таблицы
Теперь для каждой нашей “полосы движения” нужно указать свой “съезд” к шлюзу провайдера. В нашем примере шлюз для всех WAN-интерфейсов — 100.77.214.1
.
/ip route
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan1
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan2
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan3
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan4
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan5
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan6
5. “Маркируем” соединения с помощью PCC (Mangle)
Это самый главный этап настройки PCC. Мы будем использовать правила Mangle для “пометки” новых соединений. Роутер затем будет знать, через какой внешний IP их отправить. Важно использовать both-addresses-and-ports:6/X
, где 6
— это общее количество ваших IP-адресов, а X
— индекс (от 0 до 5). И не забудьте про sticky-connection=yes
! Эта функция гарантирует, что все пакеты, принадлежащие одному соединению (например, скачивание файла или видеозвонок), будут использовать один и тот же IP-адрес, что предотвращает обрывы. Замените lan-bridge
на имя вашего внутреннего сетевого порта.
/ip firewall mangle
# Помечаем новые соединения, чтобы PCC мог их распределить
add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
new-connection-mark=wan1_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/0 \
comment="PCC both-addr-ports WAN 1" sticky-connection=yes
add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
new-connection-mark=wan2_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/1 \
comment="PCC both-addr-ports WAN 2" sticky-connection=yes
add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
new-connection-mark=wan3_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/2 \
comment="PCC both-addr-ports WAN 3" sticky-connection=yes
add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
new-connection-mark=wan4_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/3 \
comment="PCC both-addr-ports WAN 4" sticky-connection=yes
add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
new-connection-mark=wan5_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/4 \
comment="PCC both-addr-ports WAN 5" sticky-connection=yes
add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
new-connection-mark=wan6_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/5 \
comment="PCC both-addr-ports WAN 6" sticky-connection=yes
# Теперь, основываясь на этих метках, "направляем" пакеты по нужным дорогам
add chain=prerouting connection-mark=wan1_conn action=mark-routing \
new-routing-mark=to_wan1 passthrough=no comment="Route mark for WAN 1"
add chain=prerouting connection-mark=wan2_conn action=mark-routing \
new-routing-mark=to_wan2 passthrough=no comment="Route mark for WAN 2"
add chain=prerouting connection-mark=wan3_conn action=mark-routing \
new-routing-mark=to_wan3 passthrough=no comment="Route mark for WAN 3"
add chain=prerouting connection-mark=wan4_conn action=mark-routing \
new-routing-mark=to_wan4 passthrough=no comment="Route mark for WAN 4"
add chain=prerouting connection-mark=wan5_conn action=mark-routing \
new-routing-mark=to_wan5 passthrough=no comment="Route mark for WAN 5"
add chain=prerouting connection-mark=wan6_conn action=mark-routing \
new-routing-mark=to_wan6 passthrough=no comment="Route mark for WAN 6"
# А это для трафика, который сам роутер отправляет в интернет (например, для проверки обновлений или DNS-запросов)
add chain=output connection-mark=wan1_conn action=mark-routing \
new-routing-mark=to_wan1 passthrough=no comment="Output route mark for WAN 1"
add chain=output connection-mark=wan2_conn action=mark-routing \
new-routing-mark=to_wan2 passthrough=no comment="Output route mark for WAN 2"
add chain=output connection-mark=wan3_conn action=mark-routing \
new-routing-mark=to_wan3 passthrough=no comment="Output route mark for WAN 3"
add chain=output connection-mark=wan4_conn action=mark-routing \
new-routing-mark=to_wan4 passthrough=no comment="Output route mark for WAN 4"
add chain=output connection-mark=wan5_conn action=mark-routing \
new-routing-mark=to_wan5 passthrough=no comment="Output route mark for WAN 5"
add chain=output connection-mark=wan6_conn action=mark-routing \
new-routing-mark=to_wan6 passthrough=no comment="Output route mark for WAN 6"
6. Укрепляем “оборону” файрвола (Firewall)
Эти правила помогут вам справиться с проблемой асимметричной маршрутизации (когда запрос уходит через один IP, а ответ приходит через другой, что может вызвать сбои). Они обеспечат стабильную работу уже установленных соединений и отбросят “неправильные” пакеты.
/ip firewall filter
add chain=forward connection-state=established,related action=accept comment="Accept established connections"
add chain=forward connection-state=invalid action=drop comment="Drop invalid connections"
7. Настраиваем NAT (преобразование адресов) для каждого IP
Чтобы устройства в вашей внутренней сети могли выходить в интернет через правильный внешний IP, нам нужно настроить NAT (Network Address Translation). Каждое соединение, которое мы пометили ранее, будет “переведено” через соответствующий внешний IP-адрес. Это очень важно, чтобы ответный трафик возвращался точно по нужному адресу.
/ip firewall nat
add action=src-nat chain=srcnat routing-mark=to_wan1 to-addresses=100.77.214.99 out-interface=wan-bridge comment="NAT for WAN 1"
add action=src-nat chain=srcnat routing-mark=to_wan2 to-addresses=100.77.214.97 out-interface=wan-bridge comment="NAT for WAN 2"
add action=src-nat chain=srcnat routing-mark=to_wan3 to-addresses=100.77.214.109 out-interface=wan-bridge comment="NAT for WAN 3"
add action=src-nat chain=srcnat routing-mark=to_wan4 to-addresses=100.77.214.110 out-interface=wan-bridge comment="NAT for WAN 4"
add action=src-nat chain=srcnat routing-mark=to_wan5 to-addresses=100.77.214.111 out-interface=wan-bridge comment="NAT for WAN 5"
add action=src-nat chain=srcnat routing-mark=to_wan6 to-addresses=100.77.214.112 out-interface=wan-bridge comment="NAT for WAN 6"
# Это правило-страховка. Если вдруг какое-то соединение не было помечено PCC, оно пойдёт через основной IP.
add action=masquerade chain=srcnat out-interface=wan-bridge comment="Default NAT for unmarked connections"
Важный момент: Правило masquerade
всегда должно быть последним в списке правил NAT, чтобы оно срабатывало только для трафика, который не был распределён PCC.
8. Улучшаем стабильность подключений (Connection Tracking)
Чтобы ваши интернет-соединения работали без сбоев, особенно те, что длятся долго, оптимизируйте эти параметры. Они сделают вашу сеть ещё более надёжной.
/ip firewall connection tracking
set generic-timeout=10m tcp-established-timeout=1d tcp-fin-wait-timeout=30s tcp-close-wait-timeout=30s
Проверяем, как работает ваша “многополоска”
После всех настроек очень важно убедиться, что интернет-трафик действительно равномерно распределяется. Вы можете просматривать статистику в WinBox или WebFig, а также использовать простой скрипт для мониторинга:
/system script
add name="check-load-balance" source={
:local wan1traffic [/interface get wan-bridge value-name=tx-byte]
:put "WAN Traffic: $wan1traffic"
:delay 3s
:local wan1traffic2 [/interface get wan-bridge value-name=tx-byte]
:put "WAN Traffic after 3s: [($wan1traffic2 - $wan1traffic) * 8 / 3 / 1000] kbit/s"
}
Этот скрипт даст вам приблизительное представление о скорости трафика через ваш основной внешний интерфейс. Для более детального анализа по каждому IP-адресу вам нужно будет посмотреть таблицу Connections в разделе Firewall.
Заключение: Прощайте, ограничения!
Настройка PCC на MikroTik RouterOS 7.x — это не просто технический трюк, это стратегическое решение, которое поможет вам сделать вашу сеть быстрее, стабильнее и, что немаловажно, экономнее. Вы сможете не только максимально использовать все свои внешние IP-адреса, но и избежать ненужных трат из-за превышения лимитов трафика у хостеров. Теперь ваша сеть — это не одна-единственная тропинка, а широкий проспект, по которому трафик летит свободно и беспрепятственно! Всегда помните: мониторинг и тестирование — ваши лучшие друзья в мире сетевых настроек.
Есть ли ещё какие-либо аспекты настройки MikroTik, которые вы хотели бы изучить?