Apakah nama host satu huruf valid?

14

RFC-952 (kalimat terakhir dari poin 1 di bawah Asumsi) melarang nama host karakter tunggal dan saya telah memiliki pengalaman ( lebih dari 7 tahun yang lalu musim panas tahun 2002) di mana beberapa layanan akan menolak untuk bekerja dengan nama host karakter tunggal (karena nama tersebut adalah tidak memenuhi standar), tetapi saya telah melihat sejumlah nama host karakter tunggal yang digunakan dalam beberapa tahun terakhir. Apakah nama host satu karakter sekarang valid? (Jika demikian, apa referensi validasi yang tepat?)

sunting (untuk menggabungkan beberapa informasi dari jawaban): berbagai aspek DNS tampaknya didefinisikan di beberapa RFC, termasuk 1035 , 1123 , dan 2181 . Dari RFC-2181 bagian 11 :

Note however, that the various applications that make use of DNS data
can have restrictions imposed on what particular values are
acceptable in their environment.  For example, that any binary label
can have an MX record does not imply that any binary name can be used
as the host part of an e-mail address.
[ ... ]
See also [RFC1123] section 6.1.3.5.

Dari RFC-1123 bagian 6.1.3.5 :

The DNS defines domain name syntax very generally -- a
string of labels each containing up to 63 8-bit octets,
separated by dots, and with a maximum total of 255
octets.  Particular applications of the DNS are
permitted to further constrain the syntax of the domain
names they use, although the DNS deployment has led to
some applications allowing more general names.  In
particular, Section 2.1 of this document liberalizes
slightly the syntax of a legal Internet host name that
was defined in RFC-952 [DNS:4].

Dari RFC-1123 bagian 2.1 :

The syntax of a legal Internet host name was specified in RFC-952
[DNS:4].  One aspect of host name syntax is hereby changed: the
restriction on the first character is relaxed to allow either a
letter or a digit.  Host software MUST support this more liberal
syntax.

Dan akhirnya, seperti yang dirujuk pada awalnya, dari RFC-952 :

1. A "name" (Net, Host, Gateway, or Domain name) is a text string up
to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus
sign (-), and period (.).  Note that periods are only allowed when
they serve to delimit components of "domain style names". (See
RFC-921, "Domain Name System Implementation Schedule", for
background).  No blank or space characters are permitted as part of a
name. No distinction is made between upper and lower case.  The first
character must be an alpha character.  The last character must not be
a minus sign or period.
[ ... ]
Single character names or nicknames are not allowed.

Dari mengikuti rantai ini saya awalnya mengatakan bahwa RFC-952 melarang nama host karakter tunggal.

Ishak
sumber

Jawaban:

2

Ada perbedaan antara 'valid' dan 'itu berfungsi'. Sangat mungkin bahwa nama host tidak dianggap valid jika mereka adalah karakter tunggal (posting saya sebelumnya tidak bertahan). Namun, cukup banyak sistem yang memungkinkannya. Satu sistem utama, sistem AD / DNS Microsoft, memiliki alasan warisan untuk mengizinkan nama karakter tunggal.

Panjang nama NetBIOS sekolah-panjang diizinkan 1 sampai 15 karakter. Spesifikasi ini dikembangkan secara independen dari RFC952, ini didasarkan pada file yang berbeda yang disebut lmhosts, jadi itu berfungsi. Masalahnya muncul ketika Microsoft pindah dari NetBEUI (sebenarnya NBF, NetBIOS Frame Protocol) dan ke TCP / IP (sebenarnya NBT), dan Microsoft harus mengizinkan resolusi penamaan melalui jaringan TCP / IP. MS memilih untuk mempertahankan resolusi gaya NetBIOS dengan server WINS, melewati kebutuhan untuk host yang sesuai dengan RFC952.

Kemudian muncul Active Directory dan dependensi DNS-nya. Dynamic DNS adalah aturannya, jadi klien harus mendaftarkan ComputerName mereka (15 karakter pertama yang juga merupakan nama NetBIOS mereka) di domain DNS. Karena MS mengizinkan nama NetBIOS satu karakter untuk mendaftar dalam DNS, ini membuatnya bertentangan dengan RFC952. Mereka memutuskan untuk membuat kode sistem mereka untuk mengizinkan ini, karena ini meniru bagaimana dulu bekerja pada WINS hari.

BIND DNS juga memungkinkan nama host karakter tunggal. Tetapi RFC2181 cukup banyak menyatakan bahwa aplikasi perlu memeriksa data mereka sendiri, bukan DNS lagi. Yang membuat kita dengan populasi besar perangkat dan perangkat lunak yang nama host karakter tunggal baik-baik saja, dan beberapa pencilan yang ketat RFC952 yang tidak mengizinkannya.

