Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - пинг узла через альтернативный шлюз

Ответить
Настройки темы
CMD/BAT - пинг узла через альтернативный шлюз

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго. Такая задача. Локалка, пусть будет 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, только что-то не вышло = вообще пинги не идут.

Отправлено: 11:33, 12-12-2020

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


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

Цитата daledale:
надо пинговать периодически и переключать основной шлюз в конкретной WinОС »
странный подход: обычно выбор маршрута - прерогатива маршрутизатора
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:29, 12-12-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 15:22, 12-12-2020 | #3


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата daledale:
нужен бюджетный=софтовый вариант »
Цитата daledale:
маршрутизаторы - не мой случай, да и зачем они дома?! »
ага, но как-то не вяжется
Цитата daledale:
чтобы не прерывался ни на секунду »
Цитата daledale:
шлюз в конкретной WinОС на тот, у которого в данный момент меньшее время пинга »

Отправлено: 16:14, 12-12-2020 | #4


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

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

Последний раз редактировалось daledale, 12-12-2020 в 16:42.


Отправлено: 16:33, 12-12-2020 | #5


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


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

Отправлено: 17:59, 12-12-2020 | #6


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата daledale:
Дорогущие управляемые маршрутизаторы - не мой случай »
маршрутизаторы по определению "управляемые", дома обычно не нужно управляемые коммутаторы

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

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

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


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

Последний раз редактировалось Busla, 12-12-2020 в 19:33. Причина: + вариант решения

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:15, 12-12-2020 | #7


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата 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 мс.

Отправлено: 23:04, 12-12-2020 | #8


Ветеран


Сообщения: 547
Благодарности: 36

Профиль | Сайт | Отправить PM | Цитировать


Цитата daledale:
С Микротиками, как ни пытался, так и не подружился) »
настройка 1500 рублевого микротика не дороже его самого.

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 10:08, 14-12-2020 | #9


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:37, 14-12-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - пинг узла через альтернативный шлюз

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - [решено] Через один шлюз подключается, через другой - нет. grey_ink Windows Server 2008/2008 R2 2 23-10-2015 06:59
FreeBSD - Помогите начинающему. Шлюз не пропускает пинг. varyym Общий по FreeBSD 3 20-05-2010 13:54
Proxy/NAT - vmware через прокси шлюз ? AAA7 Сетевые технологии 1 12-05-2009 09:09
[решено] Пинг через проксю clin Microsoft Windows NT/2000/2003 10 11-12-2008 16:19
Route/Bridge - Интернет через шлюз NetBSD ran01 Сетевые технологии 2 12-03-2008 17:57




 
Переход