Memiliki beberapa CNAME

11

Kami memiliki domain DNS kami dengan CNAME 5 tingkat karena alasan historis. Beberapa hal mendapat outsourcing untuk ketersediaan tinggi dll. Tapi bukan itu intinya di sini. Pertanyaan saya adalah memiliki 5 CNAME berlebihan untuk resolver DNS? Saya tidak dapat menemukan situs web terkenal dengan lebih dari 2-3 CNAME bersarang level yang menunjuk ke berbagai domain DNS.

Hop CNAME kami terlihat sebagai berikut: (Saya menggunakan xyz hanya sebagai contoh)

www.xyz.com -> xyz.akadns.net -> xyz.worldwide.akadns.net -> xyz.cedexis.net -> xyz.msedge.net -> host1.msedge.net (final A \ AAAA record)

Saya melihat banyak klien mengeluh tentang masalah resolusi DNS ke situs web kami ketika situs lain berfungsi dengan baik untuk mereka, meskipun ketika saya menggunakan http://check-host.net/check-dns?host=www.xyz.com untuk menguji DNS kami resolusi.

Tampaknya selalu berfungsi dengan baik di seluruh dunia. Kesimpulan saya adalah bahwa kebanyakan penyedia ISP lokal resolver DNS mengacaukan ketika salah satu Hop di atas gagal untuk menyelesaikan. nslookup gagal pada komputer klien ini hanya untuk situs web kami dan itu juga secara sporadis.

Apakah CNAME multi level seperti ini merupakan desain yang buruk secara umum?

Vishal Naidu
sumber
1
Saya bekerja untuk Akamai beberapa tahun yang lalu, dan salah satu pelanggan kami melaporkan bahwa router tertentu memiliki masalah dengan 5 level sarang. Saya pikir firmware router akhirnya diperbaiki.
Barmar

Jawaban:

15

Apakah CNAME multi level seperti ini merupakan desain yang buruk secara umum?

CNAME ke rantai CNAME tidak dilarang tetapi karena Anda sudah mengalaminya, itu bukan solusi yang sangat kuat.

Setiap CNAME tambahan meningkatkan kedalaman rekursi untuk resolver, dan kedalaman itu tidak selalu tanpa batas. Anda juga berisiko membuat loop, atau memicu algoritma deteksi loop.

Untuk mendapatkan kesan tentang berapa banyak dan kueri mana yang perlu dilakukan server nama pengguna Anda, jalankan jejak DNS:

dig +trace www.example.com 

atau di Windows

nslookup -debug www.example.com
HBruijn
sumber
11

HBrujin benar, tetapi sebenarnya kedalaman rekursi jauh lebih buruk daripada apa pun dig +traceyang akan ditunjukkan kepada Anda. Kedalaman rekursi adalah sesuatu yang sering dicemooh dan terlalu diremehkan, tetapi orang-orang itu lupa bahwa Anda tidak hanya menyelesaikan ~ 5 CNAMEcatatan. Ini karena menyelesaikan target CNAMEcatatan menciptakan kebutuhan untuk mencari setiap server nama di jalan, yang sering lebih banyak daripada yang terlihat pada pandangan pertama.

Apakah CNAMEtarget tersebut tinggal di domain lain? Anda harus berulang ke nameservernya, yang membutuhkan tidak hanya NSmerekam pencarian tetapi juga mencari di A(AAA)mana lem tidak ada. Apakah nameserver untuk mereka nameserver tinggal di top level domain yang berbeda? Jika TLD tersebut tidak membagikan server nama, kemungkinan catatan lem tidak akan disertakan dan Anda harus mengulang melalui server nama TLD lainnya juga. Dan seterusnya.

Setiap CNAMEcatatan yang ditambahkan ke rantai dapat menambahkan secara eksponensial ke jumlah pencarian yang diperlukan tergantung pada jumlah server nama yang perlu diulang. Rantai CNAME+ NS+ A(AAA)record lookup ini pada gilirannya bisa berbelit-belit, mencapai lebih dari 150 level pada cache emtpy. Di sinilah batas kedalaman rekursi bisa menjadi sangat buruk, mengakibatkan kegagalan sementara untuk mencari domain Anda pada cache kosong, dan untuk alasan yang sering tidak segera terlihat.

Singkatnya, Anda dapat melakukan ini, tetapi lanjutkan dengan hati-hati, dan menanggapi umpan balik seperti ini dengan serius. Anda tidak memiliki kendali atas seberapa sering server DNS rekursif di internet dihidupkan ulang atau dibersihkan.

Andrew B
sumber
Perangkat lunak klien saya duduk di sekelompok mesin yang membuat panggilan http jarak jauh. Apakah adil jika mencoba lagi semua CNAME dari klien mengurangi kedalaman rekursi \ load pada resolver? Apakah ini pendekatan yang bagus atau saya melewatkan sesuatu? Saya tahu bahwa CNAME tidak akan berubah di seluruh geografi.
Vishal Naidu
Bukan pendekatan yang bagus. Biasanya server yang gagal mencari data akan melakukan cache sementara kegagalan. Kueri mungkin berhasil lagi di masa mendatang (katakanlah, 5 menit dari sekarang), tetapi tidak mungkin berhasil dengan segera coba lagi. Jika Anda memberikan nama catatan DNS Anda, saya dapat memberi tahu Anda apakah ini benar-benar masalah kedalaman rekursi atau sesuatu yang kurang jelas. Aku benci kalau kita masuk ke lubang kelinci yang salah.
Andrew B
0

Multi-level CNAMEsering berguna dalam praktik. Setiap tingkat pengalihan menyediakan tingkat kontrol di zona administratif yang berpotensi berbeda atau organisasi yang sama sekali berbeda. Meskipun ini hampir tidak setiap teknis diperlukan, ia dapat mengatasi masalah organisasi .

Seperti yang dicatat orang lain, ini dapat menyebabkan kesulitan, tetapi ini dapat diatasi:

  • pantau semua server DNS. Mungkin ada yang tidak berfungsi. Pantau server eksternal dan server Anda sendiri. Anda mungkin perlu melaporkan masalah ke Akamai atau vendor lain.

  • TTLs harus ditetapkan cukup tinggi untuk memungkinkan caching tetapi cukup rendah sehingga Anda dapat menggeser traffic dengan cukup cepat untuk aplikasi Anda

anak ayam
sumber
2
Saya tidak yakin saya mengerti rekomendasi pemantauan. Tidak hanya batas kedalaman rekursi bervariasi dari produk ke produk, bagaimana Anda mengusulkan untuk memantau mereka? Anda tidak dapat dengan mudah mengidentifikasi akar penyebab infra rekursif orang lain.
Andrew B