sysadmin1138
sumber
There is a difference between 'valid' and 'it works'. Pada akhirnya, saya pikir itu jawaban yang paling masuk akal, meskipun saya sangat menghargai semua diskusi yang dihasilkan. Kesimpulan yang akan saya tarik adalah bahwa nama host satu karakter masih secara teknis tidak valid, tetapi berfungsi cukup universal pada saat ini. (Demikian pula, garis bawah dilarang, tetapi lakukan sebagian besar pekerjaan.)
Isaac
11

Anda akan berpikir itu valid karena root name-server semua host surat tunggal (a.root-servers.net), dan spesifikasi DNS tidak membuat pengecualian khusus untuk mereka. RFC yang dimaksud adalah khusus untuk format file host, bukan DNS. DNS didefinisikan dalam RFC yang lebih baru ( RFC 1035 memulainya). RFC 1123 (1989) menyatakannya dengan jelas.

 The syntax of a legal Internet host name was specified in RFC-952
 [DNS:4].  One aspect of host name syntax is hereby changed: the
 restriction on the first character is relaxed to allow either a
 letter or a digit.  Host software MUST support this more liberal
 syntax.

Jadi, nama host satu huruf valid dalam sistem berbasis DNS, dan sudah sejak sebelum spam ditemukan. Sistem yang tidak sesuai dengan RFC, dan dapat diejek. Kecuali mereka tidak menggunakan DNS sama sekali dan hanya menggunakan file host, di mana titik kasihan adalah pilihan yang lebih baik.

sysadmin1138
sumber
Oke, saya akan membacanya di RFC-1123, tapi saya menafsirkannya berarti bahwa spesifikasi yang saya baca di RFC-952 berlaku, kecuali bahwa satu digit juga diperbolehkan sebagai karakter pertama (seperti yang Anda kutip, itu tidak mengubah larangan nama karakter tunggal). Mengenai server root, pada titik tertentu saya diberitahu bahwa mereka adalah semacam pengecualian khusus terhadap aturan tersebut.
Isaac
2

Karena nama host sudah ada sebelum orang bahkan berpikir untuk menulis RFC tentang mereka, saya tidak dapat melihat alasan mengapa nama host satu karakter tiba-tiba menjadi "ilegal". RFC tertentu itu kehilangan saya ketika dinyatakan

RFC ini adalah spesifikasi resmi

karena RFC BUKAN standar. Bahkan tidak dekat.

Meskipun telah disebutkan sebelumnya, harus dicatat bahwa RFC yang dimaksud dibuat untuk diterapkan pada kelompok yang relatif kecil, yaitu Departemen Pertahanan (mungkin dari AS).

John Gardeniers
sumber
RFC menurut definisi bukan merupakan standar. "Permintaan Komentar" tidak persis berteriak "standar" kepada siapa pun. Menarik bahwa mereka lolos dengan dokumen mereka sendiri.
Mark Henderson
1
en.wikipedia.org/wiki/Domain_name_system#Internet_standards mencantumkan banyak RFC yang "mendefinisikan" protokol DNS. RFC-1123 (sebagaimana disebutkan oleh sysadmin1138) adalah di antara yang terdaftar dan referensi RFC-952. Sudah pengalaman saya bahwa, meskipun RFC adalah permintaan, mereka menjadi definisi ketika diterima.
Isaac
@Farseeker, saya tidak mengatakan itu yang terjadi di sini tapi saya selalu terkejut pada orang-orang, yang kebanyakan harus tahu lebih baik, yang mengutip RFC seolah-olah mereka adalah otoritas tertinggi pada subjek tertentu. Saya cukup yakin ada RFC di suatu tempat. ;)
John Gardeniers
1
Beberapa RFC sebenarnya adalah standar - RFC 1034 dan 1035 secara bersamaan, misalnya, terdiri dari STD0013. Alasan mereka disebut "Permintaan Komentar" itu bersejarah, dan pada dasarnya ada hubungannya dengan sekelompok post-grade kelas rendah pada akhir 60-an yang tidak ingin memberi tanda pada atasan mereka (saya mendengar bahwa secara langsung langsung dari penulis RFC 1).
Alnitak
2
@ John Saya sarankan Anda membaca RFC 2026. "Sebuah spesifikasi yang mencapai status Standar diberi nomor dalam seri STD sambil mempertahankan nomor RFC-nya". Saya menulis dokumen IETF untuk pekerjaan harian saya.
Alnitak
1

