Antonio Cianfrani Software Router
Software Router I protocolli di routing vengono implementati tramite opportuno software all interno dei Router (Cisco, Juniper) Recentemente, all interno della comunità GNU (software libero), è nato un software gratuito che implementa la maggior parte dei protocolli di routing utilizzati dai router Utilizzando un PC (con un numero adeguato di Network Interface Cards) con sistema operativo Linux (FreeBSD e Solaris) è possibile realizzare un Router
Il software Quagga Il software di routing è Quagga (precedentemente noto con il nome di Zebra) ed è scaricabile gratuitamente all indirizzo internet www.quagga.net. + + = LINUX QUAGGA
Architettura di Quagga Quagga è costituito da un insieme di demoni, che implementano i vari protocolli di routing. Le informazioni ottenute dai vari protocolli sono raggruppate da un demone specifico (Zebra) che ha il compito di comunicare con il Kernel del PC bgpd ripd ospfd zebra Kernel routing table
Come installare Quagga Accedere all indirizzo internet www.quagga.net e scaricare l ultima versione del software (attualmente quagga- 0.99.2.tar.gz) Da shell portarsi nella cartella in cui si trova il file scaricato e digitare tar zxvf quagga-0.99.2.tar.gz 0992 A questo punto sarà stata creata una cartella dal nome quagga- 0.99.2. Da shell portarsi in questa nuova cartella cd quagga-0.99.2
Come installare Quagga L ultima cosa da fare è installare il software sul PC: per riuscirci bisogna digitare i seguenti tre comandi./configure make make install A questo punto il software è stato installato correttamente ed è quasi pronto per essere utilizzato
I file di configurazione Per mandare in esecuzione uno qualsiasi dei demoni relativi ai protocolli di routing bisogna scrivere un file di configurazione I file di configurazione sono file di testo in cui sono riportati dei comandi che permettono di configurare il protocollo OSPF secondo le proprie esigenze Esempi di file di configurazione si possono trovare nella cartella /etc/quagga. Di norma i file di configuazione hanno un nome del tipo.conf (es zebra.conf ospfd.conf, bgpd.conf )
Comandi del file ospfd.conf router ospf Questo comando consente di abilitare il processo ospf (con l istruzione no router ospf il processo viene disabilitato). Solo dopo questo comando è possibile inserire gli altri comandi relativi all OSPF ospf router-id a.b.c.d Consente di settare il valore dell identificativo del router (uno a scelta dei suoi indirizzi IP) passive interface eth0 Se presente questo comando l interfaccia eth0 non viene considerata dal protocollo OSPF e la network ad essa collegata viene considerata come un Stub Network
Comandi del file ospfd.conf timers throttle spf t1 t2 t3 Con questo comando vengono settati tre diversi timers dell OSPF: t1 prende il nome di delay e rappresenta il minimo mo intervallo di tempo tra la ricezione di una New_Lsa e l inizio dell algoritmo di Dijkstra; t2 prende il nome di initial-holdtime e t3 prende il nome di maximum-holdtime network a.b.c.d/m area x.y.v.z Permette di definire una network (cui il router deve necessariamente essere connesso tramite una interfaccia) e l area cui tale network appartiene (es network 19216800/24 192.168.0.0/24 area 0.0.0.1 )
Comandi del file ospfd.conf Nel file ospfd.conf è possibile configurare parametri che fanno riferimento ad una singola interfaccia. interface eth0 Questa istruzione permette di entrare nella configurazione dell interfaccia eth0 dal punto di vista dell OSPF OSPF. Le istruzioni seguenti sono tutte relative alla singola interfaccia ip ospf cost <1-65535> Con questo comando si assegna un costo al link relativo all interfaccia che si sta configurando; questo costo è quello che verrà scritto dal router nella propria Router_Lsa
Comandi del file ospfd.conf ip ospf hello interval <1-65535> Consente di settare l intervallo di tempo (espresso in secondi) a distanza del quale vengono inviati gli Hello packet. Di default questo valore è pari a 10 secondi ip ospf dead interval <1-65535> Questo valore (espresso in secondi) rappresenta l intervallo di tempo che intercorre tra la ricezione dell ultimo Hello packet di un vicino e l istante in cui il router decide che il vicino non è più attivo. Di default questo valore è pari a 40 secondi (quattro volte l Hello interval)
Comandi del file ospfd.conf ip ospf network (broadcast, point-to-point, ) p Consente di definire esplicitamente il tipo di network collegata all interfaccia ip ospf priority <0-255> Questo valore viene utilizzato durante la procedura di elezione del Designated Router in una Transit Network. Quando questo valore è settato a 0 significa che il router non può mai essere eletto come DR sulla Transit Network in questione. Il valore di default è 1 ip ospf transmit-delay <1-65535> Rappresenta il numero di secondi che viene aggiunto nel campo AGE di una LSA quando viene trasmessa
Mandare in esecuzione ospfd Prima di mandare in esecuzione il protocollo OSPF bisogna lanciare il demone Zebra: zebra & Se il file di configurazione ospfd.conf è stato opportunamente scritto e inserito nella cartella etc/quagga (oppure in usr/local/etc) è possibile lanciare ospfd da qualsiasi posizione nella shell: ospfd & Se il file ospfd.conf si trova in un altra posizione (es :/home/andrea) bisogna specificarlo: ospfd f /home/andrea/ospfd.conf &
Esempio di file di configurazione hostname ospfd password RIETI interface eth0 ip ospf hello-interval 10 ip ospf dead-interval 40 ip ospf priority 0 router ospf compatible rfc1583 router-id network../.. line vty no exec-timeout log file /var/run/ospfd.log