Przekaż domenę główną do subdomeny www za pomocą rekordów DNS

16

I www.mydomain.comwskazał na Azure WWW.

www.mydomain.com --- CNAME --- mydomain.azurewebsites.net

Kiedy odwiedzam www.mydomain.com , wszystko działa dobrze. To jest dobre.

Rzecz w tym, mydomain.com że nie działa. Azure zezwala tylko na poddomenę www.

W niektórych serwerach nazw używam rekordu FWD, aby przekazać katalog główny na stronę www, i to działa dobrze. Mój obecny serwer nazw (zoneedit.com) nie ma tego rekordu FWD.

Czy istnieje rekord DNS, którego możemy użyć do przekazania domeny głównej do subdomeny www?

Shaun Luttin
źródło
2
ZoneEdit ma „WebForward”, który to zrobi.
Michael Hampton
@MichaelHampton Perfect. Użyliśmy@ | StealthForward | http://www.example.com
Shaun Luttin
To wspaniale. Zasadniczo robi to, co opisałem (wskazuje na prawdziwy adres IP, czyli serwer WWW, który po prostu przekierowuje za pomocą serii HTTP 300 na www.domain.com).
DTK

Odpowiedzi:

17

Niestety jest to dobrze znana wada protokołu DNS. W standardach DNS nie zdefiniowano żadnego typu rekordu, który pozwoliłby na alias wierzchołka domeny. Wiele osób zakłada, że CNAMErekordy mogą być wykorzystane do tego, ale istnieją techniczne powody, dla których nie można tego zrobić .

Wielu dostawców DNS wdraża niestandardowe (czytaj: fałszywe) typy rekordów DNS, aby rozwiązać ten problem. Za kulisami te fałszywe rekordy implementują niestandardowe zachowanie w oprogramowaniu tej firmy za pomocą kombinacji zsyntetyzowanych Arekordów i przekierowania serwera WWW, aby osiągnąć zamierzony cel. FWDjest jednym z nich, podobnie jak ten WebForward, do którego Michael skierował cię w komentarzach.

Andrew B.
źródło
8

Podsumowanie: Krótko mówiąc, nie możesz mieć rekordu, który chcesz, a Twój serwer DNS robi rzeczy we właściwy sposób.

Objaśnienie: Naruszeniem standardów DNS jest posiadanie CNAME (rekord aliasu / rekord przekazywania) w wierzchołku strefy (pusta nazwa z przodu strefy).

Powodem tego jest rekord CNAME nie może powodować konfliktu części nazwy z żadnym rekordem oprócz rekordu DNSSec. W typowej strefie rekord CNAME w wierzchołku strefy koliduje z co najmniej rekordami SOA i NS (i prawdopodobnie kilkoma innymi). Chociaż niektóre serwery DNS na to pozwalają, jest to zła rzecz i może powodować trudne do zdiagnozowania awarie (nie wspominając o tym, że nie będzie działać, jeśli przeniesiesz hosting strefy na zgodny z normami serwer DNS, na przykład oparty na BIND) .

Albo mają rekordy A w wierzchołku strefy (mogą być prostym serwerem WWW, który rzuca HTTP 302 na www). Jeśli możesz uzyskać statyczne numery IP dla instancji serwera Azure, umieść rekord A dla każdego na szczycie swojej strefy i utwórz pojedynczy rekord CNAME o nazwie „www”, który wskazuje rekord wierzchołka.

Jako przykład :

 

$ ORIGIN example.com.

@ IN SOA ns1.przyklad.com. [email protected]. (
                                 101;
                                 172800;
                                 900;
                                 1209600;
                                 3600; )
@ IN NS ns1.przyklad.com.
@ IN NS ns2.example.com.
@ IN A 123.234.1.123
@ IN A 123.234.1.124
@ IN A 123.234.1.125
ns1 IN A 123.234.1.126
ns2 IN A 123.234.1.127
www W CNAME example.com.
DTK
źródło
5
IMO: Nie warto bez końca powtarzać, dlaczego wierzchołki CNAME nie działają. Jeśli użytkownik zapyta, dlaczego nie działa, mamy na to kanoniczną odpowiedź z referencjami RFC. (pełne ujawnienie: napisałem to) Jeśli nie pytają o to, najlepiej trzymać się odpowiedzi na pytanie w formie wyrażenia.
Andrew B
Dziękuję Ci. Powinienem był poszukać kanonicznej odpowiedzi. Będę pamiętać, że następnym razem.
DTK
2

Niektóre protokoły mają standardy dla typów rekordów DNS, inne niż rekordy A, dotyczące wyszukiwania usługi. SMTP z powiązanymi rekordami MX jest tego dobrym przykładem. Nie ma zdefiniowanych typów rekordów DNS dla HTTP. Najprawdopodobniej twój poprzedni dostawca DNS / rejestratora miał usługę przekierowania HTTP lub usługę odwrotnego proxy.

Aby osiągnąć swój cel, musisz skonfigurować serwer WWW (wirtualny host), aby przekierowywał HTTP 301 lub 302 z jednej nazwy hosta na drugą, konfigurował odwrotny serwer proxy HTTP, konfigurował niezależne hosty wirtualne lub używał aliasów hosta wirtualnego, aby ta sama instancja serwera WWW będzie odpowiadać na obie nazwy A.

Joshua Hoblitt
źródło
0

Jeśli chcesz uzyskać odpowiedź specyficzną dla platformy Azure, musisz utworzyć inny rekord CNAME wskazujący na awverify.mydomain.azurewebsites.net w ten sposób

www.mydomain.com --- CNAME --- awverify.mydomain.azurewebsites.net
Abhishek Siddhu
źródło