Load Balancing (PCC)
PCC Load Balancing
Per-Connection Classifier (PCC) — механизм распределения соединений между несколькими WAN-каналами. PCC хеширует параметры соединения (src/dst address, src/dst port) и распределяет трафик по группам.
PCC сохраняет все пакеты одного соединения на одном канале, что предотвращает проблемы с сессиями и обеспечивает корректную работу HTTPS, VoIP и других stateful-протоколов.
Dual-WAN с PCC
# ISP1: ether1 (DHCP), ISP2: ether2 (DHCP)
# Маркировка соединений через PCC (50/50)
/ip/firewall/mangle
add chain=prerouting in-interface=bridge-lan connection-state=new dst-address-type=!local per-connection-classifier=both-addresses-and-ports:2/0 action=mark-connection new-connection-mark=ISP1-conn passthrough=yes
add chain=prerouting in-interface=bridge-lan connection-state=new dst-address-type=!local per-connection-classifier=both-addresses-and-ports:2/1 action=mark-connection new-connection-mark=ISP2-conn passthrough=yes
# Маркировка маршрутов
add chain=prerouting connection-mark=ISP1-conn in-interface=bridge-lan action=mark-routing new-routing-mark=to-ISP1
add chain=prerouting connection-mark=ISP2-conn in-interface=bridge-lan action=mark-routing new-routing-mark=to-ISP2
# NAT для обоих ISP
/ip/firewall/nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade
# Маршруты с routing-mark
/ip/route
add dst-address=0.0.0.0/0 gateway=ISP1_GW routing-table=to-ISP1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=ISP2_GW routing-table=to-ISP2 check-gateway=ping
# Default route для трафика самого роутера
add dst-address=0.0.0.0/0 gateway=ISP1_GW distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=ISP2_GW distance=2 check-gateway=pingRouterOS CLI
Failover при падении канала
check-gateway=ping автоматически деактивирует маршрут, если шлюз не отвечает. Для более надёжной проверки используйте Netwatch с мониторингом внешнего хоста (например, 8.8.8.8 через конкретный интерфейс).