Страница 1 из 2
Два провайдера и переключение на другого, нужен совет
Добавлено: 19 авг 2014, 14:17
mvp
Добрый день.
Прошивка 6.18.
Есть два провайдера, один DHCP, другой PPPoE, но думаю это не важно для сути вопроса.
Слепил вроде бы для себя скрипт, перелопатил кучу чужих, взял от всех понемногу, пока идет тестовая эксплуатация.
Нужен совет правильно ли я сделал.
Суть в следующем:
есть 2 маршрута
0.0.0.0 gateway1 distance=1
0.0.0.0 gateway2 distance=2
Проверяю доступность через пинг через определенный интерфейс (как в примерах)
:local PingResult1 [/ping $PingTarget1 count=$PingCount interface=wan1]
далее если условие не выполняется, то я решил сумничать и вместо замены distance, я выключаю маршрут - disabled=yes.
В итоге сегодня был краткосрочный глюк, провайдер упал, скрипт честно выключил маршрут, а вот обратно после восстановления не включил...
Т.е. я так понимаю что раз я отключил маршрут, то может быть и мой пинг (как указано выше), из-за этого не проходит? Просто во всех примерах именно distance меняется, а я вот видимо сам себе яму вырыл...
Я прав?
Re: Два провайдера и переключение на другого, нужен совет
Добавлено: 19 авг 2014, 14:49
vqd
Поздравляю с первыми граблями ))))) Их еще много впереди.
В общем создаете маркированные маршруты
Далее в ИП - Роуте - Рулес запрещаете ходить соответствующему трафику акромя соответствующих маршрутов
Далее
:global googlerez [ping 8.8.8.8 count=3 routing-table=wan_rez]
Re: Два провайдера и переключение на другого, нужен совет
Добавлено: 20 авг 2014, 05:59
mvp
В принципе за основу маркировки взял вот этот пост
http://habrahabr.ru/post/186284/.
Единственное переключение сделал не через NetWatch а через скрипт, но по сути тоже отключаю и включаю маршруты.
Вот про эту строчку
Далее
:global googlerez [ping 8.8.8.8 count=3 routing-table=wan_rez]
можно поподробнее?
я где-то встречал примеры что делаем несколько таблиц под каждого провайдера, но у меня на сейчас нет такого, а вы получается пинг через какую-то свою таблицу пускаете...
Просто не совсем понимаю ping $PingTarget1 count=$PingCount interface=wan1 получается не работает явно, т.е. через определенный шлюз вне зависимости от маршрутов?
Re: Два провайдера и переключение на другого, нужен совет
Добавлено: 20 авг 2014, 06:13
mvp
Так... заглянул в rules.
И что-то у меня шаблон стал немного рушится.
Получается что на Routes я и так настраиваю кто куда будет ходить, к примеру:
0.0.0.0 gateway1 RoutingMark="VOIP"
зачем мне еще в Rules фактически тоже самое настраивать?
Re: Два провайдера и переключение на другого, нужен совет
Добавлено: 20 авг 2014, 06:15
mvp
и так возвращаясь к вашей строчке, получается что routing-table=wan_rez в вашем примере это фактически не интерфейс, как бы явное указание маршрута (метки)?
Re: Два провайдера и переключение на другого, нужен совет
Добавлено: 20 авг 2014, 06:22
mvp
И возвращаясь к первому посту своему, сегодня ночью снова на минуту был обрыв, но всё прошло гладко, т.е. по логам видно, отключил маршруты, а потом включил...
Re: Два провайдера и переключение на другого, нужен совет
Добавлено: 20 авг 2014, 07:03
vqd
даю подсказку
Вы пинг пустите через конкретный интерфейс, а потом отключите этот интерфейс. Пинг пускайте скриптом.
Re: Два провайдера и переключение на другого, нужен совет
Добавлено: 20 авг 2014, 08:00
mvp
Подсказку не понял.
Я отключаю маршрут, но не сам интерфейс.
Сам интерфейс может быть недоступен только по внешним факторам.
Просто если пинг идет по тем же маршрутам что я прописываю для всех машин в сети, то это всё объясняет, ну или по крайней мере должно объяснять.
А если же я указываю при пинге конкретный интерфейс (что мне в принципе и нужно, чтобы не смотреть на маршруты), то тогда маршруты не должны никак на это влиять.
Re: Два провайдера и переключение на другого, нужен совет
Добавлено: 20 авг 2014, 08:02
vqd
ок, сделайте как вы говорите и отключите интерфейс ))) Представьте что у вас линк с провайдером пропал.
Re: Два провайдера и переключение на другого, нужен совет
Добавлено: 20 авг 2014, 08:10
mvp
зерно истины в этом есть, т.к. честно говоря ручного тест-драйва я не делал, т.к. кабеля не выдергивал...
хотя по идее вся эта заморочка по скриптам для тех случае когда линк как бы есть, адрес получен, а интернета нет... в остальных случаях насколько я понимаю distance сработает сама.
поэтому у меня сейчас и нет понимания как ping работает...
вечером тогда наверное когда все уйдут, буду тест-драйв проводить, чтобы так сказать вживую посмотреть что будет происходить.