본문으로 바로가기
반응형
스패닝 트리 프로토콜(Spanning Tree Protocol)

Ethernet Frame이 장비들에서 빙빙 도는 것Looping(루핑)이라고 한다. 이 Looping을 방지시켜주는 것이 STP(Spanning Tree Protocol)이다.

※ L3 계층에서 사용하는 IP Packet은 Header에 TTL Field가 있어 Packet의 Looping을 막아준다.

IEEE 802.1D-2004 Standard[각주:1]에서 STP -> RSTP(Rapid STP)로 대체되었지만 현재도 다수의 스위치들은 STP를 사용하고 있다.

  • 참고 Topology


Frame Looping시 발생하는 영향

1. 브로드캐스팅 폭풍(Broadcasting Storm) 발생

위의 Topology를 참고해서, R1이 SW1로 Broadcast Frame[각주:2]을 보냈다고 가정했을 때, Switch는 Broadcasting Frame을 같은 VLAN상에 있는 모든 포트로 Flooding한다. 이 때 STP가 작동하지 않으면 SW1 -> SW2로, SW2 -> SW3으로, SW3 -> SW1로, 또 SW1 -> SW3으로, SW3 -> SW2로, SW2 -> SW1로 앞, 뒤로 전송하여 Broadcast Frame의 Looping이 일어나게 된다. 결과적으로 엄청난 브로드캐스팅 폭풍이 발생하게 되며, 이 Frame을 처리하느라 정상적인 동작이 어렵게 되어 속도가 저하되거나 아예 시스템이 다운되기까지 한다.


2. MAC Address Table 불안정

Looping이 발생하게 되면 동일한 MAC Address를 다른 Interface에서 받게 된다. 고로 MAC Address Table이 계속 변하는 MAC Table Instability(불안정) 현상이 발생한다.


3. 이중 Frame 수신

Frame이 Looping되면서 받은 Frame을 또 받고, 또 받고, 또 받으면서 해당 Frame을 사용하는 프로그램이 제대로 동작하지 않을 수 있다.


Spanning Tree Protocol - 동작 방식

STP가 동작을 시작하면 위의 Topology와 같은 물리적으로 Loop 구조인 Network에서 특정 Port를 차단 상태로 바꾸어 놓음으로써 논리적으로 Loop가 발생하지 않게 한다.

그러다 다른 동작중인 스위치의 Port가 Down되면 차단 상태로 바꿔놓은 특정 Port를 다시 전송 상태로 바꾸어 통신이 끊기지 않도록 한다.

그 Loop를 막는 경로를 구성하는 프레임BPDU(Bridge Protocol Data Unit)라고 한다.


BPDU는 Configuration BPDU(설정 BPDU)와 TCN BPDU(Topology Change Notification BPDU) 2가지가 있다.


1. Configuration BPDU : Switch 및 Port의 역할을 결정하기 위하여 사용되는 Frame

2. TCN BPDU : Switch Network의 구조가 변경되었을 때 알리기 위하여 사용되는 Frame


Switch는 Configuration BPDU를 2초마다 전송하여 Root Switch를 선출하고, Switch Port의 역할을 결정하고, 그 BPDU를 인접 Switch로 중계한다.

Configuration BPDU에는 Bridge ID, Root Bridge ID, 경로값, Port ID 등과 Timer등이 포함되어 있다.


Spanning Tree Protocol - Switch 선출 방식

    • 1. 전체 Switch 중 Root Switch를 선출한다.
BRIDGE ID 값이 가장 낮은 것이 Root Switch가 되며, Bridge ID는 2Byte Priority(우선순위) + 6Byte MAC Address로 구성되어있다. Priority 기본값은 10진수 32768이며 0~65535값을 가진다.
    • 2. Root Switch 이외의 모든 스위치에서 Root Port를 한개씩 선출한다. Root Port 경쟁시 선출 조건은 이러하다.
