На корпоративном почтовом сервере Zimbra OSE пользователи при отправке внутренней почты стали получать сообщение «Произошла неизвестная ошибка (mail.TRY_AGAIN)«, другие пользователи увидели «Ошибка сети«. А мы во всех логах (/var/log/zimbra.log, /var/log/mail.log и /var/log/mail.err) увидели это волшебное сообщение «postfix/postqueue fatal: Queue report unavailable — mail system is down«. Работа была парализовано, но решение оказалось простым.
Никто не сомневался в том, что убийца — дворецкий, а именно Ubuntu Server, а если ещё точнее, невероятный resolvconf.
В поисковиках удалось найти информацию, что проблема скорее всего связана с разрешениями DNS имён. Чтобы убедиться в этом, проверяем два файла, отвечающие за это:
- Смотрим /etc/hosts
cat /etc/hosts
Вывод должен быть примерно таким:
127.0.0.1 localhost xxx.xxx.xxx.xxx mail.***.ru mail # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Вторая строчка тут ключевая. У нас есть наш локальный IP адрес, есть имя хоста. Всё хорошо, идём дальше.
- Смотрим /etc/resolv.conf
cat /etc/resolv.conf
И вот тут начинается самое интересно. Вместо прописанных серверов имён, видим весёлое сообщение
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 127.0.0.1 search ***.ru
Что означает, что наш сервер просто не видит DNS серверы в локальной сети.
- Дописываем их в конец этого файла:
nameserver 10.10.10.1 nameserver 8.8.8.8 nameserver 8.4.4.2
- Перезагружаемся. Видим, что почта снова ходит и между локальными пользователями, и за пределы сервера.