DNS сервер

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 23 сен 2012, 20:49

tundra37 писал(а):Так почему не сделать привязку к MAC-адресам. Роутеры это умеют, значит есть аппарат в Линукс.
Это грубо:
- если я могу генерировать всё новые VM (в добавок к реальным) c произвольно "пляшущими" MAC
- и у которых при перенастройке типов сетевых адаптеров могут меняться MAC
- зачем мне нужно следить за всем этим многообразием?
Собственно, IP адресация была сделана чтобы уйти от физической привязки к MAC.
tundra37 писал(а):Так почему не сделать привязку к MAC-адресам. Роутеры это умеют, значит есть аппарат в Линукс.
А еще сеть DDNS - динамический DNS, когда каждый узел регистрирует свое имя на этом сервере: делается привязка постоянного имени к динамическому IP.
dnsmasq - это и есть DDNS.
На показанных примерах всё так и работает:
- DHCP раздаёт IP ...
- ARP разрешает эти IP в MAC...
- DNS регистрирует эти динамические IP и разрешает в них имена LAN
- каждый занимается своим делом ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 25 сен 2012, 00:40

Olej писал(а):DNS кэшируется (причём, на этот раз ускорение обработки запросов DNS из кэша в 110 раз).
Или то же самое с другого хоста LAN:

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

root@atom:/etc# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:1c:c0:e6:cf:98  
          inet addr:192.168.1.7  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:fee6:cf98/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:223200 errors:0 dropped:0 overruns:0 frame:0
          TX packets:217628 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:265260225 (265.2 MB)  TX bytes:15098432 (15.0 MB)
          Interrupt:27 Base address:0xc000 
Разрешение через хост 192.168.1.5:

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

root@atom:/etc# time nslookup qnx.org.ru
Server:		192.168.1.5
Address:	192.168.1.5#53

Non-authoritative answer:
Name:	qnx.org.ru
Address: 72.249.144.181

real	0m0.016s
user	0m0.012s
sys	0m0.008s

Такой же примерно эффект ускорения за счёт кэширования DNS.

Или так (для тестирования работоспособности):

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

root@atom:/etc# host qnx.org.ru
qnx.org.ru has address 72.249.144.181
qnx.org.ru has IPv6 address 48f9:90b5::
qnx.org.ru mail is handled by 5 qnx.org.ru.
И так:

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

root@atom:/etc# host -v qnx.org.ru
Trying "qnx.org.ru"
...
;; ANSWER SECTION:
qnx.org.ru.		62998	IN	A	72.249.144.181
...
Received 127 bytes from 192.168.1.5#53 in 403 ms

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 14 ноя 2012, 19:06

Olej писал(а):
Olej писал(а): - при управления сетью на хостах Network Manadger (а не ручным конфигурированием ifconfig), он (NM) при новом старте перепишет /etc/resolv.conf ... как-то с этим надо разобраться;
А можно ли как-то NM отучить переписывать /etc/resolv.conf ?
Об этом, кстати, много обсуждений в разных форумах...
И что из этого выйдет?
Попалось в тему - Настройка DNS :
Начиная c 12.04 в Ubuntu изменилась настройка DNS

С 12.04 за конфигурацию DNS отвечает программа resolvconf (вместо файла /etc/resolv.conf). Она позволяет осуществить настройку DNS на основе данных от разных программ и файлов конфигурации.
Одним из следствий этого полезного нововведения является то, что теперь файл /etc/resolv.conf генерируется автоматически. И не индивидуально каждой программой, которая его правит (например Network Manager или DHCP клиент), а через общий программный интерфейс. Это значит, что внесенные в /etc/resolv.conf изменения будут потеряны.
Вместо /etc/resolv.conf информацию о DNS для статических интерфейсов надо вносить в /etc/network/interfaces в параметры dns-nameservers, dns-search и dns-domain (которые соответствуют параметрам nameserver, search и domain в /etc/resolv.conf)

Обратите внимание - в /etc/resolv.conf, как правило записываются несколько nameserver, а в /etc/network/interfaces все адреса DNS серверов записываются в одну строчку после ключа dns-nameservers, разделенные пробелами.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 05 ноя 2013, 19:49

Olej писал(а): - и тем более, dnsmasq включен в репозитарии большинства дистрибутивов - легко установить попробовать:

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

bash-4.2$ yum list dnsmasq*
...
Установленные пакеты
dnsmasq.i686                                                 2.63-1.fc17                                           @_local 
dnsmasq-utils.i686                                           2.63-1.fc17                                           @updates
Столкнулся с проблемой: что-то конфигурируя и удаляя - попортил dnsmasq:

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

