Teruskan domain root ke subdomain www menggunakan catatan DNS

16

Saya telah www.mydomain.commenunjuk situs web Azure.

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

Ketika saya mengunjungi www.mydomain.com, semuanya berfungsi dengan baik. Ini bagus.

Masalahnya adalah, mydomain.comtidak berhasil. Azure hanya mengizinkan subdomain www.

Dalam beberapa nameserver, saya menggunakan Catatan FWD untuk meneruskan root ke www, dan ini berfungsi dengan baik. Server nama saya saat ini (zoneedit.com) tidak memiliki Catatan FWD ini.

Apakah ada Data DNS yang dapat kita gunakan untuk meneruskan domain root ke subdomain www?

Shaun Luttin
sumber
2
ZoneEdit memiliki "WebForward" yang akan melakukan ini.
Michael Hampton
@MichaelHampton Sempurna. Kami menggunakan@ | StealthForward | http://www.example.com
Shaun Luttin
Itu keren. Ini pada dasarnya melakukan apa yang saya jelaskan (menunjuk ke IP nyata, yaitu server web yang baru saja mengalihkan dengan seri HTTP 300 ke www.domain.com).
DTK

Jawaban:

17

Sayangnya, ini adalah kelemahan protokol DNS yang terkenal. Tidak ada tipe catatan yang ditentukan dalam standar DNS yang akan memungkinkan Anda untuk alias puncak domain. Banyak orang beranggapan bahwa CNAMEcatatan dapat digunakan untuk mencapai hal ini tetapi ada alasan teknis mengapa tidak dapat .

Banyak penyedia DNS menerapkan tipe catatan DNS khusus (baca: palsu) untuk mencoba dan mengatasi kekurangan ini. Di belakang layar, catatan palsu ini menerapkan perilaku khusus dalam perangkat lunak perusahaan menggunakan kombinasi Acatatan yang disintesis dan pengalihan server web untuk mencapai tujuan yang Anda inginkan. FWDadalah salah satu dari ini, seperti WebForwardyang diarahkan Michael Anda dalam komentar.

Andrew B
sumber
8

Ringkasan: Singkatnya, Anda tidak dapat memiliki catatan yang Anda inginkan, dan host DNS Anda melakukan hal-hal dengan Cara Yang Benar.

Penjelasan: Merupakan pelanggaran terhadap standar DNS untuk memiliki CNAME (alias rekam / forward record) di zona puncak (nama kosong di bagian depan zona).

Alasan untuk ini adalah catatan CNAME tidak dapat memiliki konflik porsi nama dengan catatan apa pun kecuali catatan DNSSec. Dalam zona tipikal, catatan CNAME di zona puncak akan bertabrakan dengan setidaknya catatan SOA dan NS (dan kemungkinan beberapa lainnya). Sementara beberapa server DNS akan mengizinkan ini, itu adalah Hal Buruk, dan dapat menyebabkan sulit untuk mendiagnosis kegagalan (belum lagi tidak akan berfungsi jika Anda memindahkan hosting zona ke server DNS yang sesuai standar, seperti apa pun yang berbasis BIND) .

Entah memiliki catatan di zona puncak (mereka bisa menjadi server web sederhana yang hanya melempar HTTP 302 ke www). Jika Anda bisa mendapatkan nomor IP statis untuk instance server Azure Anda, letakkan catatan A untuk masing-masing di puncak zona Anda, dan buat catatan CNAME tunggal yang disebut "www" yang menunjuk ke catatan puncak.

Sebagai contoh :

 

$ ORIGIN example.com.

@ DALAM SOA ns1.example.com. [email protected]. (
                                 101;
                                 172800;
                                 900;
                                 1209600;
                                 3600; )
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ DALAM A 123.234.1.123
@ DALAM A 123.234.1.124
@ DALAM A 123.234.1.125
ns1 DALAM A 123.234.1.126
ns2 DALAM A 123.234.1.127
www DALAM CNAME example.com.
DTK
sumber
5
IMO: Tidak ada gunanya mengulangi terus-menerus mengapa apeks CNAME tidak berfungsi. Jika pengguna bertanya mengapa mereka tidak berfungsi, kami memiliki jawaban kanonik untuk itu dengan referensi RFC. (pengungkapan penuh: Saya menulisnya) Jika mereka tidak bertanya tentang hal itu, yang terbaik adalah tetap menjawab pertanyaan seperti yang diungkapkan.
Andrew B
Terima kasih. Saya seharusnya mencari jawaban kanonik. Saya akan ingat itu untuk waktu berikutnya.
DTK
2

Beberapa protokol memiliki standar untuk jenis catatan DNS, selain catatan A, untuk menemukan layanan. SMTP dengan MX record terkait itu adalah contoh yang baik untuk ini. Tidak ada tipe catatan DNS yang ditentukan untuk HTTP. Kemungkinan penyedia DNS / registrar Anda sebelumnya memiliki layanan pengalihan HTTP atau reverse proxy.

Untuk mencapai tujuan Anda, Anda harus mengatur server web (virtual host) untuk melakukan pengalihan HTTP 301 atau 302 dari satu nama host ke yang lain, mengatur proxy HTTP terbalik, mengatur host virtual independen, atau menggunakan alias host virtual sehingga contoh server web yang sama akan merespons kedua nama A.

Joshua Hoblitt
sumber
0

Jika Anda menginginkan jawaban khusus untuk Azure, Anda perlu membuat catatan CNAME lain yang menunjuk ke awverify.mydomain.azurewebsites.net seperti ini

www.mydomain.com --- CNAME --- awverify.mydomain.azurewebsites.net
Abhishek Siddhu
sumber