Mikrotik dns server настройка

Обновлено: 03.07.2024

Если в магазине вас угораздило купить роутер MikroTik себе домой и вы не знаете зачем он вам, а отравление DNS кэша вашим провайдером не дает вам спать по ночам, то этот пост для вас.

Можно не мучаться и поставить DNS от Yandex, Google, Adquard и прочее, а можно пойти более сложным путем:


Если их несколько, выбираем какой больше нравится вам :)

1. Первым делом удаляем автополучение DNS провайдера:


открываем настройки интерфейса и убираем галочку "use peer dns"

2. В настройке DNS (IP -> DNS), вводим IP DNS сервера (начиная с сервера который у вас в городе). Размер кэша укажите сколько не жалко (учитывайте свободное место).


На этом можно было бы закончить, но мы пойдем далее.


Далее открываем терминал и добавляем статические маршруты

/ip dns static add comment="OpenNIC" forward-to=185.121.177.177,169.239.202.202,2a05:dfc7:5::53::1,2a05:dfc7:5::5353::1 regexp=".*(\\.bbs|\\.chan|\\.cyb|\\.dyn|\\.geek|\\.gopher|\\.indy|\\.libre|\\.neo|\\.null|\\.o)\$" type=FWD

/ip dns static add comment="OpenNIC" forward-to=185.121.177.177,169.239.202.202,2a05:dfc7:5::53::1,2a05:dfc7:5::5353::1 regexp=".*(\\.oss|\\.oz|\\.parody|\\.pirate|\\.opennic.glue|\\.dns\\.opennic\\.glue)\$" type=FWD


В настройках DNS делаем очистку кэша.


Если пользуетесь Microsoft Edge, отключаем "улучшайзеры", в других браузерах аналогично.


Ребутим все что можно отребутить :)


Что мне это дало? Нормально заработали уведомления от mihome, перестали "тупить" китайские лампочки. Ну и немного ощущаешь себя кулхацкером чуть более независимым от своего провайдера.

upd: корневой сервер DNS (в городе) не является публичным резолвером и не отвечает на запросы, нужно вводить ip публичного резолвера данного корневого сервера DNS.


Сегодня поговорим о DNS в рамках использования на MikroTik, настроим Server да и в общем затронем немного истории этой технологии. И так начнём.

Если вы хотите углубить свои знания по работе с роутерами MikroTik, то наша команда рекомендует пройти курсы которые сделаны на основе MikroTik Certified Network Associate и расширены автором на основе опыта . Подробно читайте ниже.

До версии 6.47 реализация от Mikrotik поддерживала только A статические записи. Теперь вы можете добавлять статикой следующие типы записей:

Настройка DNS сервера

Сами глобальные настройки и живут в IP – DNS.

Глобальные настройки DNS

Начнём сверху вниз. Servers – это серверы имён для Mikrotik. Ему же надо имена разрешать, вот здесь мы и указываем адреса серверов. Давайте позволим Google и Cloudflare собирать наши данные.

Указываем DNS для Mikrotik

Dynamic Server – это адреса серверов которые мы получили по DHCP. Если посмотреть на интерфейс клиента DHCP, то увидим ту самую галочку, которая за это и отвечает.

Если ее снять, то IP сервера удалится из Dynamic, так и сделаем.

Выключаем DNS в DHCP клиенте


А что будет, если у нас указаны статические и динамические адреса имён?

Если указана статика, то она будет более предпочтительна, однако, это не означает что они будут использоваться всегда (ранее запрос был получен от динамики). Чтобы у вас была контролируемая ситуация, оставляйте одно из двух.

Делаем DNS Mikrotik общедоступным

Чтобы наш девайс мог отвечать на запросы, а не только их запрашивать у вышестоящих, нам нужно активировать галочку – Allow Remote Requests.

Allow Remote Requests

