Posts Tagged ‘classful’

VLSM, CIDR e aggregazione delle rotte

La Variable-length subnet mask (VLSM) è una tecnica utilizzata dagli amministratori di rete per usare in maniera più efficiente gli indirizzi IP. Con la VLSM si offre una maschera più lunga a reti con molti host e una maschera più corta per reti con pochi host, ovvero la maschera varia a seconda del numero di indirizzi necessari a quella rete.
Per implementare la VLSM bisogna, ovviamente, utilizzare un protocollo di routing che supporta il classless routing (un protocollo che, invece, non supporta le VLSM viene detto classful). I protocolli di routing classless su cui utilizzare la VLSM nei router cisco sono:

  • OSPF
  • Integrated IS-IS
  • EIGRP
  • RIP v2
  • BGP v4
  • Routing statico

I protocolli di routing classful sono, invece:

  • RIP v1
  • IGRP
  • EGP
  • BGP v3

Il classless routing nasce per il problema della carenza di indirizzi IP dovuto al veloce aumento delle dimensioni delle tabelle di routing di Internet. Le soluzioni a questo problema sono state il subnetting, la VLSM appunto, il Classless Interdomain Routing (CIDR), l’utilizzo di indirizzi IP privati e il Network Address Translation (NAT). La soluzione definitiva sarà l’utilizzo del protocollo IPv6 che avrà un’astensione di 128bit per gli indirizzi di rete (quindi uno spazio di indirizzamento enorme).

In principio era stato deciso di non utilizzare né la prima (subnet zero) né l’ultima subnet (all-one subnet), successivamente è stato consentito l’uso anche di tali subnet, soprattutto in unione alle VLSM. Per non utilizzare la prima subnet sui router cisco basta digitare il comando no ip subnet-zero.

Le VLSM sono utilissime per utilizzare in maniera efficiente subnet con pochi host, in particolare per i collegamenti Point-to-Point con i WAN links in cui si può usare una maschera di 30 bit (/30) con 2 soli host utilizzabili.
Inoltre, l’uso di CIDR e VLSM permette di effettuare l’aggregazione delle rotte o summarization. Tale tecnica consiste nel fornire al router di uscita di una grande organizzazione (ad es. un ISP) un indirizzo che riepiloga le sottoreti raggiungibili da esso riducendo così il carico sul router. Per fare ciò è necessario che gli indirizzi vengano assegnati in maniera gerarchica in modo che gli indirizziriassuntivi” condividano lo stesso ordine superiore bit.

RIP e configurazione su router Cisco

Il Routing Information Protocol (RIP) è un protocollo distance vector che può essere utilizzato nella versione 1 (RIPv1 o Classful Routing Protocol) o nella versione 2  (RIPv2 o Classless Routing Protocol). Il RIPv2 apporta delle caratteristiche importanti alla precedente versione come la possibilità gestire informazioni addizionali di routing, introduce dei meccanismi di autenticazione per rendere sicuri gli update della routing table e supporta le subnet mask a lunghezza variabile (variable-length subnet mask o VLSM). Il RIP usa l’hop count come metrica per la scelta del percorso. Il numero massimo di hop nel percorso è di 15, poi la rete viene posta come irraggiungibile. Di default, i routing updates vengono inviati ogni 30 secondi in broadcast.

Vediamo adesso come si configura il RIP sui router Cisco. Il primo comando da utilizzare è router rip e, successivamente, si utilizza il comando network per indicare al router le interfacce sulle quali inviare e ricevere i routing updates. Tali reti sono direttamente connesse al router. Facciamo un esempio con un router che è direttamente connesso alle reti 10.0.0.0 e 192.168.10.0, i comandi saranno:

Router(config)#router rip
Router(config-router)#network 10.0.0.0
Router(config-router)#network 192.168.10.0

Cosa accade se si inviano pacchetti verso una subnet sconosciuta? Il pacchetto viene scartato; per ovviare a ciò sui Cisco è abilitato di default il comando ip classless che inoltra il pacchetto di una subnet sconosciuta alla migliore supernet route. La supernet route è una rotta che copre un ampio range di subnet con una singola entry (per disabilitarlo bisogna inserire il comando no ip classless in configuration mode).

Come indicato nel precedente articolo, il RIP è un protocollo distance vector che soffre dei problemi di routing loops e count-to-infinity che portano a inconsistenza delle tabelle di routing dovute e una lenta convergenza del protocollo. Per ovviare a ciò il RIP utilizza le seguenti tecniche:

  • Split horizon
  • Poison reverse
  • Holddown counters
  • Triggered updates

Alcuni di questi servizi possono richiedere configurazione. Il RIP permette un massimo di 15 hop, quindi l’utilizzo del RIP è limitato nelle reti di grosse dimensioni. Inoltre, in alcuni casi, è necessario poter disabilitare lo split horizon; tale operazione va fatta direttamente sull’interfaccia interessata tramite il comando:

Router(config-if)#no ip split-horizon

E’ possibile modificare l’holddown timer che di default è di 180 secondi, per farlo basta digitare il comando:

Router(config-router)#timers basic update invalid holddown flush [sleeptime]

l’impostazione di default è

Router(config-router)#timers basic 30 180 180 240

Il valore del timer può essere diminuito, ma ciò va effettuato con cautela. Il valore ideale per il timer è leggermente maggiore del tempo massimo possibile per l’update sulla rete. L’intervallo di update può essere aumentato, rispetto al default pari a 30 secondi, per risparmiare banda o diminuito per migliorare la convergenza. E’ inoltre possibile disabilitare l’invio degli update su una specifica interfaccia tramite il comando:

Router(config-router)#passive-interface interface

La scelta di disabilitare gli update su talune interfacce risiede nel fatto che il RIP invia gli update in broadcast ed è necessario disabilitarli quando bisogna inviare degli update a reti non broadcast come ad esempio il Frame Relay.

Il tipo RIP da utilizzare si imposta con il comando:

Router(config-router)#version {1|2}

Di default i router cisco ricevono gli update sia del RIPv1 che del RIPv2, ma inviano solamente update di RIPv1. Il tipo di invio può essere settato con comandi appositi per inviare update di RIPv1, RIPv2 o di entrambi i tipi direttamente sull’interfaccia d’uscita:

Router(config-if)#ip rip send version {1 | 2 | 1 2}

la medesima cosa può essere fatta con la ricezione veicolando la ricezione di update RIP di una o entrambe le versioni:

Router(config-if)#ip rip receive version {1 | 2 | 1 2}

Abbiamo così concluso la trattazione sulla configurazione del RIP su Router Cisco, per effettuare la verifica della configurazione ci avvaliamo di 2 comandi: show ip route e show ip protocols. Il primo viene utilizzato in particolare per verificare che vengano ricevuti gli update degli altri router e che le route ricevute dai router vicini siano installate nella routing table; il secondo da molte informazioni sulla configurazione, ovvero se il RIP è attivo, se le interfacce inviano e ricevono correttamente gli update e se il router emette gli aggiornamenti verso le reti giuste.