Jak pokonać ograniczenia CNAME w domenie głównej.

  • Tłumaczenie

Uważny czytelnik odnajdzie na tym zdjęciu IPv6


Ludzie często mylą się co do domen. Dlaczego moja witryna nie działa? Dlaczego to gówno jest zepsute, nic nie pomaga, chcę tylko, żeby działało! Zwykle pytający albo nie wie o DNS, albo nie rozumie podstawowych idei. Dla wielu DNS jest rzeczą przerażającą i niezrozumiałą. Artykuł ten jest próbą rozwiania tych obaw. DNS jest Tylko, jeśli rozumiesz kilka podstawowych pojęć.

Co to jest DNS

DNS oznacza System nazw domen. Jest to globalnie dystrybuowany magazyn klucz-wartość. Serwery na całym świecie mogą podać wartość według klucza, a jeśli nie znają klucza, poproszą o pomoc inny serwer.


To wszystko. Czy to prawda. Ty lub Twoja przeglądarka żąda wartości klucza www.example.com i otrzymuje w odpowiedzi wartość 1.2.3.4.

Podstawowe rzeczy

Dużą zaletą DNS jest to, że jest to usługa publiczna i możesz zajrzeć do serwerów, jeśli chcesz to rozgryźć. Spróbujmy. Mam domenę petekeen.net, która jest hostowana na komputerze web01.bugsplat.info. Można z niego uruchomić poniższe polecenia wiersz poleceń OS X ( och, czyli macOS, - ok. uliczka).


Przyjrzyjmy się mapowaniu między nazwą i adresem:


$ wykop web01.bugsplat.info

Polecenie dig to szwajcarski scyzoryk wśród zapytań DNS. Stromy, narzędzie wielofunkcyjne. Oto pierwsza część odpowiedzi:


; <<>> DiG 9.7.6-P1<<>> web01.bugsplat.info ;; opcje globalne: +cmd ;; Mam odpowiedź: ;; ->> NAGŁÓWEK<<- opcode: QUERY, status: NOERROR, id: 51539 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

Jest tu tylko jeden interesujący szczegół: informacja o samym żądaniu. Jest tam napisane, że poprosiliśmy o nagranie i otrzymaliśmy dokładnie jedną odpowiedź. Tutaj:


;; SEKCJA PYTań: ;web01.bugsplat.info. W

żądania dig Domyślnie rekordy A. U niego adres(adres) i jest to jeden z podstawowych typów rekordów w DNS. A zawiera jeden adres IPv4. Istnieje odpowiednik adresów IPv6 - AAAA. Przyjrzyjmy się odpowiedzi:


;; SEKCJA ODPOWIEDZI: web01.bugsplat.info. 300 W 192.241.250.244

Pozostała część odpowiedzi opisuje samą odpowiedź:


;; Czas zapytania: 20 ms ;; SERWER: 192.168.1.1#53(192.168.1.1) ;; KIEDY: piątek 19 lipca 20:01:16 2013 ;; ROZMIAR MSG: 56

W szczególności mówi, ile czasu zajęło serwerowi udzielenie odpowiedzi, jaki był adres IP serwera (192.168.1.1), jaki port był włączony (53, domyślny port DNS), kiedy żądanie zostało zakończone i ile bajtów były w odpowiedzi.


Jak widać, w przypadku zwykłego zapytania DNS dużo się dzieje. Za każdym razem, gdy otwierasz stronę internetową, przeglądarka wysyła dziesiątki takich żądań, łącznie z pobraniem wszystkich zasobów zewnętrznych, takich jak obrazy i skrypty. Każdy zasób jest odpowiedzialny za co najmniej jedno nowe zapytanie DNS, a gdyby system DNS nie został zaprojektowany z myślą o silnym buforowaniu, generowany byłby duży ruch.


Jednak w tym przykładzie nie jest jasne, czy serwer DNS 192.168.1.1 skontaktował się z kilkoma innymi serwerami, aby odpowiedzieć na proste pytanie: „gdzie wskazuje adres web01.bugsplat.info?” Uruchommy śledzenie, aby dowiedzieć się o całym możliwym łańcuchu, przez który musiałby przejść wykop, gdyby informacje nie były buforowane:


