вторник, 6 ноября 2012 г.

[ipcheck] Problem with DNS setup on cpanel

Дошли руки разобраться с письмами "которые нельзя игнорировать", которыми спамит свежеустановленная WHM/cPanel. Письма выглядят так:

Subject: [ipcheck] Problem with DNS setup on cpanel

IMPORTANT: Do not ignore this email.

Your hostname (cpanel) could not be resolved to an IP address. This
means that /etc/hosts is not set up correctly, and/or there is no
dns entry for cpanel. Please be sure that the contents of
/etc/hosts are configured correctly, and also that there is a
correct 'A' entry for the domain in the zone file.
Some or all of these problems can be caused by /etc/resolv.conf
being setup incorrectly. Please check that file if you believe
everything else is correct.

You may be able to automatically correct this problem by using the
'Add an A entry for your hostname' option under 'Dns Functions' in
your Web Host Manager.

Суть письма сводится к тому, что скрипт /scripts/ipcheck не может выполнить преобразование hostname в ipaddress. Данный экземпляр cPanel крутится в CentOS 6.x контейнере под управлением OpenVZ.

Сначала появилась мысль, что слетел hostname. Проверил догадку:

# hostname
cpanel

# hostname --fqdn
cpanel.srv.example.com

# dnsdomainname.
srv.example.com

# hostname -i
1.2.3.4

На первый взгляд все правильно. Полез в сам скрипт, чтобы узнать как выполняется преобразование. Из кода видно, что скрипт пытается получить ip для $hostname = Cpanel::Sys::Hostname::gethostname() и судя по письму $hostname равен "cpanel", а не "cpanel.srv.example.com". Т.е. выполняется gethostbyname($hostname).

Чтобы исправить эту ситуацию достаточно подкрутить резолвер (правильно установить параметр search в /etc/resolv.conf). В случае с контейнером OpenVZ это выглядит так:

# vzctl set 300 --searchdomain srv.example.com

Осталось проверить правильность новых настроек, запустив /scripts/ipcheck, если все в порядке, то скрипт не вернет никакого вывода.

Комментариев нет:

Отправить комментарий