Não é possível rotear com base no nome do host. Todo o conceito de DNS é algo que existe em um nível mais alto do que o tráfego de rede básico.
(Para mais informações, leia sobre o modelo OSI em geral e o TCP/IP modelo em particular.)
Por outro lado, o protocolo HTTP sabe sobre nomes de host. Portanto, você deve ser capaz de configurar um proxy reverso no endereço externo, encaminhando solicitações para diferentes endereços internos, com base no nome do host recebido. Uma opção é usar o Apache e mod_proxy .