Jump to content
  • 12

Возможность указания порта для DNS-сервера


Александр Рыжов

Question

В данный момент команда ip name-server позволяет указать статический DNS-сервер, но не предусматривает конфигурирования нестандартного порта, отличного от UDP53.

Примеры использования:

  1. Возможность использования публичных DNS-сереров, работающих на нестандартных портах как защита от принудительного «приземления» DNS-трафика провайдером. Пример: «Яндекс.DNS Безопасный» работает в т.ч. на нестандартном порту 77.88.8.88#1253.
  2. Использование OPKG-сервисов совместно с системным резолвером. Пример: апстримом для системного резолвера указывается локальный dnscrypt-proxy, работающий на 127.0.0.1#10053, что позволяет сохранить резолвинг my.router и других локальных имён и одновременно защитить от спуфинга DNS-запросы от роутера в сторону интернета.

Дополнительный параметр для команды ip name-server сломает существующий синтаксис, поэтому нестандартный порт предлагаю указывать вместе IP-адресом, разделяя номер нестандартного порта символом "#". Подобная запись принята в dnsmasq, bing, dig и ряде других DNS-утилит.

ip name-server ‹address›[‹#port›] [‹domain› [on ‹interface›]]

 

  • Thanks 1
  • Upvote 1
Link to comment
Share on other sites

27 answers to this question

Recommended Posts

  • 1
В 20.05.2018 в 21:35, r13 сказал:

Это снова я :) в 13й версии добавите?

Сделали в версии 2.14.A.2.0-3. Пришлось собрать вне графика, поэтому в веб-интерфейсе пока не поддерживается, но тестить уже можно.

  • Thanks 1
Link to comment
Share on other sites

  • 0

Еще дополню:

Добавить возможность запускать прошивочный резолвер на нестандартном порту.

Применение:

Основная служба на 53 порту например dnscpypt

из которого переход на прошивочный резолвер для разрешения имен локальных устройств.

В этом случае нет необходимости настраивать трансляцию адресов для входящих dns запросов.

Link to comment
Share on other sites

  • 0
2 часа назад, r13 сказал:

Еще дополню:

Добавить возможность запускать прошивочный резолвер на нестандартном порту.

Применение:

Основная служба на 53 порту например dnscpypt

из которого переход на прошивочный резолвер для разрешения имен локальных устройств.

В этом случае нет необходимости настраивать трансляцию адресов для входящих dns запросов.

Так оно уже есть.

Делаете opkg dns-override, и прошивочный резолвер соскакивает на 10053 UDP/TCP.

  • Thanks 1
  • Upvote 1
Link to comment
Share on other sites

  • 0
44 минуты назад, Le ecureuil сказал:

Так оно уже есть.

Делаете opkg dns-override, и прошивочный резолвер соскакивает на 10053 UDP/TCP.

Спасибо, не знал, и в документации про соскакивает тоже нету.

А точно соскакивает?

Смотрю конфиг при этой настройке:

rpc_only = on

И никаких портов не прописано.

Edited by r13
Link to comment
Share on other sites

  • 0

@Le ecureuil Не, не соскакивает. Нет на 10053 порту никакого резолвера.

Так что просьба остается в силе.

Или еще какую то хитрую команду надо ввести?

Link to comment
Share on other sites

  • 0
8 часов назад, Le ecureuil сказал:

Делаете opkg dns-override, и прошивочный резолвер соскакивает на 10053 UDP/TCP.

Вся фишка в том что есть еще команда "ipcp no name-servers"

    ipcp name-servers 
    ip dhcp client name-servers
...
opkg dns-override

обе эти команды пробиваются при настройке в WEB => resolv.conf

Цитата

Использование OPKG-сервисов совместно с системным резолвером. Пример: апстримом для системного резолвера указывается локальный dnscrypt-proxy, работающий на 127.0.0.1#10053, что позволяет сохранить резолвинг my.router и других локальных имён и одновременно защитить от спуфинга DNS-запросы от роутера в сторону интернета.

так оно так и работает и прекрасно, например : локальные клиенты сети контролируются IP_роутера:53, а серв.самого роутера контролируются resolv - запросы идут на прямую на сервера из resolv

на роутере

tcp        0      0 192.168.1.100:53      0.0.0.0:*               LISTEN      784/dnsmasq
udp        0      0 192.168.1.100:53      0.0.0.0:*                           784/dnsmasq

/ # nslookup google.com
Server:    DNS_провайдера
Address 1: DNS_провайдера

