
У меня возникла ситуация, когда наши клиенты Windows 7 (Windows 10 работает нормально) периодически испытывают проблемы с подключением при подключении через наш Checkpoint Endpoint Connect VPN. Проблема проявляется в виде более специфичного добавления маршрута для определенного хоста в нашей внутренней сети, который пытается направить трафик за пределы VPN, когда этого не должно быть.
Пользователь A находится дома в частной сети 192.168.1.100. Этот пользователь подключается к корпоративной сети через указанный Checkpoint VPN, получает адрес частной сети 10.1.7.100 для указанного туннеля. Эта инстанциация соединения является гибридным типом, где трафик, предназначенный для публичного IP-пространства, выходит через сеть 192.168.1.0/24 и преобразуется с помощью NAT в публичное IP-пространство, а трафик, предназначенный для наших частных ресурсов, проходит через VPN. Это работает почти для всего, что мы используем, за исключением одного приложения .net. Это приложение использует HTTP REST для связи с внутренним сервером по адресу 10.1.4.50.
У нас есть маршрут в конфигурации VPN-клиента для 10.1.4.0/24, который отправляет весь трафик 10.1.4 на адрес VPN-шлюза на другой стороне нашего туннеля с метрикой 1.
Когда возникает проблема, мы видим изменение таблицы маршрутизации, которое вставляет более конкретный маршрут только для IP-адресов целевых серверов (в данном случае 10.1.4.50) с метрикой 11 и шлюзом 192.168.1.1 (это gw по умолчанию для базового интерфейса, на котором находится туннель). Когда этот маршрут становится активным, все терпит неудачу только для этого целевого сервера, потому что он маршрутизируется за пределы туннеля. Другой трафик, предназначенный для других хостов в любой из наших внутренних сетей, по-прежнему работает нормально, включая другие хосты на 10.1.4.0/24.
Мы проконсультировались с Checkpoint, и они говорят, что их клиент не вставляет ложные маршруты в IP-стек, как это происходит, после настройки туннеля, так что это должно быть что-то другое. Но найти то, что вставляет указанный маршрут и почему, оказывается очень сложно.
Я использовал несколько утилит от NirSoft для просмотра изменений маршрутов в реальном времени, а также исследовал несколько утилит C++, которые используют NotifyRouteChange для отображения активности изменения маршрута, но ни одна из них не дает мне того уровня детализации, который мне действительно нужен, а именно, чтобы узнать, какой процесс фактически вставил маршрут.
Может ли кто-нибудь сказать мне, как найти имя или идентификатор процесса, который вносит изменения в маршруты? Или порекомендовать альтернативу, чтобы определить, какой процесс на самом деле делает плохие вещи с моими таблицами маршрутов? ЕСЛИ это действительно программное обеспечение Checkpoints VPN, я могу принудительно решить проблему с ними. Но без других доказательств я несколько застрял.
Спасибо за любую помощь!