Принцип работы DNS сервера в локальной сети?
Действительно, все DNS, как публичные, провайдерские, так и локальные выполняют одну функцию.
Но я бы хотел уточнить, говоря вкратце, что в вашем случае локальный DNS используется для поддержки AD и разрешает имена внутри домена, чего не могут сделать серверы провайдера, попросту не обладая информацией о внутренностях вашей сети. Во избежание связанных с этим ошибок станциям в локальной сети не стоит прописывать DNS провайдера.
В других случаях локальный DNS может ещё выполнять другие функции, как например кэширование.
Рабочие станции, обращаясь к вашему DNS, пытаются разрешить имя для ресурса. Здесь два варианта: либо это ресурс внутри домена и он отвечает клиенту, либо это внешний ресурс и нужно обращаться к вышестоящему серверу (рекурсивным запросом или напрямую).
Вышестоящим сервером могут быть либо настроенные сервера пересылки (обычно DNS провайдера), либо корневые.
Почему имеет смысл настроить DNS провайдера как сервер пересылки? По той же причине: они могут выполнять некоторые дополнительные функции как кэширование, которое сократит время запроса, так и географические привязки (местные узлы CDN крупных сервисов, например).
В общем-то, структура DNS является древовидной и принципы работы сохраняются для более высоких уровней.
Все DNS работают одинаково. 
Запросы с вашей сети будут идти на тот DNS, на какой вы настроите.
Это может быть ваш локальный DNS, или DNS провайдера, или DNS Google, или даже рутовый DNS.
Обычно в качестве DNS ставят DNS провайдера, но если провайдер против (и такое бывает), то вам нужно или поднимать свой или использовать какой-то сторонний.
В настройки своего DNS, обычно приписывают серверы, куда он должен слать рекурсивные запросы. По умолчанию это рутовые DNS. и ИМХО это правильно.
Но если вас такой вариант не устраивает, можете прописать любой другой DNS для рекурсивных запросов, какой вам нравится, и который не против эти запросы обрабатывать