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