Jump to content

Mikrotik назначить интерфейс шлюзом


Recommended Posts

Проблема возникла при настройке переключения на резервный канал.

Имеется два подключения, оба выдают интерфейсу по DHCP динамический IP. На оба интерфейса Ether1 и Ether2 подцеплен DHCP клиент с отключенным автоматическим созданием маршрута. 

Проблема: Создаю руками маршрут выбирая интерфейс в качестве шлюза - трафик не ходит. Если маршрут создает DHCP клиент автоматически - все работает. Но этот вариант не подходит, так как нужно маркировать трафик. Начинает работать если вместо интерфейса указать IP адрес шлюза, но это не вариант, так как шлюз меняется.

В чем причина такого глюка? Как создать маршрут для интерфейса с DHCP клиентом руками?

Link to post
Share on other sites

"Начинает работать если вместо интерфейса указать IP адрес шлюза, но это не вариант, так как шлюз меняется."

Возможно дело в nexthop lookup - когда в качестве шлюза указываете интерфейс, этот интерфейс исключается из алгоритма поиска хопов:

http://wiki.mikrotik.com/wiki/Manual:IP/Route

Routes with interface name as the value of gateway are not used for nexthop lookup.

Link to post
Share on other sites

Перед микротиком поставьте два роутера и не партесь так у меня таже история, решил статикой и роутером на один канал

Link to post
Share on other sites

Перед микротиком поставьте два роутера и не партесь так у меня таже история, решил статикой и роутером на один канал

Ужас... :facepalm:

Link to post
Share on other sites

А есть ли скрипт для микротика который будет пинговать шлюз и если пинг не пройдет заменит ИП шлюза в Роуте на тот который укажу чтоб работало через резерв? Всегда делаю это руками но не всегда получается сделать это оперативно.

Link to post
Share on other sites

 

Перед микротиком поставьте два роутера и не партесь так у меня таже история, решил статикой и роутером на один канал

Ужас... :facepalm:

 

А че - просто хардверное решение вместо скриптового... Хотя я бы просто у провайдера взял бы две статики (вернее - так и сделал %).

В теории можно и скриптами - выцеплять все дефолтные роуты, определять, на каком интерфейсе висят и потом играть метриками/маркровать соединения/пакеты и тд.

В теории ничего сложного, только скрипты побольше будут %)

Link to post
Share on other sites

А есть ли скрипт для микротика который будет пинговать шлюз и если пинг не пройдет заменит ИП шлюза в Роуте на тот который укажу чтоб работало через резерв? Всегда делаю это руками но не всегда получается сделать это оперативно.

Обычно по-другому - имеется два дефолтных роута, один с разными метриками (0 и 1 или 1 и 2) и если нужно, то просто меняете метрику и дефолтный трафик идет по другому пути. Ткните гугл на предмет "микротик, балансировка"

Link to post
Share on other sites

 

Перед микротиком поставьте два роутера и не партесь так у меня таже история, решил статикой и роутером на один канал

Ужас... :facepalm:
Да ужас но если у человека не выходит по другому то вариант

А есть ли скрипт для микротика который будет пинговать шлюз и если пинг не пройдет заменит ИП шлюза в Роуте на тот который укажу чтоб работало через резерв? Всегда делаю это руками но не всегда получается сделать это оперативно.

Да и в сети таких вариантов куча да и написать впринципе не проблема
Link to post
Share on other sites

 

А есть ли скрипт для микротика который будет пинговать шлюз и если пинг не пройдет заменит ИП шлюза в Роуте на тот который укажу чтоб работало через резерв? Всегда делаю это руками но не всегда получается сделать это оперативно.

Обычно по-другому - имеется два дефолтных роута, один с разными метриками (0 и 1 или 1 и 2) и если нужно, то просто меняете метрику и дефолтный трафик идет по другому пути. Ткните гугл на предмет "микротик, балансировка"
А по такому принципу зачастую проблемы так в практике бывает что провайдер адрес клиенту отдаёт с шлюзом, а инета нету на них и таким образом Ваш вариант не сработает. Оптимальный вариант скриптом проверять доступ к интернету к обоим провайдерам и согласно работоспособности переходить на резервный и обратно
Link to post
Share on other sites

 

 

А есть ли скрипт для микротика который будет пинговать шлюз и если пинг не пройдет заменит ИП шлюза в Роуте на тот который укажу чтоб работало через резерв? Всегда делаю это руками но не всегда получается сделать это оперативно.

Обычно по-другому - имеется два дефолтных роута, один с разными метриками (0 и 1 или 1 и 2) и если нужно, то просто меняете метрику и дефолтный трафик идет по другому пути. Ткните гугл на предмет "микротик, балансировка"
А по такому принципу зачастую проблемы так в практике бывает что провайдер адрес клиенту отдаёт с шлюзом, а инета нету на них и таким образом Ваш вариант не сработает. Оптимальный вариант скриптом проверять доступ к интернету к обоим провайдерам и согласно работоспособности переходить на резервный и обратно

 

А я что предложил, разве не то же самое? Только вопрос - дает ли микротик редактировать роуты, созданные дхсп клиентом... Но это можно обойти (вернее сделать пару костылей скриптованием)

Link to post
Share on other sites

 

 

 

А есть ли скрипт для микротика который будет пинговать шлюз и если пинг не пройдет заменит ИП шлюза в Роуте на тот который укажу чтоб работало через резерв? Всегда делаю это руками но не всегда получается сделать это оперативно.

