0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 79
|
|
1 | |
Балансировка (ECMP)23.01.2017, 10:47. Показов 8956. Ответов 23
Метки нет (Все метки)
Доброго времени суток.
Пытаюсь настроить микротик с балансировкой канала по ECMP. Есть 2 провайдера: ISP1 и ISP2 Локалка: 192.168.1.0/24 Помечаю каждое соединение пришедшее снаружи: Код
/ip firewall mangle add action=mark-connection chain=input in-interface=ISP1 new-connection-mark=ISP1-con /ip firewall mangle add action=mark-connection chain=input in-interface=ISP2 new-connection-mark=ISP2-con Код
/ip firewall mangle add action=mark-routing chain=output connection-mark=ISP1-con new-routing-mark=ISP1-rt passthrough=no /ip firewall mangle add action=mark-routing chain=output connection-mark=ISP2-con new-routing-mark=ISP2-rt passthrough=no Код
/ip route add distance=1 gateway=ISP1 routing-mark=ISP1-rt check-gateway=ping /ip route add distance=1 gateway=ISP2 routing-mark=ISP2-rt check-gateway=ping Код
/ip firewall mangle add src-address=192.168.1.0/24 action=mark-routing chain=prerouting new-routing-mark=mixed Код
/ip route add dst-address=0.0.0.0/0 gateway=ISP1,ISP1,ISP1,ISP2 routing-mark=mixed При такой балансировке работают оба провайдера, но кажется пакеты уходят не туда откуда они пришли (пользователи жалуются что страницы загружаются с ошибками), т.е. есть подозрение что где то не правильно настроена маркировка или маршруты. Подскажите, где тут допущена ошибка?
0
|
23.01.2017, 10:47 | |
Ответы с готовыми решениями:
23
балансировка трафика tp link 4299 Балансировка дерева Балансировка игроков Балансировка DNS |
4296 / 1633 / 325
Регистрация: 23.06.2009
Сообщений: 5,815
|
|
23.01.2017, 11:25 | 2 |
трафик в цепочке input предназначен самому микротику, и никак не влияет на транзитный трафик (forward)
нужно заменить в первых 2-х правилах input на forward и мне кажется последние 2 правила не совсем верные, или еще есть локальные сети отличные от 192.168.1.0/24? если нет, то нет необходимости маркировать трафик 192.168.1.0/24 и указывать routing-mark в последнем правиле.
0
|
vita et mortuus
1801 / 701 / 152
Регистрация: 10.06.2009
Сообщений: 2,741
|
|
23.01.2017, 11:53 | 3 |
Это лучше заменить на:
Код
/ip route rule add src-address=192.168.1.0/24 table=mixed Добавлено через 18 минут Нужно не заменить, а лучше добавить: Код
/ip firewall mangle add action=mark-connection chain=forward in-interface=ISP1 new-connection-mark=ISP1-con /ip firewall mangle add action=mark-connection chain=forward in-interface=ISP2 new-connection-mark=ISP2-con
0
|
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 79
|
|
23.01.2017, 12:53 [ТС] | 4 |
Вот что в итоге получилось (см. скриншот)
Все ли верно? (ISP2 пока отключен)
0
|
4296 / 1633 / 325
Регистрация: 23.06.2009
Сообщений: 5,815
|
|
23.01.2017, 13:37 | 5 |
ну вроде верно
0
|
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 79
|
|
23.01.2017, 14:09 [ТС] | 6 |
Короче говоря, при таком конфиге у всех пользователей примерно раз в 10 мин отваливается инет...
0
|
4296 / 1633 / 325
Регистрация: 23.06.2009
Сообщений: 5,815
|
|
23.01.2017, 14:37 | 7 |
при работе 2-х провайдеров или одного?
в чем выражается отваливание? как долго нет инета после отвала? поставьте ping -t куданить в инет, в момент отвала пинг прерывается? в логах микротика есть что?
0
|
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 79
|
|
26.01.2017, 11:44 [ТС] | 9 |
Спасибо, решил данный вариант испробовать, все по мануалу настроил, почему то некоторые маршруты и правила mangle не работают, вот мой скриншот
0
|
4296 / 1633 / 325
Регистрация: 23.06.2009
Сообщений: 5,815
|
|
26.01.2017, 12:44 | 10 |
у вас какие-то сервисы пробрасываются в LAN (rdp и т.д.) или на самом микротике (например ВПН серверы) для доступа извне?
Добавлено через 54 секунды покажите ip firewall nat
0
|
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 79
|
|
26.01.2017, 14:11 [ТС] | 11 |
0
|
vita et mortuus
1801 / 701 / 152
Регистрация: 10.06.2009
Сообщений: 2,741
|
|
26.01.2017, 22:42 | 12 |
Это связанно с bridge-local. Если использовать, вместо bridge-local, маршрутизацию по каждому порту или маршрутизацию на Мастер портах, то выше указанное правило работает на ура. Ещё раз рекомендую почитать Руководства: Packet Flow
0
|
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 79
|
|
27.01.2017, 08:20 [ТС] | 13 |
Мне кажется, что лучше всего подойдет балансировка по способу ECMP, но там у меня беда с маршрутами, пакеты приходят с одного ip-адреса а обратно уходят с другого...
Код
/ip route add dst-address=0.0.0.0/0 gateway=ISP1 routing-mark=ISP1-rt /ip route add dst-address=0.0.0.0/0 gateway=ISP2 routing-mark=ISP2-rt /ip route add dst-address=0.0.0.0/0 gateway=ISP1,ISP1,ISP1,ISP2 Третий маршрут для самой балансировки. Но у них у всех distance=1, как они могут работать в раз? Работают обычно только 1-2 из них... И еще такой вопрос: при создании статических маршрутов нужно указывать шлюз как pppoe-соединение (например ISP1) или прописывать его ip-адрес вручную? (дело в том, что шлюз от провайдера может меняться динамически)
0
|
4296 / 1633 / 325
Регистрация: 23.06.2009
Сообщений: 5,815
|
|
27.01.2017, 09:29 | 14 |
Тут нужно четко понимать что происходит и как это работает
Вся та куча правил в Mangle, в большей степени, нужна для dst-nat подключений, что бы пакет вошедший через ISP2 не ушел назад через шлюз по умолчанию, который как правило ISP1, и это относится только к транзитным пакетам dst nat (mangle forward), или пакетам предназначенным самому микротику (mangle input). На соединения, которые устанавливаются из локальной сети (src nat, маскарад) все эти правила не действуют (или действовать не должны) Не зря спросил про сервисы в сети, если бы их не было, в mangle вообще не нужно было ничего делать. Так что давайте все сначала по ECMP, настраивайте, показывайте настройки, дальше будем в процессе разбираться что работает не так и править. у них разный routing-mark, выбор маршрута будет осуществятся по метке. если адрес динамический, указывайте не адрес шлюза а интерфейс хотя на практике я такого не видел, что меняется адрес шлюза у провайдера.
0
|
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 79
|
|
27.01.2017, 10:56 [ТС] | 15 |
Итак, все заново (имеем 2 PPPoE-соединения, хотим настроить ECMP-балансировку):
Код
/ip firewall mangle add action=mark-connection chain=input in-interface=ISP1 new-connection-mark=ISP1-con /ip firewall mangle add action=mark-connection chain=input in-interface=ISP2 new-connection-mark=ISP2-con /ip firewall mangle add action=mark-routing chain=output connection-mark=ISP1-con new-routing-mark=ISP1-rt /ip firewall mangle add action=mark-routing chain=output connection-mark=ISP2-con new-routing-mark=ISP2-rt /ip firewall mangle add action=mark-connection chain=forward in-interface=ISP1 new-connection-mark=ISP1-con /ip firewall mangle add action=mark-connection chain=forward in-interface=ISP2 new-connection-mark=ISP2-con Код
/ip route add dst-address=0.0.0.0/0 distance=1 gateway=ISP1 routing-mark=ISP1-rt /ip route add dst-address=0.0.0.0/0 distance=1 gateway=ISP2 routing-mark=ISP2-rt /ip route add dst-address=0.0.0.0/0 distance=1 gateway=ISP1,ISP1,ISP1,ISP2 check-gateway=ping При данном конфиге пользователи жалуются на медленный интернет, а так же меня смущает последний маршрут, ведь в нем отсутствует routing-mark, и поэтому, например, соединения пришедшие через 1 провайдера, обратно могут отправиться через 2 провайдера и наоборот... Думаю дело именно в этом
0
|
4296 / 1633 / 325
Регистрация: 23.06.2009
Сообщений: 5,815
|
|
27.01.2017, 11:30 | 16 |
вроде все верно
что за prerouting в mangle? нет, все будет работать как нужно например, из инета обращаются через ISP1 на порт 8083, это соединение маркируется меткой ISP1-con /ip firewall mangle add action=mark-connection chain=forward in-interface=ISP1 new-connection-mark=ISP1-con далее dst-nat, пакет уходит в локалку, сервис шлет обратный пакет, вот здесь /ip firewall mangle add action=mark-routing chain=output connection-mark=ISP1-con new-routing-mark=ISP1-rt маркируем пакет по connection-mark и указываем таблицу ISP1-rt и дальше пакет в соответствии с маршрутом /ip route add dst-address=0.0.0.0/0 distance=1 gateway=ISP1 routing-mark=ISP1-rt уходит через ISP1 что касается соединение инициированных из LAN, то тут срабатывает /ip route add dst-address=0.0.0.0/0 distance=1 gateway=ISP1,ISP1,ISP1,ISP2 check-gateway=ping и по алгоритму round-robin с учетом "весов", пакету назначается маршрут через ISP1 или ISP2, обратно из инета пакет доставляется хосту в локальной сети без учета каких либо правил. как-то так...
0
|
vita et mortuus
1801 / 701 / 152
Регистрация: 10.06.2009
Сообщений: 2,741
|
|
27.01.2017, 12:11 | 17 |
Я отключаю дефолтные маршруты.
Код
ip address print #И все пространство принадлежащие локальной сети необходимо добавить. ip firewall address-list add list=LAN address= Сообщение выше ошибочно, Я немного поспешил.
0
|
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 79
|
|
27.01.2017, 13:54 [ТС] | 18 |
prerouting это я пытался настроить что бы один адрес лист ходил только через первого провайдера, не знаю верно ли получилось:
Код
/ip firewall mangle add action=mark-routing chain=prerouting src-address-list=LIST new-routing-mark=ISP1-rt
0
|
4296 / 1633 / 325
Регистрация: 23.06.2009
Сообщений: 5,815
|
|
27.01.2017, 14:13 | 19 |
mangle не нужен, используйте ip route rules
action lookup, table ISP1-rt
0
|
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 79
|
|
27.01.2017, 15:05 [ТС] | 20 |
0
|
27.01.2017, 15:05 | |
27.01.2017, 15:05 | |
Помогаю со студенческими работами здесь
20
Балансировка бинарного дерева Балансировка двоичного дерева Балансировка АВЛ-дерева Балансировка и масштабирование матриц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |