Eu fiz um portal cativo uma vez e, tanto quanto me lembro, usei este documento para aprender sobre DNS catchall: link
A principal coisa que você precisa fazer é fornecer o IP do DNS correto ao seu DHCP. Em seguida, em seu DNS de ligação, você precisa criar uma zona catchall que sempre retorne o mesmo endereço IP, seja qual for o domínio consultado:
zone "." {
type master;
file "/etc/namedb/db.catchall";
};
Zona:
$TTL 604800
@ IN SOA . root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
IN NS .
. IN A 192.168.1.5 <--- Your portal IP
*. IN A 192.168.1.5 <--- Your portal IP
A página "Portal cativo" na Wikipedia explica como isso é conseguido em pontos de acesso Wi-Fi: link