Конфликт между PPP-подключениями в Windows 7

Конфликт между PPP-подключениями в Windows 7

Я использую COM-порты для подключения к некоторому оборудованию. Я настраиваю соединения RAS для различных COM-портов. Если я подключаюсь к одному устройству за раз, то я могу общаться с этим устройством, используя сокет TCP/IP. Когда я устанавливаю второе соединение, используя вторую последовательную линию с другим устройством, то ОС сообщает, что соединение установлено успешно. Однако если я пытаюсь открыть сокет через это соединение, то оно не получается. Когда я пытаюсь выполнить ping для аппаратных устройств, я обнаруживаю, что не могу связаться ни с первым, ни со вторым устройством. Если я теперь отключу первое соединение RAS, то я смогу открыть сокет для второго устройства.

Windows XP не имеет этой проблемы. Если я проделаю тот же сценарий с XP, я смогу успешно открыть сокеты для обоих устройств одновременно.

Поведение зависит от подключений. Некоторые подключения кажутся независимыми. Я могу открыть 2–3 «независимых» подключения, а затем столкнуться с проблемой при следующем подключении. Когда это происходит, последнее подключение приводит к сбою некоторых предыдущих подключений. Снова сбойное подключение и перестает отвечать на пинг. Удаление Когда любое из этих «коммутируемых» подключений отключается, его пара снова работает.

Я не вижу никакой закономерности в IP-адресах «парных» соединений.

Например, RAS-соединение с 192.168.245.141 не будет работать с RAS-соединением 192.168.245.116, но будет работать с соединением с IP-адресом 192.168.245.113.

Я посмотрел свойства подключений и сделал ipconfig /all и не вижу существенной разницы с XP. Единственное незначительное отличие в том, что XP показывает стандартный физический адрес.

Для Windows 7 вывод ipconfig /all для адаптера следующий:

Адаптер PPP PROACTIV на COM17:

DNS-суффикс, специфичный для соединения. :

Описание . . . . . . . . . . . : PROACTIV на COM17

Физический адрес. . . . . . . . . :

DHCP включен. . . . . . . . . . : Нет

Автоконфигурация включена . . . . : Да

Адрес IPv4. . . . . . . . . . . : 192.168.245.141(предпочтительно)

Маска подсети . . . . . . . . . . . : 255.255.255.255

Шлюз по умолчанию . . . . . . . . . :

NetBIOS через Tcpip. . . . . . . : Отключено

Для XP это

Адаптер PPP PROACTIV на COM17:

DNS-суффикс, специфичный для соединения. :

Описание . . . . . . . . . . : Интерфейс WAN (PPP/SLIP)

Физический адрес. . . . . . . . : 00-53-45-00-00-00

DHCP включен. . . . . . . . . . : Нет

IP-адрес. . . . . . . . . . . : 192.168.245.141

Маска подсети . . . . . . . . . . . : 255.255.255.255

Шлюз по умолчанию . . . . . . . . . :

NetBIOS через Tcpip. . . . . . . : Отключено

Буду признателен за любую помощь.

Рассел

решение1

После дальнейшего расследования выяснилось, что причина проблемы заключается в том, что Windows 7 добавляет в таблицу маршрутизации только половину записей и, в частности, пропускает маршрут от адаптера PPP до устройства на другом конце соединения.

Я обнаружил, что PPP-соединения работают, если я вручную запускаю команду

добавить маршрут 192.168.245.dd 192.168.245.pp

где 192.168.245.dd — IP-адрес устройства

а 192.168.245.pp — это IP-адрес адаптера PPP

Эта запись автоматически появляется в таблице маршрутизации для XP при запуске соединения, но не для Windows 7.

Рассел

Связанный контент