Вчера пытался dig-ать некоторые имена с локального DNS и получал странный ответ:

$ dig domain.local.tld @10.0.20.1
;; reply from unexpected source: 10.0.0.1#53, expected 10.0.20.1#53

Чтобы пояснить решение, надо сначала пояснить условия, в которых эта ошибка была выбита:

(inet) --- router --- dns host
                 \--- (clients)
  • Клиенты живут в 10.0.99.0/24
  • DNS-хост живет по 10.0.20.1
  • Роутер живет по 10.0.0.1
  • Gateway по умолчанию на DNS и клиентах: 10.0.0.1

Итак, откуда растут ноги у проблемы (ну, очевидно, из маршрутизации):

  • У DNS-хоста было ноль знания про 10.0.99.0/24 и он отвечал через 10.0.0.1
  • Запрашивающему ответ клиенту ответ таки приходил, но уже не с 10.0.20.1, а от 10.0.0.1 (не удивлюсь, если оно там еще и маскарадилось)

И, таким образом, решается косяк просто:

# DNS host
ip r add 10.0.99.1/24 dev eth0 src 10.0.20.1

После этого DNS понимал, что к клиентам надо ходить вот туда и проблема ушла.

Вообще, это больше история про то, как не надо устраивать офисную сеть.


Comments

comments powered by Disqus