$ dig +trace web01.bugsplat.info ;<<>> DiG 9.7.6-P1<<>> +śledzenie web01.bugsplat.info ;; opcje globalne: +cmd . 137375 IN NS l.root-servers.net. . 137375 IN NS m.root-servers.net. . 137375 IN NS a.root-servers.net. . 137375 IN NS b.root-servers.net. . 137375 W NS c.root-servers.net. . 137375 IN NS d.root-servers.net. . 137375 IN NS e.root-servers.net. . 137375 IN NS f.root-servers.net. . 137375 IN NS g.root-servers.net. . 137375 IN NS h.root-servers.net. . 137375 W NS i.root-servers.net. . 137375 W NS j.root-servers.net. . 137375 IN NS k.root-servers.net. ;; Odebrano 512 bajtów z 192.168.1.1#53(192.168.1.1) w ciągu 189 ms. 172800 IN NS c0.info.afilias-nst.info. informacje. 172800 IN NS a2.info.afilias-nst.info. informacje. 172800 IN NS d0.info.afilias-nst.org. informacje. 172800 IN NS b2.info.afilias-nst.org. informacje. 172800 IN NS b0.info.afilias-nst.org. informacje. 172800 IN NS a0.info.afilias-nst.info. ;; Otrzymano 443 bajty z 192.5.5.241#53(192.5.5.241) w czasie 1224 ms na bugsplat.info. 86400 W NS ns-1356.awsdns-41.org. bugsplat.info. 86400 W NS ns-212.awsdns-26.com. bugsplat.info. 86400 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 86400 W NS ns-911.awsdns-49.net. ;; Odebrano 180 bajtów z 199.254.48.1#53(199.254.48.1) w 239 ms web01.bugsplat.info. 300 W 192.241.250.244 bugsplat.info. 172800 W NS ns-1356.awsdns-41.org. bugsplat.info. 172800 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 172800 W NS ns-212.awsdns-26.com. bugsplat.info. 172800 W NS ns-911.awsdns-49.net. ;; Odebrano 196 bajtów z 205.251.195.143#53(205.251.195.143) w 15 ms

Informacje są wyświetlane w kolejności hierarchicznej. Pamiętaj, jak dig wstawił okres. po hoście web01.bugsplat.info ? Więc kropka. jest to ważny szczegół i oznacza początek hierarchii.


Główne serwery DNS są utrzymywane przez różne firmy i kraje na całym świecie. Początkowo było ich niewiele, ale internet się rozrósł i obecnie jest ich 13. Ale każdy z serwerów ma dziesiątki lub setki fizycznych maszyn ukrytych za jednym adresem IP.


Zatem na samym szczycie śledzenia znajdują się serwery główne, każdy identyfikowany przez rekord NS. Rekord NS kojarzy nazwę domeny (w tym przypadku domenę główną) z serwerem DNS. Kiedy rejestrujesz nazwę domeny u rejestratora takiego jak Namecheap lub Godaddy, tworzy on za Ciebie rekordy NS.


W następnym bloku możesz zobaczyć, jak dig wybrał losowy serwer główny i poprosił go o rekord A dla web01.bugsplat.info. Widoczny jest tylko adres IP serwera root (192.5.5.241). Czym dokładnie był serwer główny? Dowiedzmy Się!


$ dig -x 192.5.5.241 ;<<>> DiG 9.8.3-P1<<>> -x 192.5.5.241 ;; opcje globalne: +cmd ;; Mam odpowiedź: ;; ->> NAGŁÓWEK<<- opcode: QUERY, status: NOERROR, id: 2862 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;241.5.5.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 241.5.5.192.in-addr.arpa. 3261 IN PTR f.root-servers.net.

Flaga -x powoduje, że dig wykonuje wyszukiwanie wsteczne adresu IP. DNS odpowiada rekordem PTR, który łączy adres IP z hostem, w tym przypadku f.root-servers.net.


Wracając do naszego pierwotnego żądania, serwer główny F zwrócił inny zestaw serwerów NS. Odpowiada za domenę najwyższego poziomu info. dig prosi jeden z tych serwerów o rekord A dla web01.bugsplat.info i otrzymuje w odpowiedzi inny zestaw serwerów NS, a następnie wysyła zapytanie jeden z tych serwery rekord A dla web01.bugsplat.info. . I w końcu otrzymuje odpowiedź!


Uch! Wygenerowany zostałby duży ruch, ale prawie wszystkie te rekordy były przez długi czas buforowane przez każdy serwer w łańcuchu. Twój komputer również buforuje te dane, podobnie jak Twoja przeglądarka. Najczęściej zapytania DNS nigdy nie docierają do serwerów głównych, ponieważ ich adresy IP prawie nigdy się nie zmieniają ( „Prawdopodobnie mówimy o dużym TTL dla rekordów w ich bazie danych. Jeśli adres IP serwera DNS nigdy się nie zmienił, nie oznacza to, że jego baza danych jest przechowywana w pamięci podręcznej na zawsze.”- około. z rrrav). Domeny najwyższego poziomu com, net, org itp. są również zwykle mocno buforowane.

Inne rodzaje

Jest jeszcze kilka typów, o których warto wiedzieć. Pierwszym z nich jest MX. Łączy nazwę domeny z jednym lub większą liczbą serwerów pocztowych. E-mail jest tak ważny, że ma swój własny typ rekordu DNS. Oto wartości MX dla petekeen.net:


