Назад | Перейти на главную страницу

Настройка записей DNS для общего хоста

Итак, я прямо сейчас настраиваю этот сервер, на котором будет размещаться несколько веб-сайтов / доменов. Каковы текущие передовые практики в отношении записей DNS? Я признаю, что «просто что-то сделал» до сих пор, что довольно плохо. Моя вина. И хотя в прошлом у меня это срабатывало, я хотел бы знать, как лучше всего поступать, поэтому вот пара вопросов по этому поводу:

  1. Я думаю, что, вероятно, имеет смысл настроить основное имя хоста следующим образом

    192.168.0.1   A      example.com
    192.168.0.1   A      host.example.com
    www           CNAME  example.com
    

    а затем одну запись PTR для 192.168.0.1 обратно на example.com. Должен ли www CNAME указывать на example.com или на A-записи host.example.com? Что имеет больше смысла и почему?

  2. Будет ли тогда иметь наибольший смысл создать CNAME для каждого виртуального хоста на этом сервере для записи example.com A (или записи host.example.com A) или создать отдельные записи A для каждого виртуального хоста для основного IP-адреса ?

  3. SMTP-сервер на этом хосте идентифицирует себя как host.example.com. Достаточно ли широко охват SPF, чтобы я мог создать запись SPF для каждого размещенного домена и позаботиться о том, чтобы другие домены могли отклонять почту с этого хоста?

Адресация 1 и 2: в большинстве случаев я бы рекомендовал сделать одну запись «A» для фактического IP, связанного с ящиком, и CNAME всего, что вам для этого нужно. Если у вас будет много somethings.example.com, я бы использовал запись с подстановочными знаками

example.com     A      192.168.0.1
*.example.com   CNAME  example.com

Преимущество заключается в том, что вам не нужно много обслуживать DNS, поскольку любой .example.com, который вы используете, уже будет соответствовать. Вы просто позволяете apache определять, что с ним делать, основываясь на заданном имени. Это привело бы к двум поискам, и я бы сделал много CNAME только для одного A, и не пытался бы делать CNAME-> CNAME. Кроме того, записи MX должны указывать только на имя записи A.

Если вам когда-нибудь понадобится разделить виртуальный хост на его собственный IP-адрес, вы можете просто добавить запись «A» для этого хоста, и наиболее конкретный ответ будет лучше.

example.com     A      192.168.0.1
*.example.com   CNAME  example.com
new.example.com A      192.168.0.2
  1. Вы должны указать PTR на host.example.com, чтобы избежать ошибок доставки почты, как объясняет Адамо. Вы можете указать CNAME на любой хост, я бы предпочел host.example.com.
  2. Вы можете использовать записи CNAME или A для своих виртуальных хостов, но, возможно, разрешение записи A будет более эффективным.
  3. Вы должны установить запись SPF, чтобы избежать ошибок доставки почты с некоторых серверов. "V = spf1 mx -all" является хорошей отправной точкой и позволит только вашему MX доставлять почту для вашего домена.

Вот вам очень хороший и бесплатный инструмент для проверки вашей конфигурации:

http://clez.net/net.dns?ip=example.com#graph

Любой заданный IP-адрес может иметь сколько угодно записей RR, указывающих на него. Тогда вы можете:

server.example.com. IN A 192.168.0.1
www.example1.com. IN A 192.168.0.1 
:
www.exampleN.com. IN A 192.168.0.1

Вам нужен только один PTR для 192.168.0.1. В данном конкретном случае наиболее подходящими представляются:

1.0.168.192.in-addr.arpa. IN PTR server.example.com.

Тем не менее, любой из других вариантов будет столь же правильным, если это один.

Это происходит потому, что, когда машина (A) подключается к серверу (B), она не знает имени A, а знает только его IP-адрес. Отправляя запрос PTR в DNS, он получает в ответ имя. Итак, теперь B знает, что того, кто подключился к нему, (вероятно) зовут A. Чтобы проверить это, он снова спрашивает DNS: "Какой IP-адрес у A?" и ожидает, что ответ будет содержать IP-адрес, который он уже знает о A из данных соединения. Что происходит, когда ответ не соответствует ожидаемому, зависит от политики администрирования сервера.

При желании вы можете создать CNAME вместо нескольких записей. Это означает, что когда кто-то хочет узнать IP-адрес B (чтобы подключиться к нему), он дважды спрашивает DNS: во-первых, «каково настоящее имя B?» а затем «какой IP-адрес у этого имени?».

Однако обратите внимание, что у вас не может быть CNAME в сочетании с записями MX, и поэтому, если по какой-либо конкретной причине вам необходимо принять электронную почту, направленную на user@www.example3.com, тогда www.example3.com должен быть записью A.

Для каждого домена нужно создать отдельный файл зоны, например для example.com вы создадите файл с именем db.com.example.

Затем настройте запись SOA:

$TTL 86400
@ IN SOA ns.example.com. hostmaster.example.com. (
    2010102601 ; Serial
    7200       ; Refresh (how often slave nameservers check with master for changes)
    1200       ; Retry (how often slaves contact the master if XFER fails)
    2419200    ; Expire
    86400      ; Negative Cache TTL
    )
    NS ns ; inet of our nameserver
    NS ns.secondary.com. ; secondary dns
    MX 50 mail ; smtp server

; nameserver
ns A 192.168.0.1

; mail
mail A 192.168.0.1

; canonical names
www CNAME ns

Во многом зависит от того, используете ли вы www CNAME или www A запись. Следует помнить о том, что у крупных организаций иногда возникают проблемы из-за слишком большого количества цепочек CNAME. Однако это вряд ли станет проблемой для вас.

Запись PTR (обратный просмотр) не будет существовать в этом файле зоны. Скорее всего, он будет находиться в файле зоны, управляемом вашим интернет-провайдером.

Видеть http://tldp.org/HOWTO/DNS-HOWTO-5.html

Настройка записей как A теоретически должна быть быстрее, так как в сценарии CNAME требуются два DNS-запроса.