1. 경로값의 합이 가장 작은 Port
2. 인접 스위치의 Bridge ID가 가장 낮은 Port
3. 인접 스위치의 Port ID가 가장 낮은 Port
경로값(Past Cost)란 IEEE에서 속도별로 미리 정해 놓은 값을 말하며, 속도가 빠를수록 경로값이 낮다.
Ethernet은 100, FastEthernet는 19, 1Gbps는 4, 10Gbps는 2다.
경로값의 합은 경로값을 구하는 해당 스위치를 기준으로 Root Switch까지의 각 포트의 경로 값을 합산한 것이다.
Port ID는 BPDU를 전송하는 Port의 우선순위Port Number로 구성되는데, 기본값은 128이다.
    • 3. 각각의 Switch Segment당 Designated Port(지정 포트)를 한개씩 선출한다.
Designated Port는 한 Segment당 1개씩 설정하며 Segment는 쉽게 말해서 스위치 사이의 경로를 뜻한다.
※ Root Switch의 연결된 Port들은 전부 Designated Port(DP)이다.
1. 경로값의 합이 가장 작은 Switch Port
2. Bridge ID가 가장 낮은 Switch Port
3. Port ID가 가장 낮은 Switch Port
    • 4. Root Port도, Designated Port도 아닌 Port인 Alternate Port(대체 Port)를 선출한다. 이 Port는 항상 차단된다.

Cisco Switch에서는 1개의 VLAN1개의 STP가 동작하는데, 이를 PVST or PVST+ (per VLAN Spanning Tree)라고 한다.

show spanning-tree vlan 1 명령어를 통해서 STP 동작 상태를 확인할 수 있다.

※ VLAN 1은 기본 VLAN이다.

SW1#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0100
             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     aabb.cc00.0100
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et1/1               Desg FWD 100       128.6    Shr 
Et3/1               Desg FWD 100       128.14   Shr 
Et3/3               Desg FWD 100       128.16   Shr 

Priority는 기본값 32768 + VLAN ID 1을 더한 32769값이 나오고, 현재 Switch가 Root Switch임을 알려주고 있다.

Hello Time, Max Age, Forward Delay 등 다양한 타이머값들이 나와있다.

Bridge IDPriority32769인데, Root ID의 Priority와 Bridge ID의 Priority값이 같으면 현재 스위치가 Root Switch이다.
나와있는 Interface들을 보면 Role에 Desg, 즉 Desginated Port(지정 포트)라고 설정이 되어있는데, Root Switch의 Port들은 모두 Desginated Port라고 아까 설명하였다.
Sts는 Status라고 해서 Port의 상태를 나타내는데 차단(BLK, Blocking), 청취(LIS, Listening), 학습(LRN, Learning), 전송(FWD, Forwarding), 비활성(Disabled)이 있다.

Cost는 각 경로의 경로값이며 포트의 우선순위와 포트 번호를 표시하는 Prio.Nbr(Priority, Number)가 있다.

SW2#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0100
             Cost        100
             Port        14 (Ethernet3/1)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     aabb.cc00.0200
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et1/2               Desg FWD 100       128.7    Shr 
Et3/1               Root FWD 100       128.14   Shr 
Et3/2               Desg FWD 100       128.15   Shr 

SW3#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0100
             Cost        100
             Port        16 (Ethernet3/3)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     aabb.cc00.0300
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et3/2               Altn BLK 100       128.15   Shr 
Et3/3               Root FWD 100       128.16   Shr 

SW2와 SW3에서도 show spanning-tree vlan 1 명령어를 통해서 확인한 결과, 이렇게 표현될 수 있다.


