위와 같은 스패닝 트리를 한번 보도록 하겠습니다.맨 위의 Switch 1이 당연히 Root Bridge가 되겠죠?
한번 복습겸 확인해 보겠습니다.
Switch#sh spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 0005.5E42.7A56
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0005.5E42.7A56
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/2 Desg FWD 19 128.2 P2p
Fa0/1 Desg FWD 19 128.1 P2p
Switch#
위에서 Root라는 걸 찾을 수 있네요~ 그럼 그 아랫줄도 이번에는 눈여겨 보시길 바랍니다.
스위치에서 하나의 포트에 장애가 발생하거나 링크가 끊기면 포트의 상태를 바꿔야 하는데요,
그 시간이 최소 30초에서 50초까지 소요가 됩니다.
현재 포트의 상태들은 아래와 같은 상태일텐데요
그렇다면 여기서 왼쪽의 포트를 끊어 보고 상태를 보겠습니다.
위의 스위치를 끊은 순간에 Switch3 로 가서 spanning-tree를 보면
Switch#sh spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 0005.5E42.7A56
Cost 19
Port 2(FastEthernet0/2)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0090.215A.59E3
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Altn BLK 19 128.1 P2p
Fa0/2 Root FWD 19 128.2 P2p
Switch#
아직 Blocking Port가 풀리지 않은 것을 볼 수 있습니다.
Switch2에서는 Max Age Time을 기다리는 것이죠.
Blocking Port가 풀리더라도 Listen 상태와 Learning 상태를 기다리게 되면 최소 30초에서 최대 50초 정도의 시간이 소요되는 것입니다.
이 말은 저 시간동안 패킷이 전달되지 못한다는 것을 의미합니다.
네트워크에서 저정도 시간의 장애는 정말 큰 부분이죠?
그렇기 때문에 이럴 어느정도 해결하기 위해서 Portfast, Uplinkfast, Backbonefast 를 사용하는 것입니다.
그렇다면 하나하나 살펴 보겠습니다.
Portfast
먼저 Portfast는 Access-Port에 걸어주는 것입니다.
위와같은 상황에서 스위치에 PC장비를 걸어주거나 끊거나 하면 똑같이 일정 시간이 소요됩니다. 이를 해결하기 위한 부분입니다.
그래서 Portfast는 Access mode 인 포트에 걸어주면 됩니다.
Switch(config-if)# switchport mode access
Switch(config-if)# spanning-tree portfast
Switch(config-if)# switchport host
Switch(config)# spanning-tree portfast default
걸어주게 되면 아래와 같은 경고 메세지가 출력되게 됩니다.
Switch(config)#int fa0/3
Switch(config-if)#switchport mode access
Switch(config-if)#spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single
host. Connecting hubs, concentrators, switches, bridges, etc... to this
interface when portfast is enabled, can cause temporary bridging loops.
Use with CAUTION
%Portfast has been configured on FastEthernet0/3 but will only
have effect when the interface is in a non-trunking mode.
스위칭 장비에 걸게 되면 Loop가 발생되므로 조심하라는 말입니다.
아무튼 Access mode 의 포트에는 portfast를 걸어주는 것이 효율적이겠네요.
uplinkfast , backbonefast
위의 portfast는 access port를 위한 솔루션이었다면 이는 스위치같은 장비간의 딜레이를 줄여주는 솔루션입니다.
먼저 uplinkfast는 이 포워딩 딜레이를 최소화 시켜주는 방법으로, 아주 짧은 딜레이만 가지고 포트의 상태를 변화시켜줍니다.
거의 즉시에 가깝습니다.
하지만 주의 할 것이 있습니다. 만약 어떠한 스위치를 Root Bridge로 선출해 놓았다면 그 장비에서는 Uplinkfast를 걸어 주어서는 안됩니다.
Switch(config-if)#spanning-tree uplinkfast
위와같이 걸어주는 명령은 아주 쉬우나
아래와 같은 결과가 나타나게 됩니다.
Priority 는 default value보다 큰 49152가 되고 Port Cost도 3000이 증가합니다.
이러한 이유로 절대 선정한 Root Bridge에서는 걸어주면 안되는 것입니다.
A>(enable) show spantree
VLAN 1
Spanning tree enabled
Spanning tree type ieee
Designated Root 00-40-0b-cd-b4-09
Designated Root Priority 8192
Designated Root Cost 3100
Designated Root Port 2/1
Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
Bridge ID MAC ADDR 00-90-d9-5a-a8-00
Bridge ID Priority 49152
Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
Port Vlan Port-State Cost Priority Portfast Channel_id
------------------------ ---- ------------- ----- -------- ---------- ----------
1/1 1 not-connected 3019 32 disabled 0
1/2 1 not-connected 3019 32 disabled 0
2/1 1 forwarding 3100 32 disabled 0
2/2 1 blocking 3100 32 disabled 0
자 그렇다면 이제 마지막으로 Backbonefast에 대해 알아보겠습니다.
걸어주는 방법은 역시나 매우 쉽습니다
CAT-IOS(config)# spanning-tree backbonefast
이의 경우에는 연결된 스위치 전부에 걸어주어야 합니다.
위의 토폴로지에서는 스위치 세개에 전부 걸어주어야 한다는 뜻입니다.
이에 대한 효과는 위에서 잠깐 해본 실습처럼 스위치는 Max Age Time동안 Blocking을 풀지 않는데, 이런 시간을 조금이나마 줄여주기 위해서 다른 Link가 끊겼을 때 Max Age Time 에 의한 Blocking 상태를 바로 풀어서 Listen-Learning 상태로 넘어갈 수 있는 기술입니다.
Root Bridge에서는 Uplinkfast를 걸어 줄 수 없으니 전체적인 토폴로지의 효율성을 위해서 사용하는 방법입니다.
위의 기술들은 네트워크에 영향을 미칠 정도는 아니겠지만 어느정도의 트래픽을 발생시킵니다. 참고 하세요.
역시 자세히 알고 싶다면 공식 문서를 봐야겠죠^^
아, 그리고 위의 세가지가 헷깔리신다면, 단어 그대로 보시길 바랍니다.
- Uplinkfast
- Uplink는 말그대로 링크(회선)죠? up되어있는 회선(활성화 되어있는 회선)에 대한 복구를 fast하게 도와준다고 생각하세요
- Portfast
- Port를 fast하게 활성화 시켜준다고 생각하면 되고
- Backbonefast
- 말씀드렸듯이 Root Bridge에서는 Uplinkfast가 불가능하니 이를 사용하는거죠
- 스패닝트리에서의 백본은 Root Bridge라고 생각하시면 쉽게 생각이 나실거에요^^