Всем привет!!
В этом видео ролике я попытаюсь рассказать для чего дома нужен свой DNS и как его настроить.
DNS – это система доменных имен (domain name system) похожая на адресную книгу в Интернете, которая нужна для сопоставления значения имен доменов с IP -адресами, позволяя пользователям легко получать доступ к веб страницам, компьютерам и другим ресурсам в сети. По простому говоря находит IP адрес по имени.

Для начала надо сказать про кеширование DNS. Каждый DNS запрос должен пройти от вашего ПК к DNS серверу, который должен запросить у следующего DNS сервера, а тот у следующего пока они не дойдут то того DNS сервера, на котором прописан ваш домен. Скорее всего таких будет 3 или 4, но в обще никто не знает сколько таких следующих будет в вашем случаи. А на каждый такой запрос нужно время на обработку.
Эти все задержки могут сильно повлиять на скорость открытия интернет страниц на вашем ПК. К примеру интернет у вас быстрый, а страницы открываются долго. Так как на одной странице могут быть реклама, статьи, ссылки и многое другое с разными доменами и все эти домены нужно отрезолвить через DNS сервер.
Для решения этой задачи приходит на помощь кеширующий DNS сервер. Он работает так: все запросы проходящие через него он так же пересылает следующему DNS серверу, а ответы помещает в кеш и когда приходит точно такой же запрос, то он не пересылает его следующему DNSсерверу, а выдает из своего локального кеша. Это ускоряет в разы работу локального DNS сервера и загрузка сайта на ваш ПК выполняется быстрее.