SW1~3의 MAC Address를 비교하였을 때 SW1이 ~.0100으로 가장 낮으므로 동시에 Bridge ID도 낮기 때문Root Switch가 된다. 동시에 모든 Port들은 Desginated Port가 된다.
SW2에서 Root Port를 선출할 때는 SW1 -> SW2 경로 SW1 -> SW3 -> SW2 경로경로값을 비교하는데, 100, 100+100=200, 이므로 SW1 -> SW2로 가는 경로값이 작은 e3/1 Port가 Root Port가 된다.
SW3도 SW2의 Root Port 선출 방법과 마찬가지로 e3/3 Port가 Root Port가 된다.

Desginated Port각 Seg(Segment)당 1개씩 선출되어야 한다.
이 때 계산해야 하는 곳이 SW2와 SW3 사이의 Seg(Segment)인데, SW2, SW3에서 SW1로 가는 경로값은 100으로 동일하다.
고로 Bridge ID를 가지고 승부를 봐야하는데 SW2가 0200, SW3가 0300으로 Bridge ID값이 낮은 SW2에 소속된 나머지 Port인 e3/2 Port가 Desginated Port가 된다.

그렇다면 Root Port도 아니고 Desginated Port도 아닌 SW3의 e3/2 Port는 Alternate Port로 설정이 되며, 이 포트는 차단이 되며 Frame의 송수신이 불가능하게된다. 그러나 SW2의 e3/2 Designated Port에서 전송하는 BPDU는 수신한다.

결과적으로는 다음 주황색 줄로 이어진 Loop가 없는 Stabilized Network가 만들어진다.

Spanning Tree Protocol - Port 상태

STP는 Port의 상태를 차단(BLK, Blocking), 청취(LIS, Listening), 학습(LRN, Learning), 전송(FWD, Forwarding) 및 비활성(Disabled) 상태로 분류한다.

  • 1. 차단(Blocking) : Data Frame을 송수신하지 않고 BPDU만 수신한다. Port가 활성화되면 RP, DP일 때 청취, AP일 때 차단 상태가 된다. 만약 AP -> RP or DP 상태로 변경되면 Max Age 타이머인 20초 후에 청취 상태로 변경된다.
  • 2. 청취(Listening) : Port가 DP이면 청취 상태에서 BPDU를 전송한다. 15초가 지나면 학습(Learning) 상태로 변하는데, 이 시간을 Forward Delay(전송 지연) 타이머라고 한다.
  • 3. 학습(Learning) : MAC Address Table을 채우기 시작한다. 15초가 지나면 전송(Forwarding) 상태로 변하는데, 이 시간도 Forward Delay(전송 지연) 타이머라고 한다.
  • 4. 전송(Forwarding) : Data Frame을 정상적으로 송수신한다.

Stabilized Network는 Switch간을 연결하는 각 Port의 상태는 FWD(전송) or BLK(차단) 상태 중 하나에 머물러 있다.

Down상태에 있는 Port들은 모두 STP Disabled 상태이다. STP가 Disabled되는 경우는 스패닝 트리 설정이 잘못된 경우나 설정 사항을 위반한 경우이다.

Switch를 시작하면 POST 상태 이후(Power On Self Test) 30초 후에 전송 상태로 변경이 된다. 기본적으로 포트가 활성화되면 LIS(청취) 상태부터 시작하기 때문이다.


Spanning Tree Protocol - Port 장애시 동작 확인

위의 주황색 줄로 이어진 Loop 없는 Stabilized Topology의 상태에서, 만약 간접 연결된 링크인 SW1과 SW2의 Segment가 Down된다고 생각해보자.

※ 간접 연결된 링크는 Alternative Port가 없는 Switch간의 링크를 뜻한다.

Down되는 즉시 SW1과 SW2를 연결하는 e3/1 Port들은 1. 비활성화 되면서 2. 차단 상태로 변경된다.


그 후 SW3은 SW2에게서 Inferior(후순위) BPDU를 수신한 후 링크 장애가 발생했다는 것을 알고, Alternate Port였던 e3/2를 Designated Port로 변경한다.

