ќбсудим вашу задачу в Telegram - чате?

ћерион Ќетворкс

¬опрос о балансировке нагрузки на WAN-линках встает довольно часто, и, к сожалению, в отличие от некоторых других вещей, которые можно настроить на оборудовании MikroTik быстро и безболезненно - в случае настройки Load Balancing придетс€ немного постаратьс€. “ема относительно сложна€, наличие нескольких WAN-линков и задача по настройке балансировки нагрузки включает в себ€ настройку нескольких шлюзов и маршрутов по умолчанию, множество правил трансл€ции NAT и так далее.

Ќастройка load balancing на WAN в Mikrotik

Ќастройка маршрутизатора

»так, в наличие у нас имеетс€ один маршрутизатор MikroTik, который подключен к двум провайдерам - “арс “елеком и ћилайн на портах ether1 и ether2 соответственно, и локальной сетью на порту ether3. “рафик из локальной сети будет NATирован из обоих WAN портов и будет сбалансирован по нагрузке. “опологи€ ниже:

Ќастраиваем локальные IP-адреса:

/ip address
add address=1.1.1.199/24 interface=ether1 comment="Tars"
add address=2.2.2.199/24 interface=ether2 comment="Meeline"
add address=192.168.1.1/24 interface=ether3 comment="LAN Gateway"

Ќастраиваем шлюзы по умолчанию:

/ip route
add dst-address=0.0.0.0/0 check-gateway=ping gateway=1.1.1.1,2.2.2.1

Ќастраиваем NAT на WAN портах дл€ исход€щего направлени€:

/ip firewall nat
add action=masquerade chain=srcnat comment="Tars" out-interface=ether1
add action=masquerade chain=srcnat comment="Meeline" out-interface=ether2

≈сли на данном этапе перестать настраивать роутер, то это будет €вл€ть собой пример настройки отказоустойчивости. ≈сли один из линков Уотвалитс€Ф, то вместо него будет использоватьс€ второй. ќднако, никакой балансировки нагрузки здесь нет и в помине, и, с экономической точки зрени€, это €вл€етс€ плохой идеей - вр€д ли найдетс€ компани€, котора€ захочет платить абонентскую плату за второй канал и использовать его только в случае аварии.


»сход€ща€ и вход€ща€ Mangle маркировка

ќдной из типичных проблем при использовании более одного WAN-соединени€ €вл€етс€ то, что пакеты прин€тые на одном WAN интерфейсе, могут тут же быть отправлены через другой WAN-интерфейс, что может, к примеру, сломать VPN-based сеть. Ќам нужно чтобы пакеты УпринадлежащиеФ одному и тому же соединению принимались и отправл€лись через один и тот же WAN порт. ¬ случае аварии у одного из провайдеров, все подключени€ на порту УумрутФ и затем будут переподключены на другом WAN порту. ƒл€ этого необходимо промаркировать соединени€:

/ip firewall mangle
add action=mark-connection chain=input comment="Tars Input" in-interface=ether1 new-connection-mark="Tars Input"
add action=mark-connection chain=input comment="Meeline Input" in-interface=ether2 new-connection-mark="Meeline Input"

Ёто поможет маршрутизатору отслеживать порт дл€ каждого вход€щего подключени€.

“еперь мы будем использовать отметку подключени€ дл€ вход€щих пакетов дл€ вызова отметки маршрутизации. Ёто отметка маршрутизации будет использована позднее на маршруте, который будет сообщать подключению через какой WAN-порт необходимо слать пакеты наружу.

add action=mark-routing chain=output comment="Tars Output" connection-mark="Tars Input" new-routing-mark="Out Tars"
add action=mark-routing chain=output comment="Meeline Output" connection-mark="Meeline Input" new-routing-mark="Meeline Telecom"

ѕомеченные подключени€ затем получают метку маршрута, так что роутер сможет маршрутизировать пакеты так, как нам необходимо. ¬ следующем шаге мы настроим роутер таким образом, чтобы помеченные пакеты отправл€лись наружу из корректного WAN-подключени€.


ћаркировка LAN маршрута

ѕонадобитс€ также настроить несколько Mangle правил - они необходимы, чтобы сообщить роутеру о необходимости балансировки пакетов, которые отправл€ютс€ из локальной сети. —ам механизм балансировки в этой статье не описываетс€, можно только сказать что происходить много операций хешировани€ - если же интересно копнуть глубже, то вы можете обратитьс€ к официальной документации MikroTik. ¬ соответствии с этими правилами маршрутизатор будет балансировать трафик приход€щий на порт ether3 (LAN-порт), который направлен на любой нелокальный адрес в »нтернете. ћы захватываем трафик в цепочке предварительной маршрутизации дл€ перенаправлени€ его на необходимый нам WAN-порт в соответствии с меткой маршрутизации.

—ледующие команды балансируют трафик на LAN-интерфейсе через две группы:

add action=mark-routing chain=prerouting comment="LAN load balancing 2-0" \
    dst-address-type=!local in-interface=ether3 new-routing-mark=\
    "Out Tars" passthrough=yes per-connection-classifier=\
    both-addresses-and-ports:2/0
add action=mark-routing chain=prerouting comment="LAN load balancing 2-1" \
    dst-address-type=!local in-interface=ether3 new-routing-mark=\
    "Out Meeline" passthrough=yes per-connection-classifier=\
    both-addresses-and-ports:2/1
Ќастройка меток маршрутизации выше была выполнена точно такие же как и в предыдущем шаге и соответствуют тем маршрутам, которые будут созданы в следующем шаге.

ќсобые маршруты по умолчанию.

¬ данный момент у нас должны быть помечены соединени€ поступающие на WAN-порты и эти метки были использованы дл€ создани€ меток маршрутизации. Ѕалансировка нагрузки в LAN, описанна€ в предыдущем шаге, также создает метки маршрутизации в соответствии со следующим шагом, в котором будут созданы маршруты по умолчанию, которые будут захватывать трафик с данными метками маршрутизации.

/ip route
add distance=1 gateway=1.1.1.1 routing-mark="Out Tars"
add distance=1 gateway=2.2.2.1 routing-mark="Out Meeline"
ƒанные маршруты используютс€ только при наличии необходимой метки маршрутизации. Ќепомеченные пакеты используют обычный маршрут по умолчанию.

ћаршруты, относ€щиес€ к “арс “елеком получают метку подключени€, котора€ вызывает метку маршрутизации. Ёта метка маршрутизации совпадает с меткой в маршруте выше и обратный пакет выходит из того же интерфейса, на котором был получен изначальный пакет.

«аключение

»того, какие шаги по настройке роутера были выполнены:

  1. ћаркировка новых подключений в WAN
  2. —оединени€ с этой маркировкой получают метку маршрутизации
  3. »сход€щий из локальной сети трафик балансируетс€ с теми же метками маршрутизации
  4. ћетки маршрутизации соответствуют маршрутам по умолчанию и отправл€ютс€ из соответствующего интерфейса
  5. ≈сли количество WAN-линков более 2 - необходимо проделать такие же действи€ дл€ остальных подключений.

»того, теперь у вас настроена балансировка трафика дл€ двух WAN-соединений.


ѕолезна ли ¬ам эта стать€?