Какой пользовательский маршрут для процесса?
В моем компьютере есть два сетевых адаптера, соединяющих разные подсети. Как показано ниже:
Адаптер 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 не имеет отношения к вашей проблеме.