Заказать обратный звонок
(066) (067) (097)
100-46-46

Расширенные настройки Ubiquiti EdgeOS: подключение двух провайдеров и балансировка каналов

25.02.2014
Поделиться в:

Расширенные настройки Ubiquiti EdgeOS: подключение двух провайдеров и балансировка каналов

 

Учитывая достаточно высокий интерес к маршрутизаторам серии EdgeMAX от компании Ubiquiti Networks, и взяв во внимание комментарии с просьбами наших посетителей, мы решили опубликовать ряд статей, посвященных расширенным настройкам сетевой операционной системы EdgeOS, под управлением которой, работают все маршрутизаторы EdgeRouter.

 

Данная статья, является ответом на многочисленные вопросы и комментарии на нашем сайте, связанные с возможностью работы Ubiquiti EdgeRouter с двумя внешними каналами связи и их балансировкой.

 

Как решить эту задачу, мы рассмотрим на конкретном примере, где у нас будут две отдельные линии, от разных провайдеров. В целом, условия такие:

 

Провайдер 1:

Интрерфейс - eth0 (pppoe0)

Протокол подключения - PPPoE Client, Gateway - 10.10.10.254, Скорость подключения - 50Mbit/s

 

Провайдер 2:

Интрерфейс - eth1

Протокол подключения - DHCP Client, Gateway - 192.168.100.1, Скорость подключения, так же - 50Mbit/s

 

Локальная сеть:

Интрерфейс - eth2 - eth4

DHCP Server, 192.168.2.0/24

Процесс подключения к провайдеру, по данным протоколом, мы уже рассматривали в статье Базовые настройки Ubiquiti EdgeOS: подключение к провайдеру, а так же, настройку локальной сети - Базовые настройки Ubiquiti EdgeOS: настройка локальной сети LAN, по-этому, подробно описывать данные действия, мы не будем. Предположим, что уже подключены и настроены оба провайдера и локальная сеть.

 

Проверить установлено ли подключение, можно при помощи выполнения команды в командной строке (CLI):

 

ubnt@ubnt:~$ show interfaces

Где мы можем увидеть, что интерфейсу pppoe0, присвоен адрес 10.10.10.100, а интерфейсу eth1 - 192.168.100.199, что говорит о том, что оба провайдера подключены, а локальная сеть на интерфейсе eth2, имеет адресс 192.168.2.1.

 

Теперь нам нужно разрешить доступ из локальной сети, к интерфейсам провайдеров. Другими словами, настроить NAT. Сделать это можно через графический web-интерфейс, про это мы писали с статье - Базовые настройки Ubiquiti EdgeOS: настройка NAT и Firewall.

Но так как, практически все дальнейшие действия, можно выполнить только, через командную строку, то именно ей мы и будем пользоваться. Создать и сохранить нужные нам правила NAT, можно выполнив следующие команды в командной строке:

 

ubnt@ubnt:~$ configure

[edit]

ubnt@ubnt# set service nat rule 5010 outbound-interface eth0

[edit]

ubnt@ubnt# set service nat rule 5010 type masquerade

[edit]

ubnt@ubnt# set service nat rule 5020 outbound-interface pppoe0

[edit]

ubnt@ubnt# set service nat rule 5020 type masquerade

[edit]

ubnt@ubnt# commit

[edit]

ubnt@ubnt# save

Saving configuration to '/config/config.boot'...

Done

[edit]

ubnt@ubnt# exit

exit

ubnt@ubnt:~$

 

Далее, нам нужно настроить балансировку между этими двумя каналами. И так как они у нас совершенно одинаковые по пропускной способности - 50Mbit/s каждый, то и балансировку мы будем настраивать 50/50.

 

Для этого, в той же командной строке, мы выполняем ряд команд. Сперва, мы настроим маршрутизацию:

 

ubnt@ubnt:~$ configure

[edit]

ubnt@ubnt# set protocols static route 0.0.0.0/0 next-hop 192.168.100.1

[edit]

ubnt@ubnt# set protocols static route 0.0.0.0/0 next-hop 10.10.10.254

[edit]

ubnt@ubnt# set protocols static table 1 mark 1

[edit]

ubnt@ubnt# set protocols static table 1 route 0.0.0.0/0 next-hop 192.168.100.1

[edit]

ubnt@ubnt# set protocols static table 2 mark 2

