AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1069824
Accepted
pacoverflow
pacoverflow
Asked: 2021-07-17 06:49:11 +0800 CST2021-07-17 06:49:11 +0800 CST 2021-07-17 06:49:11 +0800 CST

Não é possível atribuir um endereço IP estático usado anteriormente a um cliente OpenVPN

  • 772

Temos um servidor OpenVPN com o seguinte server.conf:

local x.x.x.x
port 1194
proto tcp
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/ccd
client-to-client
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem

Também tínhamos uma instância do Linux na AWS executando um cliente OpenVPN e atribuímos com sucesso um endereço IP estático de 10.8.0.2 a ela adicionando um arquivo com o nome comum do cliente ao /etc/openvpn/ccddiretório do servidor OpenVPN com o seguinte conteúdo:

ifconfig-push 10.8.0.2 255.255.0.0

Agora queremos substituir essa instância do Linux por uma instância do Windows Server 2019 e fornecer o mesmo endereço IP estático 10.8.0.2. Então fizemos o seguinte:

  • excluiu a instância do Linux na AWS
  • usou o script Nyr OpenVPN openvpn-install.sh no servidor OpenVPN para revogar o cliente Linux
  • /etc/openvpn/server/easy-rsa/pki/index.txtexcluiu o cliente Linux do arquivo do servidor OpenVPN
  • /etc/openvpn/server/easy-rsa/pki/revoked/certs_by_serialexcluiu o certificado do cliente Linux do diretório do servidor OpenVPN
  • /etc/openvpn/ccdexcluiu o arquivo do cliente Linux no diretório do servidor OpenVPN
  • excluiu o arquivo do servidor OpenVPN /etc/openvpn/server/ipp.txt(já que tinha uma associação de 10.8.0.2 ao cliente Linux)
  • adicionou um novo arquivo no diretório do servidor OpenVPN /etc/openvpn/ccdpara a instância do Windows Server 2019 comifconfig-push 10.8.0.2 255.255.0.0
  • criou uma instância do Windows Server 2019 na AWS
  • instalou o OpenVPN 2.4.9 na instância do Windows Server 2019

A instância do Windows Server 2019 tem o seguinte arquivo de configuração do cliente OpenVPN:

client
dev tap
proto tcp
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
ignore-unknown-option block-outside-dns
block-outside-dns
verb 3

Quando iniciamos o cliente OpenVPN na instância do Windows Server 2019, o seguinte aparece no arquivo de log do cliente OpenVPN:

Wed Jul 14 01:15:02 2021 [server] Peer Connection Initiated with [AF_INET]x.x.x.x:1194
Wed Jul 14 01:15:03 2021 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Wed Jul 14 01:15:03 2021 PUSH: Received control message: '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,cipher AES-256-GCM'
Wed Jul 14 01:15:03 2021 OPTIONS IMPORT: timers and/or timeouts modified
Wed Jul 14 01:15:03 2021 OPTIONS IMPORT: --ifconfig/up options modified
Wed Jul 14 01:15:03 2021 OPTIONS IMPORT: route-related options modified
Wed Jul 14 01:15:03 2021 OPTIONS IMPORT: peer-id set
Wed Jul 14 01:15:03 2021 OPTIONS IMPORT: adjusting link_mtu to 1658
Wed Jul 14 01:15:03 2021 OPTIONS IMPORT: data channel crypto options modified
Wed Jul 14 01:15:03 2021 Data Channel: using negotiated cipher 'AES-256-GCM'
Wed Jul 14 01:15:03 2021 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Wed Jul 14 01:15:03 2021 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Wed Jul 14 01:15:03 2021 interactive service msg_channel=0
Wed Jul 14 01:15:03 2021 open_tun
Wed Jul 14 01:15:03 2021 TAP-WIN32 device [Local Area Connection] opened: \\.\Global\{526EF9D3-DC84-41B0-B139-F1D4BAEFBF4F}.tap
Wed Jul 14 01:15:03 2021 TAP-Windows Driver Version 9.24 
Wed Jul 14 01:15:03 2021 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.8.0.2/255.255.0.0 on interface {526EF9D3-DC84-41B0-B139-F1D4BAEFBF4F} [DHCP-serv: 10.8.0.0, lease-time: 31536000]
Wed Jul 14 01:15:03 2021 Successful ARP Flush on interface [11] {526EF9D3-DC84-41B0-B139-F1D4BAEFBF4F}
Wed Jul 14 01:15:03 2021 Block_DNS: WFP engine opened
Wed Jul 14 01:15:03 2021 Block_DNS: Using existing sublayer
Wed Jul 14 01:15:03 2021 Block_DNS: Added permit filters for exe_path
Wed Jul 14 01:15:03 2021 Block_DNS: Added block filters for all interfaces
Wed Jul 14 01:15:03 2021 Block_DNS: Added permit filters for TAP interface
Wed Jul 14 01:15:08 2021 TEST ROUTES: 0/0 succeeded len=-1 ret=0 a=0 u/d=down
Wed Jul 14 01:15:08 2021 Route: Waiting for TUN/TAP interface to come up...
Wed Jul 14 01:15:13 2021 TEST ROUTES: 0/0 succeeded len=-1 ret=0 a=0 u/d=down
Wed Jul 14 01:15:13 2021 Route: Waiting for TUN/TAP interface to come up...
Wed Jul 14 01:15:14 2021 TEST ROUTES: 0/0 succeeded len=-1 ret=0 a=0 u/d=down
Wed Jul 14 01:15:14 2021 Route: Waiting for TUN/TAP interface to come up...
Wed Jul 14 01:15:15 2021 TEST ROUTES: 0/0 succeeded len=-1 ret=0 a=0 u/d=down
Wed Jul 14 01:15:15 2021 Route: Waiting for TUN/TAP interface to come up...
Wed Jul 14 01:15:16 2021 TEST ROUTES: 0/0 succeeded len=-1 ret=0 a=0 u/d=down
Wed Jul 14 01:15:16 2021 Route: Waiting for TUN/TAP interface to come up...
Wed Jul 14 01:15:17 2021 TEST ROUTES: 0/0 succeeded len=-1 ret=0 a=0 u/d=down
Wed Jul 14 01:15:17 2021 Route: Waiting for TUN/TAP interface to come up...
Wed Jul 14 01:15:18 2021 TEST ROUTES: 0/0 succeeded len=0 ret=1 a=0 u/d=up
Wed Jul 14 01:15:18 2021 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Jul 14 01:15:18 2021 Initialization Sequence Completed

