Nós usamos dnsmasq exatamente isso. Você pode criar registros CNAME, que definem um nome com alias para algum outro nome real, editando os arquivos de configuração; é muito fácil.
Aqui está um pouco do que colocamos em nosso /etc/dnsmasq.conf:
domain=initech.office
cname=vpn.initech.office,balham
cname=mail.initech.office,bank
cname=cacti.initech.office,victoria
cname=opennms.initech.office,victoria
Temos máquinas chamadas balham, bank e victoria. Nós criamos CNAMEs para o vpn.initech.office e assim por diante, para eles.
Nós o rodamos no Linux, mas ele roda no OS X também.