[Network] Spanning Tree Protocol

STP

스패닝 트리 프로토콜은 스위치나 브릿지에서 발생하는 루핑을 막기 위한 프로토콜이다. 스패닝 트리는 다음과 같은 특징을 가진다.

  1. 네트워크당 하나의 Root Bridge를 가진다
  2. Root Bridge가 아닌 나머지 모든 Non Root Bridge는 무조건 하나씩의 Root Port를 가진다
  3. Segment당 하나씩의 Designated Port를 가진다

스패닝 트리가 동작함에 있어 루트 브릿지의 선출, 루트 포트의 선출, 데지그네이티트 포트의 선출을 위해 다음과 같은 조건을 고려한다.

  1. 누가 더 작은 Root BID를 가지는가
  2. Root Bridge까지의 Path Cost는 누가 더 작은가
  3. 누구의 BID가 더 낮은가
  4. 누구의 포트 ID가 더 낮은가

Bridge ID

브릿지 아이디는 64bit로 구성된다. 앞 16bit는 Bridge Priority이고 뒤 48bit는 MAC 주소이다.

Path Cost

Path Cost는 한 스위치에서 다른 스위치로 이동하는데 드는 비용이다.

BPDU

Bridge Protocol Data Unit은 브릿지에서 스패닝 트리 정보를 주고 받기 위한 프레임이다. 프레임 내에는 Root BID, Root Path Cost, Sender BID, Port ID와 같은 정보가 들어있다.

Status

Disabled

포트가 고장나서 사용할 수 없거나 네트워크 관리자가 포트를 Shut Down 시킨 상태

Blocking

스위치를 맨 처음 구동하거나 Disabled되어 있는 포트를 관리자가 다시 살렸을 때 상태
이 상태에서는 데이터 전송은 안되고 BPDU만 주고 받을 수 있다

Listening

블로킹 상태에 있던 스위치 포트가 루트 포트나 데지그네이티드 포트로 선정된 상태

Learning

Listening 상태에 있던 스위치 포트가 Fowarding Delay 디폴트 시간인 15초동안 그 상태를 계속 유지하면 Learing 상태로 전환된다
Learning 상태가 되어서야 MAC 주소를 통해 MAC Address Table을 생성한다

Forwarding

스위치 포트가 Learing 상태에서 다른 상태로 넘어가지 않고 다시 Fowarding Delay 시간을 유지하면 Fowarding 상태로 넘어간다
Forwarding 상태가 되면 스위치 포트는 데이터 프레임을 주고 받을 수 있다

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/08/02/Network/stp/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.