Рейтинг:0

Не удается назначить ранее использовавшийся статический IP-адрес клиенту OpenVPN.

флаг ng

У нас есть сервер OpenVPN со следующим server.conf:

местный х.х.х.х.
порт 1194
прото TCP
кран разработчика
ca ca.crt
сервер сертификатов.crt
ключевой сервер.key
dh dh.pem
аутентификация SHA512
tls-crypt tc.key
топология подсети
сервер 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
клиент-конфигурация-каталог /etc/openvpn/ccd
клиент-клиент
поддержка 10 120
шифр AES-256-CBC
пользователь никто
группа
постоянный ключ
упорный тун
статус openvpn-status.log
глагол 3
crl-проверить crl.pem

У нас также был экземпляр Linux в AWS с запущенным клиентом OpenVPN, и мы успешно присвоили ему статический IP-адрес 10.8.0.2, добавив файл с общим именем клиента в адрес сервера OpenVPN. /etc/openvpn/ccd каталог со следующим содержимым:

ifconfig-push 10.8.0.2 255.255.0.0

Теперь мы хотим заменить этот экземпляр Linux экземпляром Windows Server 2019 и присвоить ему тот же статический IP-адрес 10.8.0.2. Итак, мы сделали следующее:

  • удалил экземпляр Linux в AWS
  • использовал Ныр OpenVPN Скрипт openvpn-install.sh на сервере OpenVPN для отзыва клиента Linux
  • удалил клиент Linux с сервера OpenVPN /etc/openvpn/сервер/easy-rsa/pki/index.txt файл
  • удалил сертификат клиента Linux с сервера OpenVPN /etc/openvpn/сервер/easy-rsa/pki/revoked/certs_by_serial каталог
  • удалил клиентский файл Linux на сервере OpenVPN /etc/openvpn/ccd каталог
  • удалил сервер OpenVPN /etc/openvpn/сервер/ipp.txt файл (поскольку у него была ассоциация 10.8.0.2 с клиентом Linux)
  • добавил новый файл в папку сервера OpenVPN /etc/openvpn/ccd каталог для экземпляра Windows Server 2019 с ifconfig-push 10.8.0.2 255.255.0.0
  • создал экземпляр Windows Server 2019 в AWS
  • установлен ОпенВПН 2.4.9 на экземпляре Windows Server 2019

Экземпляр Windows Server 2019 имеет следующий файл конфигурации клиента OpenVPN:

клиент
кран разработчика
прото TCP
удаленный х.х.х.х 1194
разрешить-повторить бесконечный
ни к чему
постоянный ключ
упорный тун
сервер удаленного сертификата tls
аутентификация SHA512
шифр AES-256-CBC
игнорировать-неизвестный-вариант блока-снаружи-dns
блок-снаружи-dns
глагол 3

Когда мы запускаем клиент OpenVPN в экземпляре Windows Server 2019, в файле журнала клиента OpenVPN появляется следующее:

Ср, 14 июля, 01:15:02 2021 [сервер] Одноранговое соединение инициировано с помощью [AF_INET]x.x.x.x:1194
Ср, 14 июля, 01:15:03 2021 SENT CONTROL [сервер]: «PUSH_REQUEST» (статус = 1)
Ср, 14 июля, 01:15:03 2021 PUSH: получено управляющее сообщение: «PUSH_REPLY, route-gateway 10.8.0.1, ping 10, ping-restart 120, ifconfig 10.8.0.2 255.255.0.0, peer-id 0, шифр AES-256 -GCM'
Ср, 14 июля, 01:15:03 2021 ИМПОРТ ПАРАМЕТРОВ: изменены таймеры и/или тайм-ауты.
Ср, 14 июля, 01:15:03 2021 ИМПОРТ ПАРАМЕТРОВ: параметры --ifconfig/up изменены
Ср, 14 июля, 01:15:03 2021 ИМПОРТ ПАРАМЕТРОВ: изменены параметры, связанные с маршрутом
Ср, 14 июля, 01:15:03 2021 ИМПОРТ ПАРАМЕТРОВ: набор одноранговых идентификаторов
Ср, 14 июля, 01:15:03 2021 ИМПОРТ ПАРАМЕТРОВ: настройка link_mtu на 1658
Ср, 14 июля, 01:15:03 2021 ИМПОРТ ПАРАМЕТРОВ: параметры шифрования канала данных изменены
Ср, 14 июля, 01:15:03 Канал данных 2021: используется согласованный шифр AES-256-GCM.
Ср, 14 июля, 01:15:03 2021 Канал исходящих данных: шифр AES-256-GCM инициализирован 256-битным ключом
Ср, 14 июля, 01:15:03 2021 Канал входящих данных: шифр AES-256-GCM инициализирован 256-битным ключом
Ср, 14 июля, 01:15:03 2021 интерактивный сервис msg_channel=0
Ср 14 июля 01:15:03 2021 open_tun
Ср, 14 июля, 01:15:03 2021 Устройство TAP-WIN32 [Подключение по локальной сети] открыто: \.\Global\{526EF9D3-DC84-41B0-B139-F1D4BAEFBF4F}.tap
Ср, 14 июля, 01:15:03 2021 TAP-драйвер для Windows, версия 9.24 
Ср, 14 июля, 01:15:03 2021 Драйвер TAP-Windows уведомлен для установки IP-адреса/маски сети DHCP 10.8.0.2/255.255.0.0 на интерфейсе {526EF9D3-DC84-41B0-B139-F1D4BAEFBF4F} [DHCP-serv: 10.8.0.0 , срок аренды: 31536000]
Ср, 14 июля, 01:15:03 2021 Успешный сброс ARP на интерфейс [11] {526EF9D3-DC84-41B0-B139-F1D4BAEFBF4F}
Ср, 14 июля, 01:15:03 2021 Block_DNS: открыт механизм WFP
Ср, 14 июля, 01:15:03 2021 Block_DNS: использование существующего подуровня
Ср, 14 июля, 01:15:03 2021 Block_DNS: добавлены фильтры разрешений для exe_path.
Ср, 14 июля, 01:15:03 2021 Block_DNS: добавлены блочные фильтры для всех интерфейсов.
Ср, 14 июля, 01:15:03 2021 Block_DNS: добавлены фильтры разрешений для TAP-интерфейса.
Ср, 14 июля, 01:15:08 2021 ТЕСТОВЫЕ МАРШРУТЫ: 0/0 успешно len=-1 ret=0 a=0 u/d=down
Ср, 14 июля, 01:15:08 Маршрут 2021: ожидание появления интерфейса TUN/TAP...
Ср, 14 июля, 01:15:13 2021 ТЕСТОВЫЕ МАРШРУТЫ: 0/0 успешно len=-1 ret=0 a=0 u/d=down
Ср, 14 июля, 01:15:13 Маршрут 2021: ожидание появления интерфейса TUN/TAP...
Ср, 14 июля 01:15:14 2021 ТЕСТОВЫЕ МАРШРУТЫ: 0/0 успешно len=-1 ret=0 a=0 u/d=down
Ср, 14 июля, 01:15:14 Маршрут 2021: ожидание появления интерфейса TUN/TAP...
Ср, 14 июля, 01:15:15 2021 ТЕСТОВЫЕ МАРШРУТЫ: 0/0 успешно len=-1 ret=0 a=0 u/d=down
Ср, 14 июля, 01:15:15 Маршрут 2021: ожидание появления интерфейса TUN/TAP...
Ср, 14 июля, 01:15:16 2021 ТЕСТОВЫЕ МАРШРУТЫ: 0/0 успешно len=-1 ret=0 a=0 u/d=down
Ср, 14 июля, 01:15:16 Маршрут 2021: ожидание появления интерфейса TUN/TAP...
Ср, 14 июля, 01:15:17 2021 ТЕСТОВЫЕ МАРШРУТЫ: 0/0 успешно len=-1 ret=0 a=0 u/d=down
Ср, 14 июля, 01:15:17 Маршрут 2021: ожидание появления интерфейса TUN/TAP...
Ср, 14 июля 01:15:18 2021 ТЕСТОВЫЕ МАРШРУТЫ: 0/0 успешно len=0 ret=1 a=0 u/d=up
Ср, 14 июля, 01:15:18 2021 ПРЕДУПРЕЖДЕНИЕ: эта конфигурация может кэшировать пароли в памяти — используйте параметр auth-nocache, чтобы предотвратить это.
Ср, 14 июля, 01:15:18 2021 Последовательность инициализации завершена

