Primeiro de tudo, você não deve estar executando um resolvedor aberto (opção 2) sem uma vasta experiência na operação do servidor DNS. Os resolvedores de DNS abertos podem causar todos os tipos de problemas quando abusados por partes mal-intencionadas (ataques de amplificação de DNS). Você provavelmente não quer entrar nisso para uma solução fácil.
A opção 1 é bastante incômoda. No entanto, se você adicionar uma camada de autenticação que permita o acesso ao servidor DNS (como uma VPN ou um túnel), não precisará se preocupar com a administração do IP. Você também pode criar um serviço da Web com autenticação para alterar seu firewall dinamicamente.
A melhor opção, para as restrições dadas, na minha opinião seria executar um servidor DNS escravo no seu laptop. Toda vez que você se conectar à sua rede doméstica, ela obterá a versão mais recente dos arquivos de zona e os armazenará em cache para uso local. Você só teria que alterar os endereços do encaminhador dinamicamente com base no DHCP. Você pode criar scripts com o Bind ou usar o dnsmasq, que possui esses recursos integrados.
A melhor opção seria obter um nome de domínio e executar seu próprio servidor DNS (autorativo, não encaminhando / resolvendo) e hospedar os registros lá ( hostname.test.puggan.com
ou algo assim). Você pode usar caminhos de pesquisa para garantir que não precisa digitar todo o FQDN (para que você digite apenas hostname.test
e ele procurará hostname.test.puggan.com
).