융융이'Blog

스패닝 트리 프로토콜(STP, Spanning Tree Protocal)란? 본문

2022이전/네트워크

스패닝 트리 프로토콜(STP, Spanning Tree Protocal)란?

바로퇴장 2020. 5. 24. 13:19

시작하기 전에,

토폴로지(Tropology)란?

컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결해 놓은 것, 또는 그 연결 방식을 말한다.  

토폴로지의 종류

  • Bus Tropology
  • Star Tropology
  • Ring Tropology
  • Tree Tropology
  • Mesh Tropology(Fully connected mesh tropology)과 부분 메시형(Partially connected mesh tropology)

 

스패닝 트리 프로토콜(Spanning Tree Protocol)이란?

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

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

 

Frame Looping시 발생하는 영향

1. 브로드캐스트 폭풍(Broadcasting Storm)발생 : Broadcast Frame이 사이클에 갇혀 계속 Looping이 일어나 속도가 저하되거나 시스템이 다운된다.

2. MAC Address Table 불안정 : Looping이 발생하게 되면 동일한 MAC Address를 다른 Interface에서 받게 된다. MAC Address Table이 계속 변하는 MAC Table instabiliy현상을 발생한다.

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

 

Spanning Tree Protocol 동작방식

STP가 동작을 시작하면 위의 Topology와 같은 물리적으로 Loop 구조인 Network에서 특정 Port를 차단 상태로 바꾸어 놓음으로써 논리적으로 Loop가 발생하지 않게 한다. 그러다 다른 동작중인 스위치의 Port가 Down되면 차단 상태로 바꿔놓은 특정 Port를 다시 전송 상태로 바꾸어 통신이 끊기지 않도록 한다. 그 Loop를 막는 경로를 구성하는 프레임을 BPDU(Bridge Protocol Data Unit)라고 한다.

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는 항상 차단된다.

 

예시>

위 그림을 쉽게 표로 표현하자면

스위치 이름 BID RootBID
SW1 10 10
SW2 20 20
SW3 30 30

SW2-> SW3 전송 (rootBID)

스위치 이름 BID RootBID
SW1 10 10
SW2 20 20
SW3 30 30 -> 20

SW1 -> SW2 전송

스위치 이름 BID RootBID
SW1 10 10
SW2 20 20 -> 10
SW3 30 20

SW2 -> SW3 전송 or SW1 -> SW3 전송

스위치 이름 BID RootBID
SW1 10 10
SW2 20 10
SW3 30 20 -> 10

이러한 방식으로 SW2와 SW3는 BID가 10인 스위치를 Rootswitch로 인식하고 SW2와 SW3의 Port를 닫아 버린다.

만약,SW3를 RootBridge로 사용하고 싶다면 Bridge Priorty를 낮춰주거나 빠른 장비로 바꿔는 등 위 우선순위를 바꿔줄수 있는 요소값을 변경해준다.

그리고 혹시 모를 RootBridge의 연결으 끊겼을 경우를 대비하여 Alternate Port(대체 Port)를 선출한다.

장애 발생시 대안 port로 연결이 된다.

 

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(청취) 상태부터 시작하기 때문이다.

 

 

 

 

 

추가 내용

옛날에는 SPT를 이용해서 DataCenter를 구축을 Classic Hierarchical Ethernet Architecture 형태로 구축을 하였다. 하지만, 오늘날에는 Ethernet Fabric Architecture형태의 DataCenter를 구축을 하였다.

Fabric 구조는 아래의 그림처럼 각각의 이더넷이 일련의 직선상으로 연결되어 기존 STP보다 속도를 향상 시켰다.

참고 

https://net-study.club/entry/%EC%8A%A4%ED%8C%A8%EB%8B%9D-%ED%8A%B8%EB%A6%AC-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9CSTP-Spanning-Tree-Protocol?category=783080

 

스패닝 트리 프로토콜(STP, Spanning Tree Protocol)

스패닝 트리 프로토콜(Spanning Tree Protocol) Ethernet Frame이 장비들에서 빙빙 도는 것을 Looping(루핑)이라고 한다. 이 Looping을 방지시켜주는 것이 STP(Spanning Tree Protocol)이다. ※ L3 계층에서 사용..

net-study.club

http://www.firewall.cx/networking-topics/protocols/spanning-tree-protocol/1054-spanning-tree-protocol-root-bridge-election.html

 

Spanning Tree Protocol: Bridge ID, Priority, System ID Extension & Root Bridge Election Process

Learn about Spanning Tree Protocol Root Bridge Election process, Bridge ID, Priority, System ID Extention fields and the best way to influence Root Bridge selection

www.firewall.cx