Introduzione
In questo documento viene descritto l'utilizzo della subnet zero e della subnet all-one.
Prerequisiti
Requisiti
Nessun requisito specifico previsto per questo documento.
Componenti usati
Il documento può essere consultato per tutte le versioni software o hardware.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Convenzioni
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Use Format Conventions for Technical Tips and Other Content.
Premesse
La subnet suddivide un determinato indirizzo di rete in subnet più piccole. In combinazione con altre tecnologie, quali Network Address Translation (NAT) e Port Address Translation (PAT), consente un utilizzo più efficiente dello spazio di indirizzi IP disponibile e riduce notevolmente il problema dell'esaurimento degli indirizzi. La subnet dispone di linee guida che riguardano l'utilizzo della prima e dell'ultima subnet, note rispettivamente come subnet zero e subnet all-one.
Subnet zero
Se un indirizzo di rete è sottoposto a subnet, la prima subnet ottenuta dopo la subnet dell'indirizzo di rete è denominata subnet zero.
Si consideri ad esempio un indirizzo di classe B, 172.16.0.0. Per impostazione predefinita, l'indirizzo di classe B 172.16.0.0 ha 16 bit riservati per rappresentare la parte host, quindi consente 65534 (216-2) indirizzi host validi. Se la rete 172.16.0.0/16 è sottoposta a subnet perché riceve in prestito tre bit dalla parte host, vengono ottenute otto (23) subnet. Questa tabella è un esempio che mostra le subnet ottenute tramite la creazione di subnet tra l'indirizzo 172.16.0.0, la subnet mask risultante, gli indirizzi di broadcast associati e l'intervallo di indirizzi host validi.
Indirizzo subnet |
Subnet mask |
Indirizzo broadcast |
Intervallo host valido |
172.16.0.0 |
255.255.224.0 |
172.16.31.255 |
da 172.16.0.1 a 172.16.31.254 |
172.16.32.0 |
255.255.224.0 |
172.16.63.255 |
da 172.16.32.1 a 172.16.63.254 |
172.16.64.0 |
255.255.224.0 |
172.16.95.255 |
da 172.16.64.1 a 172.16.95.254 |
172.16.96.0 |
255.255.224.0 |
172.16.127.255 |
da 172.16.96.1 a 172.16.127.254 |
172.16.128.0 |
255.255.224.0 |
172.16.159.255 |
da 172.16.128.1 a 172.16.159.254 |
172.16.160.0 |
255.255.224.0 |
172.16.191.255 |
da 172.16.160.1 a 172.16.191.254 |
172.16.192.0 |
255.255.224.0 |
172.16.223.255 |
da 172.16.192.1 a 172.16.223.254 |
172.16.224.0 |
255.255.224.0 |
172.16.255.255 |
da 172.16.224.1 a 172.16.255.254 |
Nell'esempio precedente, la prima subnet (subnet 172.16.0.0/19) è denominata subnet zero.
La classe della rete con subnet e il numero di subnet ottenute dopo la subnet non determinano la subnet zero. Si tratta della prima subnet ottenuta durante la creazione di subnet per l'indirizzo di rete. Inoltre, quando si scrive l'equivalente binario dell'indirizzo zero della subnet, tutti i bit della subnet (in questo caso i bit 14, 15 e 16) sono zero. La subnet zero è nota anche come subnet all-zeros.
Subnet All-One
Quando un indirizzo di rete è sottoposto a subnet, l'ultima subnet ottenuta è detta subnet all-one.
Con riferimento all'esempio precedente, l'ultima subnet ottenuta durante la creazione di subnet nella rete 172.16.0.0 (subnet 172.16.224.0/19) è detta subnet all-one.
La classe della rete subnet e il numero di subnet ottenute dopo la subnet non determinano la subnet all-one. Inoltre, quando si scrive l'equivalente binario dell'indirizzo di subnet all-one, tutti i bit di subnet (in questo caso i bit 14, 15 e 16) sono uno, da cui il nome.
Problemi relativi alla subnet zero e alla subnet all-one
In genere, è consigliabile non utilizzare la subnet zero e la subnet all-one per gli indirizzi IP. Basato sulla RFC 950, "È utile preservare ed estendere l'interpretazione di questi indirizzi speciali (di rete e broadcast) nelle reti subnet. Ciò significa che i valori di tutti gli zeri e di tutti quelli nel campo subnet non devono essere assegnati alle subnet (fisiche) effettive." Questo è il motivo per cui i tecnici di rete che devono calcolare il numero di subnet ottenute quando prendono in prestito tre bit calcolerebbero 23-2 (6) e non 23 (8). Il valore -2 indica che la subnet zero e la subnet all-one non vengono utilizzate in modo tradizionale.
Problemi relativi allo zero della subnet
L'utilizzo di una subnet zero per gli indirizzi IP è stato sconsigliato a causa della confusione insita in una rete e in una subnet con indirizzi non distinguibili.
Con riferimento all'esempio precedente, considerare l'indirizzo IP 172.16.1.10. Se si calcola l'indirizzo subnet associato a questo indirizzo IP, la risposta individuata sarà subnet 172.16.0.0 (subnet zero). Si noti che l'indirizzo di subnet è identico all'indirizzo di rete 172.16.0.0, per cui ogni volta che si esegue la creazione di subnet, si ottengono una rete e una subnet (subnet zero) con indirizzi non distinguibili. In passato questo era fonte di grande confusione.
Nelle versioni precedenti al software Cisco IOS® versione 12.0, per impostazione predefinita i router Cisco non consentivano di configurare su un'interfaccia un indirizzo IP appartenente alla subnet zero. Tuttavia, se un tecnico di rete che opera con una versione del software Cisco IOS precedente alla 12.0 ritiene sicuro usare la subnet zero, il comando ip subnet-zero in modalità di configurazione globale può essere usato per superare questa restrizione. A partire dal software Cisco IOS versione 12.0, i router Cisco ora hanno ip subnet-zero abilitato per impostazione predefinita, ma se il tecnico di rete ritiene non sicuro usare la subnet zero, è possibile usare il comando no ip subnet-zero per limitare l'uso degli indirizzi della subnet zero.
Nelle versioni precedenti al software Cisco IOS versione 8.3, è stato usato il comando service subnet-zerocommand.
Problemi relativi alla subnet all-one
L'utilizzo della subnet "all-one" per gli indirizzi IP è stato in passato scoraggiato a causa della confusione insita in una rete e in una subnet con indirizzi di broadcast identici.
Con riferimento all'esempio precedente, l'indirizzo di broadcast per l'ultima subnet (subnet 172.16.224.0/19) è 172.16.255.255, che è identico all'indirizzo di broadcast della rete 172.16.0.0, a cui è stata applicata una subnet, quindi ogni volta che si esegue una subnet si ottengono una rete e una subnet (subnet di tutti i componenti) con indirizzi di broadcast identici. In altre parole, un tecnico di rete potrebbe configurare l'indirizzo 172.16.230.1/19 su un router, ma se il sistema lo consente, non potrà più distinguere tra una subnet broadcast locale (172.16.255.255 (/19)) e la broadcast completa di classe B (172.16.255.255(/16)).
Sebbene sia ora possibile utilizzare la subnet all-one, una configurazione errata può causare problemi.
Nota: per ulteriori informazioni, vedere Quantità host e subnet.
Per darti un'idea di quello che può succedere, considera:
Subnet All-in-One non configurata correttamente
I router da 2 a 5 sono router di accesso ciascuno con diverse connessioni asincrone (o ISDN) in arrivo. La rete (192.168.1.0/24) è suddivisa in quattro parti per questi utenti in ingresso. Ogni elemento viene assegnato a uno dei router di accesso. Inoltre, le linee asincrone sono configurate dip unnum e0. Il router 1 ha route statiche che puntano al router di accesso corretto e ogni router di accesso ha punti di routing predefiniti al router 1.
La tabella di routing del router 1 è simile alla seguente:
C 192.168.2.0/24 E0
S 192.168.1.0/26 192.168.2.2
S 192.168.1.64/26 192.168.2.3
S 192.168.1.128/26 192.168.2.4
S 192.168.1.192/26 192.168.2.5
I router di accesso hanno la stessa route connessa per Ethernet, la stessa route predefinita e diverse route host per le rispettive linee asincrone (tramite il protocollo PPP (Point-to-Point)).
Router 2 routing table: Router 3 routing table:
C 192.168.2.0/24 E0 C 192.168.2.0/24 E0
S 10.0.0.0/0 192.168.2.1 S 10.0.0.0/0 192.168.2.1
C 192.168.1.2/32 async1 C 192.168.1.65/32 async1
C 192.168.1.5/32 async2 C 192.168.1.68/32 async2
C 192.168.1.8/32 async3 C 192.168.1.74/32 async3
C 192.168.1.13/32 async4 C 192.168.1.87/32 async4
C 192.168.1.24/32 async6 C 192.168.1.88/32 async6
C 192.168.1.31/32 async8 C 192.168.1.95/32 async8
C 192.168.1.32/32 async12 C 192.168.1.104/32 async12
C 192.168.1.48/32 async15 C 192.168.1.112/32 async15
C 192.168.1.62/32 async18 C 192.168.1.126/32 async18
Router 4 routing table: Router 5 routing table:
C 192.168.2.0/24 E0 C 192.168.2.0/24 E0
S 10.0.0.0/0 192.168.2.1 S 10.0.0.0/0 192.168.2.1
C 192.168.1.129/32 async1 C 192.168.1.193/32 async1
C 192.168.1.132/32 async2 C 192.168.1.197/32 async2
C 192.168.1.136/32 async3 C 192.168.1.200/32 async3
C 192.168.1.141/32 async4 C 192.168.1.205/32 async4
C 192.168.1.152/32 async6 C 192.168.1.216/32 async6
C 192.168.1.159/32 async8 C 192.168.1.223/32 async8
C 192.168.1.160/32 async12 C 192.168.1.224/32 async12
C 192.168.1.176/32 async15 C 192.168.1.240/32 async15
C 192.168.1.190/32 async18 C 192.168.1.252/32 async18
Cosa succede se gli host non sono configurati correttamente sulle linee asincrone in modo da avere una maschera 255.255.255.0 invece di una maschera 255.255.255.192? Funziona tutto bene?
Osservare cosa succede quando uno di questi host (192.168.1.24) esegue una trasmissione locale (NetBIOS, WINS). Il pacchetto ha il seguente aspetto:
s: 192.168.1.24 d: 192.168.1.255
Il pacchetto viene ricevuto dal router 2. Il router 2 lo invia al router 1, che lo invia al router 5, che lo invia al router 1, che lo invia al router 5 e così via, fino alla scadenza del periodo di durata (TTL).
Questo è un altro esempio (host 192.168.1.240):
s: 192.168.1.240 d: 192.168.1.255
Questo pacchetto viene ricevuto dal router 5. Il router 5 lo invia al router 1, che lo invia al router 5, che lo invia al router 1, che lo invia al router 5 e così via, fino alla scadenza del TTL. Se si verifica questa situazione, si potrebbe pensare di essere sotto un attacco pacchetto. Visto il carico sul router 5, non sarebbe un'ipotesi irragionevole.
Nell'esempio riportato sotto, è stato creato un ciclo di routing. Poiché il router 5 gestisce la subnet all-one, viene sottoposto a blast. I router da 2 a 4 vedono il pacchetto "broadcast" solo una volta. Anche il router 1 viene colpito, ma cosa succede se è un Cisco 7513, che può gestire questa situazione? In tal caso, è necessario configurare gli host con la subnet mask corretta.
Per proteggere il sistema da host non configurati correttamente, creare un'interfaccia di loopback su ciascun router di accesso con una route statica 192.168.1.255 all'indirizzo di loopback. È possibile utilizzare l'interfaccia Null0, ma in questo modo il router genera messaggi ICMP (Internet Control Message Protocol) "unreachable" (irraggiungibili).
Usa subnet zero e subnet all-one
Si noti che, anche se sconsigliato, l'intero spazio di indirizzi che include la subnet zero e la subnet all-one è sempre stato utilizzabile. L'uso della subnet all-one è stato esplicitamente consentito e l'uso della subnet zero è esplicitamente consentito a partire dal software Cisco IOS versione 12.0. Anche prima del software Cisco IOS versione 12.0, è possibile usare la subnet zero se si immette il comando di configurazione globale ip subnet-zero
Per informazioni sui problemi relativi alla subnet zero e all'utilizzo della subnet all-one, consultare la RFC 1878. Al momento, l'utilizzo della subnet zero e della subnet all-one è generalmente accettato e la maggior parte dei fornitori ne supporta l'utilizzo. Tuttavia, in alcune reti, in particolare quelle che utilizzano software legacy, l'utilizzo della subnet zero e della subnet all-one può causare problemi.
Nota: solo gli utenti Cisco registrati possono accedere alle informazioni e agli strumenti Cisco interni.
Informazioni correlate