[root@notebook etc]# service dnsmasq start
Redirecting to /bin/systemctl start  dnsmasq.service
Job failed. See system journal and 'systemctl status' for details.
[root@notebook etc]# service dnsmasq status
Redirecting to /bin/systemctl status  dnsmasq.service
dnsmasq.service - DNS caching server.
	  Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled)
	  Active: failed (Result: exit-code) since Wed, 06 Feb 2013 14:20:37 +0200; 16s ago
	 Process: 10604 ExecStart=/usr/sbin/dnsmasq -s $HOSTNAME (code=exited, status=3)
	  CGroup: name=systemd:/system/dnsmasq.service
Решил переустановить...
Не тут-то было! :-o
Оказывается: dnsmasq присутствует в репозитариях, но не в stable, а testing:

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

[root@notebook yum.repos.d]# yum list all dns*
...
dnsmasq.i686                                        2.65-4.fc17                             updates-testing
dnsmasq-utils.i686                                  2.65-4.fc17                             updates-testing
...
А поэтому их нужно "открыть" в соответствующих файлах *.repo в /etc/yum.repos.d:

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

enabled=1
После этого всё нормально...

Как я понимаю, подобная история и в других дистрибутивах.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 14 мар 2014, 18:32

Понадобилось снова поднять кэширующий DNS-сервер, после уже нескольких переустановок разных дистрибутивов, теперь уже Fedora 20.

Пусть это будет тот же dnsmasq, совместно с его же DHCP.
Посмотрим что там поменялось и какие будут проблемы...

Сервис dnsmasq сразу после переустановки системы а). есть, б). под управлением systemd, в). остановлен.

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

bash-4.2$ service dnsmasq status
Redirecting to /bin/systemctl status  dnsmasq.service
dnsmasq.service - DNS caching server.
   Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; disabled)
   Active: inactive (dead)
Но прежде таких экспериментов нужно снять настраевыемый хост с обслуживания DHCP в LAN и присвоить ему статический IP - на него потом как DNS будут ссылаться другие хосты LAN.
Хост у меня под управлением NetworkManager ... не хочется возиться с ifconfig & ip.
Да и NetworkManager в Linux сейчас замечательно работает ... не взирая на крики "знатоков":
enp2s14.png
После чего не забыть опусить и снова поднять интерфейс в новой конфигурации, например так:

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

bash-4.2$ sudo ifconfig enp2s14 down

bash-4.2$ sudo ifconfig enp2s14 up

bash-4.2$ ip addr show dev enp2s14
2: enp2s14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:60:c4:ee:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.5/24 brd 192.168.1.255 scope global enp2s14
       valid_lft forever preferred_lft forever
    inet6 fe80::215:60ff:fec4:ee02/64 scope link
       valid_lft forever preferred_lft forever

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 15 мар 2014, 13:45

Olej писал(а): 2. стало:
- установил dnsmasq ...
- несколько смущает, что эксперименты провожу в Fedora 17 - управление службами под systemd, а все описания dnsmasq - под старой системой /etc/init.d ...
- прописываем конфигурацию ... это можно сделать в 1 файл /etc/dnsmasq.conf, или, как обычно для служб, в несколько любых файлов в каталог /etc/dnsmasq.d, которые обработаются последовательно друг за другом (это и есть как один файл)...
Как обстоят дела в Fedora 20 (последняя на март 2014 и впереди всех других дистрибутивов обновляющая управление сервисами):

1. dnsmasq - установлен при инсталляции и находится под управлением systemd

2. в /etc находится рабочий /etc/dnsmasq.conf и пустой каталог /etc/dnsmasq.d

3. создаю в /etc/dnsmasq.d 2 файла и заполняю из под свои данные:

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

