Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   пинг узла через альтернативный шлюз (http://forum.oszone.net/showthread.php?t=347309)

daledale 12-12-2020 11:33 2942716

пинг узла через альтернативный шлюз
 
Доброго. Такая задача. Локалка, пусть будет 192.168.0.0/24
Допустим в локалке два шлюза/два интернета: 192.168.0.1 и 192.168.0.2
Допустим в локалке машина с winОС. Пусть будет со статикой 192.168.0.10 и шлюз по-умолчанию 192.168.0.1
Задача, периодически (разумеется ч-з планировщик решу вопрос, без проблем) пинговать узел, например 1.2.3.4 на предмет меньшего пинга (вопрос с доступностью/недоступностью интернета не стоит, но как промежуточный вариант можно и это, но это не цель).
В общем надо пинговать периодически и переключать основной шлюз в конкретной WinОС на тот, у которого в данный момент меньшее время пинга.
============
В идеале вижу как это.
1. Пингуем узел ч-з один шлюз, записываем в переменную среднее время пинга (можно число хопов увеличить с 4-х, до 10, например для более точного результата).
2. Пингуем узел ч-з другой шлюз. Результат пишем в другую переменную.
3. Сравниваем переменные, и в результате переключаем основной шлюз на другой или остаёмся на текущем. Как альтернатива просто прописываем маршрут до узла ч-з определённый шлюз, а основной шлюз остаётся прежним.

ps Казалось бы можно ч-з те же промежутки времени периодически менять шлюз и пинговать узел, но при этом будет прерываться интернет/соединение, а это критично. Интернет крайне желательно чтобы не прерывался ни на секунду. Собственно засада в том, как пропинговать узел через другой шлюз не переключаясь на него. Пробовал играться с ключом ping -k, только что-то не вышло = вообще пинги не идут.

Busla 12-12-2020 12:29 2942724

Цитата:

Цитата daledale
Пробовал играться с ключом ping -k »

он не совсем для этого, и работает не совсем так как обычный ping
он выставляет флаг Strict Source Route в IP-заголовке, такие пакеты все современные маршрутизаторы по умолчанию отбрасывают

Цитата:

Цитата daledale
надо пинговать периодически и переключать основной шлюз в конкретной WinОС »

странный подход: обычно выбор маршрута - прерогатива маршрутизатора

daledale 12-12-2020 15:22 2942735

Цитата:

Цитата Busla
странный подход: обычно выбор маршрута - прерогатива маршрутизатора »

Вопрос, как ни странно по домашним интернетам. Да, дома их больше одного). Собс-но, как итог нужен бюджетный=софтовый вариант. Дорогущие управляемые маршрутизаторы - не мой случай, да и зачем они дома?!)
ps С Микротиками, как ни пытался, так и не подружился)

alpap 12-12-2020 16:14 2942738

Цитата:

Цитата daledale
нужен бюджетный=софтовый вариант »

Цитата:

Цитата daledale
маршрутизаторы - не мой случай, да и зачем они дома?! »

ага, но как-то не вяжется
Цитата:

Цитата daledale
чтобы не прерывался ни на секунду »

Цитата:

Цитата daledale
шлюз в конкретной WinОС на тот, у которого в данный момент меньшее время пинга »


daledale 12-12-2020 16:33 2942741

Цитата:

Цитата alpap
ага, но как-то не вяжется »

Всё же это дома, без никаких недоговорок. Может я неверно выразился.
-
Видимо малой кровью не получится. Хорошо, немного упрощу задачу. Пусть будет со сменой интернета/шлюза=прерыванием и пингованием как обычно.
Итак исходные данные в первом посте. Батники смены шлюза (ч-з netsh) уже готовые и есть.
Схема, я так понимаю теперь такая.
1. Пингуем узел с текущего шлюза (шлюз1) - среднее время пинга в переменную1.
2. Запускаем батник смены шлюза (шлюз2).
3. Пингуем узел ч-з второй шлюз. Результат в переменную2.
4. Сравниваем переменные, если время меньше у второй переменной - остаёмся на втором шлюзе (ведь мы его на шаге 2 сменили - иначе возвращаемся на первый шлюз=запускаем батник смены на шлюз1).

