Esperienza su bridge con SPT |
|
|
|
Per la realizzazione di questo modulo useremo Netkit4TIC.
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 capitolo 4 del libro di Baldi e Nicoletti SWITCHED LAN. Dal loro sito internet www.netscire.it è possibile consultare le relative slide. La configurazione della rete è riassunta in (pdf, xml).
Fai partire lo script che preconfigura i 5 bridge a livello 2:
realHost$ lstart -d withstp
Per prima cosa controlliamo che il kernel abbia caricato gli opportuni moduli:
b# lsmod | \
awk '{ if (NR == 1) print $0; \
else if (index ($0, "bridge")) print $0; }' -
Module Size Used by
bridge 45720 0
atm 40824 1 bridge
Nello script abbiamo settato la priorità del bridge 4 a 28672 in modo tale che venga eletto root bridge dall'algoritmo di spanning tree:
b4# brctl setbridgeprio br0 28672; \
brctl show br0
bridge name bridge id STP enabled interfaces
br0 7000.080028aa5030 yes eth0
eth1
Inoltre per tutti i bridge è stato impostato il
path cost al valore 10. Il comando, ad esempio,
per il bridge 3 con due porte è:
b3# brctl setpathcost br0 eth0 10; \
brctl setpathcost br0 eth1 10
Sperimentazione interattiva |
|
Ora prima di attivare l'attività di bridging attiviamo le catture di traffico per tutti le cinque LAN:
b1# tcpdump -i eth0 (LAN 1) b1# tcpdump -i eth1 (LAN 4) b1# tcpdump -i eth2 (LAN 2) b5# tcpdump -i eth1 (LAN 5) b3# tcpdump -i eth0 (LAN 3)
A questo punto attiviamo i bridge (che sono stati configurati con stp on):
b1# ifconfig br0 up b2# ifconfig br0 up b3# ifconfig br0 up b4# ifconfig br0 up b5# ifconfig br0 up
Le catture
(LAN 1,
LAN 2,
LAN 3,
LAN 4,
LAN 5) mostrano la contesa
per il root bridge vinta da b4 e poi le notifiche di topology change.
Per controllare lo stato dello STP nel brige esiste il comando
brctl showstp br0 che avendo un output alquanto prolisso
ci obbliga ad usare un filtro per ridurre la
quantità di output.
Per conosce lo stato delle porte:
b1# brctl showstp br0 | grep 'state' port id 8001 state forwarding port id 8002 state forwarding port id 8003 state blocking b2# brctl showstp br0 | grep 'state' port id 8001 state forwarding port id 8002 state blocking b3# brctl showstp br0 | grep 'state' port id 8001 state forwarding port id 8002 state forwarding b4# brctl showstp br0 | grep 'state' port id 8001 state forwarding port id 8002 state forwarding b5# brctl showstp br0 | grep 'state' port id 8001 state forwarding port id 8002 state forwarding
(screenshot)
Le porte in stato di blocking sono nei bridge 1 e 2.
|
|
Sandro Doro (email me)