Нужны ли отдельные записи DNS для Интернета и почты на одном сервере?

13

При настройке веб / почтового сервера на одном сервере или VPS с одним IP-адресом почти все онлайн-руководства придерживаются той же структуры для DNS:

example.com.               IN A    192.0.2.0  
hostname.example.com.      IN A    192.0.2.0  
mail.example.com.          IN A    192.0.2.0  
example.com.               IN MX   10 mail.example.com.  
0.2.0.192.in-addr.arpa.  IN PTR  hostname.example.com  

Я использовал это несколько раз, и это всегда работало для меня. Но мне было интересно, есть ли причина, по которой почтовый сервер указывает на другое имя? Можно ли указать MX-запись на имя хоста и просто использовать hostname.example.com для SMTP и POP3?

Джефф
источник
7
Пожалуйста, используйте 192.0.2.0/24 для примера IP-адреса. (Они зарезервированы для документации, например, example.com. См. RFC5737.)
billpg
Я люблю SF, я узнаю что-то новое каждый день. Спасибо за это, billpg!
MadHatter
@billpg Спасибо за совет. Это был мой первый вопрос, поэтому я все еще изучаю веревки.
Джефф

Ответы:

20

Да, это было бы возможно, но вы потеряете некоторые важные преимущества, если вы решите это сделать:

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

В качестве примера: с другими именами, когда нагрузка на сервер слишком велика, вы можете просто разгрузить почтовые службы на другой сервер, не влияя на клиентов. Все, что вам нужно сделать, это адаптировать ваши записи DNS.

Свен
источник
DNS-записи MX могут быть добавлены позже, поэтому я не понимаю, почему вы что-то теряете.
Мирча Вутцовичи
1
Если вы сообщаете своим клиентам, что и ваш веб-сервер, и ваш IMAP / POP3-сервер доступны на example.com, и вам необходимо разделить их впоследствии, как поможет добавление записи MX позже? Сделайте это с самого начала, и вы не столкнетесь с проблемами позже, потому что вам было лень добавлять еще две или три строки в вашу зону DNS.
Свен
@MirceaVutcovici суть в том, чтобы иметь возможность изменять базовую инфраструктуру без необходимости изменения всех ваших клиентов.
pc1oad1etter
@MirceaVutcovici добавление или изменение записи MX не меняет того, где клиенты ищут свои почтовые службы. Насколько я понимаю, записи MX предназначены только для доставки и маршрутизации, а не для использования клиентами.
mp3foley
Мне было просто любопытно, требовалось ли отдельное имя или нет, поэтому кажется, что ответ - нет. Но я согласен, что у него есть административные преимущества.
Джефф
4

Согласно rfc5321 доставка почты осуществляется на адрес A, если MX отсутствует. Таким образом, следующие строки не требуются для работы SMTP:

mail.example.com.          IN A    192.168.0.1  
example.com.               IN MX   10 mail.example.com.  

Смотрите также: http://en.wikipedia.org/wiki/MX_record#History_of_fallback_to_A

Мирча Вуцовичи
источник
Кроме того, если запись MX существует, он может указать ее на hostname.example.com, если пожелает.
Мэтт
Вы ничего не получаете с этим и теряете большую гибкость, так зачем беспокоиться? Как я уже говорил выше, делайте это с самого начала.
Свен
Поскольку не у всех есть избыточность для своих сервисов (например, сценарий использования небольшого блоггера), то же самое можно применить к почтовому серверу. И почему вы думаете, что редактирование DNS является настолько гибким?
Мирча Вутцовичи
1
@MirceaVutcovici: Извините, но что вам так сложно понять о том, что вам нужно изменить всех своих клиентов, если вы используете одно и то же имя хоста для разных целей и вам необходимо по какой-либо причине в будущем отделить эти службы в любой момент в будущем? Делая это по-своему, вы ничего не получите, и вы можете столкнуться с проблемами позже. Профессиональный подход (и только это вообще относится к ServerFault) заключается в создании разумной инфраструктуры DNS, которая позволяет избежать таких глупых ошибок.
Свен
4

Вы можете использовать любое имя хоста, которое вам нравится, для вашего почтового сервера, но вам нужно иметь запись MX.

С учетом сказанного мне нравится идея иметь отдельное имя для разных ролей. Во-первых, если / когда придет время менять хосты, вы будете лучше контролировать DNS и будете испытывать меньше проблем из-за внешнего кэширования DNS.

gWaldo
источник
3
Технически вам не нужна или не требуется запись MX.
Joeqwerty
Справедливо; ответ обновлен, чтобы отразить
gWaldo
4

Вашему почтовому серверу понадобится PTRзапись, указывающая на него. Это позволит обратному DNS работать. Я не доверяю почтовым серверам, которые используют домен второго уровня, так example.comкак слишком много спамеров пытаются заявить, что их имя является одним из доменов с большим именем. Вам лучше использовать имя, как mail.example.com. Если вы используете mail.example.comдобавить MXв свой основной домен с example.comуказанием mail.example.comбудет получать почту. Кстати ни записей mail.example.comне example.comможет быть CNAME.

Вы можете запустить все на одном доменном имени. Однако, если я убедил вас использовать mail.example.comпочтовый сервер, вы можете использоватьwww.example.com вместо веб-сервера mail.example.com. Если вы используете, www.example.comбудет легко добавить параллельный домен для статического контента, который не получает куки с вашего веб-сервера.

Обычно IP-адрес родительского домена example.com совпадает с адресом веб-сервера. Если у вас мало трафика, вы можете использовать запись CNAME для своего веб-домена. Остальные службы, не перечисленные выше, такие как POP и IMAP, могут обрабатываться записями CNAME. Если вы добавите другие серверы позже, вы можете заменить запись CNAME записью A или просто настроить запись CNAME. Использование записей CNAME упрощает добавление IPV6, поскольку вам не нужно добавлять записи AAAA во все ваши домены.

Мне нравится иметь запись DNS для имени хоста. Если вы сделаете это, вы можете использовать этот домен вместо почты в качестве своего MX. В вашем примере я бы сбросил mail.example.comзапись и использовал hostname.example.comв вашемMX записи. Добавьте запись CNAME, www.example.comи все будет хорошо.

Ваш почтовый сервер должен использовать любое имя, которое использует PTRзапись для вашего сервера. Вам может потребоваться, чтобы ваш IP-провайдер изменилPTR соответствующим образом. Также добавьте Aзапись для этого имени.

Попробуйте добавить запись SPFs для обоих hostname.example.comи example.com.

BillThor
источник