I nomi host di una lettera sono validi?


14

RFC-952 (ultima frase del punto 1 sotto Assunzioni) proibisce i nomi di host a carattere singolo e ho avuto esperienze ( oltre 7 anni fa nell'estate del 2002) in cui alcuni servizi si rifiuterebbero di lavorare con nomi di host a carattere singolo (perché tali nomi erano non conforme agli standard), ma ho visto un numero di nomi host a carattere singolo in uso negli ultimi anni. I nomi host a carattere singolo sono ora validi? (In tal caso, qual è il riferimento di validazione corretto?)

modifica (per consolidare alcune informazioni dalle risposte): vari aspetti del DNS sembrano essere definiti in diversi RFC, tra cui 1035 , 1123 e 2181 . Dalla sezione 11 di 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.
[ ... ]
See also [RFC1123] section 6.1.3.5.

Dalla sezione 6.1.3.5 di RFC-1123 :

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].

Dalla sezione 2.1 di RFC-1123 :

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.

E infine, come originariamente riferito, da 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.

È dal seguire questa catena che in origine sono arrivato a dire che RFC-952 proibisce i nomi host a carattere singolo.

Risposte:


2

C'è una differenza tra "valido" e "funziona". È del tutto possibile che i nomi host non siano considerati validi se si tratta di singoli caratteri (il mio post precedente non resiste). Tuttavia, molti sistemi lo consentono. Un sistema principale, il sistema AD / DNS di Microsoft, ha una ragione legacy per consentire nomi a carattere singolo.

I nomi NetBIOS della vecchia scuola possono contenere da 1 a 15 caratteri. Questa specifica è stata sviluppata indipendentemente da RFC952, è basata su un file diverso chiamato lmhosts, quindi funziona. Il problema si presentò quando Microsoft si trasferì da NetBEUI (in realtà NBF, NetBIOS Frame Protocol) e su TCP / IP (in realtà NBT) e Microsoft dovette consentire la risoluzione dei nomi su reti TCP / IP. MS ha scelto di mantenere la risoluzione in stile NetBIOS con i server WINS, evitando la necessità di host conformi a RFC952.

Poi arrivarono Active Directory e le sue dipendenze DNS. Il DNS dinamico era la regola, quindi i client dovevano registrare il loro ComputerName (i primi 15 caratteri del quale è anche il loro nome NetBIOS) nel dominio DNS. Poiché MS consente ai nomi NetBIOS a carattere singolo di registrarsi in DNS, ciò ha messo in conflitto con RFC952. Decisero di codificare i loro sistemi per consentirlo, dal momento che questo emulava il modo in cui funzionava sempre ai tempi di WINS.

BIND DNS consente anche nomi host a carattere singolo. Ma RFC2181 afferma praticamente che le applicazioni devono controllare i propri dati, non più DNS. Il che ci lascia con una vasta popolazione di dispositivi e software per i quali i nomi host a carattere singolo vanno bene, e alcuni valori anomali che sono rigorosi RFC952 che non lo consentono.


There is a difference between 'valid' and 'it works'. In definitiva, penso che sia la risposta più ragionevole, anche se ho apprezzato moltissimo tutta la discussione generata. La conclusione che vorrei trarre è che i nomi host di un carattere sono ancora tecnicamente non validi, ma a questo punto funzionano praticamente universalmente. (Allo stesso modo, i caratteri di sottolineatura sono vietati, ma funzionano per la maggior parte.)
Isaac

11

Penseresti che siano validi perché i server dei nomi radice sono tutti host a lettera singola (a.root-servers.net) e le specifiche DNS non creano un'eccezione specifica per loro. L'RFC in questione è specificamente per il formato di file host, non DNS. Il DNS è stato definito in un successivo RFC ( RFC 1035 lo avvia). RFC 1123 (1989) lo afferma chiaramente.

 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.

Pertanto, i nomi host a lettera singola sono validi nei sistemi basati su DNS e lo sono stati da prima dell'invenzione dello spam. Sistemi che non sono conformi a RFC e potrebbero essere derisi. A meno che non utilizzino affatto il DNS e utilizzino solo i file host, a quel punto la pietà è una scelta migliore.


Va bene, l'ho letto in RFC-1123, ma l'ho interpretato nel senso che si applicano le specifiche che ho letto in RFC-952, tranne per il fatto che una cifra è consentita anche come primo carattere (come hai citato, non altera il divieto di nomi a carattere singolo). Per quanto riguarda i server root, ad un certo punto mi era stato detto che erano una specie di eccezione speciale alla regola.
Isaac,

2

Dato che i nomi degli host erano in circolazione prima ancora che qualcuno pensasse di scrivere un RFC su di loro, non riesco a vedere alcun motivo per cui i nomi di host di singoli caratteri dovrebbero improvvisamente diventare "illegali". Quel particolare RFC mi ha perso quando ha affermato

Questa RFC è la specifica ufficiale

perché un RFC NON è uno standard. Neanche vicino.

Nonostante quanto sopra, si deve notare che la RFC in questione è stata creata per essere applicata a un gruppo relativamente piccolo, vale a dire il Dipartimento della Difesa (presumibilmente degli Stati Uniti).


RFC per definizione non è uno standard. "Richiesta di commenti" non urla esattamente "standard" a nessuno. Interessante che se la siano cavata nei loro documenti.
Mark Henderson

