Apakah Active Directory mendukung nama DNS dengan spasi?

8

Sambil mencari cara mengatur beberapa layanan DNS-SD statis di jaringan kami, saya menemukan http://www.dns-sd.org/ServerStaticSetup.html , yang menyatakan bahwa server DNS Active Directory tidak mendukung nama-nama DNS dengan spasi. di dalamnya.

Adakah yang tahu kalau ini masih benar (karena halaman terasa agak tua)?

Pembaruan: Saya terutama merujuk pada catatan PTR dan SRV, bukan catatan A / CNAME.

gmw
sumber
2
Ini mungkin terdengar gila, tapi saya belum pernah, PERNAH melihat URI dengan ruang di dalamnya, apakah itu bahkan sesuai dengan RFC? Mengapa ini relevan bagi Anda?
SpacemanSpiff
11
RFC1035, 2.3.1: "[Domain] harus dimulai dengan huruf, diakhiri dengan huruf atau angka, dan sebagai karakter interior hanya huruf, angka, dan tanda hubung."
Smudge
@SpacemanSpiff tidak sesuai dengan RFC dalam skema URL apa pun di mana bagian domain mewakili nama host (yaitu sebagian besar dari mereka).
Alnitak
Bisakah Anda memberikan contoh jenis entri tertentu yang ingin Anda buat?
Alnitak
1
@ Sam frasa yang dikutip adalah tentang nama host , bukan "domain".
Alnitak

Jawaban:

30

Sebuah nama domain dapat mencakup oktet biner dalam kisaran 0 sampai 255.

Namun jika entri AD Anda mewakili nama host , maka spasi bukan karakter yang valid. Nama host (yaitu nama domain yang menunjuk ke Aatau AAAAmerekam) harus mengikuti aturan dari RFC 1123 , yang pada dasarnya membatasi karakter hukum ke LDH ("letter digit hyphen").

Oleh karena itu untuk entri lain sangat mungkin bahwa MS telah salah menafsirkan RFC. Mereka tidak akan menjadi yang pertama, dan mereka pasti tidak akan menjadi yang terakhir.

Referensi

§5.1 dari RFC 1035 :

Konvensi mengutip memungkinkan karakter sewenang-wenang untuk disimpan dalam nama domain.

dan §6.1.3.5. dari RFC 1123 :

DNS mendefinisikan sintaksis nama domain secara umum - serangkaian label yang masing-masing berisi hingga 63 oktet 8-bit, dipisahkan oleh titik-titik

dan §11 dari RFC 2181 :

string biner apa pun yang dapat digunakan sebagai label dari catatan sumber daya apa pun

Alnitak
sumber
Ya, itulah yang saya takutkan ...
gmw
9

Ah - maaf karena lalai, tetapi Anda memiliki anjing mengibas di sini. Bukan berarti AD tidak mendukung nama DNS dengan spasi, tetapi bahwa nama DNS per definisi dan RFC tidak diizinkan memiliki ruang untuk memulai. RFC 952 dan 1123 keduanya tidak memungkinkan spasi sebagai bagian dari nama DNS.

Jadi, AD tidak kekurangan dukungan untuk spasi dalam nama DNS sebagai penyingkat tetapi karena mengikuti aturan yang sama seperti orang lain.

TomTom
sumber
2
Harap perbaiki nomenklatur Anda. Secara ketat, entri DNS dapat berisi spasi. Namun nama host mungkin tidak.
Alnitak
3
Saya khawatir Anda salah - dalam DNS ada contoh nama domain yang jelas ( bukan "ZONE names") yang tidak diharuskan mengikuti aturan RFC 1123 untuk "nama host". Misalnya, nama awalan garis bawah yang digunakan oleh SRVcatatan. Lihat juga §6.1.3.5 dari RFC 1123, dan profil saya.
Alnitak
6
catatan srv adalah kasus yang sangat istimewa. Sekali lagi, Anda bermain game. Di mana itu memungkinkan ruang? Mengutip bagian dari RFC yang memungkinkan ruang di suatu tempat, dan Anda benar. Teruslah berdebat dan Anda masih salah. Berhenti merengek seseorang menyebut gertakan Anda.
TomTom
17
Saya sudah melakukannya - §6.1.3.5 dari RFC 1123 "DNS mendefinisikan sintaksis nama domain secara umum - serangkaian label yang masing-masing berisi hingga 63 oktet 8-bit, dipisahkan oleh titik-titik" . Standar DNS dan protokolnya adalah pekerjaan harian saya, FWIW.
Alnitak
1
@ Tom Tom jawaban saya mengutip bagian yang relevan dari RFC yang menunjukkan bahwa Alnitak benar; nama host MUNGKIN TIDAK mengandung spasi, namun nama DNS secara umum MUNGKIN memang mengandung spasi.
aculich
5

Jawaban untuk pertanyaan spesifik Anda adalah TIDAK , Direktori Aktif TIDAK mengizinkan spasi di nama host DNS . Karakter yang dilarang secara jelas diuraikan dalam KB 909264 - Konvensi penamaan di Active Directory untuk komputer, domain, situs, dan OU di bagian yang berlabel Karakter yang dilarang dibaca:

Nama host DNS tidak boleh mengandung karakter kosong atau spasi.

Untuk memperluas jawaban di luar Active Directory ke sistem nama domain DNS secara umum situasinya sedikit lebih rumit karena sementara ruang secara teknis diizinkan dalam kasus tertentu, dalam praktiknya Anda mungkin tidak akan pernah menghadapi kasus seperti itu sendiri.

