Поиск по блогу :

    13 января 2009 г.

    Настройка DNS на сервере

    Недавно пришлось столкнуться с настройкой DNS (Domain Name System — система доменных имён) на купленном хостинге. Вот и решил написать статейку, чтобы не забыть, как все это делал.
    Так, опишу то, с чем пришлось работать. Был куплен хостинг с нулевым серваком (доступ по SSH), с реальным ip, к примеру обзовем его - 88.88.88.88. Также был куплен домен, какой - не скажу :) , обзову его к примеру mydomain.com

    . Хостером были выданы два адреса сервера имен (nameservers), обзову их к примеру: 1) nm1.hoster.com и 2) nm2.hoster.com. (nm1.hoster.com - как основной).
    Так как настраивал все это дело в первый раз, то могут быть какие-нить недочеты, так что не обессудьте :)

    Установка и настройка Bind

    BIND (Berkeley Internet Name Domain) реализует сервер DNS,
    позволяющий устанавливать соответствия
    между доменными именами и IP-адресами. Собственно этот пакет и устанавливает службу DNS.

    1. Устанавливаем bind
    #
    apt-get install bind9

    2. Проверяем создался ли файлик '/etc/bind/rndc.key'. Он должен создаться автоматом, если нет, то в инете много инфы, как его создать.
    2.1. Выключаем демон bind
    #
    /etc/init.d/bind9 stop

    так как он, после установки, включился автоматически
    3. Создаем файлик с настройкой нашей зоны, к примеру mydomain.com
    # #
    cd /etc/bind
    nano mydomain.com

    и вносим туда следующие параметры своего сервера, у меня, к примеру, это выглядело так:
    $ORIGIN mydomain.com.
    $TTL 86400 ; 1 day
    @ IN SOA ns1.hoster.com. root.mydomain.com. (
    2009010901 ; serial
    10800 ; refresh (3 hours)
    900 ; retry (15 minutes)
    604800 ; expire (1 week)
    10800 ; minimum (3 hours)
    )
    @ IN A 88.88.88.88
    @ IN NS ns1.hoster.com.
    @ IN NS ns2.hoster.com.
    ns1 IN A 88.88.88.88
    ns2 IN A 88.88.88.88
    www IN A 88.88.88.88
    Попробую в кратце описать некоторые важные пункты.
    2009010901 ; serial - нас интересуют цифры, они означают следующее (2009)-год, (01)-месяц, (09)-день, (01) - индекс редактирования. Как только вы меняете этот конфигурационный файл, не забывайте изменить эти цифры. В частности, если вы меняли его несколько раз в день, то просто увеличиваете последний индекс на единицу, если в другой день, не забывайте изменить и дату. Если забудете, то ваши новые изменения могут посчитаться ошибочными.
    Что такое @, SOA, A, NS и т.п. можете почитать здесь.
    В строках ns1 и ns2 мы объявляем наши nameservers.
    MX запись для почты я не настраивал, так как не было необходимости.
    www IN A 88.88.88.88 - объявляем поддомен www, в следствии чего, наш будущий сайт будет отзываться и на mydomain.com и на www.mydomain.com. В принципе можно было бы объявить его как alias через CNAME вместо A, но пишут, что через A - правильнее.
    4. Создаем файл конфигурации наших зон, к примеру myzones.conf
    #
    nano myzones.conf

    и добавляем туда следующее
    zone "mydomain.com" {
    type master;
    file "/etc/bind/mydomain.com";
    };
    5. Теперь редактируем файл конфигурации bind
    #
    nano named.conf

    и добавляем в конец строку:
    include "/etc/bind/myzones.conf";
    6. Все, теперь запускаем демон bind
    #
    /etc/init.d/bind9 start

    и на всякий случай перегружаем конфигурационные файлы и зоны
    #
    rndc reload

    7. Ну и на последок проверяем, все ли у нас получилось. Выполняем команду
    #
    nslookup mydomain.com 88.88.88.88

    должен прийти, примерно, такой ответ:
    Server: 88.88.88.88
    Address: 88.88.88.88#53

    Name: mydomain.com
    Address: 88.88.88.88
    Если пришла ошибка, смотрите, может вы что-нибудь упустили или ошиблись при настройке.

    Настройка поддоменов

    На этом моя эпопея с DNS не закончилась, мне понадобилось настроить на сервере поддомен вида images.mydomain.com.
    1. Ну чтож, это не сложно, надо просто отредактировать файл mydomain.com
    #
    nano mydomain.com

    добавив в конец файла строку:
    images IN A 88.88.88.88
    и изменив дату и индекс обновления.
    2. После чего перегрузить демон bind
    #
    /etc/init.d/bind9 restart

    и перегрузить конфигурационные файлы и зоны
    #
    rndc reload


    P.S. Учтите поддомены могут не сразу быть видны с других адресов в интернете, надо просто подождать, пока эта информация разнесется по глобальной паутине (не знаю даже как это правильнее назвать). Иногда приходится ждать более 12 часов.

    P.S.S. Кстати, для проверки настройки dns, мне очень помог сайтик www.intodns.com