Приступим.
Добавим DHCP сервер
В winbox открываем IP -> DHCP-Server. В появившемся окне нажимаем кнопку плюс «+» и видим следующее:
Пройдусь по основным параметрам:name— собственно название сервера. Без комментариев.interface— интерфейс, на котором будет крутиться наш сервер и с которого будет раздавать адреса.relay— этот параметр нам нужен, если мы используем DHCP-Relay. В данном простом примере mikrotik не является ретранслятором, поэтому этот параметр мы опускаем.Lease Time— срок аренды адреса. По умолчанию 3 дня. Забегая чуть вперед скажу, что если Address Pool (следующий параметр) у вас static-only, то, по большому счету, этот параметр не важен. Если вы раздаете адреса произвольно (как правило, для гостевых сетей), то я бы рекомендовал сократить срок аренды часов до трех, например.Address Pool — вы можете выдавать адреса либо произвольно из пула адресов (этот пул нужно сначала создать. Через winbox: IP -> Pool), либо вы укажете static-only и IP будут выдавать в строгой привязке к MAC-адресам. В нашем примере остановимся на втором варианте, т.к. хочется пройти весь цикл настройки.Src. Address — важный параметр в случае, если интерфейсу на котором поднимается сервер, присвоено несколько IP-адресов. Но я рекомендую указывать всегда.Add ARP For Leases — если на интерфейсе, на котором вы поднимаете DHCP, включен ARP или вы руками заполняете ARP-таблицу, то этот параметр можно не отмечать. Остальное можно оставить по-умолчанию.
Опишем подсети, в которых будем раздавать адреса. Для этого перейдем на следующую вкладку «Networks», нажмем «+».
В данном примере я добавляю описания сразу для двух диапазонов одной подсети вместо всей 192.168.33.0./24 Я хочу, чтобы настройки первой половины хостов с адресами 192.168.33.2-192.168.33.127 отличались от настроек второй половины в диапазоне 192.168.33.129-192.168.33.254. Когда это может пригодиться? Например, у вас в сети половина хостов — это терминальные станции, которым требуется загрузка по сети. Другая половина — обычные ПК. Или вам надо указать разные серверы ДНС хостам в пределах вашей подсети. На последнем примере я и остановлюсь.
Реклама:Address — подсеть, на которую будут распространяться нижеследующие параметры. Параметр DHCP сервера. Далее параметры, которые будут отдаваться клиенту.Gateway — шлюз.Netmask — маска подсети. Обратите внимание — 24. Хост должен видеть всех.DNS Servers — серверы ДНС. Вот тут параметры различаются. Первой половине хостов я указываю в качестве первичного ДНС сам микротик (он у меня настроен в качестве кеширующего ДНС), вторичным гугл. (На всякий, вдруг служба ДНС отвалится на микротике. Бывает такое). Второй половине хостов я в качестве ДНС сервера отдаю «Семейный» ДНС Яндекса, чтобы не работали сайты для взрослых (это полезно, когда микротик — это ваш домашний роутер и у вас есть дети). Дальнейшие параметры я рассматривать не буду, т.к. они не являются необходимыми для базовой настройки. Коснусь этой темы в последующих статьях, где эти параметры будут необходимы. (В планах есть описать процесс настройки микротика для загрузки по TFTP тонких клиентов WTWare)
Сервер добавлен, сеть описана, осталось добавить записи об аренде адресов. Переходим на следующую вкладку Leases и привычно жмем «+».
Здесь от нас требуется по-минимуму: ввести IP-адрес (Address), который мы хотим присвоить хосту с MAC-адресом (MAC Address), который указывается во второй строке. Затем выбрать сервер (Server), который мы только что настроили. В даном примере я добавляю в аренду два адреса из первого и второго сегментов моей подсети 192.138.33.0/24. Клиент с адресом 192.168.33.2 будет видеть весь интернет, второй клиент будет ограничен ДНСом Яндекса. При этом оба хоста будут находиться в пределах одной подсети 192.168.33.0/24 и прекрасно общаться друг с другом.
OptionsиOption Sets в данной статье я так же не рассматриваю ввиду отсутствия необходимости их использования при базовой настройке.
Если у вас сеть офиса (мало ли там умников), то рекомендую добавить алерт на вкладке Alerts. Микротик будет «слушать» указанный вами Interface (в данном случае указывайте интерфейс, на котором подняли DHCP) на предмет появления в вашей сети «левых» DHCP-серверов. Для домашней сети с одним роутером это неактуально.
Официальный полный манул по DHCP от Mikrotik тут.
До новых встреч!
Реклама:
Это инструкция, как пошагово настроить роутер MikroTik с нуля без использования заводской конфигурации.
Содержание:
Схема подключения роутера MikroTik:
- кабель провайдера интернета подключаем в первый порт роутера;
- компьютер подключаем к роутеру MikroTik сетевым кабелем в любой LAN порт от 2 до 5;
- ноутбук и другие беспроводные устройства подключим по Wi-Fi;
- блок питания включаем в разъем «Power» роутера MikroTik.
Чтобы на компьютере можно было зайти в настройки роутера Mikrotik, настроим сетевую карту на получение автоматических настроек.
Открываем «Пуск» → «Панель управления» → «Центр управления сетями и общим доступом».
Перейдем в «Изменение параметров адаптера».
Нажимаем правой кнопкой мыши на «Подключение по локальной сети» и выбираем «Свойства»
Нажимаем на «Протокол Интернета версии 4 (TCP/IPv4)» и кнопку «Свойства».
Выбираем «Получить IP-адрес автоматически» и нажимаете кнопку «OK».
Если сетевая карта не получает автоматически IP адрес из подсети 192.168.88.x, попробуйте его указать вручную (например: 192.168.88.21) или сбросить роутер Mikrotik к заводским настройкам.
Выполнить настройку роутера MikroTik можно разными способами:
- С помощью специальной программы Winbox для ОС Windows. Скачать на официальном сайте.
- С помощью браузера, перейдя по адресу 192.168.88.1. В настройках браузера не должен быть указан proxy-сервер!
- Настройка через Telnet.
Мы будем настраивать роутер Mikrotik с помощью программы Winbox.
Подключаемся к роутеру MikroTik:
- Запустите программу Winbox и перейдите на вкладку Neighbors;
- В списке отобразится ваш роутер. Нажмите левой кнопкой мыши на его MAC адрес;
- Нажмите кнопку Connect.Login по умолчанию admin, пароль пустой.
Сбросим все настройки роутера MikroTik.
При первом входе у вас появится окно, как на картинке ниже. Нажмите кнопку Remove Configuration и дождитесь перезагрузки устройства.
Если у вас не появилось данное окно, сбросим настройки через меню:
- Выбираем слева меню System — Reset Configuration;
- Поставьте галочку No Default Configuration;
- Нажмите кнопку Reset Configuration.
- Нажмите кнопку Yes и дождитесь перезагрузки устройства.
Описание сетевых интерфейсов
Конфигурация сетевых интерфейсов MikroTik будет выглядеть следующим образом: первый порт ether1 будет подключен к провайдеру (WAN порт), остальные порты ether2-5 будут работать в режиме коммутатора для подключения компьютеров локальной сети.
Чтобы не путать сетевые интерфейсы, опишем их с помощью комментариев.
Входим в настройки MikroTik с помощью программы Winbox.
Записываем для первого порта ether1 комментарий «WAN»:
- Открываем меню Interfaces;
- Выбираем первый интерфейс ether1;
- Нажимаем желтую кнопку Comment;
- В появившемся окне вводим комментарий «WAN«;
- Нажимаем кнопку OK.
Записываем для второго порта ether2 комментарий «LAN»:
Выбираем интерфейс ether2; Нажимаем желтую кнопку Comment; В появившемся окне вводим комментарий «LAN«; Нажимаем кнопку OK.
Теперь в списке интерфейсов четко видно их назначение.
Если Ваш провайдер блокирует доступ к сети по MAC адресу, то необходимо сначала изменить MAC адрес WAN порта роутера MikroTik. В противном случае пропустите этот пункт.
Чтобы изменить MAC адрес порта MikroTik, открываем в программе Winbox меню New Terminal и вводим команду:
/interface ethernet set ether1 mac-address=00:01:02:03:04:05
, где ether1 — имя WAN интерфейса, 00:01:02:03:04:05 — разрешенный MAC адрес.
Чтобы вернуть родной MAC адрес порта, нужно выполнить команду:
/interface ethernet reset-mac ether1
, где ether1 — имя интерфейса.
Если интернет провайдер выдает Вам сетевые настройки автоматически, то необходимо настроить WAN порт роутера MikroTik на получение настроек по DHCP:
- Открываем меню IP;
- Выбираем DHCP Client;
- В появившемся окне нажимаем кнопку Add (плюсик);
- В новом окне в списке Interface выбираем WAN интерфейс ether1;
- Нажимаем кнопку OK для сохранения настроек.
Теперь мы получили IP адрес от провайдера, который отображается в столбце IP Adress.
Проверим, что есть связь с интернетом:
- Открываем меню New Terminal;
- В терминале пишем команду ping 8.8.8.8 (пингуем сайт google) и жмем Enter на клавиатуре.
Как видим, идут пинги по 60ms, значит интернет подключен и работает. Остановить выполнение команды можно комбинацией клавиш на клавиатуре Ctrl+C.
На компьютерах, подключенных к роутеру MikroTik, интернет не будет работать, пока вы не настроите локальную сеть, Firewall и NAT.
Если вы используете статические сетевые настройки, необходимо настроить WAN порт роутера MikroTik вручную.
Настроим статический IP адрес и маску подсети WAN порта MikroTik :
- Открываем меню IP;
- Выбираем Addresses;
- В появившемся окне нажимаем кнопку Add (плюсик);
- В новом окне в поле Address прописываем статический IP адрес / маску подсети;
- В списке Interface выбираем WAN интерфейс ether1;
- Для сохранения настроек нажимаем кнопку OK.
Настроим адрес интернет шлюза MikroTik:
- Открываем меню IP;
- Выбираем Routes;
- В появившемся окне нажимаем кнопку Add (плюсик);
- В новом окне в поле Gateway прописываем IP адрес шлюза;
- Нажимаем кнопку OK для сохранения настроек.
Добавим адреса DNS серверов MikroTik:
- Открываем меню IP;
- Выбираем DNS;
- В появившемся окне нажимаем кнопку Settings;
- В новом окне в поле Servers прописываем IP адрес предпочитаемого DNS сервера;
- Нажимаем кнопку «вниз» (черный треугольник), чтобы добавить еще одно поле для ввода;
- В новом поле прописываем IP адрес альтернативного DNS сервера;
- Ставим галочку Allow Remote Requests;
- Нажимаем кнопку OK для сохранения настроек.
Проверим, что есть доступ к интернету:
- Открываем меню New Terminal;
- В терминале пишем команду ping 8.8.8.8 (пингуем сайт google) и жмем Enter на клавиатуре.
Как видим, идут пинги по 60ms, значит интернет подключен и работает. Остановить выполнение команды можно комбинацией клавиш на клавиатуре Ctrl+C.
На компьютерах, подключенных к роутеру MikroTik, интернет не будет работать, пока вы не настроите локальную сеть, Firewall и NAT.
Если вы используете ADSL модем, к которому по сетевому кабелю подключен роутер MikroTik, сначала необходимо настроить ADSL модем в режим Bridge (мост).
Настроим клиентское PPPoE соединение на роутере MikroTik:
- Слева выбираем меню PPP;
- Нажимаем кнопку Add (плюсик);
- Выбираем PPPoE Client.
Настраиваем параметры PPPoE соединения MikroTik:
- В поле Name указываем имя соединения;
- В списке Interfaces выбираем первый WAN порт ether1, который подключен к провайдеру;
- Переходим на вкладку Dial Out;
- В поле User указываем имя пользователя;
- В поле Password вводим пароль;
- Ставим галочку Use Peer DNS;
- Нажимаем кнопку OK.
После создания PPPoE соединения напротив него должна появиться буква R, которая говорит о том, что соединение установлено.
Проверим, что есть связь с интернетом:
- Открываем меню New Terminal;
- В терминале пишем команду ping 8.8.8.8 (пингуем сайт google) и жмем Enter на клавиатуре.
Как видим, идут пинги по 60ms, значит интернет подключен и работает. Остановить выполнение команды можно комбинацией клавиш на клавиатуре Ctrl+C.
На компьютерах, подключенных к роутеру MikroTik, интернет не будет работать, пока вы не настроите локальную сеть, Firewall и NAT.
Чтобы компьютеры, подключенные к роутеру по кабелю и по Wi-Fi, друг друга «видели», необходимо объединить беспроводной и проводные интерфейсы MikroTik. Если у вас роутер без Wi-Fi, то объединяете только проводные интерфейсы.
Создаем объединение bridge-local (мост);
- Открываем меню Bridge;
- Нажимаем кнопку Add (плюсик);
- В поле Name прописываем имя объединения bridge-local;
- Нажимаем кнопку OK.
Добавляем в объединение проводные ethetnet порты 2-5:
- Переходим на вкладку Ports;
- Нажимаем кнопку Add (плюсик);
- В списке Interface выбираем ethernet порт ether2;
- В списке Bridge выбираем имя объединения bridge-local;
- Нажимаем кнопку OK;
- Точно так же добавляем порты ether3, ether4, ether5.
Добавляем в объединение Wi-Fi интерфейс.
- Переходим на вкладку Ports;
- Нажимаем кнопку Add (плюсик);
- В списке Interface выбираем беспроводной интерфейс wlan1;
- В списке Bridge выбираем имя объединения bridge-local;
- Нажимаем кнопку OK.
Настроим IP адрес локальной сети MikroTik:
- Открываем меню IP;
- Выбираем Addresses;
- Нажимаем кнопку Add (плюсик);
- В поле Address вводим адрес и маску локальной сети, например 192.168.88.1/24;
- В списке Interface выбираем bridge-local;
- Нажимаем кнопку OK.
Чтобы компьютеры, подключенные к роутеру, получали сетевые настройки автоматически, настроим DHCP сервер MikroTik:
- Открываем меню IP;
- Выбираем DHCP Server;
- Нажимаем кнопку DHCP Setup;
- В списке DHCP Server Interface выбираем bridge-local;
- Нажимаем кнопку Next;
- В этом окне выбирается сеть для DHCP. Оставляем без изменений и нажимаем кнопку Next;
- В следующем окне указывается адрес шлюза. Нажимаем кнопку Next;
- В этом окне прописывается диапазон IP адресов, которые будет раздавать DHCP сервер. Нажимаем кнопку Next;
- Далее вводятся адреса DNS серверов. Нажимаем кнопку Next;
- Здесь задается время резервирования IP адресов. Нажимаем кнопку Next;
- Настройка DHCP сервера успешно завершена. Жмем кнопку OK.
Теперь сетевой кабель компьютера отключаем от роутера и еще раз подключаем к нему.
Сначала необходимо включить Wi-Fi модуль:
- Открываем меню Wireless;
- Выбираем Wi-Fi интерфейс wlan1;
- Нажимаем кнопку Enable (синяя галочка).
Создаем пароль для подключения к точке доступа MikroTik:
- Открываем вкладку Security Profiles;
- Нажимаем кнопку Add (плюсик);
- В новом окне в поле Name указываем имя профиля безопасности;
- Для лучшей безопасности оставляем только регистрацию по протоколу WPA2 PSK;
- В поле WPA2 Pre-Shared Key вводим пароль для доступа к Wi-Fi точке;
- Для сохранения настроек нажимаем кнопку OK.
Настраиваем параметры Wi-Fi точки MikroTik:
- Открываем вкладку Interfaces;
- Делаем двойной клик кнопкой мыши на Wi-Fi интерфейсе wlan1, чтобы зайти в его настройки;
- Переходим на вкладку Wireless;
- В списке Mode выбираем режим работы ap bridge (точка доступа в режиме моста);
- В списке Band выбираем в каких стандартах будет работать Wi-Fi точка, мы выбрали B/G/N;
- В поле SSID прописываем имя точки доступа;
- В списке Security Profile выбираем имя профиля безопасности, в котором мы создавали пароль для доступа к Wi-Fi точке;
- Нажимаем кнопку OK для сохранения настроек.
Теперь можно подключаться к роутеру по Wi-Fi.
На компьютерах, подключенных к роутеру MikroTik по Wi-Fi, интернет не будет работать, пока вы не настроите Firewall и NAT.
Чтобы компьютеры получали доступ к интернету, необходимо настроить Firewall и NAT на роутере MikroTik.
Откройте меню New Terminal для ввода команд.
Настройка NAT выполняется следующими командами:
ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade
, где ether1 — это интерфейс, на который приходит интернет от провайдера. Для PPPoE соединений указывается название PPPoE интерфейса.
Настройки NAT достаточно, чтобы заработал интернет.
Protect router — команды для защиты роутера:
ip firewall filter add action=accept chain=input disabled=no protocol=icmp ip firewall filter add action=accept chain=input connection-state=established disabled=no in-interface=ether1 ip firewall filter add action=accept chain=input connection-state=related disabled=no in-interface=ether1 ip firewall filter add action=drop chain=input disabled=no in-interface=ether1
Protect LAN — защита внутренней сети:
ip firewall filter add action=jump chain=forward disabled=no in-interface=ether1 jump-target=customer ip firewall filter add action=accept chain=customer connection-state=established disabled=no ip firewall filter add action=accept chain=customer connection-state=related disabled=no ip firewall filter add action=drop chain=customer disabled=no
Назначаем типы интерфейсов для защиты внутренней сети (external — внешний, internal — внутренний LAN):
ip upnp interfaces add disabled=no interface=ether1 type=external ip upnp interfaces add disabled=no interface=ether2 type=internal ip upnp interfaces add disabled=no interface=ether3 type=internal ip upnp interfaces add disabled=no interface=ether4 type=internal ip upnp interfaces add disabled=no interface=ether5 type=internal ip upnp interfaces add disabled=no interface=bridge-local type=internal
Чтобы изменить пароль доступа к роутеру MikroTik, выполните следующие действия:
- Открываем меню System;
- Выбираем Users;
- Делаем двойной клик кнопкой мыши на пользователе admin;
- Нажимаем кнопку Password…;
- В поле New Password вводим новый пароль;
- В поле Confirm Password подтверждаем новый пароль;
- В окне Change Password нажимаем кнопку OK;
- В окне User нажимаем кнопку OK.
Чтобы сбросить MikroTik к заводским настройкам выполните следующее:
- Отключите питание роутера;
- Нажмите и держите кнопку Reset;
- Включите питание роутера;
- Дождитесь пока замигает индикатор ACT и отпустите кнопку Reset.
После этого роутер перезагрузится, и вы сможете зайти в его настройки со стандартным именем пользователя admin без пароля.
Если вы войдете в настройки с помощью программы Winbox, то появится следующее окно:
C помощью кнопки OK можно выполнить быструю настройку роутера по умолчанию.
Кнопка Remove Configuration позволяет сбросить все настройки для последующей ручной настройки роутера.
Теги
MikroTikWi-FiМаршрутизаторРоутерСетевое оборудование
Со службами DHCP и DNS знакомы, пожалуй все, ведь это базовые службы для сетей любого размера. Но их настройка обычно сводится к установке базовых параметров и затем о них забывают. Действительно, ну что может быть в них интересного, особенно если это неполноценные сервера, а службы роутера. Это так, если говорить о бытовых роутерах, где пользователю стараются не давать в руки лишних инструментов, но RouterOS рассчитана на иную аудиторию и предоставляет широкий спектр возможностей, которыми глупо не воспользоваться.
DNS (Domain Name System)
В отличие от DHCP считается, что свой DNS — это удел крупных сетей, а небольшие организации вполне могут жить и без нее, используя сервера провайдера или публичные сервера. Отчасти это так, но упуская из своих рук одну из ключевых сетевых служб администратор теряет многие инструменты контроля и управления в собственной сети.
Как работает система DNS мы рассказывали в одной из наших статей, рекомендуем ее к прочтению, особенно если вы не до конца разбираетесь в вопросе. Основное, на что нужно обратить внимание — это иерархичность системы. Данные зон хранятся на собственных серверах и для получения информации из них следует прибегать к рекурсии. Это достаточно затратный процесс, поэтому многие сервера кешируют запросы и отвечают на повторные обращения самостоятельно.
Скорость ответа на DNS-запрос очень важна для комфортного использования интернета. Внешне это может проявляться как «задумчивость» браузера, который некоторое время «думает», а только потом начинает грузить страницу. При этом сама скорость канала может быть высокой, а пинг к требуемому серверу небольшим. Неопытного админа такая ситуация может сильно озадачить, но все просто — это долго отвечает используемый DNS-сервер. Ведь прежде, чем начать взаимодействие с сервером, браузер должен получить от DNS-клиента его адрес, передав последнему доменное имя.
Mikrotik дает нам возможность использовать кеширующий DNS-сервер прямо на роутере и если вы настроили использование роутера в качестве DNS — то вы его уже используете. Еще раз перейдем в IP — DNS и внимательно посмотрим на настройки:
В самом низу расположены настройки кеша: его размер (Cache Size) и максимальное время хранения записей (Cache Max TTL). Еще ниже располагается показатель использования кеша — Cache Used — который показывает его текущий размер. Если он начинает приближаться к размеру кеша, то последний следует увеличить. Просмотреть кеш можно нажав на кнопку Cache.
Глядя на значение TTL, можно подумать, что это очень много, целая неделя. Но это — максимальное время хранения записи, реальное время хранения определяется временем TTL в SOA-записи домена, причем Mikrotik использует минимальное значение — Minimum TTL. В этом несложно убедиться, мы очистили кеш и посетили один из своих сайтов, минимальный TTL которого равен 4 часам:
Как видим, Mikrotik использовал значение TTL из SOA-записей, ни о каких 7 днях речи не идет. Тогда для чего нужна эта настройка? Вы можете обновлять кеш чаще, чем это указано в TTL-домена. Если значение максимального TTL Mikrotik будет меньше, чем указанное в SOA-домена, то будет использоваться именно оно.
Это может быть полезным, если вы внесли какие-либо изменения во внешнюю зону и желаете быстрее обновить кеш. Как показывает практика, публичные сервера, такие как Google, OpenDNS или Яндекс тоже часто игнорируют TTL из SOA и обновляют свой кеш чаще.
Очистить кеш можно кнопкой Flush Cache в окне Cache или командой в терминале:
ip dns cache flush
Но это еще не всё, изучение кеша может быть полезным для изучения сетевой активности пользователей, если они используют в качестве DNS ваш роутер — то вся их сетевая активность отразится в кеше. Говорите, никто не сидит в соцсетях?
Поэтому, если у вас нет иных инструментов логирования и статистики, то изучение записей кеша вполне позволит получить картину сетевой активности ваших пользователей.
На этом закончим с кешем и перейдем к другому разделу — Static. Он позволяет создавать нам собственные записи типа A (и больше ничего кроме них). Не густо, но основную часть потребностей это перекрывает. Перенесли сайт на новый сервер? Не нужно ждать пока обновятся DNS-записи, заходим в раздел Static и создаем собственную запись:
Проверим, как это работает. Выполним разрешение имени на клиенте:
Как видим — все работает отлично.
Отдельный разговор — плоские имена. В одноранговой сети часто бывает нужно указать имя узла, который не поддерживает NetBIOS, скажем ноду Hyper-V Server или машину с Linuх. Аналогично создаем запись:
Но имейте ввиду, работать такое разрешение имен будет только на Windows машинах, на Linux вы получите ошибку:
Но так как большинство сетей имеет преимущественно Windows ПК, то особых проблем плоские имена не доставят, и вы можете смело добавлять их записи на DNS Mikrotik вместо того, чтобы прописывать в hosts на каждой машине.
Так так, скажет внимательный читатель, это же можно использовать для блокировки нежелательных ресурсов и будет прав. Если мы не хотим, чтобы пользователи сидели в соцсетях, то добавим на сервер записи, который будут разрешать такие запросы в 127.0.0.1:
Проверим?
Вроде бы работает, но недостаток такого метода, что мы заблокировали только основной домен и пользователь легко сможет зайти через мобильный поддомен:
Чтобы этого избежать следует использовать регулярные выражения. К сожалению, в большинстве инструкций в интернете приводятся неправильные выражения, с которыми фильтр работать не будет, поэтому мы советуем использовать для создания и проверки регулярных выражений ресурс regex101.com. Это избавит вас от ошибок и вопросов в стиле «я сделал все как написано в статье, но ничего не работает».
Скажем, чтобы заблокировать домен vk.com со всеми поддоменами нам потребуется выражение:
.?vk.com
Внесем его в соответствующее поле Mikrotik:
И проверим, теперь любое, даже заведомо не существующее имя в домене vk.com будет разрешаться в 127.0.0.1, что нам и требовалось.
Но это правило заблокирует также любые ресурсы, которые заканчиваются на vk.com, для того, чтобы этого избежать, нам потребуется более сложное выражение:
^([A-Za-z0-9.-]*.)?vk.com
В небольших сетях, где пользователи имеют достаточно прав, всю эту идиллию можно быстро перечеркнуть, вручную прописав собственные DNS. Как с этим бороться? Решение в лоб — заблокировать прохождение DNS-запросов в цепочке FORWARD, но тогда у «продвинутого» пользователя вообще перестанет работать интернет, поэтому мы поступим по-другому.
Откроем IP — Firewall — NAT и добавим правило: Chain: dstnat, protocol: udp, Dst. Port: 53 и на закладке Action выберем действие redirect.
Потом создаем точно такое же правило для протокола tcp. Эти же самые действия можно быстро выполнить в терминале:
ip firewall natadd chain=dstnat protocol=udp dst-port=53 action=redirectadd chain=dstnat protocol=tcp dst-port=53 action=redirect
Теперь любые DNS-запросы от пользователей сети будут перенаправляться на наш DNS-сервер на роутере, что сделает любые попытки обойти локальный DNS бессмысленными.
Как видим, DNS-сервер роутера Mikrotik, несмотря на кажущуюся простоту, в общем не так уж и прост и дает в руки администратора достаточно широкие возможности.
DHCP (Dynamic Host Configuration Protocol)
Когда речь заходит о DHCP, то обычно имеют ввиду автоматическое присвоение сетевых параметров, таких как IP-адрес, маска, шлюз и DNS-сервера. Но на самом деле возможности протокола намного шире и позволяют настроить очень многие сетевые параметры. Все возможности протокола описаны в RFC 2132, но мы не будем забираться столь глубоко, а рассмотрим в качестве примера только несколько наиболее популярных опций.
Прежде всего это Option 15 (DNS Domain Name) — которая позволяет автоматически настроить DNS-суффикс подключения, что позволяет снять определенный ряд проблем, связанный с использованием плоских имен.
Чтобы создать любую DHCP опцию потребуется перейти в IP — DHCP Server — Options и добавить там новую запись:
Поле Name содержит имя опции, можем задать его произвольно, так чтобы нам потом было понятно, что это такое и для чего нужно. Code — код опции, в нашем случае 15, Value — значение, в нашем случае это строка, поэтому обрамляем ее одиночной кавычкой. Тоже самое можно быстро сделать в терминале:
ip dhcp-server optionadd name="DNS Suffix" code=15 value="'interface31.lab'"
Обратите внимание, что значение value берется в кавычки два раза, в двойные и одинарные.
Опции можно (и нужно) объединять в наборы — Option Set, даже несмотря на то, что во многих сценариях их можно указывать непосредственно. Если в будущем вы надумаете что-то поменять, то достаточно будет просто изменить состав набора, в противном случае вам нужно будет вспомнить все места, где вы использовали некую опцию и заменить ее на новую (или удалить / добавить). Перейдем на одноименную закладку и создадим новый набор. Пока в него будет входить только одна опция:
Наборам желательно давать осмысленные названия, чтобы впоследствии вы легко могли понять для чего он предназначен. Теперь назначим его для применения на всю область DHCP-сервера. Перейдем на закладку DHCP и откроем запись нашего сервера, в поле DHCP Option Set укажем имя созданного нами набора.
Теперь обновим параметры DHCP и сразу увидим полученный DNS-суффикс:
После этого все плоские имена, которые вы добавили на DNS-сервер следует дополнить до FQDN, т.е. вместо HV-CORE-01 написать hv-core-01.interface31.lab (регистр записи значение не имеет).
Проверим:
Как видим, одной проблемой стало меньше, плоские имена нормально дополняются до FQDN и нормально разрешаются на нашем DNS вне зависимости от используемой ОС.
Также довольно часто используются опции: 42 (NTP Servers), 60, 66 (TFTP Server Name), 67 (Bootfile-Name). Имейте ввиду, что ОС Windows не запрашивает у DHCP-сервера опцию 42 и для нее установить таким образом сервер времени не удастся.
Отдельно коснемся того, как указывать IP-адреса. Протокол предусматривает передачу значений в шестнадцатеричном (Hex) формате, но RouterOS позволяет использовать и строковые значение, для этого значение Value должно содержать привычное написание адреса, взятое в одинарные кавычки:
'192.168.186.1'
или его шестнадцатеричное значение, которое должно начинаться с префикса 0х:
0xc0a8ba01
Если адресов несколько, то указываем каждый, взяв в одинарные кавычки, без пробелов между ними:
'192.168.186.1''192.168.186.2'
В шестнадцатеричном виде мы добавляем второе значение в конец строки, также без пробелов:
0xc0a8ba01c0a8ba02
В терминале это будет выглядеть так:
ip dhcp-server optionadd name="NTP1" code=42 value="'192.168.186.1'"
или
add name="NTP1" code=42 value="0xc0a8ba01"
Для перевода значений IP-адреса в шестнадцатеричное значение, можно использовать любой онлайн-калькулятор, мы при подготовке данного материала использовали этот.
Еще одна интересная возможность открывается в выдаче отдельным узлам своего набора опций. Следующий сценарий подойдет домашним пользователям, как достаточно простой и эффективный способ обеспечить безопасность ребенка в интернет.
Суть ее состоит в следующем: мы выборочно изменяем DNS-сервера детских сетевых устройств на безопасные DNS, например, Яндекс Семейный, SkyDNS, AdGuard и т.д. Тем, кто захочет реализовать этот сценарий в сети предприятия следует иметь ввиду, что в этом случае таким клиентам будут недоступны возможности собственного DNS-сервера, т.е. все то, о чем мы говорили в первой части статьи.
Итак, сначала создадим новую DHCP опцию с кодом 6 и укажем в значении сервера Яндекс Семейного:
ip dhcp-server optionadd name="YandexDNS" code=6 value="'77.88.8.7''77.88.8.3'"
или
add name="YandexDNS" code=6 value="0x4d5808034d580807"
Теперь создадим новый набор опций и добавим туда опцию YandexDNS.
Теперь перейдем на закладку Leases, где находится список выданных в аренду адресов и найдем там детское устройство, после чего откроем запись и выполним резервирование адреса, нажав Make Static:
Закроем и заново откроем эту запись и в поле DHCP Option Set укажем созданный нами набор с безопасными серверами:
Теперь проверим на клиенте, какие DNS-сервера он получил:
Все верно, это семейные сервера Яндекса. Попробуем посетить какой-нибудь сайт «для взрослых»:
Отлично, фильтрация работает, теперь можно гораздо меньше переживать, что ребенок увидит неподобающий контент, в тоже время взрослые члены семьи могут использовать интернет без ограничений.
В прошлой части статьи мы рассказывали, как предотвратить подмену DNS на клиентском ПК, данное решение совместно с этими правилами работать не будет. Можно, конечно, добавить исключение, но мы подойдем с другой стороны. Наша основная цель в этом сценарии — это оградить ребенка от посещения ненадлежащих ресурсов, поэтому при попытке подмены DNS мы должны направлять все запросы не на роутер, а на безопасные DNS, в противном случае попытка обхода фильтрации достигнет своей цели.
Поэтому заменим в правилах действие redirect на действие dst-nat, в поле To Addresses указываем один из серверов семейного Яндекса, а в поле To Ports — порт 53.
Также можно быстро добавить нужные правила командой:
ip firewall natadd chain=dstnat protocol=udp dst-port=53 action=dst-nat to-addresses=77.88.8.7 to-ports=53add chain=dstnat protocol=tcp dst-port=53 action=dst-nat to-addresses=77.88.8.7 to-ports=53
Напоследок рассмотрим опции 121 (Classless Static Routes) и 249 (MS Routes), которые предназначены для передачи статических маршрутов. Первая опция предусмотрена RFC 2132, вторая является «художественной самодеятельностью» Microsoft, поэтому следует указывать обе из них с одинаковым содержимым.
Во избежание ошибок мы советуем задавать маршруты в HEX-формате, синтаксис предусмотрен следующий:
[маска сети назначения][сеть назначения][шлюз]
Если маршрутов несколько — добавляем значения к конец строки, без пробелов. Допустим, мы хотим добавить маршрут в сеть 192.168.4.0/22 через 192.168.186.92 и в сеть 10.8.0.0/24 через 192.168.186.94. Чтобы правильно получить шестнадцатеричное значение маски следует использовать такое представление: 0.0.0.22 или 0.0.0.24, забьем все значения в онлайн калькулятор и получим:
А вот теперь начнется небольшая магия, прежде всего обратим внимание на то, что количество символов в шестнадцатеричном числе всегда должно быть четным, но в строке, соответствующей 10.8.0.0 — нечетное количество символов, так как калькулятор отбросил ведущий ноль, поэтому вместо a080000 мы должны использовать 0a08000. Имеем это ввиду, так как разные калькуляторы могут по-разному обрабатывать ведущий ноль.
Затем от адреса сети, мы должны отбросить столько нулевых октетов, сколько нулей содержится в маске, в HEX-значении это по два нуля. Проще говоря для сетей /24 — /17 мы должны убрать в HEX-значении сзади два нуля, для сетей /16 — /9 — четыре нуля, для сетей /8 — /1 — шесть нулей. Таким образом 0a08000 должно превратиться в 0a0800, а c0a80400 в c0a804.
Таким образом первый маршрут должен выглядеть так:
16c0a804c0a8ba5c
а второй так:
180a0800c0a8ba5e
Итоговое значение будет (не забываем про 0x вначале):
0x16c0a804c0a8ba5c180a0800c0a8ba5e
Добавим опции командами:
ip dhcp-server optionadd name="my route" code=121 value="0x16c0a804c0a8ba5c180a0800c0a8ba5e"add name="my win route" code=249 value="0x16c0a804c0a8ba5c180a0800c0a8ba5e"
или через графический интерфейс:
Обновим параметры DHCP и проверим таблицы маршрутизации на клиентах. Windows-клиент:
Linux-клиент:
Как видим — все работает, маршруты добавились и еще одной заботой у администратора стало меньше.
В заключение хочется добавить, что данная статья не должна рассматриваться вами как догма, все пункты которой требуется обязательно применить. Данный материал имеет цель показать те скрытые возможности привычных сервисов, которые обычно не затрагиваются в руководствах по базовой настройке. После чего уже сам администратор должен решать, что он будет применять в своей сети и зачем. К сожалению, объем статьи не позволяет нам охватить все возможности DHCP, что-то из них мы отразим в будущих статьях, а что-то вам придется изучать самостоятельно. Но надеемся, что данный материал окажется вам полезен и даст дополнительный стимул к изучению всех возможностей используемых протоколов.
Используемые источники:
- https://vedernikoff.ru/mikrotik-dhcp-za-5-minut/
- https://radioprog.ru/post/649
- https://interface31.ru/tech_it/2019/05/rasshirennaya-nastroyka-dns-i-dhcp-v-routerah-mikrotik.html