Saya pikir nama host saat ini lebih tergantung pada spesifikasi DNS karena DNS adalah apa yang kebanyakan orang akan gunakan di dalam jaringan atau di internet. Mengatakan bahwa, tiga RFC muncul dalam pikiran (1034 - konsep, 1035 - implementasi dan 2181 - klarifikasi tentang DNS).

Bagian 3 dari RFC 1034 mengatakan:

Ruang nama domain adalah struktur pohon. Setiap simpul dan daun pada pohon terkait dengan set sumber daya (yang mungkin kosong). Sistem domain tidak membuat perbedaan antara penggunaan node interior dan daun, dan memo ini menggunakan istilah "simpul" untuk merujuk keduanya.

Setiap node memiliki label, yang panjangnya nol hingga 63 oktet. Node saudara mungkin tidak memiliki label yang sama, meskipun label yang sama dapat digunakan untuk node yang bukan saudara. Satu label dicadangkan, dan itu adalah label nol (yaitu, panjang nol) yang digunakan untuk root.

Dan dalam Bagian 11 RFC 2181 kami memiliki klarifikasi tentang penamaan setiap node dari alamat:

DNS sendiri menempatkan hanya satu batasan pada label tertentu
yang dapat digunakan untuk mengidentifikasi catatan sumber daya. Satu batasan
terkait dengan panjang label dan nama lengkap. Panjang label mana pun terbatas antara 1 hingga 63 oktet. Nama domain lengkap dibatasi hingga 255 oktet (termasuk pemisah)

Jadi, berdasarkan spesifikasi DNS, Anda dapat memiliki a.domain.tld

coredump
sumber
Dari paragraf berikutnya di Bagian 11 RFC-2181: Note however, that the various applications that make use of DNS data can have restrictions imposed on what particular values are acceptable in their environment. For example, that any binary label can have an MX record does not imply that any binary name can be used as the host part of an e-mail address. Pada dasarnya, karena a.domain.tld valid dalam DNS tidak menjadikannya nama host yang valid. Akhir Bagian 11 referensi Bagian 6.1.3.5 dari RFC-1123, yang mengutip Bagian 2.1 dari dirinya sendiri dan RFC-952, seperti yang dibahas dalam jawaban sysadmin1138.
Isaac
Kutipan pada akhir bagian 6.1.3.5 berbicara tentang sedikit kendala pada konvensi penamaan yang didefinisikan pada 952. Juga 952 mendefinisikan tabel host DOD dan saya tidak sepenuhnya yakin bahwa itu lebih relevan daripada spesifikasi DNS.
coredump
Saya berpikir bahwa liberalisasi hambatan yang disebutkan pada akhir 6.1.3.5 hanya merujuk pada memungkinkan karakter pertama menjadi angka - ini adalah satu-satunya modifikasi yang disebutkan dalam bagian 2.1 dari RFC yang sama (yang merupakan bagian yang 6.1. 3,5 merujuk). Di bagian 2.1 itulah definisi dari RFC-952 dirujuk sebagai definisi nama host hukum.
Isaac
Juga periksa RFC 920 dan 921 yang memperlakukan migrasi dari DARPA lama ke nama domain.
coredump
1

Seperti yang telah Anda tentukan, RFC 1123 tidak sepenuhnya jelas tentang masalah panjang ini.

Bagian 2.1 mengatakan:

Perangkat lunak host HARUS menangani nama host hingga 63 karakter dan HARUS menangani nama host hingga 255 karakter

Karena teks ini secara efektif benar-benar menimpa teks dari RFC 952, itu juga harus diambil untuk menyiratkan bahwa setiap panjang hingga 255 karakter adalah legal.

Sayangnya kembali pada tahun 1989 Internet Draf tidak mendapatkan ulasan yang sangat ketat yang mereka dapatkan sekarang, sehingga ambiguitas itu mungkin tidak terlihat.

Alnitak
sumber
1
Tetapi 2.1 juga mengatakan The syntax of a legal Internet host name was specified in RFC-952 [DNS:4]. One aspect of host name syntax is hereby changed: the restriction on the first character is relaxed to allow either a letter or a digit. Bukankah masuk akal untuk menafsirkan ini berarti bahwa kutipan Anda tidak sepenuhnya menimpa teks dari RFC-952?
Isaac
Itu mengatakan itu, tapi itu jelas salah. RFC 1123 juga secara eksplisit mengubah panjang nama host yang diizinkan.
Alnitak