A maneira mais simples de fazer isso é usar a funcionalidade $INCLUDE
no BIND.
Tudo o que você precisa fazer é criar um arquivo para todos os nomes internos, por exemplo, db.domain.com-internal
, com todos os seus registros internos (que você já possui, apenas substitua o nome do arquivo) e crie um segundo arquivo, chame de db.domain.com-external
, que contém todos os registros de seu domínio real externo menos os registros SOA e NS.
Na parte inferior do arquivo db.domain.com-internal
, adicione esta linha:
,
$INCLUDE db.domain.com-external
Isso permite separar logicamente o interno do externo usando dois arquivos para diferenciá-los, mas a diretiva $INCLUDE
mescla-os como uma exibição completa do seu domínio. E antes que você pergunte, não importa que a resolução de www.domain.com ocorra internamente, seja por um registro ou por um registro CNAME, o endereço IP que seu navegador recebe ainda o envia para seu site na Internet.
Recarregue, verifique se há erros e pronto. Simples.
Isso funciona bem, pois uma configuração de DNS dividido (interna / externa) adequada expõe ao mundo um subconjunto do conjunto completo de registros que é visível internamente. Ou seja, em geral, para a exibição pública externa de um domínio, você só expõe publicamente os nomes acessíveis por endereços IP.