CentOS 5.x | Отправить почту
У меня есть сервер SendMail, настроенный на smarthost с полным доменным именем (в целях обсуждения назовем его group.example.com). Изначально с group.example.com были связаны две записи A: 1.1.1.1 и 2.2.2.2. В этом случае электронная почта обычно отправляется на оба сервера равномерно.
Недавно я добавил третью запись A к тому же полному доменному имени: 3.3.3.3. Странно то, что я не вижу трафика, когда-либо идущего на 3.3.3.3.
Мои вопросы:
1) Кэширует ли SendMail записи DNS? Если да, то как это можно смыть?
2) Как sendmail (или собственный преобразователь DNS, если это просто CentOS) оценивает, какую из трех записей A использовать?
Помимо TTL, упомянутого larsks, есть также кеширование SMTP-соединений, которое усугубляет это явление. Из книги летучих мышей копирую:
Когда sendmail кэширует соединение, он подключается к хосту и передает почтовое сообщение как обычно. Но вместо того, чтобы закрывать соединение, он сохраняет его открытым, так что он может передавать дополнительные почтовые сообщения без дополнительных затрат на открытие и закрытие соединения каждый раз. Параметр ConnectionCacheSize в sendmail V8 указывает, что должны поддерживаться открытые соединения с другими хостами, и определяет максимальное количество этих соединений.
У меня нет авторитетного ответа, но обычно, если что-то кэширует записи DNS, это, вероятно, будет уважать TTL
связанный с записью. Собственный преобразователь обычно возвращает записи DNS в порядке, возвращаемом вашим сервером имен, и большинство серверов имен будут чередовать несколько записей для одного ресурса. Например:
$ host group.example.com
group.example.com has address 192.168.1.1
group.example.com has address 192.168.1.2
group.example.com has address 192.168.1.3
$ host group.example.com
group.example.com has address 192.168.1.3
group.example.com has address 192.168.1.1
group.example.com has address 192.168.1.2
Приложения обычно используют первый результат (хотя это не дано; некоторые приложения могут выбирать случайный результат из списка).