ссылки:
1 |
https://wiki.archlinux.org/title/dnsmasq |
dnsmasq
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
0. Установка: apt install dnsmasq конфиги: touch /etc/dnsmasq.d/dnsmasq.conf chown root:dnsmasq /etc/dnsmasq.d/dnsmasq.conf chmod 0644 /etc/dnsmasq.d/dnsmasq.conf 1. Редактируем конфиг: vim /etc/dnsmasq.d/dnsmasq.conf ------------------------------- # Указываем интерфейсы для прослушивания. listen-address=::1 listen-address=127.0.0.1 listen-address=192.168.1.1 bind-interfaces # Запрещаем чтение файла /etc/resolv.conf для получения DNS-серверов no-resolv # Запрещаем добавление хостов из файла /etc/hosts no-hosts # Указываем вышестоящие DNS-серверы. server=::1#5353 server=127.0.0.1#5353 # Указываем количество элементов для локального кэша DNS cache-size=5000 # В некоторых случаях, например при работе с авторизованным порталом, может быть полезно преобразовать определенные доменные имена в жестко закодированный набор адресов address=/example.org/192.168.0.150 address=/zzz/192.168.0.151 address=/example.com/1.2.3.4 # Кроме того, можно вернуть определенный адрес для всех доменных имен, на которые не получен ответ от /etc/hostsили DHCP, с помощью специального подстановочного знака: address=/#/1.2.3.4 # Чтобы заблокировать домены, т.е. отвечать на запросы к ним с помощью NXDOMAIN, используйте опцию addressбез указания IP-адреса # блокирует как block.example , так и Anotherblocked.example , а также все их субдомены address=/*blocked.example/ # блокирует субдомены, такие как mail.google.com, но не google.com address=/*.google.com/ # блокирует google.com и все поддомены, кроме mail.google.com address=/google.com/ server=/mail.google.com/# #Примечание: #Варианты address=/example.com/и server=/example.com/эквивалентны. Оба будут отвечать на запросы для них с помощью NXDOMAIN. #Варианты address=/example.com/#и server=/example.com/#не эквивалентны. # address=/example.com/#будет отвечать на запросы для домена с нулевым адресом (0.0.0.0 или :: для IPv6). # server=/example.com/#будет отправлять запросы для домена на стандартно настроенные серверы. #Шаблоны /example.com/и /.example.com/эквивалентны. Оба будут соответствовать домену example.com и всем его поддоменам. ------------------------------- |
stubby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
0. Установка: apt install stubby 1. Правим конфиг:: vim /etc/stubby.yml ------------------- # Активируем режим STUB-резолвера. resolution_type: GETDNS_RESOLUTION_STUB # Активируем транспорт TLS. dns_transport_list: - GETDNS_TRANSPORT_TLS # Требуем обязательного использования TLS. tls_authentication: GETDNS_AUTHENTICATION_REQUIRED # Задаём стойкость шифра (128 или 256 бит). tls_query_padding_blocksize: 128 # Активируем rfc7871. edns_client_subnet_private : 1 # Разрешаем переключение на другой DNS-сервер в случае недоступности текущего. round_robin_upstreams: 1 # Задаём таймаут keepalive в миллисекундах. idle_timeout: 9000 # Указываем лимит исходящих DNS-запросов на вышестоящий сервер. limit_outstanding_queries: 100 # Задаём таймаут ожидания ответа от сервера в миллисекундах. timeout: 1000 # Указываем используемые шифры для TLS 1.2 и ниже. tls_cipher_list: "EECDH+AESGCM:EECDH+CHACHA20" # Указываем используемые шифры для TLS 1.3 и выше. tls_ciphersuites: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256" # Устанавливаем минимальную версию TLS. tls_min_version: GETDNS_TLS1_2 # Устанавливаем максимальную версию TLS. tls_max_version: GETDNS_TLS1_3 # Настраиваем stubby на прослушивание loopback-интерфейса и порта 5353. listen_addresses: - 127.0.0.1@5353 - 0::1@5353 # Указываем используемые серверы DNS. upstream_recursive_servers: - address_data: 9.9.9.9 tls_auth_name: "dns.quad9.net" - address_data: 1.1.1.1 tls_auth_name: "cloudflare-dns.com" - address_data: 2620:fe::fe tls_auth_name: "dns.quad9.net" - address_data: 2606:4700:4700::1111 tls_auth_name: "cloudflare-dns.com" ------------------- |
Изменение резолвера по умолчанию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
0. Для того, чтобы dnsmasq смог занять стандартный порт 53/udp, мы должны отключить и заблокировать запуск сервиса systemd-resolved systemctl disable --now systemd-resolved.service systemctl mask systemd-resolved.service 1. Пересоздать файл "/etc/resolv.conf": rm -f /etc/resolv.conf touch /etc/resolv.conf chown root:root /etc/resolv.conf chmod 0644 /etc/resolv.conf 2. Редактируем файл resolv vim /etc/resolv.conf -------------------- nameserver 127.0.0.1 nameserver ::1 options trust-ad options ndots:1 ------------------- |
Проверка, автозапуск stubby и dnsmasq
1 2 3 4 5 6 7 8 9 10 |
0. Активируем systemd-юниты: systemctl enable --now dnsmasq.service systemctl enable --now stubby.service 1. Перезапустим их для корректного вступления в силу изменений конфигурации: sudo systemctl restart dnsmasq.service sudo systemctl restart stubby.service 2. Проверим работу настроенной связки: dig @127.0.0.1 easycoding.org |
Еще примеры:
1 2 3 4 5 6 7 |
# otebatina #listen-address=10.0.0.1 #interface=ovsbr0 #dhcp-range=10.0.0.2,10.0.0.254,255.255.255.0,12h dhcp-range=interface:ovsbr0,10.0.0.2,10.0.0.254,24h dhcp-range=interface:ovsbr1,10.0.1.2,10.0.1.254,24h |
Одноразовый запуск из консоли, примеры:
1 2 3 4 |
dnsmasq -i enp0s20f0u2 --dhcp-range=192.168.88.64,192.168.88.128 --dhcp-boot=openwrt-22.03.0-rc1-ipq40xx-mikrotik-mikrotik_lhgg-60ad-initramfs-kernel.bin --enable-tftp --tftp-root=/srv/tftp/ -d -u nobody -p0 -K --log-dhcp --bootp-dynamic --dhcp-host=DC:2C:6E:68:AF:B9 dnsmasq -i enp0s20f0u1u1 --dhcp-range=10.50.50.200,10.50.50.240 -d -u nobody -p0 -K --log-dhcp --bootp-dynamic |