Назад | Перейти на главную страницу

DNS добавляет локальный домен к случайным запросам

    Aug  9 23:14:45 dnsmasq[11657]: reply registry-1.docker.io is 54.88.231.116
    Aug  9 23:14:45 dnsmasq[11657]: reply registry-1.docker.io is 100.24.246.89
    Aug  9 23:14:45 dnsmasq[11657]: reply registry-1.docker.io is 34.197.189.129
    Aug  9 23:14:45 dnsmasq[11657]: reply registry-1.docker.io is 3.221.133.86
    Aug  9 23:14:45 dnsmasq[11657]: reply registry-1.docker.io is 3.224.11.4
    Aug  9 23:14:45 dnsmasq[11657]: reply registry-1.docker.io is 54.210.105.17
    Aug  9 23:14:50 dnsmasq[11657]: query[A] gitlab.mydomain.com.home from 192.168.1.20
    Aug  9 23:14:50 dnsmasq[11657]: forwarded gitlab.mydomain.com.home to 192.168.1.2
    Aug  9 23:14:50 dnsmasq[11657]: reply gitlab.mydomain.com.home is NXDOMAIN
    Aug  9 23:14:50 dnsmasq[11657]: query[AAAA] gitlab.mydomain.com.home from 192.168.1.20
    Aug  9 23:14:50 dnsmasq[11657]: forwarded gitlab.mydomain.com.home to 192.168.1.2
    Aug  9 23:14:50 dnsmasq[11657]: reply gitlab.mydomain.com.home is NODATA-IPv6
    Aug  9 23:14:51 dnsmasq[11657]: query[A] registry.mydomain.com.home from 192.168.1.20
    Aug  9 23:14:51 dnsmasq[11657]: forwarded registry.mydomain.com.home to 192.168.1.2
    Aug  9 23:14:51 dnsmasq[11657]: query[AAAA] registry.mydomain.com.home from 192.168.1.20
    Aug  9 23:14:51 dnsmasq[11657]: forwarded registry.mydomain.com.home to 192.168.1.2
    Aug  9 23:14:51 dnsmasq[11657]: reply registry.mydomain.com.home is NXDOMAIN
    Aug  9 23:14:51 dnsmasq[11657]: reply registry.mydomain.com.home is NODATA-IPv6
    Aug  9 23:14:51 dnsmasq[11657]: query[AAAA] registry.mydomain.com.home from 192.168.1.21
    Aug  9 23:14:51 dnsmasq[11657]: cached registry.mydomain.com.home is NODATA-IPv6
    Aug  9 23:14:51 dnsmasq[11657]: query[A] gitlab.mydomain.com.home from 192.168.1.21
    Aug  9 23:14:51 dnsmasq[11657]: cached gitlab.mydomain.com.home is NXDOMAIN
    Aug  9 23:14:52 dnsmasq[11657]: query[A] registry.mydomain.com.home from 192.168.1.21
    Aug  9 23:14:52 dnsmasq[11657]: cached registry.mydomain.com.home is NXDOMAIN
    Aug  9 23:14:52 dnsmasq[11657]: query[A] registry-1.docker.io.home from 192.168.1.21
    Aug  9 23:14:52 dnsmasq[11657]: forwarded registry-1.docker.io.home to 192.168.1.2
    Aug  9 23:14:52 dnsmasq[11657]: query[AAAA] registry-1.docker.io.home from 192.168.1.20
    Aug  9 23:14:52 dnsmasq[11657]: forwarded registry-1.docker.io.home to 192.168.1.2
    Aug  9 23:14:52 dnsmasq[11657]: reply registry-1.docker.io.home is NXDOMAIN
    Aug  9 23:14:52 dnsmasq[11657]: reply registry-1.docker.io.home is NODATA-IPv6

Эти запросы поступают из модуля kubernetes. внутри модуля это конфигурация

bash-4.4$ cat /etc/resolv.conf
nameserver 10.96.0.10
search gitlab-managed-apps.svc.cluster.local svc.cluster.local cluster.local home
options ndots:5

если я выполняю nslookup, кажется, что это работает

bash-4.4$ nslookup registry.mydomain.com
nslookup: can't resolve '(null)': Name does not resolve

