Windows Драйвер LKDSDrv - развитие ComCLB

  • Автор темы Автор темы Andi
  • Дата начала Дата начала
Van Gog написал(а):
Возникла необходимость немного изменить структуру сети, соотвественно требуется изменить связи входящих КСЛов (номер слота связи, порты данных и звука связи и порты самого КСЛа) и структуру сети в драйвере. В какой последовательности нужно изменять параметры удалённо, чтобы не потерять входящий УМ?

Банально просто: от дальнего к ближнему по цепочке.
 
Умеет ли ПКСЛ работать с альтернативными шлюзами? Если да, то как настроить сетевой адаптер для этого?

Попутно... Может кто знает как заставить винду переходить автоматом на резервный шлюз, если упал основной?
 
Van Gog написал(а):
Умеет ли ПКСЛ работать с альтернативными шлюзами? Если да, то как настроить сетевой адаптер для этого?

Попутно... Может кто знает как заставить винду переходить автоматом на резервный шлюз, если упал основной?

ПКСЛ не работает с альтернативными шлюзами. И попытки найти способ автоматического переключения шлюза (или сетевого интерфейса) ни к чему не привели, может, конечно, попытки были недостаточно активные.

Некоторые элементы резервирования реализованы в ПКСЛ уже сейчас.

ПКСЛ поддерживает альтернативные IP адреса в связи (как и динамические). Если удаленный аппаратный КСЛ сменил шлюз, т.е. сменил IP адрес и пакеты от удаленого КСЛа начинают приходить с нового IP адреса, то ПКСЛ запомнит этот адрес и будет использовать новый запомненный IP адрес для передачи данных в удаленный КСЛ.

Если ПКСЛ не получил подтверждение на посланные пакеты, то, при наличие в связи альтернативных IP адресов, ПКСЛ начинает использовать следующий альтернативный IP адрес для посылки пакетов по данному направлению.

Работа с альтернативными IP адресами в ПКСЛе отличается от аппаратного КСЛа тем, что ПКСЛ не пытаеся вернуться на основной IP адрес.

Теперь про альтернативные IP шлюзы.

Аппаратный КСЛ имеет один сетевой интерфейс, соответсвенно не может быть непосредственно подключен к нескольким провайдерам одновременно, использование нескольких шлюзов и создает возможность КСЛу управлять отправкой IP пакетов по нужному провайдеру.
Компьютер может иметь несколько сетевых интерфейсов, например, есть проводной IP провайдер (например, 88.77.66.44), поставляющий сеть прямо в сетевую карту, и, скажем, 3G USB модем (например 222.111.99.88). Для того, чтобы ПКСЛ принимал IP пакеты, направленные на собственный IP порт ПКСЛа (например 44000) со всех сетевых интерфейсов компьютера, нужно указать в качестве собственного сетевого адреса 0.0.0.0. Принимать то ПКСЛ будет, а вот управлять отправкой в этом случае невозможно, т.е. нельзя узнать через какой интерфейс были приняты данные и нельзя указать через какой сетевой интерфейс данные должны быть отправлены.

В Windows можно открыть IP порты с одним номером для каждого интерфейса, т.е. можно открыть порты 88.77.66.44:44000 и 222.111.99.88:44000. В этом случае уже понятно с какого интерфейса пришел пакет и на какой интерфейс отправлять пакет

Подобный механизм будет реализован в ПКСЛ и ПКЛШ.
 
Андрей Ефименко написал(а):
ПКСЛ не работает с альтернативными шлюзами. И попытки найти способ автоматического переключения шлюза (или сетевого интерфейса) ни к чему не привели, может, конечно, попытки были недостаточно активные.

Можно подробнее в чём проблема? Меня интересует ситуация с одном сетевым интерфейсом. Почему КСЛ можно научить работать с 3мя шлюзами, а ПКСЛ - нет?

