Mikrotik и разные DNS
Фильтрация домашнего интернета очень сложная вещь, с одной стороны хочется жить без рекламы (привет PiHole), с другой — простоты. Потребовалось фильтровать запросы в поисковую систему на уровне DNS, а точнее, чтобы одни пользователи ходили через стандартный DNS сервер, а другие через «безопасный».
Конечно отдавать свои запросы на откуп незнакомым серверам очень не хотелось, поэтому на помощь пришел Яндекс.
Адреса Яндекс.DNS:
Базовый
77.88.8.1
77.88.8.8
Безопасный
77.88.8.2
77.88.8.88
Семейный
77.88.8.3
77.88.8.7
В моем примере будет использоваться последний вариант, под названием «Семейный».
Для начала нам необходимо будет создать AddressList со списком устройств которым необходим DNS от Яндекс. Открываем консоль и вводим команду:
1 2 3 |
/ip firewall address-list add list=Yandex-DNS-List address=192.168.0.10 /ip firewall address-list add list=Yandex-DNS-List address=192.168.0.11 /ip firewall address-list add list=Yandex-DNS-List address=192.168.0.12 |
Для трех устройств в локальной сети мы создали список который назвали — Yandex-DNS-List.
Теперь отправляем все запросы из списка Yandex-DNS-List в Яндекс командой:
1 2 |
/ip firewall nat add chain=dstnat protocol=udp dst-port=53 src-address-list=Yandex-DNS-List action=dst-nat to-addresses=77.88.8.3 /ip firewall nat add chain=dstnat protocol=tcp dst-port=53 src-address-list=Yandex-DNS-List action=dst-nat to-addresses=77.88.8.3 |
P.S.
Предположим, что пользователь оказался умнее данного примера и вручную изменил настройки DNS сервера, к примеру на 8.8.8.8. В таком случаем он сможет полноценно пользоваться интернетом, если конечно мы не предотвратим это командой:
1 |
/ip firewall nat add chain=dstnat protocol=udp dst-port=53 action=redirect add chain=dstnat protocol=tcp dst-port=53 action=redirect |
Кстати, в большинстве случаев для работы с DNS достаточно протокола UDP.