※ SW3이 SW2에서 수신하는 BPDU에 포함된 Root Bridge ID가 SW1에서 값이 더 높은 SW2로 변경된다. 이와 같이 Roog Bridge ID가 후순위로 변경된 것Inferior BPDU(후순위 BPDU)라고 한다.

그러나 전송 상태는 위의 Port 상태에서 배웠듯이 Max Age Time인 20초가 지나야 변경이 된다.

이후 청취 상태 15초, 학습 상태 15초, 총 50초를 기다린 뒤에 e3/2 Port를 전송 상태로 변경하고 데이터 프레임을 송수신한다.

SW1#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0100
             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     aabb.cc00.0100
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  15  sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et1/1               Desg FWD 100       128.6    Shr 
Et3/3               Desg FWD 100       128.16   Shr 

SW2#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0100
             Cost        200
             Port        15 (Ethernet3/2)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     aabb.cc00.0200
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et1/2               Desg FWD 100       128.7    Shr 
Et3/2               Root FWD 100       128.15   Shr 

SW3#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0100
             Cost        100
             Port        16 (Ethernet3/3)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     aabb.cc00.0300
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et3/2               Desg FWD 100       128.15   Shr 
Et3/3               Root FWD 100       128.16   Shr 

위의 토플로지처럼 SW1과 SW2의 e3/1 Portshutdown됐을 때 SW1의 e3/3은 DP를 유지하고 SW2의 e3/2 PortInferior BPDU를 받아 DP에서 RP로 변경되면서 Alternate Port였던 SW3의 e3/2DP로 변경이 된 것을 확인할 수 있다.


또한 직접 연결된 링크인 SW1과 SW3의 Segment가 Down된다고 생각해보자.

※ 직접 연결된 링크는 Altnative Port가 있는 Switch간의 링크를 뜻한다.

Down되는 즉시 SW3은 Altnative Port인 e3/2를 Root Port로 변경한 뒤 Max Age Time을 동작시키지 않고 바로 청취 상태로 변경한다.

※ 차단(Blocking)되어있는 상태가 아니기 때문에 바로 청취(Listening) 상태로 변경된다.

따라서 청취 상태 15초, 학습 상태 15초, 총 30초를 기다린 뒤에 e3/2 Port를 전송 상태로 변경하고 데이터 프레임을 송수신한다.

SW1#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0100
             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     aabb.cc00.0100
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  15  sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et1/1               Desg FWD 100       128.6    Shr 
Et3/1               Desg FWD 100       128.14   Shr 

SW3#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0100
             Cost        200
             Port        15 (Ethernet3/2)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     aabb.cc00.0300
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  15  sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et3/2               Root FWD 100       128.15   Shr

SW1의 e3/3 Port가 끊기면서 SW3의 e3/2 PortRoot로 변경되는 것을 확인할 수 있다.


Spanning Tree Protocol PortFast

위에서 배웠듯이 Switch의 각 Port는 STP에 의해서 청취, 학습, 전송 상태 단계를 거친다.

Portfast포트가 활성화되면 바로 전송 상태가 되게 하는 것을 말하는데, 보통 가장 끝인 종단 장치(PC, Server등)에 연결된 포트에 많이 사용한다.

Portfast가 설정된 포트라도 BPDU를 받게 되면 그에 따른 적절한 STP 동작을 취하게 된다.


debug spanning-tree events 명령어를 통해서 STP의 동작을 확인할 수 있다.

SW1#debug spanning-tree events
Spanning Tree event debugging is on
SW1#conf t
SW1(config)#int e1/1
SW1(config-if)#shutdown
*Oct 30 15:07:36.018: STP: VLAN0001 Et1/1 -> blocking
SW1(config-if)#
SW1(config-if)#no shutdown
*Oct 30 15:07:54.975: STP: VLAN0001 Et1/1 -> listening
*Oct 30 15:08:09.975: STP: VLAN0001 Et1/1 -> learning
*Oct 30 15:08:24.980: STP: VLAN0001 Et1/1 -> forwarding

