Использование нескольких WAN-подключений в режиме балансировки (настройка через CLI)

NOTE: В данной статье показана настройка роутеров с версией KeeneticOS 2.14 - 3.8. Начиная с версии KeeneticOS 3.9 реализован режим интеллектуальной балансировки и в веб-интерфейс добавлена возможность создания новой политики многопутевой передачи, которая позволит оптимизировать использование нескольких интернет-соединений, ускорить и сбалансировать трафик. Для получения информации по настройке через веб-интерфейс, обратитесь к инструкции "Многопутевая передача (суммирование пропускной способности нескольких интернет-соединений)".

Начиная с версии операционной системы KeeneticOS 2.14 стало возможно использовать одновременно несколько WAN-подключений в режиме балансировки. В балансировке могут участвовать любые интерфейсы WAN — проводной, модемный, DSL, WISP, PPPoE и др.

TIP: Справка: Наиболее эффективно балансировка будет применяться для работы многопоточного трафика (соединений типа "точка — многоточка" или "один ко многим"), например, для torrent-трафика, P2P или других протоколов, которые открывают множество соединений не требующих сохранения адреса источника. В этом случае соединения будут распределяться по разным подключениям.
Для соединений типа "точка — точка" или "один к одному" балансировка не будет работать корректно, ведь большинство хостов отбросит пакеты одной сессии, если они придут с разных IP-адресов. Например, интернет-сайт или веб-сервис, работающий по протоколу https и открывающий множество сессий, может отказаться работать, т.к. если часть сессий будет идти по разным провайдерам, это вызовет срабатывание безопасности и ошибки для протокола https.

Далее рассмотрим вариант включения режима балансировки в роутере (с помощью специальных команд) на примере работы протокола BitTorrent (для многопоточного трафика легче продемонстрировать работу данного режима). Данный способ актуален для моделей, в которых отсутствует настройка многопутевой передачи через веб-интерфейс.

1. Нужно настроить отдельный "Профиль доступа в Интернет". На странице "Приоритеты подключений" на вкладке "Профили доступа в Интернет" нужно нажать "+ Добавить профиль" и указать имя нового профиля, например torrent-multipath. Здесь профиль — это набор правил, политик маршрутизации, которые применяются к трафику хостов, когда они обращаются в Интернет.

NOTE: Важно! Режим балансировки не работает в Основном профиле, только в Дополнительных профилях.

Начиная с версии KeeneticOS 3.8 вкладка "Профили доступа в Интернет" переименована в "Политики доступа в Интернет", а вкладка "Привязка устройств к профилям" переименована в "Применение политик".

В нашем примере добавленные подключения Main и Backup предназначены для предоставления доступа в Интернет и максимизации пропускной способности в момент загрузки файла для протокола BitTorrent.

В правой колонке "Подключение" нужно отметить только это подключение и сохранить настройки.

mp-01.png

2. Здесь же, на странице "Приоритеты подключений", перейдите на вкладку "Привязка устройств к профилям". Опция "Показать все объекты" позволяет отобразить все зарегистрированные в локальных сегментах устройства, и также сами настроенные на интернет-центре локальные сегменты сети.

mp-02.png

Удерживая клавишу Ctrl на клавиатуре, при помощи мыши, можно выбрать несколько объектов. В нашем примере требуется только один объект (хост MYHOST) переместить в добавленный ранее профиль torrent-multipath.

mp-03.png

3. Определяем приоритеты для основного и резервного подключения.

NOTE: Важно! Cоотношение загруженности определяется значением приоритета ip global интерфейсов в рамках профиля подключения. Приоритет резервного подключения должен быть ниже на единицу (на одну цифру) значения приоритета основного подключения. В нашем примере используются приоритеты 65533 и 65532.

Для работы балансировки потребуется выставить значение ip global для Main и Backup через интерфейс командной строки (CLI) роутера. В нашем примере интерфейс GigabitEthernet0/Vlan4 с именем Main и ISP с именем Backup:

(config)> interface GigabitEthernet0/Vlan4
Core::Configurator: Done.
(config-if)> ip global 65533
Network::Interface::Ip: "GigabitEthernet0/Vlan4": global priority is 65533.
(config-if)> exit
Core::Configurator: Done.
(config)> system configuration save 
Core::ConfigurationSaver: Saving configuration.


Интерфейс GigabitEthernet0/Vlan4 — для 1 Гбит/с
Интерфейс FastEthernet0/Vlan14 — для 100 Мбит/с

(config)> interface ISP
Core::Configurator: Done. (config-if)> ip global 65532 Network::Interface::Ip: "ISP": global priority is 65532. (config-if)> exit Core::Configurator: Done. (config)> system configuration save Core::ConfigurationSaver: Saving configuration.


