![]() |
пинг узла через альтернативный шлюз
Доброго. Такая задача. Локалка, пусть будет 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, только что-то не вышло = вообще пинги не идут. |
Цитата:
он выставляет флаг Strict Source Route в IP-заголовке, такие пакеты все современные маршрутизаторы по умолчанию отбрасывают Цитата:
|
Цитата:
ps С Микротиками, как ни пытался, так и не подружился) |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
- Видимо малой кровью не получится. Хорошо, немного упрощу задачу. Пусть будет со сменой интернета/шлюза=прерыванием и пингованием как обычно. Итак исходные данные в первом посте. Батники смены шлюза (ч-з netsh) уже готовые и есть. Схема, я так понимаю теперь такая. 1. Пингуем узел с текущего шлюза (шлюз1) - среднее время пинга в переменную1. 2. Запускаем батник смены шлюза (шлюз2). 3. Пингуем узел ч-з второй шлюз. Результат в переменную2. 4. Сравниваем переменные, если время меньше у второй переменной - остаёмся на втором шлюзе (ведь мы его на шаге 2 сменили - иначе возвращаемся на первый шлюз=запускаем батник смены на шлюз1). Вот реализацию этого, если не затруднит можно сделать? ps Неплохо б в алгоритм добавить пункт проверки текущего шлюза, чтобы скрипт до момента начала проверки знал, ч-з какой шлюз "сейчас" комп ходит в инет. |
нееет, статистика тут гораздо обширнее нужна.
а если в пределах 6-ти часов преобладает по пингу один потом другой, через 1 час картина меняется, на следующие сутки в точности до наоборот, а на следующей неделе четко только один шлюз победитель. или ситуация меняется каждые 1,5 часа, будете скакать туда-сюда из-за небольшого выигрыша в скорости, оно действительно настолько того стоит? Да еще все переходные процессы с батниками и переподключениями. к тому же чтобы выявить разницу если она небольшая надо идеализировать ОС как-то, в разные моменты пинга при разных загрузках (обновление чего-то, движ антивируса, планировщика-MS) показания наверняка будут различаться. |
Цитата:
Цитата:
при ваших запросах всё равно придётся углубиться в устройство сетей можете взять какой-нибудь keenetic, но два провайдера в нём настроить - ближе к шаманству: нужно нагуглить конкретные заклинания для консоли если вас устраивает поочерёдное снятие метрик, можете прописать маршрут к конкретному хосту, пинговать его, переключать этот конкретный маршрут на другой шлюз и снова пинговать в качестве цели можете взять шлюз целевого сервиса (pathping или tracert покажут вам маршрут) |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Делал так или исходные дынные - выходит в инет ч-з шлюз 0.1 Пингую как обычно с дефолтного шлюза - время 15 мс. Добавляю маршрут: route add 1.2.3.4 mask 255.255.255.255 192.168.0.2 пингую - получаю те же 15 мс. Хотя по факту, если явно переключиться на шлюз 0.2 - время стабильно 22 мс. |
Цитата:
|
Ребят, столько оффтопа! Зачем это? Был вопрос, если есть ответы по существу - велкам. Нет, лучше ничего не отвечать. Сорри.
ps Разумеется понимаю, что никто никому ничем не обязан, пришёл на форум для помощи, ибо есть пробелы в написании виндовых скриптов. |
Цитата:
|
Время: 19:43. |
Время: 19:43.
© OSzone.net 2001-