В винде, в настройках сетевой карты можно указать несколько шлюзов, но как это работает я, пока, не нашёл :( .
 
Van Gog написал(а):
Можно подробнее в чём проблема? Меня интересует ситуация с одном сетевым интерфейсом. Почему КСЛ можно научить работать с 3мя шлюзами, а ПКСЛ - нет?

КСЛ сам обслуживает свой сетевой интерфейс (Wiznet), а ПКСЛ использует настройки Windows (т.е. ПКСЛ ввобще ничего не настраивает) и как поменять из программы (из ПКСЛа) настройки TCP/IP протокола непонятно. А переключаться на разных провайдеров ПКСЛ будет, как я уже писал, открытием отдельных IP портов на каждый сетевой интерфес.
 
Андрей Ефименко написал(а):
КСЛ сам обслуживает свой сетевой интерфейс (Wiznet), а ПКСЛ использует настройки Windows (т.е. ПКСЛ ввобще ничего не настраивает) и как поменять из программы (из ПКСЛа) настройки TCP/IP протокола непонятно. А переключаться на разных провайдеров ПКСЛ будет, как я уже писал, открытием отдельных IP портов на каждый сетевой интерфес.

Кое-какая пища для размышлений: http://www.xnets.ru/plugins/content/conten...p?content.123.3, http://technet.microsoft.com/ru-ru/library...696(WS.10).aspx
 
Последнее редактирование модератором:
Андрей Ефименко написал(а):
ПКСЛ не работает с альтернативными шлюзами. И попытки найти способ автоматического переключения шлюза (или сетевого интерфейса) ни к чему не привели, может, конечно, попытки были недостаточно активные.
Упс.... А я, долго откладывая, хотел все же перейти на новый драйвер... Про шлюзы как-то и неподумал, а мне без них никак нельзя! Значит снова прийдется ждать. :(

Андрей Ефименко написал(а):
КСЛ сам обслуживает свой сетевой интерфейс (Wiznet), а ПКСЛ использует настройки Windows (т.е. ПКСЛ ввобще ничего не настраивает) и как поменять из программы (из ПКСЛа) настройки TCP/IP протокола непонятно.
А netsh interface? Я с ее помощью на ноуте переключаю сетевые настройки.
 
Последнее редактирование модератором:
revit написал(а):
Упс.... А я, долго откладывая, хотел все же перейти на новый драйвер... Про шлюзы как-то и неподумал, а мне без них никак нельзя! Значит снова прийдется ждать. :(


Программный КСЛ лишь часть LKDSDrv, т.е. можно использовать и аппаратные КСЛы, соответсвенно и переход на LKDSDrv не связан с ПКСЛ и должен быть сделан.

Еще раз про шлюзы - в аппаратном КСЛе альтернативнык шлюзы используются только по тому, что нет возможности одновременного подключения к нескольким провайдерам. В ПКСЛе будет возможность использования нескольких провайдеров.
 
Андрей Ефименко написал(а):
Программный КСЛ лишь часть LKDSDrv, т.е. можно использовать и аппаратные КСЛы, соответсвенно и переход на LKDSDrv не связан с ПКСЛ и должен быть сделан.
Меня как раз таки интересовал полный переход на программный КСЛ со всеми его преимуществами (динамика, отсутствие ограничения кол-ва связей). А без этих преимуществ какой толк?
Еще раз про шлюзы - в аппаратном КСЛе альтернативнык шлюзы используются только по тому, что нет возможности одновременного подключения к нескольким провайдерам. В ПКСЛе будет возможность использования нескольких провайдеров.
Но мне не надо несколько провайдеров. У меня есть в сети предприятия три шлюза-два ADSL от одного провайдера и один CDMA, все в одной подсети. Вот между ними и надо переключаться...
Сейчас КСЛы с этим справляются а как это сделать в LKDSDrv?
Вообще скоро наверное будет еще айпишник от третьего провайдера и тогда, действительно можно будет использовать три разных подключения но, опять же, все эти шлюзы у нас в одной подсети.
 
Последнее редактирование модератором:
Van Gog написал(а):
Андрей Владимирович, давайте всё-таки обсудим вопрос:

Это было известно давно... но, вариант не работает...
Я, конечно, не Андрей Владимирович, но...
 
Van Gog написал(а):
Андрей Владимирович, давайте всё-таки обсудим вопрос:

Хотя бы в личке...


Я согласен с Александром Николаевичем. Тот факт, что к одному сетевому интерфейсу можно указать несколько шлюзов известен. Проблема в том, что невозможно управлять из программы (ПКСЛ) использованием этих шлюзов. Это как-то переключает Windows, утверждается, что при недоступности (что это ?) одного шлюза начинает использоваться другой. Можно предположить, что недоступность - это невозможность передачи пакета в шлюз - возможно приход ICMP пакетов с ошибками. Т.е. реально, с моей точки зрения, только использование в компьютере нескольких интерфейсов, т.к. понятно как переключаться между ними.
 
Для чего опция "отключить проверку клиента" в настройках драйвера?
 
revit написал(а):
Для чего опция "отключить проверку клиента" в настройках драйвера?

Признак этот нужен для отладки клиентов (потребителей информации) LKDSDrv, и, соответственно, нужен только мне.
Проблема в том, что если запустить программу, взаимодействующую с LKDSDrv, из под отладчика и доллго рассматривать её внутренности, то LKDSDrv решит, что клиент уже не работает и отключит его.
Я уберу этот признак из LKDSDrvCfg
 
Последнее редактирование модератором:
Андрей Ефименко написал(а):
Я согласен с Александром Николаевичем. Тот факт, что к одному сетевому интерфейсу можно указать несколько шлюзов известен. Проблема в том, что невозможно управлять из программы (ПКСЛ) использованием этих шлюзов. Это как-то переключает Windows, утверждается, что при недоступности (что это ?) одного шлюза начинает использоваться другой. Можно предположить, что недоступность - это невозможность передачи пакета в шлюз - возможно приход ICMP пакетов с ошибками. Т.е. реально, с моей точки зрения, только использование в компьютере нескольких интерфейсов, т.к. понятно как переключаться между ними.

В виндовой таблице маршрутизации можно на лету менять метрики шлюзов командой route add примерно так: при неответе входящих УМ через основной шлюз в течении какого-то времени меняется метрика дополнительного так, что все пакеты заворачиваются на него. В этом случае достаточно иметь один сетевой интерфейс на компе и 2-3 шлюза с адресами из одной подсети.
 
Van Gog написал(а):
В виндовой таблице маршрутизации можно на лету менять метрики шлюзов командой route add примерно так: при неответе входящих УМ через основной шлюз в течении какого-то времени меняется метрика дополнительного так, что все пакеты заворачиваются на него. В этом случае достаточно иметь один сетевой интерфейс на компе и 2-3 шлюза с адресами из одной подсети.

На первый взгляд работает... Только лучше использовать команду ROUTE CHANGE.
Однако не стоит забывать, что данные изменения будут актуальны для всего компьютера и, соответственно, перестанут (могут перестать) работать прочие программы. Решение получается не универсальное...
 
выложено следующее обновление LKDSDrv.msi (и в развернутый дистрибутив)

Изменения:

- в параметрах связи с ЛБ6Pro в ПКЛШ можно указать три дополнительных параметра:

1) "кол-во попыток передачи данных"
2) "Интервал между попытками (мс)" (для "засыпающих" каналов типа CDMA, Yota нужно установить значение 10000-15000)
3) "Использовать только статический IP адрес" ( если в ЛБ не описана связь с ПКЛШ и ЛБ имеет статический IP адрес, то признак должен быть установлен)

