кэширующий DNS dnsmasq
Модераторы: Olej, bellic, vikos
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS dnsmasq
Но когда я полез посмотрел - там всё это написано 2012 годом ... 11 лет назад
Так что пересмотреть состояние дел лучше в новой теме.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS dnsmasq
Прежде того:
1. Найти у себя в LAN хост на котором работает дефаултное разрешение DNS:
Код: Выделить всё
olej@esprimop420:~$ nslookup linux-ru.ru | grep -i server
Server: 1.1.1.1
Код: Выделить всё
olej@esprimop420:~$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 192.168.1.3
Код: Выделить всё
olej@esprimop420:~$ host -v qnx.org.ru | grep Received
Received 44 bytes from 1.1.1.1#53 in 12 ms
Received 80 bytes from 1.1.1.1#53 in 12 ms
Received 57 bytes from 1.1.1.1#53 in 44 ms
Код: Выделить всё
olej@esprimop420:~$ host -v linux-ru.ru | grep Received
Received 45 bytes from 1.1.1.1#53 in 8 ms
Received 81 bytes from 1.1.1.1#53 in 16 ms
Received 77 bytes from 1.1.1.1#53 in 112 ms
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS dnsmasq
Поехали...
Код: Выделить всё
olej@esprimop420:~$ aptitude search dnsmasq
p dnsmasq - Small caching DNS proxy and DHCP/TFTP server
i A dnsmasq-base - Small caching DNS proxy and DHCP/TFTP server
p dnsmasq-base-lua - Small caching DNS proxy and DHCP/TFTP server
p dnsmasq-utils - Utilities for manipulating DHCP leases
Код: Выделить всё
olej@esprimop420:~$ sudo apt install dnsmasq
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Предлагаемые пакеты:
resolvconf
Следующие НОВЫЕ пакеты будут установлены:
dnsmasq
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
Необходимо скачать 32,0 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 120 kB.
Пол:1 http://deb.debian.org/debian bullseye/main amd64 dnsmasq all 2.85-1 [32,0 kB]
Получено 32,0 kB за 0с (226 kB/s)
Выбор ранее не выбранного пакета dnsmasq.
(Чтение базы данных … на данный момент установлено 351157 файлов и каталогов.)
Подготовка к распаковке …/dnsmasq_2.85-1_all.deb …
Распаковывается dnsmasq (2.85-1) …
Настраивается пакет dnsmasq (2.85-1) …
Created symlink /etc/systemd/system/multi-user.target.wants/dnsmasq.service → /lib/systemd/system/dnsmasq.service.
invoke-rc.d: policy-rc.d denied execution of start.
Код: Выделить всё
olej@esprimop420:~$ systemctl status dnsmasq
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: inactive (dead)
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS dnsmasq
Код: Выделить всё
root@esprimop420:/etc# grep -v ^$ /etc/dnsmasq.conf | grep -v ^#
root@esprimop420:/etc# ls -l /etc/dnsmasq.conf
-rw-r--r-- 1 root root 27381 апр 4 2021 /etc/dnsmasq.conf
root@esprimop420:/etc# ls -l /etc/dnsmasq.d
итого 4
-rw-r--r-- 1 root root 211 апр 4 2021 README
Я бы в общем конфигурационном файле убрал знак комментария только с одной строки, а раздельные файлы конфигураций /etc/dnsmasq.d:
Код: Выделить всё
$ grep -v ^$ /etc/dnsmasq.conf | grep -v ^#
conf-dir=/etc/dnsmasq.d/,*.conf
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS dnsmasq
Как вариант:
Код: Выделить всё
olej@esprimop420:~$ ls /etc/dnsmasq.d/*.conf
/etc/dnsmasq.d/dhcp.conf /etc/dnsmasq.d/dns.conf
Код: Выделить всё
olej@esprimop420:~$ grep -v ^$ /etc/dnsmasq.d/dhcp.conf | grep -v ^#
dhcp-range=192.168.1.30,192.168.1.45,255.255.255.0,12h # объявляем диапазон адресов для аренды
dhcp-option=option:router,192.168.1.3 # основной шлюз для этой под сети
log-dhcp # записывать дополнительную отладочную информацию
Код: Выделить всё
olej@esprimop420:~$ grep -v ^$ /etc/dnsmasq.d/dns.conf | grep -v ^#
listen-address=127.0.0.1 # принимаем запросы на локальном адресе
interface=enp3s0 # слушать только эти интерфейсы (из 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
server=192.168.1.3 # LAN router to WAN
server=8.8.4.4#53 # google OpenDNS
server=4.2.2.6#53 # Verizon DNS
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS dnsmasq
Теперь можно запускать:
Код: Выделить всё
root@esprimop420:/etc# systemctl start dnsmasq
Код: Выделить всё
root@esprimop420:/etc# systemctl --no-pager --full status dnsmasq
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-25 15:17:26 EEST; 3min 59s ago
Process: 19486 ExecStartPre=/etc/init.d/dnsmasq checkconfig (code=exited, status=0/SUCCESS)
Process: 19494 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
Process: 19505 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/SUCCESS)
Main PID: 19504 (dnsmasq)
Tasks: 1 (limit: 14232)
Memory: 588.0K
CPU: 44ms
CGroup: /system.slice/dnsmasq.service
└─19504 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
апр 25 15:17:26 esprimop420 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
апр 25 15:17:26 esprimop420 dnsmasq[19504]: started, version 2.85 cachesize 150
апр 25 15:17:26 esprimop420 dnsmasq[19504]: compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset auth cryptohash DNSSEC loop-detect inotify dumpfile
апр 25 15:17:26 esprimop420 dnsmasq-dhcp[19504]: DHCP, IP range 192.168.1.30 -- 192.168.1.45, lease time 12h
апр 25 15:17:26 esprimop420 dnsmasq[19504]: using nameserver 4.2.2.6#53
апр 25 15:17:26 esprimop420 dnsmasq[19504]: using nameserver 8.8.4.4#53
апр 25 15:17:26 esprimop420 dnsmasq[19504]: using nameserver 192.168.1.3#53
апр 25 15:17:26 esprimop420 dnsmasq[19504]: cleared cache
апр 25 15:17:26 esprimop420 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Код: Выделить всё
root@esprimop420:/var/log# cat /var/log/syslog | grep dnsmasq-dhcp
Apr 25 15:17:26 esprimop420 dnsmasq-dhcp[19504]: DHCP, IP range 192.168.1.30 -- 192.168.1.45, lease time 12h
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS dnsmasq
Проверяем...
Разрешение через сетевой DNS (Goole DNS), для 2-х произвольно взятых имён:
Код: Выделить всё
olej@esprimop420:~$ host -v qnx.org.ru | grep Received
Received 44 bytes from 1.1.1.1#53 in 348 ms
Received 80 bytes from 1.1.1.1#53 in 60 ms
Received 57 bytes from 1.1.1.1#53 in 48 ms
Код: Выделить всё
olej@esprimop420:~$ host -v linux-ru.ru | grep Received
Received 45 bytes from 1.1.1.1#53 in 60 ms
Received 81 bytes from 1.1.1.1#53 in 64 ms
Received 77 bytes from 1.1.1.1#53 in 56 ms
Код: Выделить всё
olej@esprimop420:~$ host -v linux-ru.ru 127.0.0.1 | grep Received
Received 45 bytes from 127.0.0.1#53 in 108 ms
Received 81 bytes from 127.0.0.1#53 in 128 ms
Received 77 bytes from 127.0.0.1#53 in 76 ms
Код: Выделить всё
olej@esprimop420:~$ host -v linux-ru.ru 127.0.0.1 | grep Received
Received 45 bytes from 127.0.0.1#53 in 0 ms
Received 29 bytes from 127.0.0.1#53 in 0 ms
Received 77 bytes from 127.0.0.1#53 in 56 ms
Код: Выделить всё
olej@esprimop420:~$ host -v qnx.org.ru 127.0.0.1 | grep Received
Received 44 bytes from 127.0.0.1#53 in 144 ms
Received 80 bytes from 127.0.0.1#53 in 76 ms
Received 57 bytes from 127.0.0.1#53 in 228 ms
Код: Выделить всё
olej@esprimop420:~$ host -v qnx.org.ru 127.0.0.1 | grep Received
Received 44 bytes from 127.0.0.1#53 in 0 ms
Received 28 bytes from 127.0.0.1#53 in 0 ms
Received 57 bytes from 127.0.0.1#53 in 44 ms
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS dnsmasq
Остаётся вопрос: почему работает (успешно как видим) кэширующий DNS, но запросы по умолчанию (без явного указания сервера) идут по-прежнему к удалённым сетевым DNS? Потому что всё ещё:
Код: Выделить всё
olej@esprimop420:~$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 192.168.1.3
Код: Выделить всё
olej@esprimop420:~$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 127.0.0.1
Код: Выделить всё
olej@esprimop420:~$ host -v linux-ru.ru | grep Received
Received 45 bytes from 127.0.0.1#53 in 0 ms
Received 29 bytes from 127.0.0.1#53 in 0 ms
Received 77 bytes from 127.0.0.1#53 in 60 ms
Код: Выделить всё
olej@esprimop420:~$ host -v qnx.org.ru | grep Received
Received 44 bytes from 127.0.0.1#53 in 0 ms
Received 28 bytes from 127.0.0.1#53 in 0 ms
Received 57 bytes from 127.0.0.1#53 in 40 ms
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS dnsmasq
Наконец, пусть любой другой хост этой LAN запросит разрешение имени у этого вновь созданного DNS сервера:
Код: Выделить всё
lej@R420:~$ host -v linux-ru.ru 192.168.1.138 | grep Received
Received 45 bytes from 192.168.1.138#53 in 116 ms
Received 81 bytes from 192.168.1.138#53 in 84 ms
Received 77 bytes from 192.168.1.138#53 in 1156 ms
Код: Выделить всё
olej@R420:~$ host -v linux-ru.ru 192.168.1.138 | grep Received
Received 45 bytes from 192.168.1.138#53 in 4 ms
Received 29 bytes from 192.168.1.138#53 in 4 ms
Received 77 bytes from 192.168.1.138#53 in 72 ms
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя