Conexão porta 22 do SSH via nome de domínio mas não endereço IP público

1

Eu tenho um roteador Draytek configurado para encaminhar conexões SSH para um servidor interno apenas de endereços IP específicos. Eu e os clientes podemos nos conectar externamente com sucesso, exceto um que não pode se conectar ao endereço IP público do nosso roteador, mas apenas ao seu nome de domínio. router.domain.com O roteador deve ter um nome de domínio atribuído a ele? Não tenho certeza porque eles só podem se conectar ao nome de domínio e não o ip - Conselho apreciado

    
por Squid_Vicious 31.03.2016 / 13:59

1 resposta

2

Com base nas informações limitadas da pergunta, não é possível dizer com certeza por que a conectividade usando um nome de host funciona, mas a conexão com o mesmo servidor usando um endereço IP não funciona.

No entanto, acho que a explicação mais provável é que o cliente depende do DNS64 + NAT64 para se conectar ao servidor. Desde que os endereços IPv4 acabaram, as implantações de vários tipos de soluções CGN tornaram-se mais comuns. Um deles é o DNS64 + NAT64, e eles têm a limitação de que os clientes não podem se conectar a servidores IPv4 por endereço IP.

O que acontecerá quando um cliente desse tipo se conectar a um servidor somente IPv4 é este:

  • O cliente envia uma consulta AAAA para server.example.com
  • O servidor DNS64 envia uma consulta AAAA para server.example.com
  • O servidor autoritativo envia NOANSWER.
  • O servidor DNS64 envia uma consulta para server.example.com
  • O servidor autoritativo responde com 192.0.2.1
  • O DNS64 traduz 192.0.2.1 em 64:ff9b::192.0.2.1
  • O cliente se conecta ao NAT64 no endereço 64:ff9b::192.0.2.1
  • O NAT64 traduz 64:ff9b::192.0.2.1 para 192.0.2.1

Se o cliente for OpenSSH, você poderá usar ssh -v no lado do cliente para ver a qual endereço IP está se conectando. Se o servidor for somente IPv4 e o cliente se conectar a um endereço IPv6 quando receber o nome do host, você saberá que o cliente está dependendo do DNS64 + NAT64.

Possíveis mitigações, se você não conseguir se conectar ao endereço IP devido ao NAT64:

  • Ative o IPv6 no servidor e crie um registro AAAA ao lado do registro A atual. O cliente agora pode se conectar diretamente ao endereço IPv6 do servidor. Este é o método preferido, mesmo se o cliente continuar usando conexões pelo nome do host, porque ele removerá a dependência do NAT64.
  • Deixe como está. Você disse que as conexões usando o nome do host dos servidores funcionam. Então, o DNS64 + NAT64 está funcionando como esperado e não há necessidade imediata de alterar nada. Na maioria dos casos, as conexões usando um nome de host são consideradas uma prática melhor do que se conectar diretamente ao endereço IP, portanto, não há razão real para parar de usar o nome do host.
  • O cliente deve se conectar usando o nome do host uma vez para aprender o endereço IPv6 mapeado pelo DNS64 e continuar se conectando por meio do NAT64 usando esse endereço IPv6. (Funciona, mas parece um pouco bobo)
  • Peça ao cliente que use o NAT464. Esta é uma solução destinada ao caso em que o software cliente suporta apenas o IPv4, mas o cliente está conectado a uma rede de acesso somente IPv6. No entanto, se as conexões por nome de host já funcionarem, você não precisará do NAT464 e será melhor usar uma das outras soluções.
por 31.03.2016 / 15:07