Вот реализацию этого, если не затруднит можно сделать?
ps Неплохо б в алгоритм добавить пункт проверки текущего шлюза, чтобы скрипт до момента начала проверки знал, ч-з какой шлюз "сейчас" комп ходит в инет.

alpap 12-12-2020 17:59 2942751

нееет, статистика тут гораздо обширнее нужна.
а если в пределах 6-ти часов преобладает по пингу один потом другой, через 1 час картина меняется, на следующие сутки в точности до наоборот, а на следующей неделе четко только один шлюз победитель.
или ситуация меняется каждые 1,5 часа, будете скакать туда-сюда из-за небольшого выигрыша в скорости, оно действительно настолько того стоит? Да еще все переходные процессы с батниками и переподключениями.
к тому же чтобы выявить разницу если она небольшая надо идеализировать ОС как-то, в разные моменты пинга при разных загрузках (обновление чего-то, движ антивируса, планировщика-MS) показания наверняка будут различаться.

Busla 12-12-2020 19:15 2942760

Цитата:

Цитата daledale
Дорогущие управляемые маршрутизаторы - не мой случай »

маршрутизаторы по определению "управляемые", дома обычно не нужно управляемые коммутаторы

Цитата:

Цитата daledale
С Микротиками, как ни пытался, так и не подружился »

Микротики построены на ядре линукс, там вполне типовой packet flow - если понимать как работают tcp/ip сети вообще или сетевой стек linux в частности - базовая настройка Mikrotik'а становится очевидной

при ваших запросах всё равно придётся углубиться в устройство сетей

можете взять какой-нибудь keenetic, но два провайдера в нём настроить - ближе к шаманству: нужно нагуглить конкретные заклинания для консоли


если вас устраивает поочерёдное снятие метрик, можете прописать маршрут к конкретному хосту, пинговать его, переключать этот конкретный маршрут на другой шлюз и снова пинговать
в качестве цели можете взять шлюз целевого сервиса (pathping или tracert покажут вам маршрут)

daledale 12-12-2020 23:04 2942781

Цитата:

Цитата alpap
нееет, статистика тут гораздо обширнее нужна. »

Планировал закинуть в планировщик - чекать каждые 30 мин.
Цитата:

Цитата alpap
будете скакать туда-сюда из-за небольшого выигрыша в скорости »

Да. Это не проблема. Особенно если инет не будет прерываться в идеале.
Цитата:

Цитата alpap
Да еще все переходные процессы с батниками и переподключениями. »

Да достаточно быстро всё проходит. Относительно быстро.
Цитата:

Цитата alpap
обновление чего-то, движ антивируса, планировщика-MS »

Всё подобное зарублено на корню. Никаких обновлений нет и не будет в принципе. Антивируса нет вообще - для моей задачи он не нужен, даже вреден.
Цитата:

Цитата Busla
можете прописать маршрут к конкретному хосту, пинговать его, переключать этот конкретный маршрут на другой шлюз и снова пинговать »

Пробовал. Но по факту пингуется с шлюза по умолчанию.
Делал так или исходные дынные - выходит в инет ч-з шлюз 0.1
Пингую как обычно с дефолтного шлюза - время 15 мс.
Добавляю маршрут: route add 1.2.3.4 mask 255.255.255.255 192.168.0.2
пингую - получаю те же 15 мс. Хотя по факту, если явно переключиться на шлюз 0.2 - время стабильно 22 мс.

Опиум 14-12-2020 10:08 2942905

Цитата:

Цитата daledale
С Микротиками, как ни пытался, так и не подружился) »

настройка 1500 рублевого микротика не дороже его самого.

daledale 14-12-2020 16:37 2942955

Ребят, столько оффтопа! Зачем это? Был вопрос, если есть ответы по существу - велкам. Нет, лучше ничего не отвечать. Сорри.
ps Разумеется понимаю, что никто никому ничем не обязан, пришёл на форум для помощи, ибо есть пробелы в написании виндовых скриптов.

Busla 14-12-2020 20:24 2942978

Цитата:

Цитата daledale
пингую - получаю те же 15 мс. Хотя по факту, если явно переключиться на шлюз 0.2 - время стабильно 22 мс. »

всё же надо смотреть на вывод tracert, а не по таймингам маршрут определять


Время: 19:43.

Время: 19:43.
© OSzone.net 2001-