DNS - wiele rekordów A lub 1 A i wiele CNAME?

29

Powiedzmy, że mam serwer WWW o nazwie „www”. www.example.com rozwiązuje adres IP tego urządzenia. Następnie chcę utworzyć wirtualne hosty i rekordy DNS dla nich, takie jak webmail.example.com.

W przypadku „poczty internetowej” należy umieścić rekord A z adresem IP www, czy powinienem zrobić CNAME na www?

Co jest czystsze ?, bardziej niezawodne? lepszy?

Rory
źródło

Odpowiedzi:

26

Istnieją dwa alternatywne poglądy na to pytanie, które ostatecznie zostanie poddane dyskusji na zawsze. Nie zamierzam wypowiadać się (bo jestem rozdarty), ale ogólne argumenty na każdy sposób zazwyczaj to:

  • Powinieneś zdefiniować rekordy A dla swoich fizycznych maszyn, a następnie usługi CNAME na tych komputerach. Wyjaśnia to raczej, co jest co, aw przypadku konieczności zmiany numeracji nie ma zbyt wielu rekordów do zmiany - tylko rekordy maszynowe. Z drugiej strony nieco zwiększa obciążenie wyszukiwania DNS, a „pomocnicze” adresy IP (pomyśl vhosty SSL) nie pasują do tego modelu.

  • Dosłowne znaczenie „nazwy kanonicznej” (CNAME) polega na zdefiniowaniu ścisłych aliasów o tej samej nazwie (pomyśl maili smtp), a jeśli masz wiele usług działających na tej samej maszynie, wszystkie powinny mieć rekordy A, ponieważ zmniejsza obciążenie DNS i niektóre usługi (rekordy NS i, w mniejszym stopniu, rekordy MX) naprawdę nie są pod wrażeniem radzenia sobie z CNAME, więc jeśli i tak musisz traktować te usługi inaczej, równie dobrze możemy to zrobić.

womble
źródło
12
Możesz poważnie zepsuć / przeładować serwer DNS, wskazując MX na CNAME. Nie mogę się martwić wyjaśnieniem, dlaczego w tej chwili, ale starsze serwery pocztowe (jest ich tam dużo) zobaczą MX wskazujące na CNAME i nie będą wiedziały, jak sobie z tym poradzić, i będą patrzeć w górę i kładą ogromny nacisk na twoim DNS i ostatecznie e-mail nigdy nie dociera. DONT POINT MX TO A CNAME. ZAWSZE.
Mark Henderson
3
Zgadzam się z Farseeker, nie kieruj MX na nazwę CNAME, nawet jeśli może ona działać. Zajrzyj na wikipedię (wyszukaj rekord MX) lub RFC 2181 (sekcja 10.3), jeśli chcesz uzyskać pełne informacje.
Benoit,
+1 do womble. Ta odpowiedź wyraża również mój pogląd. +1 do Poszukiwacza. Rekordy MX są wyjątkiem. Jeśli chodzi o odniesienia do Beoot, Wikipedia nigdy nie powinna być używana jako odniesienie techniczne, ponieważ jest o wiele za dużo błędów i nieścisłości. Podczas gdy prawie wszyscy lubią cytować RFC, musimy pamiętać, że nie są to standardy, a jedynie prekursor propozycji standardu.
John Gardeniers,
Przepraszamy za błędną pisownię imienia Benoit. Czas bylem w lozku.
John Gardeniers,
Zawsze używałem nazw. Mój kolega przyjął podejście wielokrotnego zapisu. Jeszcze jeden powód, dla którego nazwa cname jest lepsza: ułatwia określenie, który rekord otrzymuje rekord ptr. Na tym zarabiałem piwo od trzeciego kolegi.
dmourati,
12

Użycie CNAME skutecznie podwaja wyszukiwania na serwerze DNS. Gdy żądanie mapuje się na CNAME, musi następnie wyszukać rekord A dla CNAME.

To powiedziawszy, istnieje powód, dla którego istnieje CNAME. Ułatwia to zarządzanie DNS i jeśli nie robisz dziesiątek tysięcy rozdzielczości dziennie, to nie będzie miało znaczenia ...

Mark Henderson
źródło
12

Kilka zależności tutaj sugeruje, że CNAME zwiększają obciążenie DNS. To mnie zaciekawiło. Uruchomiłem wireshark, sprawdziłem prośbę o CNAME i przynajmniej w naszym środowisku wynik został zwrócony w jednym rekordzie. Co przywodzi na myśl aforyzm Knutha: „przedwczesna optymalizacja jest źródłem wszelkiego zła”.

Lubię CNAME, ale głównie ze względu na ich działanie psychologiczne. Zachęcają ludzi (na przykład mnie) do oddzielania nazw serwerów od nazw usług.

Nasze środowisko ma kilka certyfikatów SSL dołączonych do nieprzezroczystych nazw serwerów (które przestaliśmy robić). CNAME działają tutaj znacznie lepiej. W każdym miejscu, w którym pracowałem, migracja usług, w których nazwa serwera jest ściśle powiązana z usługą, powoduje ból głowy. CNAME dają wyraźną koncepcyjną linię podziału.

Joe Fortier
źródło
To wymaga więcej pozytywnych opinii. Rekordy CNAME zwykle nie zwiększają liczby wymaganych podróży w obie strony, ponieważ wyniki są łączone w jedną odpowiedź.
Nic
4

Moim zdaniem, jeśli wirtualnymi hostami są www.someotherdomain.com, traktowałbym je jako oddzielną domenę z własnym zestawem rekordów DNS (ułatwia to później, jeśli trzeba je rozdzielić). Jeśli jednak jest to tylko blog .example.com, użyłbym CNAME.

Po prostu moje osobiste preferencje.

Sam
źródło
2

Chciałbym użyć CNAME ze względu na perspektywę DNS, webmail to alias www.

Martin P. Hellwig
źródło
2

CNAME zwiększają obciążenie systemu DNS, a nie komputera osobistego lub połączenia internetowego. Myślę, że niektórzy ludzie tutaj nie zrobili tego rozróżnienia, kiedy odpowiedzieli.

Użyj np. Rekordów A dla podstawowych rekordów o dużym natężeniu ruchu (@ i www). Użyj CNAME dla rekordów wtórnych, które zawsze będą mapowane na ten sam adres IP rekordu podstawowego. Na przykład, jeśli masz domenę „member.site.com”, która zawsze będzie rozpoznawać ten sam adres IP co „www.site.com”, możesz dla wygody użyć tutaj CNAME, ale jeśli możesz użyć rekordu A rozwiązywałby się szybciej.

TheDigitalOrchard
źródło
Dziękuję, znalazłem odpowiedź jasną, ale twój komentarz jest jeszcze prostszy do zrozumienia :)
karni