В используемой Вами схеме нужно учитывать следующие особенности:

  1. Ответы нашего сервера DNS кеширует ваш DNS. Для очистки кэша bind9 можно воспользоваться командой "rndc flush". После этого в логах bind9 должны появиться записи "received control channel command 'flush'" и "flushing caches in all views succeeded".
  2. Когда bind9 (ваш DNS) в ответ на запрос получает запись CNAME (в ответе также содержаться IP-адреса, в которые разрешился домен), то он на IP-адреса в ответе не смотрит и пытается самостоятельно разрешить каноническое имя в IP-адреса. Если каноническое имя не находится в разрешенных, то оно разрешается в IP-адрес страницы блокировки.

Подробнее по второму пункту на примере.

Имеем запись

bar.example.com.        CNAME  foo.example.com.

Слева записан алиас. Справа - каноническое имя.

Клиент запрашивает "bar.example.com.", в ответ получает "foo.example.com." и IP-адреса, в которые разрешается "foo.example.com.". Но bind9 в таком случае на IP-адреса не смотрит и пытается разрешить "foo.example.com.", делая еще один запрос. Если "bar.example.com." находится в разрешенных сервере, а "foo.example.com." находится в заблокированных, то bind9 получит от нашего сервера в ответ адрес страницы блокировки и вернет его конечному клиенту.

Хотя, если бы конечный клиент запрашивал "bar.example.com." у нашего сервера напрямую, а не у кеширующего bind9, то получил бы в ответ действительный IP-адрес "bar.example.com.".

Учитывая, что домены принадлежащие Яндекс, Google, Microsoft и другим глобальным организациям часто разрешаются в CNAME, которые часто входят в CDN (content delivery network), то нужно добавлять в белый список не только алиасы, но и канонические имена.