Обращение к определённым DNS-серверам

Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Ответить
Аватара пользователя
Barvinok
Сообщения: 104
Зарегистрирован: 28 фев 2012, 23:21

В разрезе использования двух провайдеров возник такой вопрос: можно ли явно указать DNS-сервер что бы разрешить определённое имя?
А если говорить прямо, для разрешения имени tp.internet.beeline.ru (VPN-сервер Билайна) нужно обратиться именно к Билайновским DNS-серверам через локальную сеть. А при установленном PPPoE-соединении Ростелекома, роутер пытается разрешить это имя обращаясь к Ростелекомовским DNS-серверам. И, естественно, Ростелеком ничем ему помочь не может.

Можно это как-то задать в /ip dns или хотя бы получать скриптом через [:resolve tp.internet.beeline.ru] ?


Аватара пользователя
pubuser
Сообщения: 62
Зарегистрирован: 14 мар 2014, 18:14

Можно конечно же, в ручную задать в ip/dns и роутер всегда будет стучать сперва на свой внутренний днс и только потом уже на внешние. Проблема когда на одном имени несколько ip решается просто - созданием для всех ip идентичной записи в ручную. Я таким образом как раз и подключал пчелиный "интернет дома", создал 3 записи под именем vpn.local в роутере и при пинге или обращении он каждый раз на следующий адрес обращается. Само собой что компы в сети должны получать днс адресом адрес роутера и никакой другой.


gmx
Модератор
Сообщения: 3290
Зарегистрирован: 01 окт 2012, 14:48

Можно вот такой командой

chain=dstnat action=dst-nat to-addresses=193.58.251.251 to-ports=53 protocol=udp src-address=192.168.1.0/24 dst-port=53, причем неважно, какой DNS установлен на клиентах.

У меня вся подсеть 192.168.1.0/24 отправляет запросы на SkyDns, все остальные
подсети пользуются DNS, который дает провайдер.


Аватара пользователя
Barvinok
Сообщения: 104
Зарегистрирован: 28 фев 2012, 23:21

pubuser писал(а):Можно конечно же, в ручную задать в ip/dns и роутер всегда будет стучать сперва на свой внутренний днс и только потом уже на внешние. Проблема когда на одном имени несколько ip решается просто - созданием для всех ip идентичной записи в ручную. Я таким образом как раз и подключал пчелиный "интернет дома", создал 3 записи под именем vpn.local в роутере и при пинге или обращении он каждый раз на следующий адрес обращается. Само собой что компы в сети должны получать днс адресом адрес роутера и никакой другой.


Поскольку провайдера два, то DNS выглядит так:

Код: Выделить всё

/ip dns> print 
                servers: 213.234.192.8,85.21.192.3
        dynamic-servers: 80.254.108.198,80.254.108.206
  allow-remote-requests: yes

Т.е DNS-сервера Би-Лайна я прописал статично, а DNS-сервера Ростелекома он получает динамически по DHCP.
Но что бы поднять L2TP до Би-Лайна, нужно разрешить имя tp.internet.beeline.ru обратившись к DNS-серверам именно Би-Лайна! Это я поясняю для GMX. Т.е. мне нужно отправлять запросы на эти сервера по признаку разрешаемого имени, а не по адресу источника, как в твоём случае.
Сейчас я прописал статику и это работает:

Код: Выделить всё

/ip dns static print 
Flags: D - dynamic, X - disabled, R - regexp
 #     NAME                                      ADDRESS                                                                      TTL         
 0     ;;; BeeLine VPN-server 1
       tp.internet.beeline.ru                    85.21.230.15                                                                 1d         
 1     ;;; BeeLine VPN-server 2
       tp.internet.beeline.ru                    89.179.17.139                                                                1d         
 2     ;;; BeeLine VPN-server 3
       tp.internet.beeline.ru                    85.21.230.13                                                                 1d   

Но имеет очевидные недостатки: если Би-Лайн вдруг решит выключить какой-то из серверов (или просто поменять адреса) - всё, капец.

Поэтому я определяю вопрос очень строго: как отправлять запросы на определённые DNS-сервера в зависимости от разрешаемого имени?
Или резловить с помощью скрипта и подсовывать в поле "connect-to=".

Обычно подразумевается, что все DNS-сервера даёт одинаковые ответы. И на моей памяти никто никогда не задумывался над тем, "а что если ответы разные"? Или какой-то из серверов знает о некоторых именах больше, чем другие?

Например, у себя на компьютере я могу командой nslookup задать вопрос совершенно определённому DNS-северу:

Код: Выделить всё

C:\Users\Вова>nslookup tp.internet.beeline.ru 85.21.192.3
╤хЁтхЁ:  hdns2.corbina.net
Address:  85.21.192.3

╚ь :     tp.internet.beeline.ru
Address:  85.21.230.15


C:\Users\Вова>nslookup tp.internet.beeline.ru 213.234.192.8
╤хЁтхЁ:  hdns1.corbina.net
Address:  213.234.192.8

╚ь :     tp.internet.beeline.ru
Addresses:  85.21.230.15
          85.21.230.13

Как видите, ответы разные. Вот я хочу так же задать вопрос языком командного интерпретатора RouterOS. К примеру [:resolve tp.internet.beeline.ru]... и но как указать сервер, к которому я хочу обратиться?


gmx
Модератор
Сообщения: 3290
Зарегистрирован: 01 окт 2012, 14:48

Да я понял, что у вас все сложнее. Но ведь вы трафик как-то разруливаете.
Он же не рандомно у вас идет к обеим провайдерам.
Может в зависимости от того, куда вы отправляете трафик, подменять DNS. Используя мое правило, но изменив условие его срабатывания на соответствующий WAN порт.
Я правда такого никогда не пробовал. В моей местности один провайдер.


mitiya
Сообщения: 8
Зарегистрирован: 10 сен 2015, 02:22

Собственно та же проблема, может нашлось какое решение ?


gmx
Модератор
Сообщения: 3290
Зарегистрирован: 01 окт 2012, 14:48

Решение я дал несколькими постами выше. Где проблема-то???


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

буквально вчера решал аналогичную задачу только операторов было аж 5 штук. Нужно было решить без скриптов (бюджета маленько не хватило на схему резервирования) и статических записей в ДНС. В общем сделал так что таблица маршрутизации для микротик начинается с билайновкого канала, таблица маршрутизации для пользователей начиналась с канала который клиент сказал. Чуть позже когда будет внедрятся схема резервирования то в скрипт добавлю работу с ДНС в зависимости от статусов каналов ибо сейчас решение для пользователей в плане ДНС весьма кривое

К стати к теме не относится но все же. Начиная с ROS 6.37 в адрес листы можно добавлять доменное имя и микротик сам его преобразует к адресам, причем сразу ко всем которые там записаны. Весьма удобная фишка скажу я вам

Так же появилась возможность создавать Interface List что в работе с большим количеством каналов довольно не плохо сокращает количество правил в фаерволе


Есть интересная задача и бюджет? http://mikrotik.site
gmx
Модератор
Сообщения: 3290
Зарегистрирован: 01 окт 2012, 14:48

И не говори...

мы тут только недавно узнали про адресс листы. :-):
Нас тут новичок на место поставил. :-): Пару страниц назад. В очередной теме про блокировки.

И правда отличная фишка.


Ответить