네트워크에서 단 하나의 회선만 사용하면 하나의 회선이 망가질 경우 모든 연결망이 다운되는 문제가 발생할 수 있습니다. 이러한 문제를 방지하기 위해 네트워크 이중화(Redundancy)가 중요하게 사용됩니다. 하지만 이중화를 적용하면 여러 스위치가 서로 브로드캐스트(Broadcast) 및 멀티캐스트(Multicast) 패킷을 전송하면서 루프(Loop)가 발생할 가능성이 커집니다.
네트워크에서 루프(Loop)가 발생하면 패킷이 무한히 순환하여 네트워크에 심각한 장애를 초래할 수 있습니다. 이를 방지하기 위해 Spanning Tree Protocol(STP)이 사용됩니다. STP는 네트워크의 물리적 루프를 논리적으로 차단하여 브로드캐스트 스톰(Broadcast Storm)을 막고 안정적인 네트워크 통신을 보장합니다.
STP는 브리지 ID(Bridge ID)와 포트 비용(Path Cost)를 기반으로 루프 없는 트리를 생성합니다. 주요 개념은 다음과 같습니다:
루트 브리지(Root Bridge) 선출
네트워크 내에서 가장 낮은 Bridge ID를 가진 스위치가 루트 브리지로 선택됩니다.
Bridge ID는 스위치의 우선순위(Bridge Priority) + MAC 주소로 결정됩니다.
만약 우선순위가 같다면 MAC 주소가 더 낮은 스위치가 루트 브리지로 선정됩니다.
루트 포트(Root Port) 선택
각 스위치는 루트 브리지까지의 최소 비용 경로를 계산하고, 해당 포트를 루트 포트(RP)로 설정합니다.
Designated 포트(Designated Port) 선택
루프 방지를 위해 각 세그먼트에서 하나의 포트만 활성화되며, 루트 브릿지의 Path Cost 값이 낮은 경로의 포트가 Designated Port(DP)로 지정됩니다.
비활성 포트(Blocked Port) 결정
루프를 방지하기 위해 루트 포트와 Designated 포트를 제외한 나머지 포트는 비활성화됩니다.
우선순위가 같은 경우 루트 브리지 결정
STP에서는 여러 스위치가 같은 Bridge Priority를 가지는 경우, MAC 주소를 비교하여 루트 브리지를 결정합니다.
Bridge Priority가 같은 경우, MAC 주소가 가장 낮은 스위치가 루트 브리지로 선택됩니다.
MAC 주소는 보통 하드웨어적으로 고유하기 때문에, 동일한 MAC 주소를 가진 두 스위치가 존재할 가능성은 거의 없습니다.
따라서, 우선순위가 같은 경우에도 MAC 주소를 기준으로 루트 브리지가 결정됩니다.
GNS3를 사용하여 Spanning Tree의 동작을 실습할 수 있습니다. 아래의 시나리오를 따라 실습을 진행해 보겠습니다.
3.1 GNS3 환경 설정
필요한 장비: L2 스위치 4대
네트워크 토폴로지:

스위치 간에 루프가 발생할 수 있는 구조를 설정합니다.
3.2. Spanning Tree 활성화 및 확인
루트 브리지 확인
show spanning-tree brief
가장 낮은 Bridge ID를 가진 스위치가 루트 브리지로 설정됩니다.

포트 상태 확인
루트 포트(RP), Designated 포트(DP), 블로킹 포트 상태를 확인합니다.
각 스위치는 루트 브릿지까지의 Path Cost 값이 가장 작은 포트를 루트 포트(Root Port)로 선정합니다.
SW2에서는 F1/0,
SW3에서는 F1/2,
SW4에서는 F1/1이 루트 포트로 결정되었습니다.

이제 남은 포트들 중에서,
SW2의 F1/3,
SW3의 F1/3,
SW4의 F1/2 중
SW3의 F1/3가 루트 브릿지까지의 Path Cost 값이 가장 크므로 블록 포트(Block Port)로 지정됩니다.
Spanning Tree는 네트워크 루프를 방지하고 안정적인 트래픽 흐름을 유지하는 중요한 프로토콜입니다. GNS3에서 직접 실습하면 STP의 작동 원리를 보다 쉽게 이해할 수 있습니다.