Name:      google.com
Address 1: 64.233.165.139 lg-in-f139.1e100.net
Address 2: 64.233.165.100 lg-in-f100.1e100.net
/ # 
/tmp # cat resolv.conf
nameserver DNS_провайдера
nameserver DNS_провайдера1
options timeout:1 attempts:1 rotate
/tmp # cat ndnproxymain.conf
...
dns_server = DNS_провайдера .
dns_server = DNS_провайдера1 .
...
rpc_only = on
/tmp # 

# traceroute yandex.ru
traceroute to yandex.ru (5.255.255.70), 30 hops max, 38 byte packets
...
и тут видим, что нет ни какого 53 порта роутера, а сразу на прямую на провайдера
udp      17 19 src=IP_роутера dst=DNS_провайдера sport=57852 dport=53 packets=1 bytes=72 src=DNS_провайдера dst=IP_роутера sport=53 dport=57852 packets=1 bytes=132 mark=0 use=2
...
udp      17 19 src=IP_роутера dst=DNS_провайдера sport=56272 dport=53 packets=1 bytes=73 src=DNS_провайдера dst=IP_роутера sport=53 dport=56272 packets=1 bytes=198 mark=0 use=2

применение команды же  "ipcp no name-servers" убирает использования DNS провайдера

Link to comment
Share on other sites

  • 0
1 час назад, r13 сказал:

@vasek00 мне надо чтобы и встроенный резолвер был доступен в том числе из dnscrypt-proxy

Вопрос не много не понятен, так как dnscrypt-proxy нужны только свои сервера и их чуть больше 106, и причем тут встроенный  resolv.conf.

dnscrypt-proxy --local-address=127.0.0.2:65153 --daemonize –edns-payload-size=1252 -R fvz-anyone -l /opt/tmp/dnscrypt-proxy.65153.log -m 7

в данном случае -R fvz-anyone это береться из dnscrypt-resolvers.csv или можно прописать в ком.строке.

 

Link to comment
Share on other sites

  • 0
2 минуты назад, vasek00 сказал:

Вопрос не много не понятен, так как dnscrypt-proxy нужны только свои сервера и их чуть больше 106, и причем тут встроенный  resolv.conf.


dnscrypt-proxy --local-address=127.0.0.2:65153 --daemonize –edns-payload-size=1252 -R fvz-anyone -l /opt/tmp/dnscrypt-proxy.65153.log -m 7

в данном случае -R fvz-anyone это береться из dnscrypt-resolvers.csv или можно прописать в ком.строке.

 

В нем можно настроить forward запросов для резова локальных доменов в данном случае на встроенный резолвер

Link to comment
Share on other sites

  • 0
3 минуты назад, r13 сказал:

В нем можно настроить forward запросов для резова локальных доменов в данном случае на встроенный резолвер

Опять вопрос что значит - локальных запросов, можно по подробней?

Link to comment
Share on other sites

  • 0
21 минуту назад, vasek00 сказал:

Опять вопрос что значит - локальных запросов, можно по подробней?

В прошивочном dhcp настраивается локальный домен и настраивается внесение всех подключаемых устройств в статические записи локального резолвера далее все обращения с устройств по имени например server отлично резовятся в связке dnscrypt-proxy + встроеный резолвер.

Edited by r13
Link to comment
Share on other sites

  • 0
6 минут назад, r13 сказал:

В прошивочном dhcp настраивается локальный домен и настраивается внесение всех подключаемых устройств в статические записи локального резолвера далее все оращения с устройств по имени например server отлично резовятся в связке dnscrypt-proxy + встроеный резолвер.

Опять не по нятки - ну настроили вы с DHCP Option 15

Option 15 (DNS Domain Name) позволяет передавать клиентскому хосту от DHCP-сервера имя домена, которое будет добавляться при обращении с этого хоста к ресурсу по имени, которое не имеет домена. Поясним, если хост получает от DHCP-сервера опцию, в которой указан домен local, то при обращении с хоста, например, на ресурс server, DNS-запрос автоматически будет идти по адресу server.local.

https://help.keenetic.net/hc/ru/articles/214471085-Настройка-DHCP-Option-15

при чем тогда dnscrypt-proxy

Так же в dnscrypt-proxy

Цитата

############## Forwarding ##############
## Forward queries for specific zones to one or more non-DNSCrypt resolvers.
## For instance, this can be used to redirect queries for local domains to
## the router, or queries for an internal domain to an internal DNS server.
## Multiple whitespace-delimited zones and IP addresses can be specified.
## Do not enable this unless you absolutely know you need it.
## If you see useless queries to these zones, you'd better block them with
## the BlackList feature instead of sending them in clear text to the router.
## This uses a plugin that requires dnscrypt-proxy to be compiled with
## the ldns library.

