Você está correto, o hairpinning NAT resolveria seu problema. Se o seu roteador / gateway NAT é bom, deve ser uma questão simples consultar os documentos e fazer isso funcionar.
Outra solução é configurar um DNS chamado "split-brain", para que os clientes externos obtenham o endereço IP externo do servidor, enquanto os clientes internos obtêm o endereço RFC1918 local. Uma maneira rápida e simples de implementar isso seria adicionar os mapeamentos de endereços IP locais aos arquivos /etc/hosts
dos clientes internos.