$ dig petekeen.net mx;<<>> DiG 9.7.6-P1<<>> petekeen.net mx ;; opcje globalne: +cmd ;; Mam odpowiedź: ;; ->> NAGŁÓWEK<<- opcode: QUERY, status: NOERROR, id: 18765 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;petekeen.net. IN MX ;; ANSWER SECTION: petekeen.net. 86400 IN MX 60 web01.bugsplat.info. ;; Query time: 272 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:33:43 2013 ;; MSG SIZE rcvd: 93

Pamiętaj, że rekord MX wskazuje nazwę, a nie adres IP.


Innym typem, który prawdopodobnie znasz, jest CNAME. Rozszyfrowuje jako Nazwa kanoniczna(Nazwa kanoniczna). Łączy jedno imię z drugim. Spójrzmy na odpowiedź:


$ kop www.petekeen.net;<<>> DiG 9.7.6-P1<<>> www.petekeen.net ;; opcje globalne: +cmd ;; Mam odpowiedź: ;; ->> NAGŁÓWEK<<- opcode: QUERY, status: NOERROR, id: 16785 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.petekeen.net. IN A ;; ANSWER SECTION: www.petekeen.net. 86400 IN CNAME web01.bugsplat.info. web01.bugsplat.info. 300 IN A 192.241.250.244 ;; Query time: 63 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:36:58 2013 ;; MSG SIZE rcvd: 86

Od razu staje się jasne, że otrzymaliśmy dwie odpowiedzi. Pierwsza mówi, że www.petekeen.net wskazuje na web01.bugsplat.info. Drugi zwraca rekord A dla tego serwera. Możesz myśleć o CNAME jako o aliasie (lub aliasie) innego serwera.

Co jest nie tak z rekordem CNAME

Rekordy CNAME są bardzo przydatne, ale jest ważna kwestia: jeśli istnieje CNAME o określonej nazwie, nie można utworzyć kolejnego rekordu o tej samej nazwie. Żadnego MX, żadnego A, żadnego NS, nic.


Powodem jest to, że DNS dokonuje zamiany w taki sposób, że wszystkie rekordy lokalizacji, na którą wskazuje CNAME, są również ważne dla CNAME. W naszym przykładzie wpisy www.petekeen.net i web01.bugsplat.info będą zgodne.


Dlatego nie można utworzyć rekordu CNAME w domenie głównej, takiej jak petekeen.net, ponieważ zwykle potrzebuje ona innych rekordów, takich jak MX.

Żądania do innych serwerów

Wyobraźmy sobie, że konfiguracja DNS jest uszkodzona. Myślisz, że rozwiązałeś problem, ale dla pewności nie chcesz czekać na odświeżenie pamięci podręcznej. Używając dig, możesz wysłać żądanie do publicznego serwera DNS zamiast domyślnego, na przykład:


$ przeszukaj www.petekeen.net @ 8.8.8.8

Symbol @ z adresem IP lub hostem powoduje, że dig wysyła żądanie do określonego serwera na porcie domyślnym. Możesz użyć publicznego serwera DNS Google lub prawie publicznego serwera poziomu 3 w wersji 4.2.2.2.

Typowe sytuacje

Przyjrzyjmy się typowym sytuacjom znanym wielu twórcom stron internetowych.

Przekierowanie domeny na www

Często trzeba przekierować domenę iskettlemanstillopen.com na www.iskettlemanstillopen.com. Rejestratorzy tacy jak Namecheap lub DNSimple nazywają to Przekierowanie adresu URL. Oto przykład z panelu administracyjnego Namecheap:



Symbol @ wskazuje domenę główną iskettlemanstillopen.com. Przyjrzyjmy się rekordowi A dla tej domeny:


$ dig iskettlemanstillopen.com ;; SEKCJA PYTań: ;iskettlemanstillopen.com. W ;; SEKCJA ODPOWIEDZI: iskettlemanstillopen.com. 500 W 192.64.119.118

Ten adres IP należy do Namecheap i działa tam mały serwer WWW, który po prostu przekierowuje na poziomie HTTP na adres http://www.iskettlemanstillopen.com:


$ curl -I iskettlemanstillopen.com curl -I iskettlemanstillopen.com HTTP/1.1 302 Przeniesiono tymczasowo Serwer: nginx Data: piątek, 19 lipca 2013 23:53:21 GMT Typ zawartości: tekst/html Połączenie: keep-alive Długość zawartości : 154 Lokalizacja: http://www.iskettlemanstillopen.com/

CNAME dla Heroku lub Github

Spójrz na zrzut ekranu powyżej. W drugiej linii znajduje się CNAME. W tym przypadku www.iskettlemanstillopen.com wskazuje na aplikację działającą na Heroku.