# Forward domains:"test private localdomain lan" to:"192.168.100.254"

 

BlackList

https://github.com/jedisct1/dnscrypt-proxy/blob/master/contrib/domains-blacklist-local-additions.txt

 

Или мы говорим о разном.

 

 

Link to comment
Share on other sites

  • 0
6 минут назад, vasek00 сказал:

Опять не по нятки - ну настроили вы с DHCP Option 15

Option 15 (DNS Domain Name) позволяет передавать клиентскому хосту от DHCP-сервера имя домена, которое будет добавляться при обращении с этого хоста к ресурсу по имени, которое не имеет домена. Поясним, если хост получает от DHCP-сервера опцию, в которой указан домен local, то при обращении с хоста, например, на ресурс server, DNS-запрос автоматически будет идти по адресу server.local.

https://help.keenetic.net/hc/ru/articles/214471085-Настройка-DHCP-Option-15

при чем тогда dnscrypt-proxy

Так же в dnscrypt-proxy

 

Или мы говорим о разном.

 

 

Именно об этом

Кроме option 15 еще настройка update-dns и dhcp заносит в штатный резолвер статик записи всех подключаемых клиентов.

а в dnscrypt настройка forward domains для локального домена. Так что поняли правильно.

Edited by r13
Link to comment
Share on other sites

  • 0
1 минуту назад, r13 сказал:

Именно об этом

Кроме option 15 еще настройка update-dns и dhcp заносит в штатный резолвер статик записи всех подключаемых клиентов.

а в dnscrypt настройка forward domains для локального домена. Так что поняли правильно.

Тогда в чем прикол с сообщением

Цитата

мне надо чтобы и встроенный резолвер был доступен в том числе из dnscrypt-proxy

Возможно вы используете переназначение порта 53. Можно увидеть "netstat -ntulp" по 53 порту и по dnscrypt-proxy.

 

У меня вот например ну ни как не могу отключить встроенный при настроенном

1. dnsmasq держит 192.168.1.100 (и только его и даже с "no-resolv", в нем же есть настройки если надо по обработке локальных доменов) порт 53 и перенаправляет на dnscrypt-proxy 127.0.0.1:65053

2. на роутере встроенный резолвер продолжает работат по resolv.conf

3. отключить встроенный резолвер хоть как-то можно по "ipcp no name-servers" , но и тут есть фишка, например самое простое это сервис обновление, хотя думаю есть еще пару сервисов которые хотят использовать resolv.conf.

Скрытый текст

tcp        0      0 127.0.0.2:65153         0.0.0.0:*               LISTEN      767/dnscrypt-proxy
tcp        0      0 192.168.1.100:53      0.0.0.0:*               LISTEN      759/dnsmasq
tcp        0      0 127.0.0.2:65053         0.0.0.0:*               LISTEN      766/dnscrypt-proxy
udp        0      0 127.0.0.2:65053         0.0.0.0:*                           766/dnscrypt-proxy
udp        0      0 192.168.1.100:53      0.0.0.0:*                           759/dnsmasq
udp        0      0 127.0.0.2:65153         0.0.0.0:*                           767/dnscrypt-proxy

или можно путем конфигурации конфига

tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      1898/dnsmasq
udp        0      0 0.0.0.0:53              0.0.0.0:*                           1898/dnsmasq
 

 

Link to comment
Share on other sites

  • 0
16 минут назад, vasek00 сказал:

Тогда в чем прикол с сообщением

Возможно вы используете переназначение порта 53. Можно увидеть "netstat -ntulp" по 53 порту и по dnscrypt-proxy.

 

У меня вот например ну ни как не могу отключить встроенный при настроенном

1. dnsmasq держит 192.168.1.100 (и только его и даже с "no-resolv", в нем же есть настройки если надо по обработке локальных доменов) порт 53 и перенаправляет на dnscrypt-proxy 127.0.0.1:65053

2. на роутере встроенный резолвер продолжает работат по resolv.conf

3. отключить встроенный резолвер хоть как-то можно по "ipcp no name-servers" , но и тут есть фишка, например самое простое это сервис обновление, хотя думаю есть еще пару сервисов которые хотят использовать resolv.conf.

  Показать содержимое

tcp        0      0 127.0.0.2:65153         0.0.0.0:*               LISTEN      767/dnscrypt-proxy
tcp        0      0 192.168.1.100:53      0.0.0.0:*               LISTEN      759/dnsmasq
tcp        0      0 127.0.0.2:65053         0.0.0.0:*               LISTEN      766/dnscrypt-proxy
udp        0      0 127.0.0.2:65053         0.0.0.0:*                           766/dnscrypt-proxy
udp        0      0 192.168.1.100:53      0.0.0.0:*                           759/dnsmasq
udp        0      0 127.0.0.2:65153         0.0.0.0:*                           767/dnscrypt-proxy

