Eu não posso dizer como fazer isso, mas existem empresas que fornecem serviços dinâmicos de DNS para que isso seja possível. Talvez algum tipo de script perl ou python que pegue o IP público e o envie pelo servidor no qual você está hospedando dns, com outro script que escuta e atualiza os registros DNS com base nos dados recebidos.