Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Объясните такое поведение pdnsd, пожалуйста. Конфиг приложил  (Прочитано 664 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн postscripter

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Привет! Помогите разобраться, пожалуйста.

На волне последних известий "с полей", громких разоблачений и срывов покровов (да и вообще давно руки чесались) ограничил бездумное обращение рабочих машин к гугловскому 8.8.8.8, сделав в iptables редирект на локальный pdnsd. Но работает всё совсем не так, как ожидается.

Конфиг pdns
(Нажмите, чтобы показать/скрыть)

Правило в iptables
(Нажмите, чтобы показать/скрыть)



Делаю запрос из подсети:
dig chi12345678901.ru @8.8.8.8 +noedns
Возвращается ответ от pdnsd, что такого адреса нет. Смотрю акулой что происходит:


Происходит следующее, по строкам:

-- роутер XXX получает запрос от машины 157...6, отдаёт его на растерзание pdnsd
-- pdnsd в соответствии с конфигом посылает 4 параллельных запроса.

Теперь pdnsd должен дождаться четырёх отказов "No such name" и сделать запрос к следующим четырём dns-серверам, вдруг, они что-нибудь знают. И только когда все известные ему серверы (он знает пять штук) ответят отказом, тогда клиенту возвращается "no such name". Но вместо этого pdnsd ВНЕЗАПНО возвращает первый пришедший ответ (от 77.88.8.8 ). И это первая странность.

Вторая странность - он и не думает дёргать 8.8.8.8, хотя тот вполне может знать ответ.

Третья странность - на запоздалый ответ от 77.88.8.1 сервер огрызается "Port Unreachable", т.е. pdnsd ограничился одним, самым быстрым ответом, и уже не слушает остальные. Даже если первый был неудачным.

Ну, и про четвёртую странность писать наверное не стоит... Как видно из дампа, не пришли два из четырёх ответов, от dns Билайна. Хотя вручную через dig адреса отвечают, они живые.
« Последнее редактирование: 31 Августа 2015, 12:22:23 от postscripter »

Оффлайн postscripter

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
В одном месте пишут, что, мол, только полное отсутствие ответа заставляет pdnsd обращаться к следующему dns. А негативный ответ - тоже ответ. Т.е. он исходит из предположения, что dns непогрешимы и всезнающи, и ошибки быть не может. Но это не так, как показывает практика. Хоть сам бери, да исходники правь....


Если кто знает что где поправить, пишите не стесняйтесь. Пусто как-то в теме...

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Всё верно. DNS непогрешимы и всезнающи, и только полное отсутствие какого-либо ответа заставит искать его где-то ещё. Система спроектирована именно так. Если хочешь достоверных ответов, включай проверку подписей и не используй промежуточные сервера.
Только рутовые, только хардкор.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн postscripter

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Если хочешь достоверных ответов
Да нет, не обязательно)) Я хочу, чтобы не было "Firefox не может найти сервер blabla.com". А dns Яндекса, к сожалению, работает неидеально, и такое случается. О билайновских вообще молчу, они оставлены только потому, что родные и шустрые.

Корневые сервера - это долго. На вышестоящем оборудовании, видимо, криво настроен шейпер, большой %% потерь, будет только хуже.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Любой DNS сервер кеширующий. Кроме совсем уже ушибленных реализаций.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.04 секунд. Запросов: 24.