ცოტაოდენი მინდა ვისაუბრო CISCO STP TOOL-ებთან დაკავშირებით როგორიც არის portfast, BPDUGuard, BPDUFilter rootguard, loopguard და UDLD. UDLD მართალია არაფერ შუაში არ არის STP-ესთან მაგრამ cisco როგორც წესი STP tool-ებთან ერთად მოიხსენიებს.
Portfast-ის შემთხვევაში პორტი disable მდგომარეობიდან პირდაპირ გადადის forwarding მგომარეობაში. Portfast-ი კონფიგურირდება ისეთ პორტებზე სადაც STP-ეს მუშაობა საჭირო აღარ არის მაგალითად ისეთი პორტები სადაც კომპები, სერვერები, ტელეფონები და ასე შემდეგ არის შეერთებული. არც რეკომენდირებული და არც დასაშვებიც არ არის სვიჩებს შორის.
Configuration/Verification
გლობალური კონფიგურაციის რეჟიმიდან (global config) როცა ვაკონფიგურირებთ ყველა access პორტზე ირთვება porfast-ი
switch(config)#spanning-tree portfast default
შემოწმება შესაძლებელია შემდეგი ბრძანებით
switch#show spanning-tree summary totals
Switch is in rapid-pvst mode
Root bridge for: none
Extended system ID is enabled
Portfast Default is disabled
PortFast BPDU Guard Default is enabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
EtherChannel misconfig guard is enabled
UplinkFast is disabled
BackboneFast is disabled
Configured Pathcost method used is short
Name Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
10 vlans 9 0 0 34 43
კონკრეტულ პორტზე კონფიგურაცია
switch(config-if)#spanning-tree portfast
trunk პორტზეც შესაძლებელია portfast-ის კონფიგურაცის ეს გამოიყენება თუ სერვერის პორტი ტრანკია ან ისეთ ადგილას სადაც საერთოდ არ დადის BPDU-ები.
switch(config-if)#spanning-tree portfast trunk
switch#show running-config interface fastEthernet 0/1
Building configuration...
Current configuration : 441 bytes
!
interface FastEthernet0/1
spanning-tree portfast
Portfast-ის ჩართვის შემეგ რათქმა უნდა ჩნდება იმის შესაძლებლობა რომ ვიღაცის უცოდინრობით ან უყურადღებობით მოხდეს loop-ი (მაგ: ორი portfast პორტი ერთმანეთთან შეაერთოს). ეგეთი სიტუაციებისთან დასაცავად გამოიყენება BPDUguard და BPDUfilter.
BPDUguard - ის დროს როცა პორტზე მოვა BPDU პორტი მომენტალურად გადავა err-disable მგომარეობაში რათქმა უნდა log მესიჯსაც დააგენერირებს. Err-disable recovery თუ არ არის დაკონფიგურირებული ხელით ჩარევაა საჭირო პორტზე Shutdown/no shutdown ბრძანებებით.
Configuration/Verification
გლობალური კონფიგურაციის შემთხვევაში ყველა პორტზე რომელზეც ჩართული არის porfast-ი ჩაირთვება BPDUguard-იც
switch(config)#spanning-tree portfast bpduguard default
switch#show spanning-tree summary totals
Switch is in rapid-pvst mode
Root bridge for: none
Extended system ID is enabled
Portfast Default is disabled
PortFast BPDU Guard Default is enabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
EtherChannel misconfig guard is enabled
UplinkFast is disabled
BackboneFast is disabled
Configured Pathcost method used is short
Name Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
10 vlans 9 0 0 34 43
რათქმაუნდა კონკრეტულ პორტზეც შეიძლება კონფიგურაცია
switch(config-if)#spanning-tree bpduguard enable
switch#show running-config interface fastEthernet 0/1
Building configuration...
Current configuration : 460 bytes
!
interface FastEthernet0/1
spanning-tree portfast
spanning-tree bpduguard enable
BPDUFilter-ის მუშაობის პრინციპი დამოკიდებულია საიდან დავაკონფიგურირებთ. თუ გლობალური კონფიგურაციის რეჟიმიდან დავაკონფიგურირებთ მაშინ portfast პორტზე თუ მოვა BPDU პორტი გახდება ჩვეულებრივი STP პორტი ანუ portfast-ს გათიშავს. მხოლოდ თუ ინტერფეისი კონფიგურაციის რეჟიმიდან დავაკონფიგურირებთ პორტი არც გააგზავნის და არც მიიღებს BPDU-ებს ანუ კონკრეტულ პორტზე გათიშავს STP-ეს. loop-ებისგან დასაცავად დიდად არ არის რეკომენდირებული BPDUfilter-ის გამოუყენება. უფრო ხშირად გამოიყენება პორტზე STP-ეს გასათიშად.
Configuration/Verification
გლობალური კონფიგურაციის შემთხვევაში ყველა პორტზე რომელზეც ჩართული არის porfast-ი ჩაირთვება BPDUfilter-იც. როგორც ზემოთ ვთქვი ამ შემთხევაში თუ პორზე მოვა BPDU პორტი გახდება ჩვეულებრივი STP-ე პორტი ანუ portfast-ს გათიშავს
switch(config)#spanning-tree portfast bpdufilter default
switch#show spanning-tree summary totals
Switch is in rapid-pvst mode
Root bridge for: none
Extended system ID is enabled
Portfast Default is disabled
PortFast BPDU Guard Default is enabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
EtherChannel misconfig guard is enabled
UplinkFast is disabled
BackboneFast is disabled
Configured Pathcost method used is short
Name Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
10 vlans 9 0 0 34 43
მხოლოდ კონკრეტულ პორტზე კონფიგურაციის დროს პორტი არც გააგზავნის და არც მიიღებს BPDU-ებს ანუ პორტზე გათიშავს STP-ეს.
switch(config-if)#spanning-tree bpdufilter enable
switch#show running-config interface fastEthernet 0/1
Building configuration...
Current configuration : 460 bytes
!
interface FastEthernet0/1
spanning-tree portfast
spanning-tree bpdufilter enable
Rootguard-ი იცავს root bridge-ს ანუ სხვა root bridge-ის არჩევა რომ არ მოხდეს ქსელში. კონფიგურირდება Designated პორტებზე ანუ ისეთ პორტზე სადაც root bridge-ი არ უნდა იყოს. თუ root guard enable პორტზე მოვა superior BPDU პორტი გადავა root-inconsistent მდომარეობაში. root-inconsistent მგომარეობა უტოლდება STP listen მგომარეობას ამ მგომარეობაში პორტზე არანაირი ტრაფიკი არ გაივლის. მხოლოდ როცა შეწყდება superior BPDU მოსვლა პორტზე, პორტი დაუბრუნდება ჩვეულებრივს მგომარეობას.
Configuration/Verification
კონფიგურაცია ხდება ინტერფეისი კონფიფურაციის რეჟიმიდან
switch(config-if)#spanning-tree guard root
switch#show running-config interface fastEthernet 0/1
Building configuration...
Current configuration : 428 bytes
!
interface FastEthernet0/1
spanning-tree portfast
spanning-tree guard root
end
LOOPGuard-ი იცავს STP-ეს Unidirection-ისგან ანუ BPDU-ები იგზავნება და უკან არ მოდის. მაგალითად ისეთ შემთვევაში როცა redundacny ტოპოლოგია გვაქვს და ერთ-ერთი პორტი STP-ეთი არის დაბლოკილი და დაბლოკილი პორტზე აღარ მოდის BPDU-ები იმიტომ რომ მეზობელი სვიჩი რაღაც მიზეზების გამო ვერ აგზავნის BPDU-ებს პორტი გადავა Forwarding მგომარეობაში და მოხდება LOOP-ი.როგორც წესი კონფიგურირდება non-designated პორტებზე.
Configuration/Verification
კონფიგურაცია შესაძლებელია როგორც გლობალური კონფიგურაციის რეჟიმიდან ასევე ინტერფეისი კონფიგურაციის რეჟიმიდანაც.
გლობალური კონფიგურაციის რეჟიმიდან კონფიგურაციისას ყველა პორტზე კონფიგურირდება
switch(config)#spanning-tree loopguard default
switch#show spanning-tree summary totals
Switch is in rapid-pvst mode
Root bridge for: none
Extended system ID is enabled
Portfast Default is disabled
PortFast BPDU Guard Default is enabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
EtherChannel misconfig guard is enabled
UplinkFast is disabled
BackboneFast is disabled
Configured Pathcost method used is short
Name Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
10 vlans 9 0 0 34 43
ესეც ინტერფეისი კონფიგურაციის რეჟიმიდან
switch(config-if)#spanning-tree guard loop
switch(config-if)#do show run int fa0/11
Building configuration...
Current configuration : 428 bytes
!
interface FastEthernet0/11
spanning-tree guard loop
end
UDLD- არის მეორე დონის პროტოკოლი რომელიც იყენებს პირველი დონის მექანიზმებს. UDLD უნდა იყოს ორივე მხარეს დაკონფიგურირებული. მეზობელი სვიჩები უგზავნიან ერთმანეთს UDLD frame-ებს რომელშიც წერს port's own device/port და მეზობელის სვიჩის device/port IDs მოწყბილობამ უნდა დაინახოს თავის თავის მოსულ UDLD frame-ში თუ ვერ დაინხა გარკვეული პერიოდის განმავლობაში ლინკი გამოცხადდება unidirectional. ამის მერე UDLD-ს აქვს ორი მუშაობის რეჟიმი aggressive და normal.
aggressive რეჟიმში მუშაობისას თუ ლინკი გამოცხადდა Unidirectional მაში პორტი გადავა err-disable მდომარეობაში და Log-იც დაგენერირდება.
normal -ის შემთხვევაში მხოლოდ log-ი დაგენერირდება.
Configuration/Verification
გლობალური კონფიგურაციიდან დაკონფიგურირდებისას UDLD ირთვება ყველა ოპტიკური პორტზე
switch(config)#udld enable - ყველა ოპტიკურ პორტზე ჩაირთვება normal რეჟიმი
switch(config)#udld aggressive - ყველა ოპტიკური ინტერფეისზე ჩაირთვება Aggressive რეჟიმი.
switch(config-if)#udld enable – კონკრეტულ ინტერფეისზე normal რეჟიმის ჩართვა
switch(config-if)#udld aggressive - კონკრეტულ ინტერფეისზე aggressive რეჟიმის ჩართვა.
switch#show udld neighbors - შევამოწმოთ udld მეზობლები.
switch#show udld port type slot/number - შევამოწმოთ UDLD მდგომარეობა კონკრეტულ პორტზე.