Страница 13 из 14

Re: Два провайдера: отказоустойчивость и распределение нагрузки

Добавлено: 05 фев 2017, 22:10
regbyl
Спасибо автору за столь подробную статью.
Прочитав ее от корки до корки, я разобрался как работает маркировка соединений и трафик перенаправляется по IP из Address Lists, спасибо еще раз автору.

Но хочу попросить уважаемых форумчан помочь в следующей ситуации:
1) есть скоростное 100Мб соединение, но ограниченное по трафику (белый IP для RDP) - далее WAN
2) есть безлимитное LTE соединение со скоростью 5-10 Мб - далее LTE
3) на WAN безлимитный доступ ко всем службам Яндекса.

Задача перенаправить все запросы на *.yandex.ru, *.ya.ru, *yadi.sk и т.п. через WAN, т.е. нужно направление не по IP, а по части доменного имени.
Можно конечно вписать в Address Lists все серверы Яндекса, но их во первых МНОГО, они не имеют общей маски да еще и меняются при каждом запросе,
да и не смог найти на просторах интернета подобного решения или хотя-бы список IP масок Яндекса.

Re: Два провайдера: отказоустойчивость и распределение нагрузки

Добавлено: 06 фев 2017, 06:54
DmNuts
regbyl, в Address Lists можно добавлять доменные имена, роутер сам будет резолвить их, наполняя Address List всеми IP адресами. Для Яндекса такой вариант должен подойти, вряд ли они делят IP адреса с кем-то ещё.

Re: Два провайдера: отказоустойчивость и распределение нагрузки

Добавлено: 07 фев 2017, 18:20
regbyl
DmNuts писал(а):regbyl, в Address Lists можно добавлять доменные имена, роутер сам будет резолвить их, наполняя Address List всеми IP адресами. Для Яндекса такой вариант должен подойти, вряд ли они делят IP адреса с кем-то ещё.


Маска для IP адреса в Address List, сбила с толку. Как попробую, обязательно отпишусь.

Re: Два провайдера: отказоустойчивость и распределение нагрузки

Добавлено: 14 фев 2017, 09:40
Spiller
Как в терминале командой изменить значение new-routing-mark в mangle ?

Re: Два провайдера: отказоустойчивость и распределение нагрузки

Добавлено: 14 фев 2017, 14:18
DmNuts
Spiller писал(а):Как в терминале командой изменить значение new-routing-mark в mangle ?

Код: Выделить всё

/ip firewall mangle print
Flags: X - disabled, I - invalid, D - dynamic
0 ...
1 chain=prerouting action=mark-routing new-routing-mark=isp1 passthrough=yes src-address=192.168.50.0/24

Допустим, нужное правило под номером 1. Далее:

Код: Выделить всё

/ip firewall mangle set 1 new-routing-mark=isp2

Либо использовать конструкцию set [find new-routing-mark=isp1] new-routing-mark=isp2. Поиск удобно совершать по комментариям, заранее навешанным на правила.

Re: Два провайдера: отказоустойчивость и распределение нагрузки

Добавлено: 16 фев 2017, 07:56
Spiller
DmNuts, спасибо.
А не подскажите как сделать так, что бы для определенного адрес листа скорость при скачивании суммировалась. Например если есть 2 провайдера по 5 Мбит, общая скорость скачивания была 10?

Re: Два провайдера: отказоустойчивость и распределение нагрузки

Добавлено: 16 фев 2017, 08:21
DmNuts
Когда несколько каналов с одинаковой скоростью, подойдёт PCQ балансировка. На первых страницах этого топика очень подробно описано.

Re: Два провайдера: отказоустойчивость и распределение нагру

Добавлено: 16 фев 2017, 10:06
Spiller
Barvinok писал(а):Отступление 4

Рассмотрим два правила из статьи о PCC:

Код: Выделить всё

add action=mark-connection chain=prerouting dst-address-type=!local in-interface=ether2 new-connection-mark=l2tp-out1_conn passthrough=yes per-connection-classifier=src-address:2/0 src-address=172.16.0.0/16
add action=mark-connection chain=prerouting dst-address-type=!local in-interface=ether2 new-connection-mark=l2tp-out2_conn passthrough=yes per-connection-classifier=src-address:2/1 src-address=172.16.0.0/16

add action=mark-routing chain=prerouting connection-mark=l2tp-out1_conn in-interface=ether2 new-routing-mark=to_l2tp-out1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=l2tp-out2_conn in-interface=ether2 new-routing-mark=to_l2tp-out2 passthrough=yes
В первом правиле мы указываем какое действие в какой цепочке мы будем производить (action=mark-connection chain=prerouting). Далее следуют [b]признаки
, по которым мы определяем соединение, должное быть помеченным: вид адреса назначения - любой, кроме адреса самого маршрутизатора (dst-address-type=!local), входящий интерфейс - ether2 (in-interface=ether2), адрес источника - любой компьютер из подсети 172.16.0.0/16. Далее следует чудная команда: per-connection-classifier=src-address:2/0. Так мы разбиваем поток пакетов, соответствующих этим признакам, надвое.
После чего - собственно действие: одной части потока назначаем метку l2tp-out1_conn, а второй l2tp-out2_conn.

Вот тут не понятно про per-connection-classifier. Разбили пакеты, и что дальше? Почему в первом случае 2/0 а во втором 2/1? Что происходит после разбиения?
И главный вопрос, можно ли применить правило суммирования пропускной способности нескольких каналов только для определенного acl?

Re: Два провайдера: отказоустойчивость и распределение нагру

Добавлено: 16 фев 2017, 10:29
DmNuts
Spiller писал(а):Вот тут не понятно про per-connection-classifier. Разбили пакеты, и что дальше? Почему в первом случае 2/0 а во втором 2/1? Что происходит после разбиения?
И главный вопрос, можно ли применить правило суммирования пропускной способности нескольких каналов только для определенного acl?

2/0 и 2/1 - потому что логика PCQ требует этого. При трёх каналах было бы 3/0, 3/1, 3/2.
После разбиения следует mark-routing, пакеты уходят в разные каналы.
Src. Address List можно указать на закладке Advanced.
Кстати, другие потребители трафика (кроме указанного Address List'а) есть в сети?

Re: Два провайдера: отказоустойчивость и распределение нагрузки

Добавлено: 16 фев 2017, 14:17
Spiller
DmNuts, Есть:
1. ISP1
2. ISP2
3. ISP3
4. LAN1
5. LAN2
6. LAN3

1. lan1 ходит через isp1, lan2 через isp2, когда isp1 или isp2 падает идет переключение на isp3 и когда пинг через того кто упал возобновляется возвращается к изначальному варианту (это всё настроил).
2. lan3 (ip acl) это торрентокачалка. Иногда есть необходимость срочно выкачать определенные файлы. Тут то и нужна нагрузка сразу на все каналы, суммируя ширину каждого канала.

Вторая "хотелка" может сосуществовать с первой в рамках одной (общей) таблицы mangle?