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
может быть найден Вот.