Name:      registry.mydomain.com
Address 1: 104.18.61.234
Address 2: 104.18.60.234
Address 3: 2606:4700:30::6812:3dea
Address 4: 2606:4700:30::6812:3cea
bash-4.4$

но я все еще добавляю .home

Aug  9 23:44:13 dnsmasq[11657]: query[AAAA] gitlab.mydomain.com.home from 192.168.1.20
Aug  9 23:44:13 dnsmasq[11657]: cached gitlab.mydomain.com.home is NXDOMAIN
Aug  9 23:44:13 dnsmasq[11657]: query[A] gitlab.mydomain.com.home from 192.168.1.21
Aug  9 23:44:13 dnsmasq[11657]: cached gitlab.mydomain.com.home is NODATA-IPv4

DNS хоста Kubernetes:

root@node-a:/etc$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
search home

Я использую coredns со следующей конфигурацией:

apiVersion: v1
data:
  Corefile: |
    mydomain.com {
        log
        forward . 1.1.1.1 1.0.0.1 9.9.9.9
        reload
    }
    .:53 {
        log
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           upstream
           fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153
        #proxy . /etc/resolv.conf
        forward . 192.168.1.2:53 {
            except mydomain.com
        }
        cache 30
        loop
        reload
    }

Я пробовал редактировать конфиги для Poing до 1.1.1.1, без кубиков. По какой-то причине что-то где-то добавляет .home в конец доменного имени

tail -f pihole.log |grep alpine
Aug 10 00:03:59 dnsmasq[11657]: query[AAAA] dl-cdn.alpinelinux.org.home from 192.168.1.20
Aug 10 00:03:59 dnsmasq[11657]: cached dl-cdn.alpinelinux.org.home is NXDOMAIN
Aug 10 00:03:59 dnsmasq[11657]: query[A] dl-cdn.alpinelinux.org.home from 192.168.1.20
Aug 10 00:03:59 dnsmasq[11657]: cached dl-cdn.alpinelinux.org.home is NODATA-IPv4
Aug 10 00:03:59 dnsmasq[11657]: query[A] dl-cdn.alpinelinux.org.home from 192.168.1.21
Aug 10 00:03:59 dnsmasq[11657]: cached dl-cdn.alpinelinux.org.home is NODATA-IPv4
Aug 10 00:03:59 dnsmasq[11657]: query[AAAA] dl-cdn.alpinelinux.org.home from 192.168.1.21
Aug 10 00:03:59 dnsmasq[11657]: cached dl-cdn.alpinelinux.org.home is NXDOMAIN

Мой путь к DNS выглядит следующим образом:

Pod -> CoreDNS -> Pihole (для рекламы) -> Bind9 -> cloudflared 1.1.1.1/1.0.0.1

учитывая, что я вижу, что .home добавляется (и не удается разрешить) в pihole, я не думаю, что проблема связана с bind9 или cloudflared, это либо конфигурация pod, coredns, либо pihole. Откуда это?

Я несколько обошел проблему (пока), изменив развертывание gitlab runner, чтобы использовать следующие свойства DNS:

dnsConfig:
  nameservers:
    - 1.1.1.1
    - 9.9.9.9
  options:
    - name: ndots
      value: "2"
    - name: edns0
  dnsPolicy: None

Спасибо!

Отправка этого ответа на основе @yoonix commet в качестве поддержки сообщества для лучшей видимости для других пользователей с той же проблемой.

В случае OP ndots было установлено значение 5 (значение по умолчанию - 1). Это означает, что если ndots установлен в 5, а имя содержит менее 5 точек внутри, системный вызов попытается разрешить его последовательно, сначала пройдя все локальные поисковые домены, и - в случае, если ни один из них не удастся - разрешит его как абсолютное имя только в конце.

ndots: n

устанавливает порог количества точек, которые должны появиться в имени, прежде чем будет выполнен первоначальный абсолютный запрос. По умолчанию для n установлено значение 1, что означает, что если в имени есть какие-либо точки, имя сначала будет пробоваться как абсолютное имя, прежде чем к нему будут добавлены какие-либо элементы списка поиска.

В обновлении OP ndots было установлено значение 2, и теперь оно работает.

  options:
    - name: ndots
      value: "2"

Более подробная информация о ndots может быть найден Вот.