Как видите, клиент OpenVPN на экземпляре Windows Server 2019 получает IP-адрес 10.8.0.2 от сервера OpenVPN. Тем не менее, я неоднократно запускаю ipconfig в окне командной строки, и я вижу, что каждые 15 секунд происходит следующее:

  • Сетевой адаптер OpenVPN (называемый «TAP-Windows Adapter V9») на несколько секунд получает IP-адрес 169.254.211.103.
  • Затем сетевой адаптер OpenVPN получает IP-адрес 10.8.0.2 примерно на одну секунду. В течение этой секунды пинг 10.8.0.1 (сервер OpenVPN) будет успешным. Вне этой секунды пинг 10.8.0.1 завершится ошибкой.
  • Затем сетевой адаптер OpenVPN теряет IP-адрес 10.8.0.2 и не имеет никакого IP-адреса в течение следующих ~12 секунд.
  • Этот процесс получения адреса 169.254.xx, а затем получения и потери адреса 10.8.0.2 повторяется каждые 15 секунд.

Затем я решил посмотреть, что произойдет, если я попытаюсь дать Windows Server 2019 другой статический IP-адрес, который никогда раньше не использовался. Я изменил файл для Windows Server 2019 на сервере OpenVPN. /etc/openvpn/ccd каталог, чтобы дать ему статический IP-адрес 10.8.0.11:

ifconfig-push 10.8.0.11 255.255.0.0

Затем я перезапустил клиент OpenVPN на экземпляре Windows Server 2019, и он работает! Клиент успешно использует IP-адрес 10.8.0.11 и не теряет его вообще.

Так почему же экземпляр Windows Server 2019 продолжает терять адрес 10.8.0.2, который ранее использовался клиентом Linux? Как вы можете видеть из шагов, которые я перечислил выше, я отозвал клиент Linux с сервера OpenVPN и удалил все следы общего имени клиента Linux, которые я смог найти на сервере OpenVPN.

Мы бы предпочли, чтобы экземпляр Windows Server 2019 использовал адрес 10.8.0.2, потому что мы уже написали сценарии, предполагающие, что 10.8.0.2 будет статическим IP-адресом, и отправили эти сценарии третьей стороне. Будет проще придерживаться 10.8.0.2, если это возможно.

ОБНОВИТЬ:

Несколько дней я не смотрел на экземпляр Windows Server 2019, а теперь просто посмотрел на него снова. Удивительно, но у него был IP-адрес 10.8.0.2, и он никогда не исчезал. Все работало, как и ожидалось. Я не уверен, почему, поскольку я ничего не менял.

Поэтому я перезапустил клиент OpenVPN на экземпляре Windows Server 2019, чтобы посмотреть, что произойдет, и теперь он вернулся к поведению получения адреса 169.254.xx, а затем получения и потери адреса 10.8.0.2 каждые 15 секунд.

Рейтинг:0
флаг ng

Это был конфликт IP-адресов, о чем свидетельствует журнал системных событий экземпляра Windows Server 2019.

У нас есть несколько дополнительных серверов Linux, на которых работают клиенты OpenVPN (отличные от клиента Linux, о котором я упоминал в вопросе). Каждый из этих серверов Linux имеет мост, настроенный с IP-адресом 10.8.0.2. Этот мост соединяет интерфейс tap0 клиента OpenVPN с интерфейсом eth1, который подключен к устройству поставщика. Эта настройка позволяет программному обеспечению поставщика, работающему на экземпляре Windows Server 2019, подключаться к устройству.

Я выключил серверы Linux и перезагрузил экземпляр Windows Server 2019. Экземпляр Windows Server 2019 смог получить 10.8.0.2, не потеряв его. Затем я загрузил серверы Linux, и теперь все работает нормально. Экземпляры Windows Server 2019 и Linux довольны, и программное обеспечение, работающее на Windows Server, может подключаться к устройствам, подключенным к серверам Linux, через OpenVPN.

Таким образом, решение состоит в том, чтобы просто убедиться, что экземпляр Windows Server 2019 загружается до того, как любой из экземпляров Linux настроит свой мост.

Изменить. Более простое решение — просто перезапустить сервер OpenVPN, а затем сразу же запустить клиент OpenVPN в экземпляре Windows Server 2019. Он получит 10.8.0.2, прежде чем любой из экземпляров Linux сможет повторно подключиться к серверу OpenVPN.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.