Chiar și STP este activat prin brctl stp comutator pornit
într-o rețea în buclă, pachetele nu pot fi redirecționate cu succes. Vă rugăm să rețineți că, dacă nu există nicio buclă în rețea, atunci totul este ok.
Problema este descrisă după cum urmează.
Am trei plăci Linux (adică, SW1, SW2, SW3) cu topologia inelă așa cum se arată:
SW1
/\
SW2 ââââ SW3
Configurațiile IP sunt:
SW1:192.168.20.2
SW2:192.168.20.3
SW3:192.168.20.4
Fiecare placă Linux are 4 porturi fizice, iar conexiunile sunt:
SW1.swp2 <---> SW2.swp2
SW1.swp0 <---> SW3.swp1
SW2.swp3 <---> SW3.swp3
Configurația bridge-ului SW1 este așa cum se arată mai jos, celelalte sunt la fel ca aceasta, cu excepția adresei IP a „comutatorului”.
ifconfig switch 192.168.20.2 # „192.168.20.2” este IP-ul SW1,
comutatorul setat link-ul ip
ip link set swp0 master switch && ip link set swp0 up
legătură ip set swp1 comutator principal && legătură ip setează swp1 sus
legătură ip set swp2 comutator principal && legătură ip set swp2 sus
legătură ip set swp3 comutator principal && legătură ip set swp3 sus
route add default gw 192.168.20.1
brctl stp comutator pornit
Configurați legătura IP comutatorul de dezvoltare
STP-ul este activat cu succes:
brctl arată comutator
numele podului ID pod Interfețe activate STP
comutator 8000.06f5bc4466d2 da swp0
swp1
swp2
swp3
Starea STP pentru SW1:
comutator brctl showstp
intrerupator
ID pod 8000.06f5bc4466d2
rădăcină desemnată 8000.067b22fa77a2
Portul rădăcină 1 calea costă 4
varsta max 20,00 pod varsta max 20,00
Hello Time 2.00 bridge Hello Time 2.00
întârziere înainte 15.00 pod întârziere înainte 15.00
timp de îmbătrânire 300,00
salut timer 0.00 tcn timer 0.00
cronometru schimbare topologie 0,00 cronometru gc 239,55
steaguri
swp0 (1)
Port id 8001 redirecționare de stat
rădăcina desemnată 8000.067b22fa77a2 calea cost 4
punte desemnată 8000.067b22fa77a2 temporizator de vârstă mesaj 19,82
portul desemnat 8002 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
steaguri
swp1 (2)
starea ID portului 8002 este dezactivată
rădăcina desemnată 8000.06f5bc4466d2 calea costă 100
punte desemnată 8000.06f5bc4466d2 temporizator de vârstă mesaj 0,00
portul desemnat 8002 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
steaguri
swp2 (3)
Port id 8003 redirecționare de stat
rădăcina desemnată 8000.067b22fa77a2 calea cost 4
punte desemnată 8000.06f5bc4466d2 temporizator de vârstă mesaj 0,00
portul desemnat 8003 temporizator de întârziere înainte 0,00
cost desemnat 4 hold timer 1.41
steaguri
swp3 (4)
starea ID portului 8004 este dezactivată
rădăcina desemnată 8000.06f5bc4466d2 calea costă 100
punte desemnată 8000.06f5bc4466d2 temporizator de vârstă mesaj 0,00
portul desemnat 8004 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
Starea STP pentru SW2:
comutator brctl showstp
intrerupator
ID pod 8000.9a32d1ec24fe
rădăcină desemnată 8000.067b22fa77a2
Portul rădăcină 4 costul căii 4
varsta max 20,00 pod varsta max 20,00
Hello Time 2.00 bridge Hello Time 2.00
întârziere înainte 15.00 pod întârziere înainte 15.00
timp de îmbătrânire 300,00
salut timer 0.00 tcn timer 0.00
cronometru schimbare topologie 0,00 cronometru gc 58,07
steaguri
swp0 (1)
starea ID portului 8001 este dezactivată
rădăcina desemnată 8000.9a32d1ec24fe calea costă 100
punte desemnată 8000.9a32d1ec24fe temporizator de vârstă mesaj 0,00
portul desemnat 8001 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
steaguri
swp1 (2)
starea ID portului 8002 este dezactivată
rădăcina desemnată 8000.9a32d1ec24fe calea costă 100
punte desemnată 8000.9a32d1ec24fe temporizator de vârstă mesaj 0,00
portul desemnat 8002 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
steaguri
swp2 (3)
blocarea stării ID portului 8003
rădăcina desemnată 8000.067b22fa77a2 calea cost 4
punte desemnată 8000.06f5bc4466d2 temporizator de vârstă mesaj 19.43
portul desemnat 8003 temporizator de întârziere înainte 0,00
cost desemnat 4 hold timer 0,00
steaguri
swp3 (4)
Port id 8004 redirecționare de stat
rădăcina desemnată 8000.067b22fa77a2 calea cost 4
punte desemnată 8000.067b22fa77a2 temporizator de vârstă mesaj 19.43
portul desemnat 8004 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
steaguri
Starea STP pentru SW3:
comutator brctl showstp
intrerupator
ID pod 8000.067b22fa77a2
rădăcină desemnată 8000.067b22fa77a2
Portul rădăcină 0 costul căii 0
varsta max 20,00 pod varsta max 20,00
Hello Time 2.00 bridge Hello Time 2.00
întârziere înainte 15.00 pod întârziere înainte 15.00
timp de îmbătrânire 300,00
salut timer 0.62 tcn timer 0.00
cronometru schimbare topologie 0,00 cronometru gc 98,80
steaguri
swp0 (1)
Port id 8001 redirecționare de stat
rădăcina desemnată 8000.067b22fa77a2 calea cost 4
punte desemnată 8000.067b22fa77a2 temporizator de vârstă mesaj 0,00
portul desemnat 8001 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
steaguri
swp1 (2)
Port id 8002 redirecționare de stat
rădăcina desemnată 8000.067b22fa77a2 calea cost 4
punte desemnată 8000.067b22fa77a2 temporizator de vârstă mesaj 0,00
portul desemnat 8002 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
steaguri
swp2 (3)
Port id 8003 redirecționare de stat
rădăcina desemnată 8000.067b22fa77a2 calea costă 19
punte desemnată 8000.067b22fa77a2 temporizator de vârstă mesaj 0,00
portul desemnat 8003 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
steaguri
swp3 (4)
Port id 8004 redirecționare de stat
rădăcina desemnată 8000.067b22fa77a2 calea cost 4
punte desemnată 8000.067b22fa77a2 temporizator de vârstă mesaj 0,00
portul desemnat 8004 temporizator de întârziere înainte 0,00
cost desemnat 0 hold timer 0,00
steaguri
În SW1, dau ping la SW2:
ping 192.168.20.3
PING 192.168.20.3 (192.168.20.3): 56 de octeți de date
64 de octeți de la 192.168.20.3: seq=9 ttl=64 time=0,330 ms
64 de octeți din 192.168.20.3: seq=37 ttl=64 time=0,291 ms
64 de octeți de la 192.168.20.3: seq=63 ttl=64 time=0,289 ms
64 de octeți de la 192.168.20.3: seq=90 ttl=64 time=0,310 ms
64 de octeți din 192.168.20.3: seq=117 ttl=64 timp=0,305 ms
64 de octeți de la 192.168.20.3: seq=145 ttl=64 time=0,286 ms
64 de octeți din 192.168.20.3: seq=172 ttl=64 time=0,311 ms
După cum putem vedea, pachetele ping nu pot fi transmise continuu.
Există vreo idee bună? Din nou, când am deconectat bucla, ping-ul este ok.