domeny $ heroku === Warm-journey-3906 Nazwy domen Warm-journey-3906.herokuapp.com www.iskettlemanstillopen.com

Historia jest podobna z Githubem, ale tam musisz utworzyć specjalny plik w katalogu głównym repozytorium i nazwać go CNAME. Zobacz dokumentację .dns Dodaj tagi

DNS (Domain Name System) to „książka telefoniczna” Internetu. Używa adresu IP jako numeru telefonu i domen jako nazw kontaktów. W takiej książce można wpisać nie tylko „numer telefonu”, ale także dodatkowe informacje o kontakcie („e-mail”, „miejsce pracy” itp.).

Informacje o domenie są przechowywane na serwerach DNS. Aby dodać go do systemu DNS należy się zarejestrować zapisy zasobów. Za ich pomocą serwery dzielą się informacjami o domenach z innymi serwerami. Dopóki rekordy zasobów nie zostaną zarejestrowane dla domeny, nie znajduje się ona w internetowej „książce telefonicznej”. Dlatego działanie strony lub poczty na niej jest niemożliwe. Zanim zaczniesz określać rekordy zasobów, musisz delegować domenę, czyli zarejestrować dla niej serwery DNS. Można to zrobić zgodnie z instrukcją: . Następnie przejdź do rekordów zasobów. Zmiany zaczną obowiązywać po aktualizacji serwerów DNS (zwykle w ciągu 24 godzin).

Podstawowe rekordy zasobów: rekordy A, CNAME, MX, TXT i SPF. Przyjrzyjmy się im bliżej.

Rekord A

Rekord A (adres) jest jednym z kluczowych rekordów zasobów Internetu. Konieczne jest połączenie domeny z adresem IP serwera. Dopóki rekord A nie zostanie zarejestrowany, Twoja witryna nie będzie działać.
Po wpisaniu nazwy witryny w pasku adresu przeglądarki jest to rekord A, za pomocą którego DNS określa, z którego serwera należy otworzyć witrynę.

Przykłady rekordu A:

Nazwa wpisuTyp rekorduOznaczający
witryna.ruA123.123.123.123
sklep.site.ruA123.123.123.123

Możesz zarejestrować rekord A zgodnie z instrukcją:

Rekord CNAME

CNAME (nazwa kanoniczna) to rekord odpowiedzialny za powiązanie subdomen (na przykład www.site.ru) z kanoniczną nazwą domeny (site.ru) lub inną domeną.
Główną funkcją CNAME jest duplikacja rekordów zasobów domeny (A, MX, TXT) dla różnych subdomen.

Przykłady rekordów CNAME:

Nazwa wpisuTyp rekorduOznaczający
www.site.ruNAZWAwitryna.ru
webmail.site.ruNAZWAwebmail.hosting.site

Jeśli wpiszesz CNAME dla subdomeny www.site.ru i podaj wartość site.ru, witryna otworzy się z tego samego adresu IP co witryna.ru. Jeśli wpiszesz CNAME dla mail.site.ru i wskaż wartość webmail.hosting.site, potem dalej poczta.hosting.site Dystrybuowane będą te same rekordy zasobów, co w przypadku webmail.hosting.site.

Użycie rekordu CNAME wyklucza wykorzystanie innych rekordów zasobów dla danej subdomeny, czyli dla subdomeny webmail.site.ru Lub www.site.ru Nie można dodać jednocześnie rekordu A i rekordu CNAME.

Rejestrację rekordu CNAME możesz wykonać zgodnie z instrukcją:

Rekord MX

MX (Mail Exchanger) to rekord odpowiedzialny za serwer, przez który będzie działać poczta. Rekordy MX mają kluczowe znaczenie dla funkcjonalności poczty. Dzięki nim nadawca „rozumie”, który serwer ma wysłać pocztę dla Twojej domeny.

Przykłady rekordów MX:

Nazwa wpisuTyp rekorduPriorytetOznaczający
witryna.ruMX10 mx1.hosting.site
witryna.ruMX15 mx2.hosting.site

gdzie mx1.hosting..

Zwykle określa się dwa serwery pocztowe, tak że jeśli jeden z nich będzie niedostępny, poczta nadal będzie wysyłana do drugiego. Priorytet zapisu określa, do którego serwera poczta powinna zostać wysłana jako pierwsza. Im niższa liczba, tym wyższy priorytet. Zatem dla domeny site.ru serwerem pocztowym jest mx1.hosting..hosting. Jeśli priorytet jest taki sam, serwer jest wybierany losowo.

Rejestrację rekordu MX możesz wykonać zgodnie z instrukcją:

Wpis TXT

TXT (Ciąg tekstowy) – rekord służący do ustawienia niezbędnych komentarzy tekstowych dla domeny. Często służy do sprawdzenia własności domeny przy podłączaniu dodatkowych usług, a także jako kontener na rekordy SPF i klucze DKIM. Możesz zarejestrować nieograniczoną liczbę rekordów TXT, o ile nie kolidują one ze sobą.