или можно путем конфигурации конфига

tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      1898/dnsmasq
udp        0      0 0.0.0.0:53              0.0.0.0:*                           1898/dnsmasq
 

 

Прикол прикол в том чтобы запустить встроенный на нестандартном порту, а dnscrypt на 53ем

чтоб было что то вроде opkg dns-override [port]

Сейчас приходится через трансляцию портов эту схему пользовать когда стандартный на 53 а dnscrypt на нестандартном

Edited by r13
Link to comment
Share on other sites

  • 0
10 часов назад, vasek00 сказал:

 

У меня вот например ну ни как не могу отключить встроенный при настроенном

 

В вашем случае надо заказывать команду

no service dns-proxy

Пока такой нет.

Резюмируя, мне просто требуется настройка запуска встроенного резолвера на нестандартном порту

Как уже писал, что-то вроде

opkg dns-override [port]

если порт указан, то запустить прошивочный резолвер на этом порту при монтировании opkg.

Edited by r13
Link to comment
Share on other sites

  • 0

@Le ecureuil Уточните пожалуйста действительно ли соскакивает на другой порт прошивочный резолвер при opkg dns-override, и если да, то на какой?

Link to comment
Share on other sites

  • 0
12 минуты назад, r13 сказал:

@Le ecureuil Уточните пожалуйста действительно ли соскакивает на другой порт прошивочный резолвер при opkg dns-override, и если да, то на какой?

Оказалось, что не соскакивает, но я это попробую реализовать для вас :) Будет соскакивать на 10053 при opkg dns-override. Параметр [port] думаю излишен.

  • Thanks 1
Link to comment
Share on other sites

  • 0

Да, этого вполне достаточно, спасибо

20 минут назад, Le ecureuil сказал:

Оказалось, что не соскакивает, но я это попробую реализовать для вас :) Будет соскакивать на 10053 при opkg dns-override. Параметр [port] думаю излишен.

 

Edited by r13
Link to comment
Share on other sites

  • 0

Оказалось, что объем переделок для этой казалось бы незначительной фичи слишком велик, потому я отложил эту затею на неопределенный срок.

Могу только предложить пользоваться RPC-механизмом из ndnproxy для получения локальных хостов.

Link to comment
Share on other sites

  • 0
48 минут назад, Le ecureuil сказал:

Оказалось, что объем переделок для этой казалось бы незначительной фичи слишком велик, потому я отложил эту затею на неопределенный срок.

Могу только предложить пользоваться RPC-механизмом из ndnproxy для получения локальных хостов.

Ну чтож подождем...

зы а как этим механизмом пользоваться?

Link to comment
Share on other sites

  • 0
13 часа назад, r13 сказал:

Ну чтож подождем...

зы а как этим механизмом пользоваться?

Вот тут есть специальная реализация, которую можно использовать вместо getaddrinfo() в коде.

https://github.com/ndmsystems/libndm/blob/1.1/src/net.c#L138

Если хотите, напишу вам утилиту командной строки, которая по fqdn будет возвращать результат в stdout (наподобие nslookup).

Link to comment
Share on other sites

  • 0
2 минуты назад, Le ecureuil сказал:

Вот тут есть специальная реализация, которую можно использовать вместо getaddrinfo() в коде.

https://github.com/ndmsystems/libndm/blob/1.1/src/net.c#L138

Если хотите, напишу вам утилиту командной строки, которая по fqdn будет возвращать результат в stdout (наподобие nslookup).

Не, не надо утилиту. Пока нет реализации запуска на не стандартном порту можно обойтись трансляцией портов.

Link to comment
Share on other sites

  • 0

@ndm @Le ecureuil

Up`ну тему, добавьте пожалуйста хотелку описанную в 1м посте.

Нужна возможность добавлять dns на нестандартном порту по ip name-server (до кучи возможно и по ipv6 name-server)

  • Thanks 1
  • Upvote 1
Link to comment
Share on other sites

  • 0
В 13.03.2018 в 09:51, r13 сказал:

@ndm @Le ecureuil

Up`ну тему, добавьте пожалуйста хотелку описанную в 1м посте.

Нужна возможность добавлять dns на нестандартном порту по ip name-server (до кучи возможно и по ipv6 name-server)

@ndm Это снова я :) в 13й версии добавите?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...