Como você pode ver, o cliente OpenVPN na instância do Windows Server 2019 está recebendo o endereço IP 10.8.0.2 do servidor OpenVPN. No entanto, estou executando repetidamente ipconfigem uma janela de linha de comando e vejo o seguinte acontecer a cada 15 segundos:

  • O adaptador de rede OpenVPN (chamado "Adaptador TAP-Windows V9") obtém um endereço IP de 169.254.211.103 por alguns segundos.
  • Em seguida, o adaptador de rede OpenVPN obtém um endereço IP de 10.8.0.2 por cerca de um segundo. Durante esse segundo, um ping de 10.8.0.1 (o servidor OpenVPN) será bem-sucedido. Fora desse segundo, um ping de 10.8.0.1 falhará.
  • Em seguida, o adaptador de rede OpenVPN perde o endereço IP 10.8.0.2 e não possui nenhum endereço IP pelos próximos 12 segundos.
  • Esse processo de obter o endereço 169.254.xx e, em seguida, obter e perder o endereço 10.8.0.2 continua se repetindo a cada 15 segundos.

Então decidi ver o que aconteceria se eu tentasse dar ao Windows Server 2019 um endereço IP estático diferente que nunca havia sido usado antes. Modifiquei o arquivo do Windows Server 2019 no diretório do servidor OpenVPN /etc/openvpn/ccdpara fornecer um endereço IP estático de 10.8.0.11:

ifconfig-push 10.8.0.11 255.255.0.0

Então reiniciei o cliente OpenVPN na instância do Windows Server 2019 e funciona! O cliente está usando com sucesso o endereço IP 10.8.0.11 e não o está perdendo.

Então, por que a instância do Windows Server 2019 continua perdendo o endereço 10.8.0.2, que havia sido usado anteriormente pelo cliente Linux? Como você pode ver nas etapas listadas acima, revoguei o cliente Linux do servidor OpenVPN e excluí todos os vestígios do nome comum do cliente Linux que pude encontrar no servidor OpenVPN.

Preferimos que a instância do Windows Server 2019 use o endereço 10.8.0.2, porque já escrevemos scripts assumindo que 10.8.0.2 será o IP estático e enviamos esses scripts para terceiros. Será mais fácil ficar com 10.8.0.2, se possível.

ATUALIZAR:

Não olhei para a instância do Windows Server 2019 por alguns dias e agora acabei de olhar novamente. Surpreendentemente, ele tinha o endereço IP 10.8.0.2 e nunca desapareceu. Tudo estava funcionando como esperado. Não sei por que, pois não mudei nada.

Então reiniciei o cliente OpenVPN na instância do Windows Server 2019 para ver o que aconteceria, e agora ele voltou ao comportamento de obter um endereço 169.254.xx e depois obter e perder o endereço 10.8.0.2 a cada 15 segundos.

windows networking openvpn ip-address
  • 1 1 respostas
  • 384 Views

1 respostas

  • Voted
  1. Best Answer
    pacoverflow
    2021-10-08T12:28:02+08:002021-10-08T12:28:02+08:00

    Foi um conflito de endereço IP, conforme indicado pelo log de eventos do sistema na instância do Windows Server 2019.

    Temos alguns servidores Linux adicionais executando clientes OpenVPN (diferente do cliente Linux que mencionei na pergunta). Cada um desses servidores Linux possui uma ponte configurada com o endereço IP 10.8.0.2. Essa ponte conecta a interface tap0 do cliente OpenVPN à interface eth1 que está conectada ao dispositivo de um fornecedor. Essa configuração permite que o software do fornecedor em execução na instância do Windows Server 2019 se conecte ao dispositivo.

    Desliguei os servidores Linux e reiniciei a instância do Windows Server 2019. A instância do Windows Server 2019 conseguiu obter a versão 10.8.0.2 sem perdê-la. Então eu inicializei os servidores Linux e tudo está funcionando bem agora. As instâncias do Windows Server 2019 e Linux estão satisfeitas, e o software em execução no Windows Server pode se conectar aos dispositivos conectados aos servidores Linux por meio do OpenVPN.

    Portanto, a solução é apenas garantir que a instância do Windows Server 2019 seja inicializada antes que qualquer uma das instâncias do Linux configure sua ponte.

    Editar: Uma solução mais fácil é apenas reiniciar o servidor OpenVPN e iniciar imediatamente o cliente OpenVPN na instância do Windows Server 2019. Ele obterá 10.8.0.2 antes que qualquer uma das instâncias do Linux possa se reconectar ao servidor OpenVPN.

    • 0

relate perguntas

  • O Vanilla Powershell é um idioma suficiente para administradores do Windows e do servidor de banco de dados?

  • Executando um .exe de um arquivo .asp usando wscipt no Windows Server 2003

  • Melhor backup de ambiente misto (OS X + Windows)? [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve