Static DNS и Regex

Базовая функциональность RouterOS
Аватара пользователя
bear
Сообщения: 163
Зарегистрирован: 03 мар 2016, 18:39

Static DNS и Regex

Сообщение bear »

Привет

В IP - DNS - Static у меня есть 4 записи:

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

dns.nextdns.io 111.111.111.111
dns.nextdns.io 222.222.222.222
dns1.nextdns.io 111.111.111.111
dns2.nextdns.io 222.222.222.222

Команда "dig +short dns.nextdns.io" в этом случае возвращает мне:

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

111.111.111.111
222.222.222.222

Но если я заменяю записи в статике на ...

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

 ^dns[0-2]*\.nextdns\.io$ 111.111.111.111
 ^dns[0-2]*\.nextdns\.io$ 222.222.222.222
... то "$ dig +short dns.nextdns.io" всегда возвращает только верхний адрес из статики.

Означает ли это, что в данном случае лучше не использовать регулярные выражения?
Или у меня неверно написано регулярное выражение?

С выражением ниже тот же результат, только верхний адрес возвращается.:

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

^dns\.nextdns\.io$|^dns1\.nextdns\.io|^dns2\.nextdns\.io$ 111.111.111.111
^dns\.nextdns\.io$|^dns1\.nextdns\.io|^dns2\.nextdns\.io$ 222.222.222.22
Аватара пользователя
Chupaka
Сообщения: 3915
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Static DNS и Regex

Сообщение Chupaka »

Однако, здравствуйте :)

Резюмируя то, что писал на Руборде: при обработке статических записей DNS сначала обрабатываются записи с регулярными выражениями до первого совпадения (т.е. сработать может только одно регулярное выражение), если результат не найден - обрабатываются обычные правила (они уже используют все доступные записи для запрашиваемого домена)
Аватара пользователя
bear
Сообщения: 163
Зарегистрирован: 03 мар 2016, 18:39

Re: Static DNS и Regex

Сообщение bear »

Привет :-)

Да, спасибо, эту информацию тоже нашёл
На основании ответов от ""dig +short" сейчас пытаюсь понять логику происходящего дальше, т.е. что происходит, если первый запрос не прошёл

Как я понимаю, в случае с обычными правилами, я вижу что адреса по очереди подставляются на один и тот же запрос, т.е. даже если на первый не было ответа, один из следующих пройдёт
В случае с регулярными выражениями, всегда подставляется первое совпадение

Очень интересный момент для меня и хотелось бы его как-то уложить в голове
Аватара пользователя
Chupaka
Сообщения: 3915
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Static DNS и Regex

Сообщение Chupaka »

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

А если не секрет, цель-то какая? :)
Аватара пользователя
bear
Сообщения: 163
Зарегистрирован: 03 мар 2016, 18:39

Re: Static DNS и Regex

Сообщение bear »

Chupaka писал(а): 15 мар 2024, 15:29 Если в записи регулярка - то она возвращает один адрес.
в смысле даже если он недоступен, следующий запрос всё равно туда уйдёт?

Chupaka писал(а): 15 мар 2024, 15:29 А если не секрет, цель-то какая? :)
никаких секретов, только проблемы с головой :-)
увидел, что у меня есть практически одинаковые записи, решил их заменить регуляркой, думал так же будет работать
Аватара пользователя
Chupaka
Сообщения: 3915
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Static DNS и Regex

Сообщение Chupaka »

Что такое "недоступен"? DNS ничего не знает про то, кто там и для чего доступен :)

В целом - да, регулярки в данном случае не помогут, надо оставлять всё как есть
Аватара пользователя
Chupaka
Сообщения: 3915
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Static DNS и Regex

Сообщение Chupaka »

Хотя тут вот ещё подумалось: можно создать набор обычных адресов, а нужные адреса заменить регуляркой на CNAME, указывающий на эти адреса :)
Аватара пользователя
bear
Сообщения: 163
Зарегистрирован: 03 мар 2016, 18:39

Re: Static DNS и Regex

Сообщение bear »

Chupaka писал(а): 15 мар 2024, 15:55 Что такое "недоступен"? DNS ничего не знает про то, кто там и для чего доступен
Я имел в виду, что сам днс сервер по этому адресу недоступен

В микротике активирован DOH на dns.nextdns.io
Для dns.nextdns.io нужно прописать в статике хотя бы два адреса, которые они дают
Эти два адреса anycast (стабильные, но неторопливые, ответ через 50ms), а я хочу добавить туда и ultralow (ответ до 5ms)

В моей голове это выглядело так, я добавлю наверх 2 ultralow адреса, а ниже 2 anycast
Роутер "умный", поэтому само собой он сначала должен выбирать быстрые адреса, а если они отвалятся, тогда перейдёт на более медленные
Сам придумал и вот пытался понять, если это можно сделать :-)

Вариант "оставить без регулярки и пусть работает" меня на данном этапе уже вполне устроит