Однако, нужно понимать, что в глобальных настройках вы не можете указать, с каких адресов или сетей сервер будет принимать запросы. После ее активации, на всех адресах, что заданы в девайсе, включается листнинг DNS запросов по TCP/UDP. Т.е. если вы имеете публичный IP, то недоброжелатели буду использовать вас для своих целей. Чтобы этого не было, вам нужно настроить фаервол, и желательно с использованием Address List, в которые вы и укажете адреса/подсети, откуда разрешаете TCP/UDP по 53 порту.

Очень частая загрузка CPU на 100% у хозяев, кто не закрыл снаружи резолв имён. Хорошо видно в Tools – Profile.

Кэш DNS сервера

Нажав на кнопку Cache, мы увидим все за кэшированные записи, что резолвил девайс.

DNS Cashe

Если хотим его очистить, то жмём Flush Cache.

По умолчанию кэшированные записи будут иметь TTL (время жизни) в зависимости от значения в зоне прямого просмотра. Я обычно искусственно сокращаю максимальное время жизни с 7 дней на 2 часа.

Правим время жизни в кэше

Отрегулировать размер кэша можно в Cache Size. Но зачастую его вполне хватает.

Создание статических записей

Как я говорил ранее, с версии 6.47 появилась поддержка дополнительных типов записей. У меня тут рядом завалялась виртуальная машина с домен контроллером на Windows Server, на ней есть зона contoso11.local. Предлагаю сделать перенаправление всех запросов зоны contoso11.local на адрес 192.168.10.200.

Статические записи ресурсов

Далее делаем nslookup любой записи из зоны и смотрим на ответ

nslookup для fwd записи

Взглянем на кэш

FWD в кэше

Аналогично во вкладке Static, вы можете создать другие типы записей, но, к сожалению, PTR пока не доступна.

На этом все, надеюсь информация по настройке DNS на Микротике была полезна, а общем то ничего сложного. Спасибо за внимание!

89 вопросов по настройке MikroTik

Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.

Кэширующий DNS в микротике это хорошо и просто. Настраивается быстро, используется легко и непринужденно. Опишу на примере и чуток поделюсь опытом.

winbox-ip-dns

set allow - remote - requests = yes servers = 77.88.8.8 , 77.88.8.1 , 8.8.8.8

Этого достаточно, чтобы Mikrotik стал принимать DNS-запросы из локальной сети, пересылать их на указанные серверы и возвращать IP-адреса любимых сайтов конечным пользователям в вашей локалке. Т.е. с этого момента вы можете указывать ваш роутер не только шлюзом но и сервером DNS в настройке соединения.

Конечно, не все запросы будут пересылаться, для этого есть кэш. Он же cache. О проблеме с кэшем (мелочь, а неприятно), с которой я столкнулся, напишу ниже.

Давайте не будем использовать только дефолт. Обезопасим себя и роутер от лишнего и абсолютно ненужного траффика.

add chain = input comment = "Allow DNS from ether2" dst - port = 53 in - interface = ether2 protocol = udp add action = drop chain = input comment = "Drop Another INPUT" add chain = input comment = "Allow DNS from ether2" dst - port = 53 in - interface = ! myISP protocol = udp
Допустим, мы написали нужные правила, определили откуда можно присылать DNS-запросы, все остальное отсекли. И тут DNS перестал работать. Все верно, т.к. мы забыли очень важную вещь: мы забыли разрешить серверам пересылки отвечать нашему роутеру. Т.е. mikrotik получает запрос из локалки, пересылает запрос, например, гуглу (8.8.8.8), гугл пытается ответить нашему роутеру и этот ответ отсекается последним правилом add action = drop chain = input comment = "Drop Another INPUT"

Нехорошо. Надо разрешить. Добавляем еще правило перед последним. Здесь я разрешу только серверу 8.8.8.8 ответить на запрос нашего роутера. Это для примера. Можно не указывать src-address, если вы не хотите писать отдельное правило для каждого сервера.