- в списке ЛБ6Pro в ПКЛШ добавлены функции:

1) вызов PING для выбранного ЛБ
2) вызов конфигуратора для выбранного ЛБ

- в панели программного КСЛа в списке связей добавлены функции:

1) PING основного IP адреса
2) PING динамического IP адреса
3) PING первого альтернативного IP адреса
4) PING второго альтернативного IP адреса

Изменились файлы:

LKDSDrv\LKDSClb.Dll
LKDSDrv\LKDSDrvCfg.Exe
Tools\ConfigLBPro.Exe
 
Андрей Ефименко написал(а):
выложено следующее обновление LKDSDrv.msi (и в развернутый дистрибутив)

Спасибо Андрей Владимирович.
Вот еще бы его на страницу программ положить, а то всегда ищу.. и вот сегодня ненашел где скачать. Развернутый дистрибутив скачал-а он такой как и был -пинга нет :(
 
Последнее редактирование модератором:
revit написал(а):
Вот еще бы его на страницу программ положить, а то всегда ищу.. и вот сегодня ненашел где скачать.

Ссылки на LKDSDrv.msi и LKDSProRU.msi в ближайшее время будут выложены на страницу программ.
Можно, наверное, считать, что начальная отладка завершена.

расположение http://www.lkds.ru/soft/archives/LKDSDrv.msi

revit написал(а):
Развернутый дистрибутив скачал-а он такой как и был -пинга нет :(


Развернутый дистрибутив LKDSDrv.msi находится в http://www.lkds.ru/soft/unpacked/LKDSDrv

как я уже писал изменились файлы:

LKDSDrv\LKDSClb.Dll
LKDSDrv\LKDSDrvCfg.Exe
Tools\ConfigLBPro.Exe

если эти файлы заменить в установленном ПО, то описанный функции должны появиться.
Вызываются функции из меню по правой кнопке мыши.

Теперь вопрос - в какой панели нет вызова PINGа ?
 
Назад
Сверху