У нас есть сервер 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 секунд.