DNS - Кілька записів A або 1 запис та багато CNAME?


29

Скажімо, у мене є веб-сервер, який називається "www". www.example.com вирішує IP-адресу цієї машини. Тоді я хочу зробити кілька віртуальних хостів і DNS-записи для них, як webmail.example.com.

Для "веб-пошти" я повинен вносити запис із IP-адресою www, чи потрібно робити CNAME для www?

Що "чистіше?", Надійніше? краще?

Відповіді:


26

На це питання є два альтернативних погляди, і саме в кінцевому підсумку буде обговорено назавжди. Я не збираюся висловлювати свою думку (тому що я сам розірваний), але загальні аргументи в кожному разі є:

  • Ви повинні визначити записи A для своїх фізичних машин, а потім послуги CNAME на цих машинах. Це робить досить зрозумілим, що є що, і якщо вам потрібно перенумерувати, не так багато записів потрібно змінити - лише машина записує. З іншого боку, це дещо збільшує завантаження вашої DNS-пошуку, і "допоміжні" IP-адреси (думаю, SSL-пришпильники) не вписуються акуратно в цю модель.

  • Буквальне значення "канонічного імені" (CNAME) полягає у визначенні строгих псевдонімів з тим самим іменем (думаю mailі smtp), і якщо у вас є кілька служб, що працюють на одній машині, вони повинні мати всі записи A, оскільки це зменшує навантаження на DNS і деякі сервіси (NS записи і, в меншій мірі, записи MX) насправді не вражені роботою з CNAME, тому, якщо вам доведеться по-різному обробляти ці послуги, ми можемо також зробити це для всього.


12
Ви можете насправді серйозно зруйнувати / перевантажити свій DNS-сервер, вказавши MX на CNAME. Мені не можна заважати пояснювати, чому саме зараз, але старші поштові сервери (їх там багато) побачать MX, що вказує на CNAME, і не знатиме, як з цим боротися, і буде продовжувати шукати і поставити величезний стрес на своєму DNS, і врешті-решт електронний лист ніде не потрапляє. НЕ ВКАЗУЙТЕ MX НА ІМУ. ВСЕ.
Марк Хендерсон

3
Я погоджуюся з Farseeker, не вказуйте MX на CNAME, навіть якщо це може спрацювати. Перегляньте wikipedia (шукайте MX Record) або RFC 2181 (розділ 10.3), якщо ви хочете отримати повну інформацію.
Бенуа

+1 до жіночого. Ця відповідь також виражає мій погляд. +1 для Farseeker. Винятки становлять записи MX. Що стосується посилань Беоот, то Вікіпедія ніколи не повинна використовуватися як технічна довідка, оскільки є занадто багато помилок і неточностей. Хоча майже всі люблять цитувати RFC, нам потрібно пам’ятати, що вони не є стандартами, а лише попередниками пропозиції щодо стандарту.
Джон Гарденєр

Вибачте за неправильне написання імені Бенуа. Пора я лежала в ліжку.
Джон Гарденєр

Я завжди використовував імена. Мій колега взяв підхід з декількох записів. Ще одна причина імені краща: це дозволяє легко визначити, який запис отримує запис ptr. На цьому я заробив пиво від третього колеги.
dmourati

12

Використання CNAME ефективно подвоює пошуки на DNS-сервері. Коли запит відображається на CNAME, він повинен шукати запис A для CNAME.

Але це означає, що існує причина CNAME. Це робить ваш DNS набагато простішим в управлінні, і якщо ви не робите десятки тисяч дозволів на день, це не має значення ...


12

Тут є кілька посилань на те, що CNAME збільшують навантаження DNS. Це мене викликало цікавість. Я запустив проводку, перевірив запит на CNAME, і принаймні в нашому середовищі результат був повернутий в одному записі. Що приводить тут до уваги афоризм Кнута: "передчасна оптимізація - корінь усього зла".

Мені подобаються CNAME, але в основному за їх психологічний ефект. Вони закликають людей (як, наприклад, я) відключати імена серверів від імен служб.

У нашому середовищі є декілька SSL-сертів, прикріплених до непрозорих імен серверів (які ми кинули робити). Тут працюють набагато краще CNAME. У кожному місці, де я працював з міграційними службами, де ім'я сервера щільно пов'язане зі службою, це головний біль. CNAME надають чітку концептуальну лінію розмежування.


Для цього потрібно більше коштів. Записи CNAME, як правило, не збільшують кількість необхідних об’їзних поїздок, оскільки результати поєднуються в одну відповідь.
Нік

4

На мою думку, якщо віртуальними хостами є www.someotherdomain.com, я б розглядав їх як окремий домен із власним набором записів DNS (це полегшує згодом, якщо їх потрібно розділити). Якщо, однак, просто блог .example.com, я б використовував CNAME.

Просто мої особисті переваги.



2

CNAME збільшують навантаження на систему DNS, а не на персональний комп’ютер чи Інтернет. Я думаю, що деякі люди тут не зробили такої різниці, коли відповіли.

Наприклад, використовуйте записи для первинних записів про високий трафік (@ і www). Використовуйте CNAMEs для вторинних записів, які завжди відображатимуть однаковий IP первинного запису. Наприклад, якщо у вас є домен "member.site.com", який завжди буде відповідати тому ж IP, що і "www.site.com", ви можете використовувати CNAME тут для зручності, але якщо ви можете використовувати запис A , це вирішиться швидше.


Дякую, я знайшов відповідь зрозумілою, але ваш коментар ще
простіше
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.