Jawaban singkatnya: JANGAN GUNAKAN RUANG DI HOSTNAM DNS!

Jawaban panjang menurut §2 dari RFC 3696, nama Pembatasan domain (DNS), adalah:

Setiap karakter, atau kombinasi bit (sebagai oktet), diizinkan dalam nama DNS.

Itu terus menyatakan (penekanan milikku):

Namun, ada formulir pilihan yang dibutuhkan oleh sebagian besar aplikasi. Bentuk yang disukai ini adalah satu-satunya yang diizinkan dalam nama domain tingkat atas, atau TLD. Secara umum, ini juga satu-satunya formulir yang diizinkan di sebagian besar nama tingkat kedua yang terdaftar di TLD, meskipun beberapa nama yang biasanya tidak terlihat oleh pengguna mematuhi aturan lain. Itu berasal dari aturan ARPANET asli untuk penamaan host (yaitu, aturan "hostname") dan mungkin lebih baik digambarkan sebagai "aturan LDH", setelah karakter yang diizinkan. Aturan LDH, sebagaimana diperbarui, menyatakan hal itulabel (kata atau string yang dipisahkan oleh titik) yang membentuk nama domain harus hanya terdiri dari karakter alfabet dan numerik ASCII [ASCII], ditambah tanda hubung. Tidak ada simbol atau karakter tanda baca lainnya yang diizinkan, juga ruang kosong. Jika tanda hubung digunakan, itu tidak diizinkan muncul di awal atau di akhir label. Ada aturan tambahan yang pada dasarnya mensyaratkan bahwa nama domain tingkat atas tidak semuanya numerik.

Dalam praktiknya ini berarti Anda TIDAK boleh menggunakan spasi , meskipun dalam spesifikasi paling umum dari nama domain seperti yang didefinisikan dalam kutipan ini dari §5.1 dari RFC 1035 , dimungkinkan untuk memberikan spasi pada nama domain:

<domain-name> membuat sebagian besar data dalam file master. Label dalam nama domain dinyatakan sebagai string karakter dan dipisahkan oleh titik-titik. Konvensi mengutip memungkinkan karakter sewenang-wenang untuk disimpan dalam nama domain.

dan

<character-string> diekspresikan dalam satu atau dua cara: sebagai serangkaian karakter yang berdekatan tanpa spasi interior, atau sebagai string yang dimulai dengan "dan diakhiri dengan". Di dalam "string terbatas karakter apa pun dapat terjadi, kecuali untuk" itu sendiri, yang harus dikutip menggunakan \ (back slash).

Perlu diingat bahwa di tempat lain dalam RFC 1035, khususnya §2.3 , ia memperingatkan:

2.3. Konvensi

Sistem domain memiliki beberapa konvensi yang menangani masalah tingkat rendah, tetapi mendasar. Sementara implementor bebas untuk melanggar konvensi ini DALAM SISTEM SENDIRI, ia harus mematuhi konvensi ini dalam SEMUA perilaku yang diamati dari host lain.

2.3.1. Sintaks nama yang disukai

Spesifikasi DNS berusaha untuk menjadi senyata mungkin dalam aturan untuk membangun nama domain. Idenya adalah bahwa nama objek apa pun yang ada dapat dinyatakan sebagai nama domain dengan perubahan minimal.

Namun, ketika menetapkan nama domain untuk objek, pengguna yang bijaksana akan memilih nama yang memenuhi aturan sistem domain dan aturan yang ada untuk objek, apakah aturan ini dipublikasikan atau tersirat oleh program yang ada.

Misalnya, saat memberi nama domain email, pengguna harus memenuhi aturan memo ini dan yang ada di RFC-822. Saat membuat nama host baru, aturan lama untuk HOSTS.TXT harus diikuti. Ini menghindari masalah ketika perangkat lunak lama dikonversi untuk menggunakan nama domain.

Saya pasti akan menerima klarifikasi atau koreksi lebih lanjut dari interpretasi saya, tetapi tolong jangan lakukan itu kecuali Anda dapat mengutip bagian-bagian tertentu dari RFC untuk menegaskan atau menolak interpretasi ini.

aculich
sumber
jadi apakah Anda akan menghapus downvote Anda sekarang? ;)
Alnitak
+1 untuk referensi tambahan (RFC 3696)
Alnitak
@Alnitak, ya saya awalnya salah membaca posting Anda ... sekarang telah menghapus downvote dan komentar saya (jadi itu tidak menambah kebingungan lagi). Cara RFC ditulis itu mengejutkan seluruh internet ini berfungsi sama sekali! :)
aculich
Saya memang menambahkan kualifikasi "biner" setelah Anda berkomentar untuk memperjelas bahwa saya tidak akan berbicara tentang oktet alamat IP. DNS RFC bisa sangat sulit untuk dipahami karena saat itu mereka tidak mendapatkan ulasan yang teliti seperti sekarang, dan ketidakkonsistenan cukup umum.
Alnitak
Ya, saya melihat bahwa sekarang Anda memang mengatakan "biner".
aculich
0

Secara default, server DNS Windows tidak mendukung spasi dalam nama DNS, namun dengan mengubah pengaturan 'Properti Server -> tab Lanjut -> Pemeriksaan nama' menjadi 'Semua Nama', server akan dengan senang hati menerima dan menyajikan entri dengan spasi.

tracyb
sumber