какой пользовательский маршрут для процесса? - PullRequest
1 голос
/ 31 января 2011

В моем компьютере есть два сетевых адаптера, подключенных к разной подсети.Как показано ниже:

адаптер A: 10.20.30.201 адаптер B: 10.20.31.201

Я хочу сделать все исходящие данные специального процесса (например, Процесс A )через адаптер А. То есть я хочу сделать адаптер А в качестве маршрута по умолчанию для процесса.

Я знаю, я могу изменить таблицу маршрутов для какого-то особого пункта назначения, но то, что я хочу сделать, здесь совсем другое. Процесс A может связываться со многими различными IP-адресами, и я не знаю заранее.

Winsock2 предоставляет LSP как способ заложить DLL в стек TCP / IP,Я не знаком с LSP и не знаю, может ли LSP делать то, что я хочу.

Может кто-нибудь дать мне какое-то предложение, спасибо.

1 Ответ

1 голос
/ 05 февраля 2011

Быстрый фон на LSP:

Приложение, использующее Winsock2 API, вызывает комбинацию префиксных функций WSA, например WSAConnect, WSASocket, WSASend, WSARecv и т. Д.

Если приложение все еще использует старые функции winsock, эти функции в любом случае сопоставляются с Winsock2. Для экземпляров: send () отображается на WSASend (), recv () на WSARecv () и т. Д.

Функции префикса WSA будут внутренне вызывать соответствующие им функции префикса WSP, предоставляемые LSP. Для экземпляров WSASend () вызывает WSPSend (), WSASocket () вызывает WSPSocket () и т. Д. Вкратце, WSAWhwhatFunction () будет вызывать WSPWhwhatFunction (). Их параметры / возвраты также одинаковы (не совсем, но отчасти).

LSP - это библиотека DLL с этими реализованными функциями префикса WSP, например. изменить исходящий / входящий трафик, фильтрацию и т. д. Однако LSP все еще является dll пользовательского пространства. Он столь же ограничен, как и другие пользовательские программы, и не имеет более высоких привилегий, чем его основное приложение, например, интернет-браузеры. Он имеет доступ к тому же набору системных функций, который доступен для других программ, например. Винсок и т. д.

Вывод: если ваша программа может направлять исходящий трафик на конкретную сетевую карту, LSP может это делать. Если это не может, ни LSP не может. Поэтому LSP не имеет отношения к вашей проблеме.

...