OSI ir STP - lekt. Simonas Kareiva
Download
Report
Transcript OSI ir STP - lekt. Simonas Kareiva
OSI modelis
Spanning Tree protokolas
Simonas Kareiva
Turinys
•
•
•
•
OSI modelis
Tinklo architektūros lygiai
Patikimumas konvergavusiame tinkle
Kaip Spanning Tree protokolas (STP)
eliminuoja 2 lygio kilpas tinkle
• Trys STP algoritmo žingsniai
• Rapid STP
Protokolai modelio kontekste
Core-distribution-access
Mūsų poreikiai
• Patikimumas core ir
distribution
sluoksniuose
• Daugybiniai sujungimai
tarp komutatorių
• Vienam sujungimui
pradingus pradeda
veikti kitas sujungimas
Papildomas jungimas
• Komutavimo kilpos (switching loops) sukelia
šias problemas (angl.):
– Broadcast storms
– Multiple frame transmission
– Inconsistent switch tables
Broadcast audra (storm)
Komutavimo
Broadcast info
kilpa
persiunčiama
kitais
prievadais
Siunčiam
ARP
užklausą
Ir niekas
negali to
sustabdyti
Multiple Frame Transmissions
A yra 3 porte
Nepažįstu B
Broadcast
Siųsti
pranešimą
(frame) B
Gaunam
kartą
A
B
Ir dar
kartą
Nesuderinamos komutavimo lentelės
A
A is
yra
onporte
port 33
Don’t
A yra know
porte B
1
A yra
So flood
porte 2
?
A yra porte 1
A yra porte 2
WTF???
Siųsti
pranešimą
(frame) B
A
B
Klaidingas jungimas
• Jeigu specialiai nejungiate tinklo kilpomis,
galite tai padaryti netyčia. Arba tai gali
padaryti USERIS!
Etherchannel – išimtis
• Keletas sujungimų nesukuria kilpos kai
naudojamas Etherchannel protokolas.
• Sujungimai agreguojami į vieną loginį
sujungimą, kurio pralaidumas yra visų
agreguotų sujungimų pralaidumų suma.
Patikimumas be kilpų
• Vienu metu turi būti tik vienas kelias.
• Atsarginiai keliai turi būti atjungti ir įjungiami
tik neveikiant pagrindiniams keliams.
• Viską reikia daryti greitai ir automatiškai
• Tai daro Spanning
Tree Protokolas.
Kas yra “spanning tree”?
• Medžio (žvaigždės) topologija
– Medis neturi kilpų!
• Padengiami visi įrenginiai
– Ta prasme - visi įrenginiai sujungti į tinklą.
Ar spanning tree?
• Yra kilpų…
Ar spanning tree?
• Pamiršom vieną aparatą…
Ar spanning tree?
• Jokių kilpų, visi įrenginiai - PUIKU
Klausimas (off-topic)
• Kuo skiriasi:
– Bridge (tiltas)
– Switch (komutatorius)
• ?
• Niekuom!
• Tai marketinginiai terminai - sinonimai!
Spanning tree protokolas
• Komutatoriams skirtas protokolas, leidžiantis
perteklinį sujungimą paversti spanning tree
• Išjungia nenorimus sujungimus (blokuoja
portą)
• STP apibrėžiamas IEEE 802.1d
• Rapid STP apibrėžiamas IEEE 802.1w
• Dauguma komutatorių naudoja STP by default
– nereikia jokios konfigūracijos.
Spanning tree algoritmas
The switches use this algorithm to decide which
ports should be shut down.
1. Vienas komutatorius išrenkamas “root bridge”
2. Kiekvienam komutatoriuje išrenkamas “root
port”
3. Kiekvienam tinklo segmente parinkti “designated
port”
4. Visus kitus sujungiamuosius prievadus išjungti.
Procesas
Root bridge
Designated port
Root port
Root port
Designated port
Root port
Designated port
Designated port
Nepasirinktas
Išjungti!!!
1 Parenkamas root bridge
• Kiekvienas komutatorius turi bridge ID (BID) kurį
nusako prioritetas ir MAC adresas
• Komutatoriai apsikeičia Bridge Protocol Data
Units (BPDUs) pranešimais kad sulyginti BID
• Komutatorius su mažiausiu BID tampa root bridge
• Administratorius gali rankom nustatyti prioritetą
kad išvengti tokių atvejų, kai koks nors senukas
komutatorius netyčia tampa root bridge.
– Kodėl taip nutinka?
Bridge ID
• Bridge ID sudaromas iš prioriteto, sistemos ID ir
MAC adreso
• Pagal nutylėjimą prioritetas yra 32768
• Laimi komutatorius su mažiausia prioriteto
reikšme
• Reikšmės 1 - 65536, (4096 kartotiniai)
• Sistemos ID reikšmė nusako VLAN ID.
• MAC adresas nusako prioritetą jei kitos reikšmės
sutampa. Geriau nesiremti MAC adresu...
Konfigūruojame prioritetą
• Tiesiogiai nustatome prioritetą:
– SW1# spanning-tree vlan 1 priority 24576
• Arba netiesiogiai…:
– SW1# spanning-tree vlan 1 root primary
• Toks užrašymas nustato prioritetą 24576 arba
4096 mažiau negu surastas žemiausias
prioritetas.
– SW1# spanning-tree vlan 1 root secondary
• Taigi, nustato reikšmę į 28672. Pastarasis
komutatorius taps root bridge kai (jei) pagrindinis
nustos veikti.
1 Parenkamas root bridge
• Komutatorius įsijungęs siunčia BPDU pranešimus (frames)
kuriuose yra komutatoriaus BID ir root ID (kas pora sek.)
• Visų pirma komutatorius galvoja kad jis yra root
• Jei komutatorius BPDU pranešimu gauna informaciją jog
yra kažkas su mažesniu BID, jis identifikuoja naują root
bridge ir perduoda šią info kitiems
• Galų gale STP protokolui konvergavus visi komutatoriai
vieningai sutaria, kas yra root bridge
Parenkami root prievadai
• Kiekvienas ne root komutatorius pasirenka savo root port’ą:
• Tai yra prievadas į root bridge pusę su mažiausia kaina
Nustatoma sujungimo kaina
• Pagal nutylėjimą remiamasi sujungimo greičiu.
Tai sugalvojo ir nustatė IEEE.
• Kai Ethernet protokolas taps greitesniu, kainos
vėl gali pasikeisti
Greitis
10 Gbps
1 Gbps
100 Mbps
10 Mbps
Pataisyta
reikšmė
2
4
19
100
Anksčiau buvo
naudojama
1
1
10
100
Kaip keičiama interfeiso kaina
• SW1(config)#int fa0/1
• SW1(config-if)#spanning-tree cost 25
• SW1(config-if)#end
• SW1(config)#int fa0/1
• SW1(config-if)#no spanning-tree cost
• SW1(config-if)#end
O kas jei prievadų kaina vienoda?
• Naudotis portų prioritetu ir numeravimu
• By default
F0/1 turi
128.1
F0/2 turi
128.2
Taigi, prievadų prioritetas
• SW2(config-if)# spanning-tree port-priority 112
• Prioriteto reikšmės kinta nuo 0 iki 240, 16
kartotiniu.
• Reikšmė pagal nutylėjimą yra 128.
• Laimi mažiausia reikšmė
• Looseris išjungiamas
Perduodama kainos informacija
• Kiekvienas BPDU pranešimas turi kelio iki root
bridge kainą.
• Ši kaina yra visų sujungimų kainų suma.
• Komutatorius gavęs BPDU pranešimą
atnaujina savo kainą pridėdamas prievado,
kuriuo gavo BPDU info, kainą prie kainos,
nurodytos BPDU pranešime.
Pasirenkami designated ports
• Kiekviename segmente prievadas su mažiausia kaina į
root bridge tampa designated port.
Jei kaina sutampa…
• Tuomet renkamas prievadas tame komutatoriuje, kurio
BID mažesnis. Pagal pvz tai komutatorius B.
Išjungiam looser’ius
• Kiekvienas prievadas, kuris nėra root arba designated
prievadas, yra išjungiamas.
BPDU
(Bridge Protocol Data Units)
• BPDU pranešimas enkapsuliuojamas Ethernet
frame pranešime.
• Gavėjo MAC adresas visada yra
01:80:C2:00:00:00, tai yra multicast adresas,
naudojamas STP protokole
BPDU laukai
2 bytes
Protocol ID
1 byte
Version
1 byte
Message type
1 byte
Flags
8 bytes
Root ID
4 bytes
Cost of path
8 bytes
Bridge ID
2 bytes
Port ID
2 bytes
Message age
2 bytes
Max age
2 bytes
Hello time
2 bytes
Forward delay
Admin
BID and path
information
Timers
Taigi, prievadų rolės
• STP paverčia prievadus:
– Root ports (dirba)
– Designated ports (dirba)
– Non-designated ports (išjungiami)
Prievadų būsenos tradiciniame STP
• Blocking – siunčia ir gauna BPDU pranešimus.
• Listening - siunčia ir gauna BPDU pranešimus.
• Learning - siunčia ir gauna BPDU pranešimus.
Mokosi naujų MAC adresų
• Forwarding – Visiškai aktyvus, perduodamas
normalus srautas.
• Disabled – Atjungtas (administratively down).
Būsenos ir taimeriai
Blocking
Loss of BPDU detected
Max-age = 20 sec
Listening
Forward delay = 15 sec
Learning
Forward delay = 15 sec
Forwarding
Blocking
When link first
comes up
“Hello” taimeris
BPDU siuntimui yra
2 sekundės.
Blogam sujungimui
vėl įsijungti gali
prireikti iki 50 sek.
BPDU taimeriai
• Taimeriai yra optimizuoti 7 komutatorių
skersmens tinklui.
• Tinklas turi šiek tiek laiko konverguoti kol
komutatoriai pradeda siųsti vartotojų
duomenis
• Taimeriai gali būti individualiai koreguojami…
• Pakeitus diametrą visi taimeriai automatiškai
pasikeičia. Geriau nedaryti namuose…
• spanning-tree vlan 1 root primary diameter 5
Patikrinkime spanning tree
Root bridge
Šis
komutatorius
Topology change notification (TCN)
• Tinklui konvergavus root bridge siunčia BPDUs, bet kiti
komutatoriai BPDU atgal neatsiunčia.
• Jei yra topologijos pasikeitimų, komutatorius siunčia specialų
BPDU, vadinamą TCN. Jis adresuojamas root bridge.
• Kiekvienas komutatorius pakeliui gavęs TCN pranešimą
patvirtina ir persiunčia toliau į designated portą/root portą.
Kol jį gauna root bridge
• Root bridge tuomet išsiunčia visiems naują BPDU su TC
(topology change) bitu.
STP variacijos
Cisco Proprietary
Per-VLAN spanning tree
protocol (PVST).
Per-VLAN spanning tree
protocol plus (PVST+) supports IEEE 802.1Q
Rapid per-VLAN spanning
tree protocol (rapid
PVST+)
IEEE Standards
Rapid spanning tree
protocol (RSTP) Multiple STP (MSTP) -
PVST+
• Atskiras STP kiekvienam VLAN
Rapid Spanning Tree Protocol
• Daugiau negu STP bet su juo suderinamas.
• Daug greičiau konverguoja.
• Ta pati BPDU struktūra, tik versijos lauke
įrašomas 2
• Siunčia BPDU kas 2 sek.
• Kitokios prievadų rolės ir būsenos.
• Kitaip naudojami taimeriai
• 3 negauti BPDU pranešimai laikomi linko
praradimu (kiek čia sekundžių?)
Edge prievadas RSTP
• Prievadas, kuris niekada nebus jungiamas į
komutatorių
• Iškart jungiamas į forward būseną
• Idėja analogiška Cisco PortFast.
• Net konfigūracijai naudojamas portfast žodis:
– spanning-tree portfast
• Tik gavęs BPDU pranešimą toks prievadas
tampa įprastu spanning-tree prievadu
Sujungimų tipai
• Sujungimas tarp dviejų komutatorių, dirbantis
full-duplex režimu vadinamas point-to-point
link.
• Sujungimas dirbantis half-duplex režimu
vadinamas shared link.
Prievadų būsenos
Operational
STP
RSTP
Enabled
Blocking
Discarding
Enabled
Listening
Discarding
Enabled
Learning
Learning
Enabled
Forwarding
Forwarding
Disabled
Disabled
Discarding
RSTP prievadų rolės
• Viskas kaip ir anksčiau .
Alternate port
takes over if
Des port fails.
RSTP prievadų rolės
Backup port
Takes over if root port
fails.
RSTP prievadų rolės
Forwarding
Root port
Designated port
Edge port – ne į
komutatorių
Discarding
Backup port
Alternate port
Abu tipai išjungti ir
laukia kol galės
perimti sugedusius
sujungimus
Dizaino ir architektūros rūpesčiai
• Root bridge turėtų būti galingas komutatorius,
įrengiamas tinklo centre.
• Reikia minimizuoti išjungtinų per STP prievadų
skaičių.
• Tinklo centre naudokite 3 lygio technologijas
(routing).
• Net jei nereikia išjungti jokių prievadų, vis tiek
naudokite STP protokolą. Just in case…