add chain = input comment = "Allow DNS request" in - interface = myISP protocol = udp src - address = 8.8.8.8 src - port = 53

Обратите внимание, что надо указывать src-port=53 а не dst-port=53. Наш роутер обратится к 8.8.8.8 с произвольного порта, а вот гугл будет отвечать именно с 53-го.

В конечном виде правила будут выглядеть следующим образом.

add action = drop chain = input comment = "Drop DNS from !ether2" dst - port = 53 in - interface = ! ether2 protocol = udp add chain = input comment = "Allow DNS request" in - interface = myISP protocol = udp src - port = 53 add action = drop chain = input comment = "Drop Another INPUT"
Если у вас в локалке есть какие-то ресурсы, которым вы хотите присвоить имя, то вы можете добавить запись IP->DNS->Static. Когда это нужно? Да повсеместно. Например, у вас в сети есть файловый сервер или другой внутренний-ресурс, который постоянно мигрирует по разным IP-адресам и вам лень каждый раз перенастраивать подключение у каждого клиента.

DNS-static через winbox

Или через терминал:

Гораздо легче будет потом жить. Ваши пользователи будут обращаться к file-serv-1.lcl, а вы втихую менять его IP на микротике в случае переезда сервера.

Есть еще кнопка Cache, нажав которую, вы увидите, что в данный момент закешировал mikrotik и сможете этот кеш очистить, нажав в открывшемся окне Flush cache.

С настройкой вкратце все. Теперь мелкая неприятность, с которой я как-то столкнулся. Кроется она во взаимодействии кэша DNS микротика и статических записей. Не знаю, на каких версиях это еще проявляется, я словил на CCR1036-8G-2S+ RouterOS v6.15. Может, я вообще единственный, кто это наблюдал. Но, тем не менее, поделюсь. Вдруг кому поможет.

Если сменился IP хоста и вам надо отредактировать статическую запись, то лучше удалить старую и создать новую. Если просто отредактировать существующую, то в кэше могут остаться старые записи и ни кнопка Flush cache не поможет, ни /ip dns cache flush через терминал.

Глюк проявляется не систематически, но как-то раз заставил меня изрядно напрячь мозг, прежде чем я понял, в чем дело. Проверяйте кэш после редактирования статических записей. Если видите старое в дополнение к новому, то надо заново создать старую запись и удалить ее. Тогда она также удалится и из кэша.

Хочешь уметь больше? Научиться тонкостям настройки MikroTik можно из русскоязычного онлайн-курса по MikroTik от автора курсов Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.

1. Первоначальная настройка DNS

В RouterOS есть простейший DNS-сервер, который, не смотря на свою простоту, может оказаться вполне применимым для небольших сетей.

Базовую настройку DNS можно выполнить в графическом интерфейсе WinBox:


  1. Войдем в меню IP;
  2. Пункт DNS;
  3. В параметре Servers введем адреса DNS провайдера;
  4. Поставим галочку Allow Remote Requests (без нее сервер DNS не будет обрабатывать DNS-запросы клиентов);
  5. Установим размер кэша DNS;
  6. И установим TTL для записей в кэше DNS, по истечению которого записи будут обновляться.

2. Настройка статических записей DNS

Настроим статические записи DNS:


Статические записи DNS позволяют ускорить работу DNS для часто используемых узлов, либо подменить узлы своими web-страницами (например, для запрещенных в вашей компании сайтов).

3. Кэш DNS и операции с ним

Рассмотрим кэш DNS чуть подробнее:


4. Тонкая настройка DNS из консоли

Более тонкая настройка DNS доступна только из консоли:


5. Оригиналы источников информации

    «Настройка кэширующего DNS-сервера на роутере MikroTik».

Хочешь уметь больше? Научиться тонкостям настройки MikroTik можно из русскоязычного онлайн-курса по MikroTik от автора курсов Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.

Читайте также: