Esperienza su routing RIP |
|
|
|
Per la realizzazione di questo modulo useremo
Netkit4TIC
con la
connettività
con la rete reale (leggere il file README).
Scarica il
tarball
contenente il tutto, e come al solito si parte scompattandolo
in una sottodirectory della HOME dell'utente.
Questa esperienza si basa sulla rete di laboratorio usata nel
libro "InterNETworking" di Baldi e Nicoletti. Il protocollo
RIP è trattato nel capitolo 6 del libro ed è messo
a disposizione in internet
come documento
riassuntivo.
Il nostro intento è stato quello di provare la stessa configurazione
pur non avendo alcun router Cisco o BayNetworks. Mi sembra che ci siamo
riusciti ma grazie alle ottime spiegazioni e indicazioni del libro
e al pacchetto Open Source di nome
Zebra.
La configurazione della rete è riassunta in
(pdf,
xml) ed esiste
connettività con la rete reale attraverso il router AN2.
Dopo aver fatto partire lo script (screenshot):
realHost$ ./lab start
che configura a livello di IP address e di zebra tutti i router, occorre far partire zebra stesso su tutti i router:
Cisco2503a# /etc/init.d/zebra start Cisco2503b# /etc/init.d/zebra start Cisco1600# /etc/init.d/zebra start Cisco2503c# /etc/init.d/zebra start AN2# /etc/init.d/zebra start AN1# /etc/init.d/zebra start
Per accedere alla configurazione di zebra si usa telnet
con password zebra:
Cisco2503a# telnet localhost zebra Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. Hello, this is zebra (version 0.93b). Copyright 1996-2002 Kunihiro Ishiguro. User Access Verification Password: Cisco2503a>enable Password: Cisco2503a#
Per la raggiungibilità della macchina reale con le macchine della rete virtuale occorre aggiungere questa regola di routing:
realHost# route add -net 192.168.0.0/24 gw 192.168.77.2
Costruita tale connettività possiamo usare il tool Multi-Router Looking Glass che attraverso un browser ci permette di consultare le tabelle di routing determinate dall'algoritmo ospf:
realHost$ firefox http://192.168.77.2/cgi-bin/mrlg.cgi
Dai test sul laboratorio virtuale abbiamo reso disponibili le seguenti informazioni:
Per completare la rete, possiamo costruire manualmente anche i singoli pc:
realHost$ vstart pcA --eth0=A --mem=32; \
vstart pcD --eth0=D --mem=32; \
vstart pcF --eth0=F --mem=32; \
vstart pcH --eth0=H --mem=32
e poi configurare gli IP:
pcA# ifconfig eth0 192.168.128.254 pcA# route add default gw 192.168.128.1 pcD# ifconfig eth0 192.168.64.254 pcD# route add default gw 192.168.64.4 pcF# ifconfig eth0 192.168.16.254 pcF# route add default gw 192.168.16.3 pcH# ifconfig eth0 192.168.65.254 pcH# route add default gw 192.168.65.7
Analisi del traffico RIP attraverso Ethereal |
|
Il pacchetto Ethereal ci permette di controllare l'evolversi
dell'algoritmo eseguito in parallelo dai router della rete.
Nel pacchetto ethereal-common, un prerequisito
dello stesso ethereal, viene inclusa l'utility
mergecap che è in grado di fare il merge di
più file di catture.
Ad esempio, supponiamo di voler costruire un unico file all.acp
contente tutte le catture su tutte le interfacce di questa esperienza:
realHost$ mergecap -s 1520 -w /tmp/all.acp rip-*.acp
Ora possiamo pensare di procedere ad esempio evidenziando tutti i
pacchetti RIPv1 e RIPv2 che riguardano la rete 192.168.67.0.
Costruiamo un paio di filtri di nome
f192.168.67.0-v2 e
f192.168.67.0-v1 come segue:
rip.ip == 192.168.67.0 && rip.version == 2 rip.ip == 192.168.67.0 && rip.version == 1
(screenshot) e un filtro di visualizzazione come segue:
rip && rip.command == response
|
|
Sandro Doro (email me)