Обычно по-другому - имеется два дефолтных роута, один с разными метриками (0 и 1 или 1 и 2) и если нужно, то просто меняете метрику и дефолтный трафик идет по другому пути. Ткните гугл на предмет "микротик, балансировка"
А по такому принципу зачастую проблемы так в практике бывает что провайдер адрес клиенту отдаёт с шлюзом, а инета нету на них и таким образом Ваш вариант не сработает. Оптимальный вариант скриптом проверять доступ к интернету к обоим провайдерам и согласно работоспособности переходить на резервный и обратно

 

А я что предложил, разве не то же самое? Только вопрос - дает ли микротик редактировать роуты, созданные дхсп клиентом... Но это можно обойти (вернее сделать пару костылей скриптованием)

 

На сколько я понял задача резервировать и если так, то не надо не чего редактровать. Скрипт сам будет в дхцп клиенте ставить птичку add default route и все!

Вот пример  резервирование  двух провайдеров по дхцп и прекрасно работает http://habrahabr.ru/post/243071/

Edited by ynet
Link to post
Share on other sites

"Начинает работать если вместо интерфейса указать IP адрес шлюза, но это не вариант, так как шлюз меняется."

Возможно дело в nexthop lookup - когда в качестве шлюза указываете интерфейс, этот интерфейс исключается из алгоритма поиска хопов:

http://wiki.mikrotik.com/wiki/Manual:IP/Route

Routes with interface name as the value of gateway are not used for nexthop lookup.

Да. Это действительно так, сегодня благодаря Вам обратил на это внимание. Однако как в таком случае решить проблему?

Link to post
Share on other sites

 

"Начинает работать если вместо интерфейса указать IP адрес шлюза, но это не вариант, так как шлюз меняется."

Возможно дело в nexthop lookup - когда в качестве шлюза указываете интерфейс, этот интерфейс исключается из алгоритма поиска хопов:

http://wiki.mikrotik.com/wiki/Manual:IP/Route

Routes with interface name as the value of gateway are not used for nexthop lookup.

Да. Это действительно так, сегодня благодаря Вам обратил на это внимание. Однако как в таком случае решить проблему?

 

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

Link to post
Share on other sites

 

 

"Начинает работать если вместо интерфейса указать IP адрес шлюза, но это не вариант, так как шлюз меняется."

Возможно дело в nexthop lookup - когда в качестве шлюза указываете интерфейс, этот интерфейс исключается из алгоритма поиска хопов:

http://wiki.mikrotik.com/wiki/Manual:IP/Route

Routes with interface name as the value of gateway are not used for nexthop lookup.

Да. Это действительно так, сегодня благодаря Вам обратил на это внимание. Однако как в таком случае решить проблему?

 

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

 

 

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

 

По сути вопроса: Один из простых способов всегда иметь актуальный шлюз обновлять его в момент срабатывания Netwatch.

 

Вытянуть шлюз из нужного DHCP клиента можно вот так: [ /ip dhcp-client get [/ip dhcp-client find comment=eth1 ] gateway ]

 

Подстановка тоже не составляет труда, однако есть острое желание найти более элегантное решение. Смотрю в сторону VRF

 

Всем, у кого есть конструктивные мысли на этот счет пожалуйста поделитесь. Тема очень актуальна.

Link to post
Share on other sites

 Все решается скриптами !! ;) и не надо назначать интерфейс шлюзом!!

 

Как быть если два првоайдера выдают одинаковый шлюз? С примером пожалуйста.

Link to post
Share on other sites

С одинаковым никак, или все таки перед одним роутер:)

Edited by ynet
Link to post
Share on other sites

 

 

Как быть если два првоайдера выдают одинаковый шлюз?

Точно два провайдера или все же 2 линка к одному  провайдеру?

Link to post
Share on other sites

С одинаковым не как, или все таки перед одним роутер :)

 

С утверждением вашим весьма сложно согласиться, хотя бы по причине того, что "никак" пишется через "И" и это одно слово.

Link to post
Share on other sites

 

Как быть если два првоайдера выдают одинаковый шлюз?

Точно два провайдера или все же 2 линка к одному  провайдеру?

 

 

В данном конкретном случае - два линка одного провайдера, однако есть объект с одинаковыми шлюзами от разных провайдеров.

3l8ndbk5uzap.jpg

Edited by mstsc
Link to post
Share on other sites

 

 

В данном конкретном случае - два линка одного провайдера, однако есть объект с одинаковыми шлюзами от разных провайдеров.

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

А в случае разных провайдеров взять у одного из них реальный IP

Link to post
Share on other sites

Насчет "не как"  согласен (подозреваю, что тут не опечатка %) - лучше конечно не "как", но все же можно:

http://wiki.mikrotik.com/wiki/Manual:Load_balancing_multiple_same_subnet_links

В качестве шлюза можно указывать ip%gate , например 10.0.0.1%ether1

Link to post
Share on other sites

 

В данном конкретном случае - два линка одного провайдера, однако есть объект с одинаковыми шлюзами от разных провайдеров.

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

А в случае разных провайдеров взять у одного из них реальный IP

 

Проблема не в емкости канала, оба волокна 200 выдают. Главная задача этой затеи - резервирование. Шлюз один, однако путь к этому шлюзу идет через разные узлы связи.

 

Насчет "не как"  согласен (подозреваю, что тут не опечатка %) - лучше конечно не "как", но все же можно:

http://wiki.mikrotik.com/wiki/Manual:Load_balancing_multiple_same_subnet_links

В качестве шлюза можно указывать ip%gate , например 10.0.0.1%ether1

Большое спасибо за подсказку, действительно работает и решение интересное.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...