SCUOLA TELECOMUNICAZIONI FORZE ARMATE - Chiavari TCP/IP: IP Subnetting VLSM CIDR LOGICA BINARIA: Sistema di numerazione in base 2 Numeri binari :peso dei bit all’interno di un byte Numeri binari : Calcolo dei valori corrispondenti in decimale Valore decimale Codice binario Valore bit 00000000 00000001 00000011 00000111 00001111 00011111 00111111 01111111 11111111 0 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 0 1 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 Decimale 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 Classe Indirizzo Indirizzo Numero Numero di rete di host totale di totale di host reti per rete A B C a (1 byte) a.b (2 byte) a.b.c (3 byte) b.c.d 126 (1-126) 16.777.214 c.d 16.384 (128-191) 65.534 2.097.151 (192-223) 254 (3 byte) (2 byte) d (1 byte) Subnet Mask standard Classi Bits Usati per Subnet Mask Notazione punto decimale Class A 11111111 00000000 00000000 00000000 255.0.0.0 Class B 11111111 11111111 00000000 00000000 255.255.0.0 Class C 11111111 11111111 11111111 255.255.255.0 00000000 Esempio di subnet standard per la classe B IP Address 131.107. 16.201 Subnet Mask 255.255. 0.0 Network ID 131.107. c. d Host ID a. b. 16.201 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 Indirizzo IP 10000001 10010110 00011100 10 000100 NETMASK 11111111 11111111 255 11111111 255 11 000000 192 255 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 NETMASK 10000001 10010110 00011100 10 000100 11111111 11111111 255 11111111 255 11 000000 192 255 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 1 1 1 0 0 0 1 0 0 0 0 Esempio Host A 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 NETMASK 255.255.255.192 SUBNET ID 129.150.28.128 11111111 AND 11111111 LOGICO 11111111 11 000000 R I S U LTATO 10000001 10010110 00011100 10 000000 Indirizzo IP host B 129.150.28.155 10000001 10010110 00011100 10 011011 NETMASK 255.255.255.192 SUBNET ID 129.150.28.128 11111111 AND 11111111 LOGICO 11111111 11 000000 R I S U LTATO 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 In decimale 11111111 11111111 11100000 00000000 255 . 255 . 224 . 0 Definire gli indirizzi di sottorete (Subnet ID): Si listano tutte le possibili all’identificazione della sottorete. combinazioni dei bit destinati 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 . Indirizzo IP Subnetting classe B: subnet ID dell’ IP 140.24.214.129 140 10001100 24 00011000 214 11010110 129 10000001 AND LOGICO Subnet mask bit a bit 255 11111111 255 11111111 224 11100000 0 00000000 Risultato 140 10001100 24 00011000 192 11000000 Indirizzo di sottorete 140 . 24 . 192 . 0 0 00000000 Subnetting classe B: numerazione subnet ID 140 10001100 24 00011000 214 11010110 129 10000001 Indirizzo IP rete 255 11111111 host sottoreti 255 11111111 224 11100000 0 00000000 Subnet mask Subnet ID 00000000=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 Indirizzo di rete “Naturale” 140.24.0.0 Non consentite Indirizzo di broadcast 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 10001100 24 00011000 214 11010110 129 10000001 Indirizzo IP rete 255 11111111 host sottorete 255 11111111 224 11100000 0 00000000 Subnet mask Subnet ID 00000000=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 bit a 0 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. 140 . 24 . 214 . 129 255 . 255 . 224 . 0 10001100 00011000 11010110 10000001 11111111 11111111 11100000 00000000 subnet ID : 140 . 24 . 192 . 0 Primo indirizzo di host: 140 . 24 . 192 . 1 140 . 24 . 192 . 2 140 . 24 . 192 . 3 140 . 24 . 192 . 4 10001100 10001100 10001100 10001100 00011000 00011000 00011000 00011000 11000000 11000000 11000000 11000000 00000001 00000010 00000011 00000100 ……………………. Fino a : 140 . 24 . 223 . 254 10001100 00011000 11011111 11111110 In realtà tutto si riduce poi ad una regoletta meccanica a partire dagli indirizzi delle sottoreti, come risulterà chiaro dal seguente esempio: SUBNET ID e HOSTS ADDRESS RANGE Indirizzi subnet 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 Range indirizzi host A.B.32.1 A.B.64.1 A.B.96.1 A.B.128.1 A.B.160.1 A.B.192.1 - A.B.63.254 A.B.95.254 A.B.127.254 A.B.159.254 A.B.191.254 A.B.223.254 L’insieme di indirizzi IP che appartengono alla stessa rete o sottorete IP viene definito: ADDRESS RANGE Address range multipli R1 Address Range 1 • • • Address Range 2 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 R1 Default Gateway 192.168.1.1 192.168.1.14 192.168.1.1 192.168.6.1 (primario) (secondario) AR 1 Rete 192.168.1.0/24 AR 2 Rete 192.168.6.0/24 Default Gateway 192.168.6.1 192.168.6.10 • 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 A net1 100 host net3 20 host Link-A B Link-C net2 20 host Link-B net4 10 host C Subnetting: subnet-mask fissa net1 192.168.1.0/25 (0-127, 126 host) A 192.168.6.64/27 Link-A net3 192.168.6.0/27 (0-31, 30 host) 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 net1 192.168.1.0/25 (0-127, 126 host) A 192.168.1.208/30 Link-A net3 192.168.1.160/27 (160-191, 30 host) 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 . . . R1 deve annunciare verso l’esterno tutte le reti 198.32.7.0/24 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.1.0 198.32.2.0 198.32.4.0 198.32.5.0 198.32.6.0 198.32.7.0 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) 198.32.0.0/21 198.32.0.0/22 Essa assume la denominazione di Super-Rete Concetto di Supernetting 198.32.6.0/23 198.32.4.0/23 198.32.3.0 198.32.0.0 198.32.2.0 198.32.1.0 198.32.6.0 198.32.7.0 198.32.4.0 198.32.5.0 Supernetting • • • • 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 byte in Binario 198.32.0.0/24 11000110 00100000 00000 000 198.32.1.0/24 11000110 00100000 00000 001 198.32.2.0/24 11000110 00100000 00000 010 198.32.3.0/24 11000110 00100000 00000 011 198.32.4.0/24 11000110 00100000 00000 100 198.32.5.0/24 11000110 00100000 00000 101 198.32.6.0/24 11000110 00100000 00000 110 198.32.7.0/24 11000110 00100000 00000 111 Supernetting 11111111 11111111 11111 000 /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 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 Others Others 192.0.0.0 194.0.0.0 196.0.0.0 198.0.0.0 200.0.0.0 202.0.0.0 204.0.0.0 206.0.0.0 a a a a a a a a 193.255.255.255 195.255.255.255 197.255.255.255 199.255.255.255 201.255.255.255 203.255.255.255 205.255.255.255 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.