4. Включаем режим балансировки для профиля torrent-multipath:

(config)> ip policy Policy5
Network::PolicyTable: Policy "Policy5" exists.
(config-policy)> multipath
Network::PolicyTable: "Policy5": enable multipath.
(config-policy)> exit
Core::Configurator: Done.
(config)> system configuration save 
Core::ConfigurationSaver: Saving configuration.


В нашем примере имя профиля torrent-multipath соответствует имени интерфейса Policy5:

(config)> show ip policy

policy, name = Policy5, description = torrent-multipath:
mark: ffffd05
table: 47


4. Не выходя из интерфейса командой строки проверяем таблицу маршрутизации.

Нумерация профилей доступа в Интернет (ip policy PolicyX) начинается со значения 42.
В нашем примере указан профиль ip policy Policy5 с нумерацией 47:

(config)> show ip route table 47
================================================================================
Destination          Gateway           Interface                         Metric 
================================================================================
0.0.0.0/0            192.168.209.1     GigabitEthernet0/Vlan4            253      
0.0.0.0/0            193.0.174.1       ISP                               253      
10.1.30.0/24         0.0.0.0           Guest                             0 
151.236.14.119/32 192.168.209.1 GigabitEthernet0/Vlan4 0
172.16.82.0/24 0.0.0.0 Wireguard2 0
192.168.3.0/24 0.0.0.0 Bridge2 0
192.168.22.0/24 0.0.0.0 Home 0
192.168.209.0/24 0.0.0.0 GigabitEthernet0/Vlan4 0
193.0.174.0/24 0.0.0.0 ISP 0
193.0.175.0/25 193.0.174.10 ISP 0
193.0.175.22/32 193.0.174.1 ISP 0
193.187.91.26/32 192.168.209.1 GigabitEthernet0/Vlan4 0
194.32.146.82/32 192.168.209.1 GigabitEthernet0/Vlan4 0 


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

5. Проверяем скорость Приема на подключенных интерфейсах в веб-конфигураторе на главной странице.

Канальная скорость профилей Main и Backup до 100 Мбит/с = 12.5 Мбайт/с:

mp-04.png

Скорость загрузки суммируется с двух профилей, получаем до 22,37 Мбайт/с = 178,96 Мбит/с.

mp-05.png

Для отключения режима балансировки потребуется выполнить следующие команды через CLI роутера:

(config)> ip policy Policy5
Network::PolicyTable: Policy "Policy5" exists.
(config-policy)> no multipath
Network::PolicyTable: "Policy5": enable multipath.
(config-policy)> exit
Core::Configurator: Done.
(config)> system configuration save 
Core::ConfigurationSaver: Saving configuration..

 

TIP: Совет: Если у вас один интернет-канал 100 Мбит/с, а второй интернет-канал 200 Мбит/с, то нужно первому интерфейсу подключения (каналу), установить значение ip global равное 10000, а второму интернет-подключению (каналу), установить значение ip global равное 20000, и тогда балансировка будет работать в отношении 1:2 и суммарная скорость возрастет до 300 Мбит/с.

TIP: Справка: Режим балансировки также работает для встроенного в KeeneticOS BitTorrent-клиента Transmission. Назначить профиль доступа для клиента BitTorrent можно командой torrent policy <профиль_доступа>

Примечание: Начиная с версии KeeneticOS 3.9 реализован режим интеллектуальной балансировки. Теперь число сессий распределяется не в соотношении приоритетов ip global, а в соотношении физических скоростей интерфейсов. Так при двух гигабитных подключениях сессии будут делиться пополам. А если первое подключение 1000 Мбит/с, а второе 100 Мбит/с, то в соотношении 10/1. Учитываются только скорости физических линков используемых портов. Не учитываются ограничения скорости шейпером провайдера согласно тарифному плану.
Важно понимать, что соотношение числа сессий не гарантирует соотношение скоростей. Эти соотношения приближаются друг к другу при большом числе однородных сессий. Если же основная загрузка создается одной сессией, она может произвольным образом установиться через любое подключение. В этом случае скорость будет определяться только скоростью одного этого подключения.
Еще одно нововведение версии KeeneticOS 3.9 это возможность распределения сессий по подключениям не только на основании пары ip-источника/ip-назначения, а ещё и учитывая udp/tcp порт-источника/порт назначения. Новый режим распределения позволяет устанавливать сессии между двумя одинаковыми ip через разные подключения, что делает использование каналов более равномерным.
Для включения нового режима распределения используйте команду:
system set net.ipv4.fib_multipath_hash_policy 1
Для его выключения:
system set net.ipv4.fib_multipath_hash_policy 0

 

Была ли эта статья полезной?

Пользователи, считающие этот материал полезным: 103 из 112