A documentação sobre $GENERATE
fornece a seguinte sintaxe:
$GENERATE start-stop[/step] lhs[{offset[,width[,type]]}] rr-type rhs[{offset[,width[,type]]}]
em que rr-type
é CNAME, DNAME, A, AAAA, NS, PTR, ...
Portanto, sua linha:
$GENERATE 1-100 host$.example.com. IN A 10.20.45.$
deve ser:
$GENERATE 1-100 host$.example.com. A 10.20.45.$
É estranho que bind
não tenha enviado nenhuma mensagem de erro / aviso sobre isso.