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
em64: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
para192.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.