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

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

Добавлено: 22 авг 2016, 15:29
KARaS'b
Хотелось бы немного прояснить ситуацию и по возможности получить тычок носом ибо сам не нашел.
При настройке балансера, на первой же странице многоуважаемый podarok66 интересуется: "А как быть тем, кто получает канал по средствам DHCP?" (думаю так же сюда подойдет вариант с PPPoE) и получает ответ на этот вопрос, от не менее уважаемого, Barvinok: " отключать автосоздание деф.роута и вместо гетвея провайдера просто указать интерфейс, аля / ip route add dst-address=0.0.0.0/0 gateway=ether1,ether2,usblan check-gateway=ping", и потом это вроде тож упоминается, более того, в тырнетах, в различных манах поступаю и советуют, в таких случаях, поступать так же. И сначала я обрадовался, а потом попробовал и сильно расстроился, данный вариант не работает, пробовал и на PPPoE и на простом DHCP. И тут встает извечный вопрос, "как жить?", или что я делаю не так, быть может я чего то недопонял?

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

Добавлено: 22 авг 2016, 20:00
gmx
Так ведь если не eher1 указывать, а именно PPPoE интерфейс должно работать.

Я правда не сильный спец по балансировкам. У мена что-то туго с несколькими каналами у клиентов. Нету средств...

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

Добавлено: 22 авг 2016, 21:12
KARaS'b
gmx писал(а):Так ведь если не eher1 указывать, а именно PPPoE интерфейс должно работать.

Я правда не сильный спец по балансировкам. У мена что-то туго с несколькими каналами у клиентов. Нету средств...

Да это понятно, вроде не совсем балбес :hi_hi_hi:, именно PPPoE интерфейс и указываю, но не работает и дело не в PPPoE, рядом второй линк, билайновский, обычное DHCP, тоже не прокатывает и это печально :-(

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

Добавлено: 24 авг 2016, 22:46
KARaS'b
А можно понаглеть?) Я бы даже сказал больше поинтересоваться.
В поисках решения проблемы с балансировкой при DHCP подключениях наткнулся на очень полезный скрипт который позволяет избавится от add def. route

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

:global ispgw [ip dhcp-client get [/ip dhcp-client find interface=ether1] gateway];
:global ispgwstat [ip route get  [/ip route find comment="GGW"] gateway];
#:log info ("$ispgw")
#:log info ("$ispgwstat")
:if ($ispgw = $ispgwstat) do={:log info ("ISP GW OK")} else={ip route set [/ip route find comment="GGW"] gateway=$ispgw;  :log info ("ISP GW COMPLETE")}

И вот при помощи этой прелести замечтательно реализуется резервирование, но!...
Если в него тупо дописать вторую переменную , допустим "ispgw2" от допустим второго dhcp клиента, то возможно ли потом как то легко сравнить переменные "ispgw" и "ispgw2" с переменной "ispgwstat" в маршруте и при необходимости добавить только изменившуюся часть, или хотя бы переписать все, но только если ispgw или ispgw2 изменились? Или для этого надо ваять другую "партянку" со значительным увеличением кода и совершенно иной логикой?

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

Добавлено: 24 авг 2016, 23:36
KARaS'b
З.Ы. Кстати, насчет PPPoE и невозможности указать в маршруте тупо интерфейс, обманул, с пппое такое возможно, просто пробовал удаленно под "сейф модом", которому не нравился разрыв подключения при замене маршрута) Когда попробовал дома, то все срослось, но вот при DHCP к сожалению вариант не прокатывает.

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

Добавлено: 25 авг 2016, 07:43
podarok66
KARaS'b писал(а):И вот при помощи этой прелести замечтательно реализуется резервирование, но!...

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

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

Добавлено: 25 авг 2016, 10:09
KARaS'b
podarok66 писал(а):
KARaS'b писал(а):И вот при помощи этой прелести замечтательно реализуется резервирование, но!...

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

Не-не-не, вы меня не поняли, этой штукой я избавляюсь от add def. route в DHCP клиенте, что бы создать маршрут руками и при изменение адреса и шлюза скрипт бы заменил этот самый шлюз в роуте, а дальше "нетвоч" с пингом например до 8.8.8.8, или аналогичным хостом в инете и пара команда на "пинг есть и пинга нет", который вырубают и поднимает нужные маршруты. Да я понимаю, что при таком раскладе не ответь мне 8.8.8.8 и канал переключится, но это проще чем писать мега скрипты или использовать кем то написанный под себя и переписывать его для меня.
Самоег главное что меня сейчас интересует, возможно л данный скрипт адаптировать для сбора GW с двух DHCP клиентов и склеивании их в одном маршруте с проверкой, ну вобщем то что выше написал, а это как я понимаю может сказать только наш vqd =)

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

Добавлено: 25 авг 2016, 19:00
podarok66
Так я не понял, что там у вас, проблема в склеивании или в проверке?
Склеить вообще не проблема:

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

ip route set [/ip route find comment="GGW"] gateway="$ispgw,$ispgw2";

С проверкой мне немного веселее, я как обычно на коленке сляпал, ну посмотрите:

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

:if (([:find [/ip route get [find comment="GGW"] gateway] $ispgw]>=0)&&([:find [/ip route get [find comment="GGW"] gateway] $ispgw2]>=0)) do={:put "Ok"} else={/ip route set [/ip route find comment="GGW"] gateway="$ispgw,$ispgw2";}

Уверен, есть более изящное решение, может кто и подскажет.

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

Добавлено: 30 авг 2016, 12:00
KARaS'b
podarok66 писал(а):С проверкой мне немного веселее, я как обычно на коленке сляпал, ну посмотрите:

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

:if (([:find [/ip route get [find comment="GGW"] gateway] $ispgw]>=0)&&([:find [/ip route get [find comment="GGW"] gateway] $ispgw2]>=0)) do={:put "Ok"} else={/ip route set [/ip route find comment="GGW"] gateway="$ispgw,$ispgw2";}

Уверен, есть более изящное решение, может кто и подскажет.

Спасибо за предложенный вариант, в итоге отказался от этой идеи и в принципе все уже реализовал как и хотел при помощи ECMP, но правда, на мой взгляд с костылями, причем с костылями для костылей!)
Но пока меня очень интересует вопрос, за что отвечает строка "scope" в маршрутах, не понимаю я этих буржуйских описаний, а случаи с примерами, что бы хотя бы интуитивно понять, найти не смог.
За основу были взяты вот эти строки
 

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

###Обеспечение failover c более глубоким анализом канала###
#с помощью параметра scope укажем рекурсивные пути к узлам 8.8.8.8 и 8.8.4.4
/ip route add dst-address=8.8.8.8 gateway=10.100.1.254 scope=10
/ip route add dst-address=8.8.4.4 gateway=10.200.1.254 scope=10
# укажем 2 default gateway через узлы путь к которым указан рекурсивно
/ip route add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=1 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=8.8.4.4 distance=2 check-gateway=ping

Причем единственное что по этому поводу пишет автор это
остановимся подробнее на втором. Он подразумевает не совсем корректное использование параметра scope, но поможет нам прощупать канал провайдера глубже, чем до шлюза. Принцип прост: Вместо традиционного указания default gateway=шлюз провайдера, мы скажем роутеру что default gateway это какой-то из всегда_доступных_узлов (например 8.8.8.8 или 8.8.4.4) и он в свою очередь доступен через шлюз провайдера.

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

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

Добавлено: 28 окт 2016, 16:12
algerka
KARaS'b писал(а):Хотелось бы немного прояснить ситуацию и по возможности получить тычок носом ибо сам не нашел.
При настройке балансера, на первой же странице многоуважаемый podarok66 интересуется: "А как быть тем, кто получает канал по средствам DHCP?" (думаю так же сюда подойдет вариант с PPPoE) и получает ответ на этот вопрос, от не менее уважаемого, Barvinok: " отключать автосоздание деф.роута и вместо гетвея провайдера просто указать интерфейс, аля / ip route add dst-address=0.0.0.0/0 gateway=ether1,ether2,usblan check-gateway=ping", и потом это вроде тож упоминается, более того, в тырнетах, в различных манах поступаю и советуют, в таких случаях, поступать так же. И сначала я обрадовался, а потом попробовал и сильно расстроился, данный вариант не работает, пробовал и на PPPoE и на простом DHCP. И тут встает извечный вопрос, "как жить?", или что я делаю не так, быть может я чего то недопонял?

На pppoe должен работать (у меня по крайне мере на ростелекоме работает), как и на ppptp & l2tp, на dhcp действительно не работает.
Для dhcp я использую скрипт, который периодически берет адрес шлюза с dhcp клиента и меняет для маршрута.