Я пытаюсь настроить постфикс, установленный на моих клиентских компьютерах. Все машины должны использовать центральный каталог ldap для общего постфикса (например, псевдонимы и т. Д.). Но поскольку postfix работает в chroot, postfix не может разрешить имя хоста сервера ldap.
Postfix mail.log lines:
Apr 30 13:37:22 host postfix/cleanup[30160]: dict_ldap_debug: ldap_connect_to_host: TCP ldapmaster.domain.com:389
Apr 30 13:37:22 host postfix/cleanup[30160]: dict_ldap_debug: ldap_connect_to_host: getaddrinfo failed: Name or service not known
Apr 30 13:37:22 host postfix/cleanup[30160]: dict_ldap_debug: ldap_err2string
Apr 30 13:37:22 host postfix/cleanup[30160]: warning: dict_ldap_lookup: Search error -1: Can't contact LDAP server
Apr 30 13:37:22 host postfix/cleanup[30160]: warning: AF28B226A2: sender_canonical_maps map lookup problem for root@domain.com
Когда я делаю ldapsearch вручную, он работает нормально. Я также пытался войти в среду chroot postfix (/var/spool/postfix
), и когда я пытаюсь ping ldapmaster.domain.com
, я получаю unknown host
-обнаружение ошибки.
О проблеме было сообщено в Ubuntu Launchpad , так как не удается выполнить поиск имени хоста DNS в chroot после обновления natty .
Есть идеи, как разрешить postfix разрешать имена DNS?
Не понимаю, почему postfix не может разрешать DNS-имена, а просто добавьте DNS вашего LDAP-провайдера в /etc/hosts
. Таким образом, вы не зависите ни от каких DNS-запросов и не застреваете, если DNS-сервер не работает:
1.2.3.4 thehostname
Я обнаружил, что библиотеки libnss загружаются после chroot. Таким образом, они нужны в тюрьме chroot. Свяжите их там:
cp -vl /lib/i386-linux-gnu/libnss_* /var/spool/postfix/lib/i386-linux-gnu/