Usare il routing dinamico tramite RIP sotto Debian
La topologia della vostra rete non è complicata,ma non volete impostare a mano route statiche e i vostri router usano debian o distribuzioni basate su di esso.Ci sono du e tipolo gie di routing dinamico:interno ed estermo.In questa ricetta useremo il protocollo Routing Information Protocol,il più semplice tra quelli interni.RIP è contenuto nella suite di protocolli di routing Quagga.L’installazione è molto semplice:
# aptitude install quagga
Ora dovete editare alcuni file di configurazione.Iniziate da /etc/quagga/daemons e abilitate i demoni zebra e ripd:
##/etc/quagga/daemons zebra=yes bgpd=no ospfd=no ospf6d=no ripd=yes ripngd=no isisd=no
Create il file /etc/quagga/zebra.conf
!/etc/quagga/zebra.conf hostname router1 password bigsecret enable password bigsecret service advanced-vty log file /var/log/quagga/zebra.log ! !administrative access controls- local machine only ! access-list localhost permit 127.0.0.1/32 access-list localhost deny any ! line vty access-class localhost
Create il file /etc/quagga/ripd.conf
!/etc/quagga/ripd.conf hostname router1 password moresecret enable password moresecret router rip network eth1 redistribute static redistribute connected service advanced-vty log file /var/log/quagga/ripd.log ! !administrative access controls- local machine only ! access-list localhost permit 127.0.0.1/32 access-list localhost deny any ! line vty access-class localhost
Impostare gli opportuni permessi sui file che avete creato:
# chown quagga:quagga ripd.conf zebra.conf # chown :quaggavty vtysh.conf
Piccola nota:il file vtysh non lo ho trovato in /etc/quagga ma in /usr/share/doc/quagga/examples/vtysh.conf.sample(come file esempio),bisogna quindi spostarlo nella cartella appropriata e rinominarlo.
Aggiungete queste righe al file /etc/services
zebrasrv 2600/tcp # zebra service zebra 2601/tcp # zebra vty ripd 2602/tcp # RIPd vty
Aggiungete questa riga al file /etc/environment
VTYSH_PAGER=more
Lanciate quagga
# /etc/init.d/quagga start
Ripetere su tutti i router della vostra rete e avrete finito.Aspettate qualche minuto affinchè le nuove configurazioni vengano propagate sulla LAN e verificate le tabelle di routing:
$ /sbin/route $ ip route show $ netstat -rn
I file di configurazione di Quagga utilizzano dei punti esclamativi per identificare le righe di commento.Tutti i demoni di Quagga sono controllati da un unico file di avvio:
# /etc/init.d/quagga {start|stop|restart|force-reload| [daemon]}
I demoni Quagga tramettono in broadcast multicast agli altri router della rete le tabelle di routing ogni 30 secondi e quindi non è necessario impostare route statiche.Di default,Debian limita in /etc/quagga/debian.conf l’accesso a vty solo alle connessioni dalla macchina locale.Fedora usa /etc/sysconfig/quagga.
Ecco la definizione di alcune delle variabili utilizzate in ripd.conf:
hostname = E’ un nome arbitrario e non ha nulla a che fare con l’hostname Linux del router.Controlla il nome visualizzato dai comandi vtysh o telnet.
router rip = Specifica il protocollo di routing da utilizzare,in questo caso rip.Il default è inviare la versione 2 e ricevere la 1 e la 2.Gli altri protocolli che possibile specificare sono, ovviamente nei rispettivi file di configurazione,ripng,ospf,ospf6 e bgp.
network eth1 = Specifica su quale interfaccia o interfacce ripd deve rimanere in ascolto.Le eventuali interfacce aggiuntive oltre alla prima vanno indicate su righe separate.
redistribute static = Condividere eventuali route statiche elencate in zebra.conf
redistribute connect = Condividere i router connessi direttamente.Se,per esempio,avete un router connesso alla rete 10.0.0.1/24,indica agli altri router come raggiungerlo.
service advanced-vty = Abilita le funzioni avanzate di vty,come lo storico dei comandi e l’autocompletamento tramite il tasto di tabulazione (TAB).
access-list = le due righe access-list definiscono una nuova classe,localhost.il nome della classe è arbitrario.Dopo aver definito la classe,le righe
line vty access-class localhost
abilitano il login solo dalla macchina locale.Il livello di logging di default è debugging,che è quello che genera più output.Gli altri valoro previsti sono: emergencies,alerts,critical,errors,warnings,notifications e information,come in
log file /var/log/quagga/ripd.log warnings
Se non avete un file di log,un crash generà un file /var/tmp/quagga.[nome del demone].crashlog.Questo file va cancellato o rinominato per permettere la generazionedi un nuovo file di crash.Il protocollo RIP è disponibile in due versioni:RIPv1 è abbastanza limitato e,se possibile,non andrebbe usato.Non sopporta la notazione delle reti senza classi ed è abbastanza lento a rispondere a variazioni di condizioni,come,ad esempio,un router che va giù.RIPv2 è compatibile verso il basso cioè di default usa la versione 2 in uscita e le versioni 1 e 2 in ingresso.L’opzione version 2 invia e riceve solo RIPv2 (cosa diversa in cisco visto che lui di defaul parte in versione 1 e inserendo la versione 2 si rende retro-compatibile).Il protoccolo RIP non è in grado di gestire più di 15 hop,quindi non utilizzatelo per reticomplesse.
Quagga comprende cinque demoni di routing:ripd,ripngd,ospfd,ospf6d e bgpd e un demone di gestione,zebra.Quest’ultimo va sempre avviato prima dei demoni di routing.Ciascun demone ascolta una porta specifica:
zebrasrv 2600/tcp zebra 2601/tcp ripd 2602/tcp ripngd 2603/tcp ospfd 2604/tcp bgpd 2605/tcp ospf6d 2606/tcp ospfapi 2607/tcp isisd 2608/tcp