Какой пользовательский маршрут для процесса?

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

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

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

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

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

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

1 ответ

Краткий обзор 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 не имеет отношения к вашей проблеме.

Другие вопросы по тегам