Możesz zarejestrować rekord TXT zgodnie z instrukcją:

Rekord SPF

Rekord SPF (Sender Policy Framework) zawiera informację o liście serwerów, które mają prawo do wysyłania listów w imieniu danej domeny. Pomaga uniknąć nieuprawnionego użycia. Ustawienie SPF jest określone w rekordzie TXT domeny.

Przykład wpisu SPF:

Nazwa wpisuTyp rekorduOznaczający
witryna.rutekstv=spf1 obejmują:_spf.hosting..123.123.123 a mx ~all

gdzie 123.123.123.123 to adres IP serwera, którego potrzebujesz.

W tym przykładzie:

  • v=spf1— określa wersję użytego rekordu SPF;
  • obejmują:_spf.hosting.site— uwzględnia w rekordzie SPF wartość rekordu SPF innej domeny. Oznacza to, że wszystkie wartości rekordów SPF dla domeny „_spf.hosting.site” będą ważne dla domeny;
  • ip4: 123.123.123.123 - umożliwia odbieranie poczty z adresu IP 123.123.123.123;
  • A— umożliwia odbieranie poczty z serwera, którego adres IP znajduje się w rekordzie A-resource domeny. Mówiąc najprościej, z serwera, na którym hostowana jest witryna;
  • mx— umożliwia odbieranie poczty, jeśli serwer wysyłający jest określony w jednym z rekordów MX dla domeny;
  • ~wszystko— jeśli list przyszedł z serwera, którego nie ma na powyższej liście, warto go dokładniej przeanalizować. Czasem też używany -Wszystko- w takim przypadku pismo nie przechodzi dodatkowej kontroli i zostaje natychmiast odrzucone.

Rejestrację rekordu SPF możesz wykonać zgodnie z instrukcją:

Rekordy NS, PTR, SOA są rekordami serwisowymi i z reguły konfigurowane są automatycznie.

Wpis N.S

Rekord NS (autorytatywny serwer nazw) wskazuje serwery DNS odpowiedzialne za przechowywanie pozostałych rekordów zasobów domeny. Liczba rekordów NS musi ściśle odpowiadać liczbie wszystkich serwerów je obsługujących. Krytyczne dla działania usługi DNS.

Rekord PTR

PTR to odwrotny rekord DNS, który wiąże adres IP serwera z jego nazwą kanoniczną (domeną). Rekord PTR służy do filtrowania poczty.Jeśli zamówiłeś serwer VPS lub serwer dedykowany możesz zarejestrować rekord PTR zgodnie z instrukcją:

Rekord SOA

SOA (Start of Authority) to początkowy rekord strefy wskazujący, na którym serwerze przechowywane są informacje referencyjne dotyczące nazwy domeny. Krytyczne dla działania usługi DNS. Możesz dowiedzieć się więcej o tym, czym jest rekord SOA i jak go sprawdzić.

Każdy użytkownik Internetu posiadający domeny na serwerach dostawców hostingu może tworzyć i edytować swoje rekordy DNS. Rekordy DNS mają nazwę, typ rekordu i adres. Nazwy te mogą się zmieniać w różnych panelach. Na przykład może to wyglądać tak:

Nazwa/Host/Alias; Typ rekordu; Znaczenie/Odpowiedź/Miejsce docelowe/Adres.

We wszystkich opcjach „Typ nagrania” pozostaje taki sam.

Nazwa wpisu

Nazwa rekordu, znana również jako host/alias, to nazwa domeny, do której należy lub jest powiązany tworzony rekord.

Podczas tworzenia wpisu w polu „Nazwa” wskazywana jest pełna nazwa domeny. Nazwa subdomeny lub aliasu nie musi być podana w całości. Wystarczy wskazać nazwę trzeciego poziomu: mail, www, ftp. Jeśli podajesz swoje pełne imię i nazwisko, pamiętaj o umieszczeniu kropki na końcu. Oznacza to, że nazwa mail i mail.example.ru. to ta sama nazwa w polu Nazwa/Host/Alias.

Typy rekordów DNS

Przyjrzyjmy się głównym typom rekordów DNS, z którymi spotkasz się podczas obsługi swoich domen.

Typ rekordu A

Typ rekordu: A (rekord adresu) lub (adres internetowy 4). Ten typ rekordu wiąże konkretną nazwę domeny z konkretnym, dokładnym adresem IP.

Możesz dodać więcej niż jeden adres IP dla jednej domeny (nazwy hosta). Jest to konieczne, jeśli używana jest zapora sieciowa. W tym celu należy dodać drugi rekord typu A, podobny do pierwszego. Podając tylko inny adres IP.