e1/1 Port를 Shutdown했을 시 해당 포트의 STP가 비활성화 되면서 blocking 되는 것을 확인할 수 있으며, 다시 no Shutdown 명령어로 Port를 활성화시켰을 시 바로 청취, 학습, 그리고 전송 상태로 변하게 된다.

SW1(config)#int e1/1
SW1(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 Ethernet1/1 but will only
 have effect when the interface is in a non-trunking mode.
spanning-tree portfast 명령어로 portfast를 활성화시켜주면 '포트패스트는 단일 호스트에 연결된 포트에만 활성화 시켜야한다. 허브, 스위치, 브리지 등등에 활성화하면 일시적인 루프가 생길 수 있다' 라는 경고 메세지가 뜬다.
SW1(config-if)#shutdown
*Oct 30 15:17:02.318: STP: VLAN0001 Et1/1 ->blocking

SW1(config-if)#no shutdown
*Oct 30 15:17:21.082: STP: VLAN0001 Et1/1 ->jump to forwarding from blocking

portfast 활성화 후 Port를 비활성화 후 활성화시에 청취, 학습 상태를 넘기고 바로 전송 상태가되는 것을 확인할 수 있다.


Spanning Tree Protocol - Root Switch 조정

Root Switch를 따로 조정하지 않으면 Bridge 우선순위가 모두 동일하므로 MAC Address가 낮은, 오래된 스위치Root Switch로 동작할 수 있으며 모든 VLAN에 대한 하나의 Root Switch로 동작할 수 있어 결과적으로 네트워크의 효율이 떨어질 수 있다. 따라서 VLAN 당 서로 다른 스위치를 루트 스위치로 동작시켜 부하분산(Load Balancing)을 하는 것이 좋다.

각 Switch의 Port들을 모두 trunk 명령어를 통하여 Trunk로 설정한다.
SW1(config)#int range e3/1, e3/3
SW1(config-if-range)#switchport trunk encapsulation dot1q
SW1(config-if-range)#switchport mode trunk

SW2(config)#int range e3/1-2 
SW2(config-if-range)#switchport trunk encapsulation dot1q
SW2(config-if-range)#switchport mode trunk

SW3(config)#int range e3/2-3
SW3(config-if-range)#switchport trunk encapsulation dot1q
SW3(config-if-range)#switchport mode trunk
Trunk Port 설정 후 Server Domain으로 사용할 Switch에 VTP를 설정한다.
SW1(config)#vtp domain VTP_01
Changing VTP domain name from NULL to VTP_01

설정 후 Server Domain에 VLAN을 만들고, VLAN 10의 Root Switch를 SW1로, VLAN 20의 Root Switch를 SW2로 만들어주기 위하여 STP의 Priority를 조절해준다.

※ Priority는 4096 배수값으로 0~65535 사이로 조정하면 된다.

SW1(config)#vlan 10
SW1(config-vlan)#name 1st_VLAN
SW1(config-vlan)#vlan 20
SW1(config-vlan)#name 2nd_VLAN
SW1(config-vlan)#exit

SW1(config)#spanning-tree vlan 10 root primary
SW2(config)#spanning-tree vlan 10 root secondary

SW1(config)#spanning-tree vlan 20 priority 4096
SW2(config)#spanning-tree vlan 20 priority 0

설정 후 show spanning-tree vlan 10 명령어를 이용하여 SW1이 VLAN 10 Root Switch로 동작하는지 확인한다.

SW1#show spanning-tree vlan 10
VLAN0010
  Spanning tree enabled protocol ieee
  Root ID    Priority    24586
             Address     aabb.cc00.0100
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    24586  (priority 24576 sys-id-ext 10)
             Address     aabb.cc00.0100
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et3/1               Desg FWD 100       128.14   Shr 
Et3/3               Desg FWD 100       128.16   Shr 
마찬가지로 show spanning-tree vlan 20 명령어를 이용하여 SW2이 VLAN 20 Root Switch로 동작하는지 확인한다.
SW2#show spanning-tree vlan 20

VLAN0020
  Spanning tree enabled protocol ieee
  Root ID    Priority    20
             Address     aabb.cc00.0200
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    20     (priority 0 sys-id-ext 20)
             Address     aabb.cc00.0200
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et3/1               Desg FWD 100       128.14   Shr 
Et3/2               Desg FWD 100       128.15   Shr 

SW3의 VLAN 10, 20 Port 상태를 보면 SW2를 연결하는 e3/2 Port, SW1을 연결하는 e3/3 Port가 차단(Block)되어 있는 것을 확인할 수 있다.

SW3#show spanning-tree vlan 10 

VLAN0010
  Spanning tree enabled protocol ieee
  Root ID    Priority    24586
             Address     aabb.cc00.0100
             Cost        100
             Port        16 (Ethernet3/3)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)
             Address     aabb.cc00.0300
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et3/2               Altn BLK 100       128.15   Shr 
Et3/3               Root FWD 100       128.16   Shr