[root@# localhost etc]# touch /etc/dnsmasq.d/dhcp.conf 

[root@# localhost dnsmasq.d]# cat /etc/dnsmasq.d/dhcp.conf
dhcp-range=192.168.1.120,192.168.1.159,255.255.255.0,12h   # объявляем диапазон адресов для аренды
dhcp-lease-max=256                                         # максимальное количество назначений адресов
#dhcp-host=00:1c:c0:e6:cf:98,atom,192.168.1.2              # привязка некоторых имён хостов к фиксированному IP (по MAC адресу)
dhcp-option=option:router,192.168.1.1                      # основной шлюз для компьютеров
log-dhcp                                                   # записывать дополнительную отладочную информацию

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

[root@# localhost etc]# touch /etc/dnsmasq.d/dns.conf 

[root@# localhost dnsmasq.d]# cat /etc/dnsmasq.d/dns.conf
listen-address=127.0.0.1,192.168.1.5   # принимаем запросы на локальном адресе
#interface=eth0,wlan0                  # слушать только эти интерфейсы (из LAN)
domain-needed                          # никогда не пересылать адреса без доменной части
bogus-priv                             # никогда не пересылать адреса из немаршрутизируемого пространства
stop-dns-rebind                        # отклонять ответы от вышестоящих DNS серверов
                                       # с IP адресами локальной сети (блокировать DNS атаки)
rebind-localhost-ok                    # отключить проверки для 127.0.0.0/8
strict-order                           # пересылать запросы, с первого и по порядку
no-resolv                              # не использовать /etc/resolv.conf
no-hosts                               # не требуется читать /etc/hosts
domain=localdomain
local-ttl=7200                         # настройки времени жизни кэша в секундах 7200=2h (два часа)
neg-ttl=14400
max-ttl=86400
address=/notebook/192.168.1.5          # адрес и имя нашего хоста, без этого он не будет разрешаться
address=/atom/192.168.1.7              # хост со статическим IP
# внешние DNS в порядке опроса:
server=192.168.1.1                     # ADSL ZTE router WAN
server=8.8.4.4#53                      # google OpenDNS
server=4.2.2.6#53                      # Verizon DNS
3. подымаем dnsmasq средствами systemd без всяких ручных фокусов:

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

[root@# localhost dnsmasq.d]# service dnsmasq start
Redirecting to /bin/systemctl start  dnsmasq.service
[root@# localhost dnsmasq.d]# service dnsmasq status
Redirecting to /bin/systemctl status  dnsmasq.service
dnsmasq.service - DNS caching server.
   Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; disabled)
   Active: active (running) since Сб 2014-03-15 12:43:25 EET; 5s ago
 Main PID: 3114 (dnsmasq)
   CGroup: /system.slice/dnsmasq.service
           └─3114 /usr/sbin/dnsmasq -k

мар 15 12:43:25 notebook.localdomain systemd[1]: Started DNS caching server..
мар 15 12:43:25 notebook.localdomain dnsmasq[3114]: started, version 2.68 cachesize 150
мар 15 12:43:25 notebook.localdomain dnsmasq[3114]: compile time options: IPv6 GNU-getopt DBus no-i18n...uth
мар 15 12:43:25 notebook.localdomain dnsmasq-dhcp[3114]: DHCP, IP range 192.168.1.120 -- 192.168.1.159...12h
мар 15 12:43:25 notebook.localdomain dnsmasq[3114]: using nameserver 4.2.2.6#53
мар 15 12:43:25 notebook.localdomain dnsmasq[3114]: using nameserver 8.8.4.4#53
мар 15 12:43:25 notebook.localdomain dnsmasq[3114]: using nameserver 192.168.1.1#53
мар 15 12:43:25 notebook.localdomain dnsmasq[3114]: cleared cache
Hint: Some lines were ellipsized, use -l to show in full.
4. убеждаемся в кэшировании:

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

bash-4.2$ time nslookup qnx.org.ru
Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
Name:	qnx.org.ru
Address: 72.249.144.181


real	0m1.088s
user	0m0.012s
sys	0m0.017s
bash-4.2$ time nslookup qnx.org.ru
Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
Name:	qnx.org.ru
Address: 72.249.144.181


real	0m0.014s
user	0m0.008s
sys	0m0.005s
Второй ответ получен быстрее почти в 100 раз.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 24 мар 2015, 19:32

Что-то сегодня началась какая-то дурка с DNS-серверами :-(
И похоже идёт она от Google 8.8.8.8, на который завязаны последовательно и DNS операторов связи (Укртелеком напр.):

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

[Olej@modules ~]$ nslookup rus-linux.net
;; Got SERVFAIL reply from 213.179.249.152, trying next server
;; Got SERVFAIL reply from 192.168.1.1, trying next server
;; Got SERVFAIL reply from 213.179.249.152, trying next server
;; Got SERVFAIL reply from 192.168.1.1, trying next server
Server:		8.8.8.8
Address:	8.8.8.8#53

** server can't find rus-linux.net: SERVFAIL

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

[Olej@modules ~]$ nslookup kharkovforums.com
;; Got SERVFAIL reply from 192.168.1.1, trying next server
;; Got SERVFAIL reply from 213.179.249.152, trying next server
;; Got SERVFAIL reply from 213.179.249.152, trying next server
;; Got SERVFAIL reply from 192.168.1.1, trying next server
Server:		8.8.8.8
Address:	8.8.8.8#53

** server can't find kharkovforums.com: SERVFAIL
Обратите на это внимание!
Возможно, это как-то связано с IP зон .ru, .ua, ...
Возможно нет.

Но вот списки публичных DNS-серверов, не зависящих от Google (слишком много запросов пасётся на Google): Бесплатные Быстрые Публичные DNS Сервера.
Более чем достаточно.
Можно просто прописать в настройках Network Manager:
DNS.png
Только обязательно остановить и снова запустить сетевой интерфейс, чтобы NM перепрописал /etc/resolv.conf
Или если без NM, то просто прописать /etc/resolv.conf:

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

nameserver 208.67.220.220
nameserver 198.153.194.1
nameserver 8.20.247.20
nameserver 156.154.71.1
Тут же проверяю:

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

[Olej@modules ~]$ nslookup rus-linux.net 208.67.220.220
Server:		208.67.220.220
Address:	208.67.220.220#53

Non-authoritative answer:
Name:	rus-linux.net
Address: 178.208.83.26

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

[Olej@modules ~]$ nslookup rus-linux.net
Server:		208.67.220.220
Address:	208.67.220.220#53

Non-authoritative answer:
Name:	rus-linux.net
Address: 178.208.83.26
Т.е. действительно, Google DNS что-то вытворяет! :-(

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 25 мар 2015, 01:30

Olej писал(а): Но вот списки публичных DNS-серверов, не зависящих от Google (слишком много запросов пасётся на Google): Бесплатные Быстрые Публичные DNS Сервера.
Более чем достаточно.
Вот ещё очень широкий выбор публичных DNS + обсуждение связанных с ними вопросов: DNS сервер Актуальная тема для всех!!!!! (Публичные ДНС сервера)(Public DNS Servers)(Free DNS)

Кроме того, там есть URL чрезвычайно полезной программы DNSBench.exe, которая позволяет ранжировать множество DNS по скорости для вашего хоста (по его местоположению). А это позволит существенно повысить скорость всех ваших Интернет соединений.
Программа для Windows, .exe, но а). она прекрасно выполняется под Wine (как на картинке) + б). разовая, для однократного выполнения.
Вложения
DNSbench1.png
DNSbench2.png

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 25 мар 2015, 19:15

Выбор для себя набора используемых DNS - очень актуальный, похоже, вопрос, успешный выбор позволяет сделать Интернет "на глаз" заметно быстрее ... как это обсуждается здесь: DNS сервер Актуальная тема для всех!!!!! (Публичные ДНС сервера)(Public DNS Servers)(Free DNS).
Казалось бы, как это может быть заметно "на глаз", если URL в IP разрешается только 1 раз перед подключением к странице URL?
Но так было, думаю, только когда-то, когда URL были плоскими статическими страницами. Сейчас же на одном URL добрых 2 десятка ссылок на изображения и видео, которые нужно тоже разрешать во внешние IP.
Ещё актуальнее, кажется, скорость DNS разрешений будет для торентов или в TOR сети - и в том и в другом случае по ходку действия придётся разрешать IP множества URL.
Olej писал(а): Кроме того, там есть URL чрезвычайно полезной программы DNSBench.exe, которая позволяет ранжировать множество DNS по скорости для вашего хоста (по его местоположению). А это позволит существенно повысить скорость всех ваших Интернет соединений.
Программа для Windows, .exe, но а). она прекрасно выполняется под Wine (как на картинке) + б). разовая, для однократного выполнения.
Есть ещё вот такая удачная программа: namebench - выбор оптимального DNS-сервера.
Скачать можно свободно здесь: Open-source DNS Benchmark Utility - для любых OS. Скачиваем и запускаем ... всё написано на Python, поэтому компилировать и собирать не придётся, разве что установить Tcl/Tk графику под Python, если ещё не стоит:

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

[Olej@modules ~]$ sudo yum install tkinter
...

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

[Olej@modules namebench-1.3.1]$ ./namebench.py
Starting Tk interface for namebench...
...
dns1.png
Вот так вы получаете статистику тестирования по времени многих выбранных DNS серверов (только нужно набраться терпения - это дело не столь быстрое, пару-тройку минут займёт):
dns2.png
Получается гистограмма ответов по времени (250 запросов для каждого сервера в показанном случае).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: DNS сервер

Непрочитанное сообщение Olej » 25 мар 2015, 19:18

Olej писал(а): Есть ещё вот такая удачная программа: namebench - выбор оптимального DNS-сервера.
Скачать можно свободно здесь: Open-source DNS Benchmark Utility - для любых OS. Скачиваем и запускаем ... всё написано на Python, поэтому компилировать и собирать не придётся
P.S. Внимательно к версиям! Некоторые URL download дают на версию 0.9.6 (файл namebench-0.9.6.tgz) - он под Linux аварийно слетает, вам нужна версия 1.3.1 (файл namebench-1.3.1-source.tgz).

Я излишне подробно описываю download, потому как системы безопасности браузеров морочат голову и путают сообщениями вида:
Сайт namebench.googlecode.com
может угрожать безопасности вашего компьютера.
...

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей