IP Subnetting VLSM CIDR SCUOLA TELECOMUNICAZIONI FORZE ARMATE - Chiavari TCP/IP: IP Subnetting VLSM CIDR
Sistema di numerazione in base 2 LOGICA BINARIA: Sistema di numerazione in base 2
Numeri binari :peso dei bit all’interno di un byte
Calcolo dei valori corrispondenti in decimale Numeri binari : Calcolo dei valori corrispondenti in decimale Codice binario Valore bit Valore decimale 00000000 00000001 00000011 00000111 00001111 00011111 00111111 01111111 11111111 1 1+2 1+2+4 1+2+4+8 1+2+4+8+16 1+2+4+8+16+32 1+2+4+8+16+32+64 1+2+4+8+16+32+64+128 3 7 15 31 63 127 255
Conversione da decimale (base 10) a binario (base 2) Metodo della divisione: Base 10 => Base 2
Rappresentazione ESADECIMALE Binario Esadecimale Un numero esadecimale si scrive: 0x1F2A Prefisso Ogni numero rappresenta un’insieme di 4 bit. Es.: 1 = 0001 F = 1111 2 = 0010 A = 1010
Classi di indirizzi A B C Classe Indirizzo di rete di host Numero totale di reti per rete a (1 byte) b.c.d (3 byte) 126 (1-126) 16.777.214 a.b (2 byte) c.d 16.384 (128-191) 65.534 a.b.c d 2.097.151 (192-223) 254 A B C
Bits Usati per Subnet Mask Subnet Mask standard Bits Usati per Subnet Mask Classi Notazione punto decimale Class A Class B Class C 11111111 00000000 00000000 00000000 11111111 11111111 00000000 00000000 11111111 11111111 11111111 00000000 255.0.0.0 255.255.0.0 255.255.255.0 Esempio di subnet standard per la classe B 16.201 131.107. 0.0 255.255. a. b. IP Address Subnet Mask Network ID Host ID c. d
SUBNETTING (RFC 950,1812) E’ possibile suddividere ulteriormente la parte host degli indirizzi IP in due parti, subnet e host, dividendo così la rete in sottoreti Concetto di : Subnetting Sappiamo ad esempio che, dei 32 bit di un indirizzo IP di classe B, 16 bit sono dedicati all’indirizzo di rete, mentre gli altri 16 bit identificano univocamente gli host. Con il subnetting si possono usare come indirizzi di sottorete una parte (p.es. 10 bit) dei 16 bit dedicati agli host. E mantenere quelli rimanenti (6 bit) per l’identificazione degli host all’interno delle sottoretI. Con la suddivisione delle reti in sottoreti nasce il concetto di: maschera di sottorete ( subnet mask )
SUBNETTING
SUBNETTING: subnet mask Una maschera di sottorete è simile a un indirizzo IP a quattro byte. Serve ad indicare la parte dell’indirizzo IP utilizzata per individuare rete e sottorete e quale invece per identificare l’host: I bit a 1 indicano quali bit dell’indirizzo IP costituiscono l’indirizzo di rete o sottorete, mentre i bit a 0 individuano i bit destinati agli hosts. Si converte poi in decimale byte a byte: INDIRIZZO di CLASSE B 129.150.28.132 e subnet mask 255.255.255.192 10000001 10010110 00011100 10 000100 Indirizzo IP NETMASK 11111111 11111111 11111111 11 000000 255 255 255 192 Indirizzo di rete e sottorete (26 bit) Ind. Host ( 6 bit )
SUBNETTING In altre parole, la maschera di sottorete (subnet mask) contiene: - bit a 1 in corrispondenza dei campi rete e sottorete - bit a 0 in corrispondenza del campo host. Nota: Tutte le sottoreti di una stessa rete IP hanno la stessa subnet-mask, in quanto è univoco il partizionamento di tale rete in sottoreti. Affinché due host possano comunicare è necessario che appartengano alla stessa sottorete .
SUBNETTING: Prefix-Length Invece di usare la rappresentazione con la maschera di sottorete si può : Considerare il numero di bit a 1 contigui (da sinistra a destra). Sciverlo come: /N° di bit al posto della netmask Questo metodo si chiama: Prefix-Length (lunghezza del prefisso) Esempio : INDIRIZZO di CLASSE B 129.150.28.132 e subnet mask 255.255.255.192 Indirizzo IP 10000001 10010110 00011100 10 000100 NETMASK 11111111 11111111 11111111 11 000000 255 255 255 192 Indirizzo di rete e sottorete (prefisso=26 bit) 129.150.28.132/26 Prefisso
Come si può verificare se due indirizzi IP di Host fanno parte della stessa sottorete? Li si mette in AND (bit a bit) con la maschera della propria sottorete: se si ottengono due risultati identici, i 2 indirizzi appartengono alla stessa sottorete. Logica di Boole : Tabella della verità dell’operatore logico AND 1
Esempio Host A e host B hanno appartengono alla stessa sottorete IP INDIRIZZO di CLASSE B 129.150.28.132 255.255.255.192 Host B INDIRIZZO di CLASSE B 129.150.28.155 255.255.255.192 Indirizzo IP host A 129.150.28.132 10000001 10010110 00011100 10 000100 A N D L O G I C O NETMASK 255.255.255.192 11111111 11111111 11111111 11 000000 R I S U L T A T O SUBNET ID 129.150.28.128 10000001 10010110 00011100 10 000000 Indirizzo IP host B 129.150.28.155 10000001 10010110 00011100 10 011011 A N D L O G I C O NETMASK 255.255.255.192 11111111 11111111 11111111 11 000000 R I S U L T A T O SUBNET ID 129.150.28.128 10000001 10010110 00011100 10 000000 Host A e host B hanno appartengono alla stessa sottorete IP
Esempio di calcolo di subnet mask Indirizzo IP di classe A (usa i primi 8 bit per individuare la rete), con i 24 bit finali (quelli usati per individuare l’host all’interno della rete) ad esempio così destinati : 11 bit per definire la sottorete (consentono al max 211=2048 sottoreti) 13 bit per definire l’host all’interno della sottorete (max 213=8192 host/sottorete) La subnet mask sarà allora la seguente: In binario 11111111 11111111 11100000 00000000 In decimale 255 . 255 . 224 . 0
Definire gli indirizzi di sottorete (Subnet ID): Si listano tutte le possibili combinazioni dei bit destinati all’identificazione della sottorete. Si scartano le combinazioni non valide Si converte in decimale byte a byte Vediamo un esempio di classe B : indirizzo IP : 140.24.214.129 subnet mask : 255.255.224.0 3 bit destinati alla creazione di sottoreti .
Subnetting classe B: subnet ID dell’ IP 140.24.214.129 1 0 0 0 1 1 0 0 24 0 0 0 1 1 0 0 0 214 1 1 0 1 0 1 1 0 129 1 0 0 0 0 0 0 1 Indirizzo IP AND LOGICO bit a bit 255 1 1 1 1 1 1 1 1 255 1 1 1 1 1 1 1 1 224 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Subnet mask Risultato 140 1 0 0 0 1 1 0 0 24 0 0 0 1 1 0 0 0 192 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Indirizzo di sottorete 140 . 24 . 192 . 0
Subnetting classe B: numerazione subnet ID 140 1 0 0 0 1 1 0 0 24 0 0 0 1 1 0 0 0 214 1 1 0 1 0 1 1 0 129 1 0 0 0 0 0 0 1 Indirizzo IP rete sottoreti host 255 1 1 1 1 1 1 1 1 255 1 1 1 1 1 1 1 1 224 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Subnet mask Indirizzo di rete “Naturale” 140.24.0.0 Indirizzo di broadcast 0 0 0 0 0 0 0 0 = 0 0 0 1 0 0 0 0 0 = 32 0 1 0 0 0 0 0 0 = 64 0 1 1 0 0 0 0 0 = 96 1 0 0 0 0 0 0 0 = 128 1 0 1 0 0 0 0 0 = 160 1 1 0 0 0 0 0 0 = 192 1 1 1 0 0 0 0 0 = 224 Subnet ID Non consentite
Gli indirizzi delle 6 possibili sottoreti saranno : 140.24.32.0 140.24.64.0 140.24.96.0 140.24.128.0 140.24.160.0 140.24.192.0
Subnetting: La RFC 1878 Permette Subnet ID a 0 e 1 140 1 0 0 0 1 1 0 0 24 0 0 0 1 1 0 0 0 214 1 1 0 1 0 1 1 0 129 1 0 0 0 0 0 0 1 Indirizzo IP rete sottorete host 255 1 1 1 1 1 1 1 1 255 1 1 1 1 1 1 1 1 224 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Subnet mask 0 0 0 0 0 0 0 0 = 0 Subnet bit a 0 0 0 1 0 0 0 0 0 = 32 0 1 0 0 0 0 0 0 = 64 0 1 1 0 0 0 0 0 = 96 1 0 0 0 0 0 0 0 = 128 1 0 1 0 0 0 0 0 = 160 1 1 0 0 0 0 0 0 = 192 1 1 1 0 0 0 0 0 = 224 Subnet ID Consentite ! Subnet bit a 1
Definire i possibili indirizzi hosts per una subnet: Si prendono tutte le possibili combinazioni dei bit destinati agli hosts. Si scartano le due non consentite (tutti 1 e tutti 0), le si affiancano ai bit di rete e sottorete e si riporta il tutto in decimale bit a bit. In realtà tutto si riduce poi ad una regoletta meccanica a partire dagli indirizzi delle sottoreti, come risulterà chiaro dal seguente esempio: 140 . 24 . 214 . 129 10001100 00011000 11010110 10000001 255 . 255 . 224 . 0 11111111 11111111 11100000 00000000 subnet ID : 140 . 24 . 192 . 0 Primo indirizzo di host: 140 . 24 . 192 . 1 10001100 00011000 11000000 00000001 140 . 24 . 192 . 2 10001100 00011000 11000000 00000010 140 . 24 . 192 . 3 10001100 00011000 11000000 00000011 140 . 24 . 192 . 4 10001100 00011000 11000000 00000100 ……………………. Fino a : 140 . 24 . 223 . 254 10001100 00011000 11011111 11111110
SUBNET ID e HOSTS ADDRESS RANGE Indirizzi subnet Range indirizzi host A.B.32.1 - A.B.63.254 A.B.64.1 - A.B.95.254 A.B.96.1 - A.B.127.254 A.B.128.1 - A.B.159.254 A.B.160.1 - A.B.191.254 A.B.192.1 - A.B.223.254 0 0 1 0 0 0 0 0 = 32 0 1 0 0 0 0 0 0 = 64 0 1 1 0 0 0 0 0 = 96 1 0 0 0 0 0 0 0 = 128 1 0 1 0 0 0 0 0 = 160 1 1 0 0 0 0 0 0 = 192 L’insieme di indirizzi IP che appartengono alla stessa rete o sottorete IP viene definito: ADDRESS RANGE
Address range multipli IPa 1 IPa 2 E’ possibile assegnare più indirizzi ad un’interfaccia di un router che avrà così : un indirizzo primario e uno o più indirizzi secondari L’interfaccia appartiene quindi a più address range I datagrammi generati dal router stesso avranno come IP sorgente IP Primario
Address range multipli sulla stessa rete fisica 192.168.1.14 192.168.6.10 Default Gateway 192.168.1.1 192.168.6.1 AR 1 Rete 192.168.1.0/24 AR 2 Rete 192.168.6.0/24 (primario) (secondario) R1 GIi host che appartengono ad una sottorete possono comunicare anche con gli altri host dell’altra sottorete I loro datagrammi saranno instradati da R1 sulla stessa interfaccia fisica
Esempio di Subnetting: subnet-mask fissa 100 host net3 20 host Link-A B Link-C Link-B net2 20 host net4 10 host C
Subnetting: subnet-mask fissa 192.168.1.0/25 (0-127, 126 host) A net3 192.168.6.0/27 (0-31, 30 host) 192.168.6.64/27 Link-A B Link-C 192.168.6.128/27 net2 192.168.1.128/25 (128-255, 126 host) Link-B 192.168.6.96/27 net4 192.168.6.32/27 (32-63, 30 host) C 192.168.1.0 255.255.255.128 192.168.6.0 255.255.255.224 Rete naturale 192.168.1.0 255.255.255.0
VLSM (RFC 1009) ( Variable Length Subnet Mask ) Subnetting tradizionale: Ha il limite di poter utilizzare solo una netmask di lunghezza fissa per ogni net ID Questo significa che con la netmask scelta si è obbligati ad avere un numero fisso di sottoreti con lo stesso numero di bit costituenti e quindi ognuna con lo stesso numero di host disponibili. L’RFC 1009 (1987) permette che una rete subnettata possa utilizzare più di una netmask. Saremo in questo caso in presenza di una rete naturale con subnet-mask di lunghezza variabile: - Variable Length Subnet Mask, (VLSM)
VLSM: esempio Rete naturale 192.168.1.0 255.255.255.0 A B C net1 192.168.1.0/25 (0-127, 126 host) A net3 192.168.1.160/27 (160-191, 30 host) 192.168.1.208/30 Link-A B Link-C 192.168.1.216/30 net2 192.168.1.128/27 (128-159, 30 host) Link-B 192.168.1.212/30 net4 192.168.1.192/28 (192-207, 14 host) C Rete naturale 192.168.1.0 255.255.255.0
Esaurimento degli indirizzi IP Il progressivo esaurimento degli indirizzi IP, unitamente alla rapida crescita delle dimensioni delle tabelle di routing ha spinto l’IETF (Internet Engineering Task Force) nel 1992 ad intraprendere delle azioni preventive. Tali misure preventive possono essere raggruppate nelle seguenti categorie: Assegnazione razionale degli indirizzi IP Classless InterDomain Routing (CIDR) Indirizzi privati e Network Address Translation (NAT) Assegnazione dinamica di indirizzi (DHCP) IP versione 6 (IPv6)
CIDR Il Classless InterDomain Routing (CIDR) supporta due importanti caratteristiche che hanno portato grossi benefici al sistema di routing di Internet: Elimina il concetto tradizionale di classi per consentire di allocare più efficientemente lo spazio degli indirizzi IP Supporta l’aggregazione degli indirizzi (summarization), conosciuta anche come supernetting . Riassume cioè grossi insiemi di indirizzi di reti tradizionali con classi ( metodo classfull ), in una singola entry nella tabella di routing ( metodo classless ) . Basta una combinazione indirizzo/mashera per rappresentare una route verso reti multiple.
Esempio di routing senza CIDR 198.32.0.0/24 198.32.1.0/24 . 198.32.7.0/24 R1 deve annunciare verso l’esterno tutte le reti 198.32.0.0/24 198.32.1.0/24 198.32.2.0/24 198.32.3.0/24 R1 198.32.6.0/24 198.32.7.0/24 198.32.4.0/24 198.32.5.0/24 198.32.3.0 198.32.0.0 198.32.7.0 198.32.6.0 198.32.1.0 198.32.4.0 198.32.5.0 198.32.2.0
Essa assume la denominazione di Super-Rete Concetto di Supernetting Esempio: con CIDR Viene così a crearsi una rete avente subnet-mask di 21 bit che è inferiore a quella naturale (classe C=24 bit) Tutte le reti vengono aggregate in un singolo annuncio (summarization) Essa assume la denominazione di Super-Rete Concetto di Supernetting 198.32.0.0/21 198.32.0.0/22 198.32.6.0/23 198.32.4.0/23 198.32.3.0 198.32.0.0 198.32.2.0 198.32.6.0 198.32.7.0 198.32.1.0 198.32.4.0 198.32.5.0
Supernetting Esempio: Una rete è denominata supernet (super-rete) quando il prefix-length contiene meno bits della rete naturale. Esempio di una rete di classe C 198.32.1.0, mask naturale = 255.255.255.0 : Se è rappresentata con: 198.32.0.0 255.255.0.0 o 198.32.0.0/16 ,essa avrà una netmask inferiore a quella naturale (16bit < 24bit); Diventata perciò una Supernet. Questa tecnica permette di riassumere (raggruppare) routes specifiche della 198.32.0.0 (198.32.1.0 , 198.32.2.0, e così via..) in un singolo annuncio di routing, chiamato “Aggregato di reti IP”, o semplicemente “Aggregato” . Esempio:
Eliminiamo la confusione Generalmente, i termini usati per indicare che una lista di reti IP contigue è stato raggruppato (o riassunto) in un annuncio singolo sono diversi: Aggregate CIDR Block Supernet Route summarization Auto-Summary Non fatevi trarre in inganno: Sono semplicemente diversi modi per indicare lo stesso concetto.
CIDR:Algoritmo di calcolo dei bit della Maschera per l’aggregazione delle reti IP Subnet Primo byte in Binario Secondo byte in Binario Terzo 198.32.0.0/24 11000110 00100000 00000 000 198.32.1.0/24 001 198.32.2.0/24 010 198.32.3.0/24 011 198.32.4.0/24 100 198.32.5.0/24 101 198.32.6.0/24 110 198.32.7.0/24 111 Supernetting 11111111 11111 /21 bit Partendo da sinistra si considera il numero di bit che tutti gli indirizzi hanno in comune ; Questo determinerà la lunghezza della mashera del Supernetting = 21 bit Una considerazione importante: Affinche il CIDR si possa applicare efficacemente è necessario che tutte le reti annunciate siano contigue. L’uso di indirizzi IP non contigui può comportare errori e loop nel routing.
CIDR: Subnet Mask > Wild-Card Mask > Prefix 255.0.0.0 0.255.255.255 /8 255.128.0.0 0.127.255.255 /9 255.192.0.0 0.63.255.255 /10 255.224.0.0 0.31.255.255 /11 255.240.0.0 0.15.255.255 /12 255.248.0.0 0.7.255.255 /13 255.252.0.0 0.3.255.255 /14 255.254.0.0 0.1.255.255 /15 255.255.0.0 0.0.255.255 /16 255.255.128.0 0.0.127.255 /17 255.255.192.0 0.0.63.255 /18 255.255.224.0 0.0.31.255 /19 255.255.240.0 0.0.15.255 /20 255.255.248.0 0.0.7.255 /21 255.255.252.0 0.0.3.255 /22 255.255.254.0 0.0.1.255 /23 255.255.255.0 0.0.0.255 /24
Assegnazione razionale degli indirizzi IP Lo spazio degli indirizzi di classe C è attualmente allocato in modo tale da consentire l’aggregazione degli indirizzi Esigenze dell'organizzazione Indirizzi assegnati Meno di 256 indirizzi 1 rete di classe C Meno di 512 ma più di 256 2 reti di classe C contigue Meno di 1024 ma più di 512 4 reti di classe C contigue Meno di 2048 ma più di 1024 8 reti di classe C contigue Meno di 4096 ma più di 2048 16 reti di classe C contigue Meno di 8192 ma più di 4096 32 reti di classe C contigue Meno di 16384 ma più di 8192 64 reti di classe C contigue
Allocazione dello spazio di indirizzi per maggiori aree geografiche Multiregional Europe Others North America Central/South America Pacific Rim 192.0.0.0 a 193.255.255.255 194.0.0.0 a 195.255.255.255 196.0.0.0 a 197.255.255.255 198.0.0.0 a 199.255.255.255 200.0.0.0 a 201.255.255.255 202.0.0.0 a 203.255.255.255 204.0.0.0 a 205.255.255.255 206.0.0.0 a 207.255.255.255
Crescita delle tabelle di routing su Internet Nei primi anni ’90 si è stimato che nel 1995 le tabelle di instradamento dei router di Internet avrebbero superato le 80.000 entry. Invece grazie all’impiego del CIDR nel 2000 si sono attestate intorno a 76.000. Senza il CIDR i router Internet avrebbero avuto la saturazione della memoria e CPU, rendendo assai lenta la velocità di Route Processing.
Crescita tabelle di routing in INTERNET
Special Use Reserved Address Blocks, RFC 3330
Esercizi Il solo modo per imparare ad usare bene l’indirizzamento IP è : fare tanta pratica ,pratica, pratica …….e poi ancora pratica ,pratica e pratica.