Teoretycznie dla jednego adresu IP można określić więcej niż jedną domenę. Nie jest to jednak konieczne, ponieważ system nazw domen (DNS) posiada rekord specjalnie zaprojektowany do tworzenia aliasów. Ten typ rekordu nosi nazwę CNAME.

Typ rekordu AAAA

Typ rekordu: AAAA (rekord adresu dla IPv6) lub (adres internetowy 6). To samo. Taki sam jak typ rekordu A, ale adres IP ma wygląd IPv6. Na przykład: IPv6-2a03:4900:0:3::99:155

Typ rekordu CNAME

CNAME (rekord nazwy kanonicznej). Rekord CNAME umożliwia posiadanie i używanie więcej niż jednej nazwy domeny (hosta) na serwerze.

Najpierw dla jednego adresu IP tworzony jest rekord jednego typu. Nazwa domeny w rekordzie typu A nazywana jest nazwą kanoniczną. Inne domeny nazywane są mnemonicznymi. Nazwy mnemoniczne mogą być aliasami (nazwami dowolnymi) lub subdomenami. Oto przykładowy rekord CNAME:

popov.example.ru. CNAME przykład.ru.(nie zapomnij o kropkach na końcu).

Serwer może mieć dowolną liczbę aliasów. Dla każdego aliasu musisz utworzyć rekord CNAME.

Inny przykład rekordu CNAME:

hosting-1 W 8.8.8.8

www W CNAME hosting-1

ftp W CNAME hosting-1

Kupujemy drugie IP i przenosimy subdomenę ftp na drugie IP:

hosting-1 W 8.8.8.8

hosting-2 W 8.8.8.9

www W CNAME hosting-a

ftp W CNAME hosting-b, przenieść na drugi hostingowy serwer FTP.

Inny przykład rekordu CNAME:

hosting-1 W 8.8.8.8

peter W CNAME hosting-1

oleg W CNAME hosting-1

Łączymy aliasy z następującymi rekordami CNAME:

przykład.com. W CNAME przykład.ru.

www.przykład.com. W CNAME przykład.ru.

test.example.com. W CNAME przykład.ru.

W ten sposób łączymy domeny example.com, www.example.com, test.example.com z domeną kanoniczną example.ru. Kropki na końcu są wymagane.

Kolejny przykład przekierowania z wykorzystaniem rekordu CNAME

www.example.ru. W CNAME przykład.ru.

Zazwyczaj serwery domyślnie tworzą rekordy CNAME tylko dla subdomen domeny głównej i nie tworzą ich dla innych domen (jak na zdjęciu).

Typ rekordu MX

MX (serwer pocztowy). Ten wpis tworzy subdomenę obsługiwaną przez wewnętrzny (własny) serwer pocztowy.

Na przykład: Nazwa/host/alias - przykład.ru; Typ rekordu -MX (serwer pocztowy); Znaczenie/odpowiedź/miejsce docelowe/Adres – poczta. Za pomocą tego wpisu tworzysz subdomenę pocztową mail.example.ru. Jeśli korzystasz z wewnętrznej usługi pocztowej serwera, musisz utworzyć rekord typu „A” dla subdomeny mail.example.ru. Nazwa: poczta - A (typ rekordu) - Adres: IP serwera.

Jako usługi pocztowej możesz używać serwerów pocztowych innych firm. Aby to zrobić, musisz połączyć swoją domenę z serwerem pocztowym innej firmy. Automatycznie utworzy dla Ciebie rekord MX. Jeśli go nie utworzą, podadzą ci adres serwera pocztowego. Następnie musisz utworzyć rekordy CNAME i MX na swoim serwerze.

Użyj rekordu CNAME, aby przekierować domenę pocztową mail.example.ru. na adres domeny e-mail. Oraz rekord MX dla samej domeny example.ru. ustaw adres swojej skrzynki pocztowej innej firmy. Jako przykład możesz użyć serwera pocztowego Yandex.

  • W przypadku Yandex typ rekordu MX będzie wyglądał następująco:

Nazwa/host/alias - przykład.ru; Typ rekordu -MX (serwer pocztowy); Znaczenie/odpowiedź/cel/adres – mx.yandex.ru. Priorytet 10.

  • Typ CNAME to:

Nazwa/host/alias – poczta; Typ rekordu –CNAME; Znaczenie/odpowiedź/miejsce docelowe/Adres – domena.mail.yandex.ru. Priorytet 10.

Na serwerze pocztowym Yandex, bez delegowania domeny, możesz połączyć go tylko z serwerem pocztowym Yandex, tworząc tam skrzynkę pocztową.

Oprócz Yandex za pomocą rekordów MX możesz połączyć domenę z serwerami pocztowymi Google, Mail.ru i innymi:

Typ rekordu NS