1
en.wikipedia.org/wiki/Domain_name_system#Internet_standards elenca molti RFC che "definiscono" il protocollo DNS. RFC-1123 (come menzionato da sysadmin1138) è tra quelli elencati e fa riferimento a RFC-952. È stata la mia esperienza che, mentre le RFC sono richieste, diventano accettabili quando vengono accettate.
Isaac,

@Farseeker, non sto dicendo che è il caso qui, ma sono sempre sorpreso dalle persone, la maggior parte di chi dovrebbe sapere meglio, che citano le RFC come se fossero l'autorità suprema su qualsiasi argomento particolare. Sono abbastanza sicuro che ci sia un RFC da qualche parte. ;)
John Gardeniers,

1
Alcuni RFC in realtà sono standard: gli RFC 1034 e 1035 insieme, ad esempio, comprendono STD0013. Il motivo per cui sono chiamati "Richieste di commenti" è storico, e in sostanza aveva a che fare con un gruppo di laureati di basso livello alla fine degli anni '60 che non volevano spuntare i loro superiori (l'ho sentito di persona direttamente dal autore di RFC 1).
Alnitak,

2
@Giovanni, suggerisco di leggere RFC 2026. "A una specifica che raggiunge lo stato di Standard viene assegnato un numero nella serie STD mantenendo il suo numero RFC". Scrivo documenti IETF per il mio lavoro quotidiano.
Alnitak,

1

Penso che i nomi host attuali dipendono maggiormente dalle specifiche DNS poiché il DNS è ciò che la maggior parte delle persone utilizzerà all'interno di una rete o in Internet. Detto questo, vengono in mente tre RFC (1034 - concetti, 1035 - implementazione e 2181 - chiarimenti sul DNS).

La sezione 3 di RFC 1034 dice:

Lo spazio dei nomi di dominio è una struttura ad albero. Ogni nodo e foglia dell'albero corrisponde a un insieme di risorse (che può essere vuoto). Il sistema di dominio non fa distinzioni tra gli usi dei nodi interni e delle foglie, e questo memo usa il termine "nodo" per riferirsi ad entrambi.

Ogni nodo ha un'etichetta, che è lunga da zero a 63 ottetti. I nodi Brother potrebbero non avere la stessa etichetta, sebbene la stessa etichetta possa essere utilizzata per nodi che non sono fratelli. Un'etichetta è riservata e questa è l'etichetta nulla (ovvero lunghezza zero) utilizzata per la radice.

E nella Sezione 11 di RFC 2181 abbiamo un chiarimento sulla denominazione di ciascun nodo dell'indirizzo:

Il DNS stesso pone una sola limitazione sulle etichette particolari
che possono essere utilizzate per identificare i record di risorse. Quella restrizione
riguarda la lunghezza dell'etichetta e il nome completo. La lunghezza di ogni etichetta è limitata tra 1 e 63 ottetti. Un nome di dominio completo è limitato a 255 ottetti (inclusi i separatori)

Quindi, alla luce delle specifiche DNS, puoi avere a.domain.tld


Dal prossimo paragrafo nella Sezione 11 di 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. Fondamentalmente, poiché a.domain.tld è valido in DNS non lo rende un nome host valido. La fine della Sezione 11 fa riferimento alla Sezione 6.1.3.5 di RFC-1123, che cita la Sezione 2.1 di se stessa e RFC-952, come discusso nella risposta di sysadmin1138.
Isaac,

La citazione alla fine della sezione 6.1.3.5 parla di meno vincoli sulla convenzione di denominazione definita su 952. Inoltre, la 952 definisce una tabella host DOD e non sono del tutto convinto che sia più pertinente delle specifiche DNS.
coredump,

Penso che la liberalizzazione dei vincoli menzionati alla fine del 6.1.3.5 si riferisca solo al consentire al primo carattere di essere un numero - questa è l'unica modifica menzionata nella sezione 2.1 della stessa RFC (che è la sezione a cui 6.1. 3.5 si riferisce). È in quella sezione 2.1 che si fa riferimento alla definizione da RFC-952 come definizione di un nome host legale.
Isaac,

Controlla anche RFC 920 e 921 che tratta della migrazione dal vecchio DARPA ai nomi di dominio.
coredump,

1

Come hai stabilito, RFC 1123 non è completamente chiaro su questo problema di lunghezza.

La sezione 2.1 dice:

Il software host DEVE gestire nomi host fino a 63 caratteri e DOVREBBE gestire nomi host fino a 255 caratteri

Dal momento che questo testo sostituisce completamente completamente il testo da RFC 952, si dovrebbe anche supporre che qualsiasi lunghezza fino a 255 caratteri sia legale.

Purtroppo nel 1989 Internet Drafts non ottenne la recensione incredibilmente rigorosa che ottengono ora, quindi probabilmente l'ambiguità non fu semplicemente individuata.


1
Ma 2.1 dice anche 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. Non è ragionevole interpretare questo per significare che la tua citazione non sostituisce completamente il testo di RFC-952?
Isaac,

Lo dice, ma è chiaramente sbagliato. RFC 1123 modifica inoltre esplicitamente la lunghezza consentita di un nome host.
Alnitak,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.