[edit]

ubnt@ubnt# set protocols static table 2 route 0.0.0.0/0 next-hop 10.10.10.254

[edit]

ubnt@ubnt#

 

Адреса 192.168.100.1 и 10.10.10.254 - это шлюзы наших провайдеров.

Далее, мы настроим непосредственно саму балансировку, через ряд правил для Firewall:

 

ubnt@ubnt# set firewall modify balance rule 10 action modify

[edit]

ubnt@ubnt# set firewall modify balance rule 10 description 'restore mark from connection'

[edit]

ubnt@ubnt# set firewall modify balance rule 10 modify connmark restore-mark

[edit]

ubnt@ubnt# set firewall modify balance rule 20 action accept

[edit]

ubnt@ubnt# set firewall modify balance rule 20 description 'accept the packet if the mark isnt zero'

[edit]

ubnt@ubnt# set firewall modify balance rule 20 mark !0

[edit]

ubnt@ubnt# set firewall modify balance rule 30 action modify

[edit]

ubnt@ubnt# set firewall modify balance rule 30 description 'for new connections mark 50% with mark 1'

[edit]

ubnt@ubnt# set firewall modify balance rule 30 modify mark 1

[edit]

ubnt@ubnt# set firewall modify balance rule 30 protocol tcp_udp

[edit]

ubnt@ubnt# set firewall modify balance rule 30 state new enable

[edit]

ubnt@ubnt# set firewall modify balance rule 30 statistic probability 50%

[edit]

ubnt@ubnt# set firewall modify balance rule 40 action modify

[edit]

ubnt@ubnt# set firewall modify balance rule 40 description 'for packets with mark zero, mark with 2'

[edit]

ubnt@ubnt# set firewall modify balance rule 40 mark 0

[edit]

ubnt@ubnt# set firewall modify balance rule 40 modify mark 2

[edit]

ubnt@ubnt# set firewall modify balance rule 40 protocol tcp_udp

[edit]

ubnt@ubnt# set firewall modify balance rule 40 state new enable

[edit]

ubnt@ubnt# set firewall modify balance rule 50 action modify

[edit]

ubnt@ubnt# set firewall modify balance rule 50 description 'save the packet mark to the connection mark'

[edit]

ubnt@ubnt# set firewall modify balance rule 50 modify connmark save-mark

[edit]

ubnt@ubnt#

 

И тут хочу обратить ваше внимание, на то, что в правиле 30, мы помечаем как “mark 1”, 50% пакетов, командой “statistic probability 50%”, следовательно, половина трафика, будет уходить на шлюз провайдера, который мы добавили в маршрутизацию с этой же пометкой, а все остальные - на другого. Соответственно, если у вас каналы не равномерные, или вы хотите чтобы на одного шло больше трафика, а на другого меньше, то вам нужно указывать соответствующие значения для statistic probability.

 

Затем мы применяем правила балансировки для нашей локальной сети:

 

ubnt@ubnt# set interfaces ethernet eth2 firewall in modify balance

[edit]

ubnt@ubnt#

 

Устанавливаем и сохраняем всю конфигурацию, после чего, выходим из режима конфигурирования маршрутизатора:

 

ubnt@ubnt# commit

[ protocols static table 1 mark 1 ]

old mark undefined mark [1]

 

[ protocols static table 2 mark 2 ]

old mark undefined mark [2]

 

[edit]

ubnt@ubnt# save

Saving configuration to '/config/config.boot'...

Done

[edit]

ubnt@ubnt# exit

exit

ubnt@ubnt:~$

На этом, можно считать нашу настройку оконченной. Осталось только проверить есть ли интернет на локальных компьютерах.

Интернет есть. Теперь немного подождем, что-бы оценить правильность балансировки и распределения трафика. И так через час, посмотрим на статистику прохождения трафика, через интерфейсы.

И видим, что балансировка работает превосходно.

 

Более точную статистику, можно увидеть, выполнив в командной строке, команду:

 

show firewall modify statistics

 

 

И посмотрев на правила 30 и 40, мы еще раз убеждаемся в правильной работе сделанных нами настроек.

logo
Расширенные настройки Ubiquiti EdgeOS: подключение двух провайдеров и балансировка каналов

Возврат к списку


Хиты продаж

Авторизуйтесь, чтобы добавить отзыв

SiteHeart