Typ rekordu NS (serwer nazw). Jest to być może najważniejszy rodzaj nagrywania. Określa domeny (adresy) serwerów DNS obsługujących tę domenę.

Typ rekordu TXT

TXT (wprowadzanie tekstu). To jest wpis informacyjny. Nie przenosi obciążenia funkcjonalnego.

Typ rekordu SOA (początek autoryzacji)

Typ rekordu SOA pokazuje, gdzie na którym serwerze przechowywane są podstawowe informacje o tej domenie. Typ rekordu SOA określa pełną nazwę domeny strefy. Kwalifikowana nazwa domeny musi kończyć się kropką. Rekord SOA może mieć symbol @ zamiast kwalifikowanej nazwy. W takim przypadku nazwa domeny zostanie pobrana z pliku konfiguracyjnego.

  • Dowolny numer seryjny wersji danych (Serial). Kiedy serwer pomocniczy żąda aktualizacji danych, najpierw sprawdza numer seryjny;
  • Częstotliwość żądań aktualizacji danych z serwera pomocniczego (Dodatkowego) (Odśwież), w sekundach;
  • Okres ponownego żądania serwera pomocniczego w przypadku awarii podstawowego (Ponów próbę);
  • Data wygaśnięcia danych (Expire), w przeciwnym razie upłynięcie czasu, po którym serwer pomocniczy przestanie obsługiwać żądania, jeśli nie uda mu się przywrócić komunikacji z serwerem głównym, w sekundach;
  • I wreszcie czas życia danych strefy DNS w pamięci podręcznej serwera, który ich zażądał, w sekundach.

Oto przykład rekordu SOA dla Microsoft DNS

Jak edytować rekordy DNS w panelu ISPManager

W panelu DNS ISPManager edytowanie rekordów odbywa się na zakładce: Nazwy domen → „Kliknij” na domenę.

Jak edytować rekordy DNS w panelu DirectAdmin

W panelu DNS DirectAdmin edytowanie rekordów odbywa się na zakładce: Zarządzanie DNS.

Hostujemy wiele aplikacji internetowych dla naszych klientów. Oczywiście chcą używać własnych domen, aby łączyć się z tymi aplikacjami. Zwykle chcą, aby każdy użytkownik, który http://www.klient1.example lub http://klient1.example przeszedł do ich aplikacji internetowej.

Sytuacja, przed którą stoimy, polega na tym, że w najbliższej przyszłości powinniśmy mieć możliwość zmiany adresów IP. Nie chcemy też polegać na tym, że klient wprowadza zmiany w rekordach A w swoich domenach. Pomyśleliśmy więc, że użycie rekordów CNAME będzie działać, ale jak się dowiedzieliśmy, rekordy CNAME nie będą działać w przypadku domeny głównej.

Zasadniczo:

Klient1.przykład W CNAME klient1.mojadomenafirmy.przykład //to jest nieprawidłowe jako RFC www.klient1.przykład W CNAME klient1.mojadomenafirmy.przykład //to jest prawidłowe i będzie działać

Chcemy mieć możliwość zmiany adresu IP klienta1.mojadomena_firmy.przykład lub rekordu A i umożliwić naszym klientom śledzenie kontrolowanego przez nas rekordu.

w naszym DNS będzie to wyglądało tak:

Klient1.moja_domena_firmy.przykład W 192.0.2.1

Jakieś pomysły?

8 odpowiedzi

Dziękuję Sipvisowi i Panu Złu. Opracowaliśmy skrypt PHP, który przeanalizuje adres URL wprowadzony przez użytkownika i wstawi na początku www. (przykładowo, jeśli klient wejdzie na stronę kiragiannis.com, zostaje przekierowany na stronę www.kiragiannis.com). Zatem nasz klient wskazuje swój korzeń (np. klient1.com na rekord A, w którym znajduje się nasz przekierowanie), a następnie CNAME www na prawdziwy rekord A zarządzany przez nas.

Poniżej znajduje się kod na wypadek, gdybyś był zainteresowany nami w przyszłości.

Powodem, dla którego to pytanie wciąż pojawia się często, jest to, że, jak wspomniałeś, gdzieś ktoś pomyślał, że jest to ważny autor, a RFC stwierdza, że ​​nazwy domen bez subdomen przed nimi są nieważne. Jeśli jednak uważnie przeczytasz RFC, zdasz sobie sprawę, że nie jest to dokładnie to, co mówi. W rzeczywistości dokument RFC 1912 stwierdza:

Nie przesadzaj z rekordami CNAME. Użyj ich przy zmianie nazwy hostów, ale planuje się ich pozbyć(i poinformuj swoich użytkowników).

Niektóre hosty DNS umożliwiają uzyskanie funkcjonalności podobnej do CNAME na górze strefy (poziom domeny głównej w przypadku czystej nazwy domeny) przy użyciu niestandardowego typu rekordu. Do takich zapisów zaliczają się np.:

  • Alias ​​w DNSimple
  • ANAME w DNS to proste
  • NAME na easyDNS
  • CNAME w CloudFlare