SW3#show spanning-tree vlan 20 

VLAN0020
  Spanning tree enabled protocol ieee
  Root ID    Priority    20
             Address     aabb.cc00.0200
             Cost        100
             Port        15 (Ethernet3/2)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32788  (priority 32768 sys-id-ext 20)
             Address     aabb.cc00.0300
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et3/2               Root FWD 100       128.15   Shr 
Et3/3               Altn BLK 100       128.16   Shr


Spanning Tree Protocol EtherChannel

두 Switch간에 연결된 다수 개의 Port하나의 Port처럼 동작시키는 것을 말하며, 물리적인 포트 특성에 따라 여러 EtherChannel로 분류할 수 있다. L2, L3 Interface에서 동작이 가능하며, Access Port 및 Trunk Port로 동작시킬 수 있다.[각주:3]


EtherChannel의 포트 중 하나의 포트에 장애가 발생하면, 나머지 정상 포트를 통해서 트래픽이 전송된다. STP는 EtherChannel을 하나의 Port로 간주하며, Access Port로 구성 하려면 Port의 Speed, Duplex, VLAN 번호가 같아야한다. Trunk Port로 구성하려면 Port의 Encapsulation, Native VLAN Number, VLAN Number가 같아야 한다.


SW1과 SW2 사이에 e3/1-2로 동시에 연결하여, Trunk 설정 후 channel-group 1 mode on 명령어를 사용하여 EtherChannel로 동작시킨다.

SW1(config)#int range e3/1-2 
SW1(config-if-range)#switchport trunk encapsulation dot1q 
SW1(config-if-range)#switchport mode trunk
SW1(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel 1

SW1(config-if-range)#no shutdown

SW2(config)#int range e3/1-2
SW2(config-if-range)#switchport trunk encapsulation dot1q 
SW2(config-if-range)#switchport mode trunk
SW2(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel 1

SW2(config-if-range)#no shutdown
설정 후 show etherchannel summary로 etherchannel이 정상적으로 동작되는지 확인한다.
SW1#sh etherchannel summary       
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator

        M - not in use, minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)          -        Et0/0(P)    Et0/1(P)    

SW2#show etherchannel summary  
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator

        M - not in use, minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)          -        Et0/0(P)    Et0/1(P)    

사용되고 있는 etherchannel이 1개이며, 이름은 Po1, S는 2계층, U는 in use, 정상적으로 작동하고 있다는 것을 확인할 수 있다.


  1. http://mesh.calit2.net/calmesh/one/linux_kernel_modifications/bridge_ignoring_bpdus/802.1D-2004.pdf [본문으로]
  2. FFFF.FFFF.FFFF [본문으로]
  3. Cisco가 아닌 다른 Vender에서는 EthernetChannel을 Trunk라고 한다. [본문으로]
반응형