На схеме выше я постарался нарисовать стандартную домашнею локальную сеть. Я специально разделил роутер на две части на роутер и на коммутатор(switch). Если не настроить домашний DNS и подключаться к Synology NAS по доменному имени, то ваша локальная домашняя сеть будет работать не корректно. Трафик будет не коммутироваться через коммутатор, а пытаться маршрутизироваться заходя на роутер.
Роутер предназначен для маршрутизации трафика с WAN порта на LAN порты или наоборот, ему может быть трудно маршрутизировать с LAN в LAN. Из-за этого роутер может зависать, работать не корректно или скорость между ПК и Synology быть маленькой. Даже если у вас все хорошо работает, то это не значит что все сервисы будут работать одинаково хорошо. В общем настройка домашнего DNS поможет решить все данные проблемы и возможно забыть о проблемах с роутером раз и навсегда, кто знает.
Synology DNS кеширующий сервер
Тайм коды:
- 1) 00:06 – Начало
- 2) 02:04 – теория, для чего это нужно
- 3) 08:07 – Установка DNS сервера
- 4) 08:50 – настройка кеширующего DNS сервера
- 5) 13:10 – настройка локальной DNS зоны
- 6) 17:40 – настройка роутера \ DHCP сервера
- 7) 19:55 – настройка “представления” или расщепление горизонта
- 8) 24:17 – правильная настройка расщепления горизонта ))) (сорян за косяк)
- 9) 26:44 – завершение ролика
- 10) 27:20 – аналогичная настройка в AdGuard home, если вы им пользуетесь
- 11) 28:13 – ну теперь точно завершение ролика
Типы DNS записей:
- A Type: Адресная запись, соответствие между именем и IP-адресом (name -> IP)
- AAAA Type: Адрес в формате IPv6
- CNAME Type: Каноническое имя для псевдонима (alias -> name)
- MX Type: Адрес почтового шлюза для домена. Состоит из двух частей — приоритета (чем число больше, тем ниже приоритет), и адреса узла (domain -> mail server)
- NS Type: Адрес узла, отвечающего за доменную зону. Критически важна для функционирования самой системы доменных имён
- SPF Type: Указывает серверы, которые могут отправлять почту с данного домена
- SRV Type: Указание на местоположение серверов для сервисов
- TXT Type: Запись произвольных двоичных данных, до 255 байт в размере
- Яндекс DSN: 77.88.8.8 и 77.88.8.1 и другие интересные DNS сервера
- AdGuard DNS нефильтрующие: 94.140.14.140 и 94.140.14.141 более подробно на офф сайте.
- Google DSN: 8.8.8.8 и 8.8.4.4
Если вы хотете пользоваться своим DNS серверов за пределами свой домашней локально сети, то ваш DNS сервер будет выдавать всем клиентам, не важно где они находятся в локальной сети или в интернете, одинаковые IP адреса. Соответственно находясь в интернете вы получите локальный IP адрес Synology NAS и не сможете к нему подключиться. Для решения этой задачи есть функция “Представление”.
Представления – что это такое?
Сервер доменных имен предоставляет каждому клиенту настраиваемую информацию в соответствии с представлениями. Эта функция (иногда называемая DNS с раздельным горизонтом) может оптимизировать управление системой безопасности и конфиденциальной информацией записей зоны DNS.
Если у вас есть доменное имя, но вы хотите предоставить разные ответы на запросы из внешних и внутренних источников, можно создать различные представления с отдельными записями ресурсов.
Я не смогу описать, все что хочу текстом, да и голосом не очень получается, точнее получается не так как хочу. Поэтому рекомендую просмотреть мой видео ролик.
А где получить имя домена? И как быть если у меня серый ip динамический? Если купить домен то что должно быть настроено на стороне владельца корневого домена те там где купил.
Если вы хотите иметь свой собственный домен, который будет общедоступным, то его нужно приобрести у регистратора. Таких в интернете очень много и найти их через поиск не сложно. Если у вас серый IP адрес, то тут вопрос, а зачем вам домен? если вы хотите использовать домен только у себя дома, внутри своей локальной сети, то покупать ничего не нужно, можно просто создать зону и указать ип адрес из вашей внутренней сети. Такой домен будет известен только вам.
Долго курил интернет но так и не понял как поднять кэширующий DNS-сервер на NAS и AdGuard Home в том же Docker как их между собой связать и кто из них должен быть прописан на роутере чтоб клиентам в домашней сети блокировалась реклама?
Adguard Home это и есть DNS и он тоже кеширующий. Поэтому ставить их сразу два нет смысла. Что-то одно. Либо DNS с блокировкой рекламы либо просто DNS.
После указания основной зоны (14:19 на видео)
У вас результат такой:
╤хЁтхЁ: UnKnown
Address: 192.168.68.111
╚ь : bafista.ru
Моя проблема состоит в том, что все осталось по прежнему:
╤хЁтхЁ: UnKnown
Address: 192.168.68.111
Не заслуживающий доверия ответ:
╚ь : bafista.ru
Address: 188.232.167.165
подскажите, может что-то нужно настраивать на роутере, чтобы dns с него шел на nas?
вот это ну никак не искореняется (
Не заслуживающий доверия ответ:
╚ь : bafista.ru
Address: 188.232.167.165
Вам не нравится незаслуживающий ответ? Это нормально. А про роутер я не подскажу, непонятно что вы делаете в своей лабе.
мне не нравится то, что не появляется такое:
╚ь : bafista.ru
Address: 192.168.68.111
т.е. он как бы говорит, что по имени bafista адрес – 188.232.167.165. Т.е. он не резолвит имя на нас, а показывает IP доменного имени. Соответственно если я сделаю так – nas.bafista.ru то получу
*** UnKnown не удалось найти nas.bafista.ru: Non-existent domain
днс нужно настраивать, зону настраивать, прописывать записи и так далее.
А что именно нужно настраивать в роутере. Просто в ролике об этом ни слова.
Возможно ли такое провернуть с доменом DDNS, который мы используем для внешнего доступа?
DDNS это имя к которому привязывается Ip и когда он меняется специальная служба или команда заносит изменения в ДНС сервер. Так что нет никакой разницы работать будет и с DDNS.
изменить DSN в DHCP
Подскажите такую вещь. Вот, как я понял, одно из удобств кэширующего DNS. Если допустим у меня адрес NAS – nas.domen.ru, и из интернета, понятно, что он указывает на мой внешний статический IP.. А внутри локалки у NAS адрес 192.168.0.7. Я прописываю в DNS AdguardHome (Фильтры > Перезапись DNS-запросов)
nas.domen.ru -192.168.0.7.
Теперь в командой строке (на ноутбуке, который подключен к той же локалке, (DNS 192.168.0.7. в сетевом соединении ноутбука указан):
>nslookup nas.domen.ru
╤хЁтхЁ: UnKnown
Address: 192.168.0.7
Не заслуживающий доверия ответ:
╚ь : nas.domen.ru
Address: 192.168.0.7
Все вроде бы хорошо, работает!
Но почему, если я выключаю интернет в локалке, то у меня в командной строке:
>nslookup nas.domen.ru
╤хЁтхЁ: UnKnown
Address: 192.168.0.7
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Превышено время ожидания запроса UnKnown
И админка NAS, само собой, по адресу nas.domen.ru не открывается. То есть я думал, что по такой логике, у меня будут открываться по внешним доменам мои локальные ресурсы, даже если не будет интернета, так как локальный DNS-сервер AdguardHome сообщит, что их надо открывать по локальным IP адресам.
Что я делаю не так? Или DNS-сервер AdguardHome не будет работать без интернета в данной ситуации тоже?
Судя по всему проблема в Adguard home, который без интернета не работает. Странно, я тоже проверю к себя.
Провел некоторые эксперименты и, похоже, понял в чем особенность. Дело в разных портах. Например, если через интернет NAS открывается по адресу nas.domen.ru, причем по https и порт мы не указываем, значит, понятно дело, это стандартный порт 443, но по локалке DSM открывается, если тоже по https, по адресу 192.168.0.7:5001, поэтому, если сделать перенаправление DNS в AdGuard Home и пытаться открыть его, отключив интернет, по https://nas.domen.ru, то он будет из-за перенаправления DNS по факту ломиться на https://192.168.0.7:443, а по этому адресу DSM не откроется, если же попытаться открыть как https://nas.domen.ru:5001, то админка откроется.
То есть проблема возникает в случае, если порт, по которому открывается нужный адрес через интернет (с внешней стороны) не совпадает с портом, по которому можно открыть нужный сервис внутри локальной сети. Если же порты совпадают, то проблем не будет. Не знаю, решается ли эта проблема как-то в родном приложении DNS-сервер из Центра пакетов, но в AdGuard Home это происходит именно так.
мне кажется вы путаете DNS по порту 53 и DNS-over-HTTPS или SSL. Так как последнии используют 443 и 853 порты. Возможно я немного не уловил тему, так как пишу из админки и мне не видно про что собственно речь была изначально.
UPDATE Ой, вынужден признать. Мое предположение оказалось неверным, так как после отключения интернета через какое-то время все ресурсы, на которые было настроено перенаправление в AdGuard Home, и которые я пытался открыть с указанием их локального порта через AdGuard Home перестали открываться. И это в общем логично, учитывая вышесказанный DNS request timed out в CMD, ведь ему неважен какой порт. Поэтому да, проблема остается.
Я думаю что проблема будет. адгуард должен сначала узнать из внешки ответ, а потом когда будет отдавать во внутри он тупо подменит адрес, но если ему отдавать нечего, то он и не подменяет адрес. Вот если бы в адгуарде делались бы зоны, то он бы работал как днс сервер и тогда ему бы было все равно на интернет. Думаю логика такая.
я вначале ошибочно подумал, что раздел “Перезапись DNS-запросов” действует как бы как перенаправление, типа обращаешься по адресу nas.domen.ru:443, а браузер, отображая в адресной строке https://nas.domen.ru по факту открывает – 192.168.0.7:443, разрешая это путем отправки запроса к DNS Synology (то есть на Adguardhome на 192.168.0.7) и думал, что он это будет делать без интернета…
а в реальности, да, вполне возможно не работает из-за отсутствия возможности создать зоны, которые вы как раз показывали в видео в статье, где демонстрировалось родное приложение из Центра Пакетов, я еще вспоминаю DNS-сервер на Windows Server как-то видел, там тоже был раздел с зонами…
а так да, получается, или полноценный dns-сервер без возможности резать рекламу или Adguard Home, было бы, конечно хорошо, если бы в AdGuard Home появились бы эти опции как в родном приложении
Согласен, зоны не помешали бы точно.
Доброго времени суток. Подскажите такую штуку если не затруднит. Имеется роутер, от которого через свитч подключается NAS + меш deco в режиме точек доступа. На самом роутере Primary DNS указан NAS + открыт порт 443 для synology. DNS сервер на synology настраивался в точности по вашему видео. Также по вашему же видео настраивал DDNS. nslookup из локалки для моего домена выдает правильный локальный адрес. Но, по факту имеется такая ситуация: подключение из локальной сети на веб морду DSM по своему кастомному домену (https) в Resource Monitor/Connections отображается с внешним IP. Подключиться по http из локалки и вовсе не работает. При этом, подключение по ssh по тому же домену из локалки выдает локальный IP и работает на ура.
Насколько я понимаю все подключения из локальной сети должны по факту быть до роутера и резолвиться DNS на самом NAS, но в моем случае http/https почему то разрешаются внешним DNS. Буду безмерно благодарен за любую наводку куда копать и где смотреть чтобы все заработало правильно.
может в браузере есть какое-то расширение прокси или впн
Не думаю что расширения (но протестил на всяк случай в safari которым не пользуюсь и который гол как сокол – тот же результат).
В процессе настроек дополнительных reverse proxy обнаружилось что если на роутере пробрасывать порт на DSM (5001), то все добавленные домены тупо уходят на DSM. Было принято волевое решение пробрасывать порты как есть и уже в самом reverse proxy редиректить по условиям. Домены вроде заработали. Во всяком случае и DSM и Plex открываются адекватно. Но всплыло несколько ньюансов: (1) Отвалилась samba. Точнее стала приходить с внешнего адреса, и как только пробросил порт – заработала. (2) Так как все подключения “внешние”, настройки Views/Представления в DNS Server не играют никакой роли так же как и Access Control Panel в обратном прокси. (3) DSM теперь показывает по 2 подключения за раз. Один с локалки, второй с внешки. (4 – бонусная) Если на ноуте принудительно указать адрес DNS на мой synology – веб морда работает согласно всем хотелкам. И “расщипление горизонта” работает, и в обратном прокси ограничение по маске сети работает… Вопщем я хз что это такое и как с этим быть. Складывается ощущение что на тот Primary DNS что я прописываю в роутере сам же роутер кладет большой болт…
В довесок эмпирическим путем обнаружилось, что если nslookup всегда выдает правильные локальные адреса, то ping – стабильно внешний.
Судя по всему у вас что-то настроено такое, что не поддается обьяснение. ))) Укажите один ДНС в настройках, что бы наверняка выдавалось только одно значение. И SMB не работает по DNS у нее своя система имен.