Konfiguracja jest taka sama dla każdego dostawcy: podaj rekord ALIAS lub ANAME dla swojej domeny wierzchołkowej na stronie example.domain.com, tak samo jak w przypadku rekordu CNAME. W zależności od dostawcy DNS wartość pusta lub wartość @Name identyfikuje górę strefy.

ALIAS, ANAME lub @example.domain.com.

Jeśli Twój dostawca DNS nie obsługuje tego typu rekordów i nie możesz przełączyć się na takiego, który to obsługuje, będziesz musiał skorzystać z przekierowania subdomeny, co nie jest takie trudne, w zależności od protokołu lub oprogramowania serwera, które tego potrzebuje .

Zdecydowanie nie zgadzam się ze stwierdzeniem, że robią to tylko „administratorzy amatorzy” lub podobne pomysły. To po prostu „Co musi zrobić nazwa i jej usługa?” zrozumieć, a następnie dostosować konfigurację DNS, aby spełnić te życzenia; Jeśli Twoimi głównymi usługami są Internet i poczta e-mail, nie widzę żadnego PRAWDZIWEGO powodu, dla którego trwałe usunięcie rekordu CNAME byłoby problematyczne. W końcu kto wolałby @subdomain.domain.org od @domain.org? Po co „www”, jeśli sam protokół został już skonfigurowany? Nielogiczne jest zakładanie, że użycie nazwy domeny głównej byłoby niedopuszczalne.

CNAME — rekord główny technicznie nie jest sprzeczny z RFC, ale ma ograniczenia, które oznaczają, że nie jest zalecany.

Zazwyczaj wpis root będzie zawierał wiele wpisów. Powiedzmy 3 dla twoich serwerów nazw, a następnie jeden dla adresu IP.

Jeśli w węźle występuje rekord CNAME RR, nie powinny znajdować się żadne inne dane;

Oraz w dokumencie IETF „Typowe błędy obsługi i konfiguracji DNS”:

Często robią to niedoświadczeni administratorzy, aby w oczywisty sposób upewnić się, że nazwa Twojej domeny jest również hostem. Jednak serwery DNS, takie jak BIND, zobaczą rekord CNAME i odmówią dodania jakichkolwiek innych zasobów dla tej nazwy. Ponieważ żadne inne rekordy nie mogą współistnieć z rekordem CNAME, rekordy NS są ignorowane. Dlatego wszystkie hosty w domenie podunk.xx są również ignorowane!

Nie wiem, jak sobie z tym poradzą ani jakie mogą być negatywne skutki uboczne, ale używam Hover.com do hostowania niektórych moich domen i niedawno ustawiłem górę mojej domeny jako CNAME. Ich narzędzie do edycji DNS w ogóle nie narzekało, a moja domena szczęśliwie została rozwiązana poprzez przypisaną CNAME.

Oto, co Dig pokazuje mi dla tej domeny (rzeczywistej domeny działającej jako mojadomena.com):

; <<>> DiG 9.8.3-P1<<>> mojadomena.com ;; opcje globalne: +cmd ;; Mam odpowiedź: ;; ->> NAGŁÓWEK<<- opcode: QUERY, status: NOERROR, id: 2056 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;mydomain.com. IN A ;; ANSWER SECTION: mydomain.com. 394 IN CNAME myapp.parseapp.com. myapp.parseapp.com. 300 IN CNAME parseapp.com. parseapp.com. 60 IN A 54.243.93.102

Powinieneś umieścić kropkę na końcu domeny zewnętrznej, aby nie było powiedziane, że masz na myśli klient1.mojadomena_firmy.com.domenalokalna;

Więc po prostu zmień:

Klient1.com W CNAME klient1.mojadomenafirmy.com

Klient1.com W CNAME klient1.mojadomenafirmy.com.

Sipwiz ma rację, jedynym sposobem, aby to zrobić poprawnie, jest zastosowanie hybrydowego podejścia HTTP i DNS. Mój rejestrator jest stałym sprzedawcą firmy Tucows i oferuje on przekierowanie domeny jako bezpłatną wartość dodaną.

Jeśli Twoja domena to blah.com, zapytają Cię, dokąd chcesz przekierować domenę i wpisz ją na www.blah.com. Przypisują rekord A do swojego serwera Apache i automatycznie dodają blah.com jako hosta DNS. Vhost odpowiada błędem HTTP 302, przekierowując go pod właściwy adres URL. Jest prosty w skrypcie/konfiguracji i może być obsługiwany przez osoby z niższej półki, w przeciwnym razie zostałby wyrzucony.

Uruchom na przykład następujące polecenie: curl -v eclecticengineers.com