В используемой Вами схеме нужно учитывать следующие особенности:
- Ответы нашего сервера DNS кеширует ваш DNS. Для очистки кэша bind9 можно воспользоваться командой "rndc flush". После этого в логах bind9 должны появиться записи "received control channel command 'flush'" и "flushing caches in all views succeeded".
- Когда 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), то нужно добавлять в белый список не только алиасы, но и канонические имена.