Я написал программу на C ++, работающую на 2 узлах кластера, которая должна добавлять \ удалять виртуальный IP-адрес с сетевой карты на каждом узле (следуя некоторой логике, которую я написал ..).
Для этого я использую метод EnableStatic класса Win32_NetworkAdapterConfiguration (https://msdn.microsoft.com/en-us/library/aa390383(v=vs.85).aspx).
В этой программе у меня есть 2 кнопки: «Отпустить VIP» и «Получить VIP».
Я использую RDP для подключения этих узлов (используя постоянный IP, а не VIP).
Для версии VIP я звоню: EnableStatic ({«1.1.1.5»}, {«255.255.0.0»});
Для получения VIP я звоню: EnableStatic ({«1.1.1.5», «1.1.1.80»}, {«255.255.0.0», «255.255.0.0»});
(Для этого примера 1.1.1.80 — VIP)
Когда я делал это в Windows 2012, все работало нормально, и я смог добавить \ удалить виртуальный IP-адрес.
Теперь в Windows 2016 мой RDP теряет соединение на 2-3 секунды из-за смены VIP на сетевой карте (как добавить, так и удалить ..).
Я знаю, что в этой документации API Microsoft пишет, что RDP должен потерять соединение, но мне интересно:
Почему этого не произошло в Windows 2012?
Они внесли какие-либо изменения?
Может я что то не так делаю?
И более важно:
Имеет ли он другой эффект, кроме потери соединения RDP, о котором я должен знать?
Есть ли лучший API для использования?
Большое спасибо!
Задача ещё не решена.
Других решений пока нет …