LINUX.ORG.RU
ФорумAdmin

Unbound и systemd-resolve

 , ,


0

1

Доброго вам дня!

Есть проблема, ноги у которой непонятно откуда растут.

С некоторых пор, стали переводить сервера на Debian Buster, ну и заодно решили внедрять systemd-resolve, который с некоторых пор стал дефолтным решением для резолвинга.

В итоге нарисовался следующий конфиг /etc/systemd/resolved.conf:

[Resolve]
DNS=192.168.14.1 192.168.14.2
Domains=zone.my-company.com
DNSSEC=allow-downgrade
Cache=yes
DNSStubListener=yes
LLMNR=no
MulticastDNS=no

Резолверами стоят наши же сервера, на которых крутится Unbound. Конфиг вроде этого:

server:
  interface: 127.0.0.1
  interface: 192.168.14.1
  access-control: 127.0.0.1 allow
  access-control: 192.168.14.0/24 allow
  verbosity: 1
  ...

local-zone: "my-company.com" typetransparent
  local-data: "node1.zone.my-company.com A 192.168.14.3"
  local-data: "node2.zone.my-company.com A 192.168.14.4"

forward-zone:
  name: my-company.com
  forward-addr: 10.0.0.7
  forward-addr: 10.0.0.102

forward-zone:
  name: .
  forward-addr: 1.1.1.1
  forward-addr: 8.8.8.8

10.0.0.7 & 10.0.0.102 - основные резолверы для зоны my-company.com, там стоят авторитативный NSD (127.0.0.1:5353) и перед ним Unbound (например, 10.0.0.7:53).

При таком сетапе у меня время от времени возникают проблемы с резолвингом. Например, node2 может перестать резолвить node1.zone.my-company.com. При этом dig @192.168.14.1 node1.zone.my-company.com отрабатывает как надо, но

$ host node1.zone.my-company.com
Host node1.zone.my-company.com not found: 3(NXDOMAIN)
$ ping node1.zone.my-company.com
ping: node1.zone.my-company.com: Name or service not known

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

Вот так выглядит /etc/resolv.conf на нодах, ничего особенного:

nameserver 127.0.0.53
options edns0
search zone.my-company.com

Вроде как помогает systemd-resolve --flush-caches, но это не решение. Может пнете куда копать эту связку? Чего не хватает?

Убедись, что «dig @192.168.14.1 node1.zone.my-company.com» и «dig @192.168.14.2 node1.zone.my-company.com» дают одинаковые ответы.

Если dns-трафик небольшой, то можно записать tcpdump-ом трафик с 53-го порта всех интерфейсов и подождать появления проблемы. Скорее всего получишь подсказку.

Скорее всего увидишь NXDOMAIN, который тоже кешируется.

vel ★★★★★ ()

У systemd-resolved есть достаточно подробный лог. Только надо включить и в юните/journald запись с уровнем debug, и в самом resolved.

Наблюдения показывают что это изделие (systemd-resolved) местами умнее чем следует, и не факт что готово к продакшену. У меня, например, на 5.12 оно после бута считало что нет линка ))) А на 5.13 все ок. Имхо, если не нужен DNSSEC, то лучше это пока что не использовать.. )))

vasily_pupkin ★★★★★ ()

Кстати. Вот такую фигню выдает даже в случае когда резолвит нормально хост. Но это я так понимаю host запрашивает MX, судя по tcpdump.

$ host node1.zone.my-company.com
node1.zone.my-company.com has address 192.168.14.13
Host node1.zone.my-company.com not found: 3(NXDOMAIN)

Как считаете, может влиять на кеш?

FreeOne ()
Ответ на: комментарий от FreeOne

дык «host ...» спрашивает сначала А, потом АААА, потом MX. (запусти host -d node1.zone.my-company.com)

«host -t A ..» спрашивает только то, что просят.

IMHO На статической конфигурации интерфейсов (особенно в контейнере) при наличии своих dns-серверов systemd-resolved ненужен.

Я бы вообще в /etc/hosts контейнеров эти записи прописал и не мучал бы dns c unbound.

vel ★★★★★ ()