Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

STP (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 23:11

STP

이름

STP

전체 명칭

Spanning Tree Protocol

분류

네트워크 프로토콜

목적

이더넷 네트워크에서 루프를 방지하고 장애 시 대체 경로를 제공

표준

IEEE 802.1D

개발

라디아 펄먼

주요 개념

루트 브리지, 루트 포트, 지정 포트, 차단 포트

상세 정보

동작 방식

BPDU를 교환하여 네트워크 토폴로지를 학습하고 최적의 경로 트리를 구성

포트 상태

차단(Blocking), 수신(Listening), 학습(Learning), 전달(Forwarding)

버전

Classic STP, RSTP, MSTP

수렴 시간

Classic STP는 약 30-50초, RSTP는 수 초 이내

대체 프로토콜

TRILL, SPB

주요 장비

스위치, 브리지

활용 분야

LAN 구축, 데이터센터 네트워크

한계

수렴 시간 지연, 대역폭 비효율적 활용

관련 용어

루프, 브로드캐스트 스톰, 토폴로지 변경 알림

1. 개요

STP는 네트워크 토폴로지에서 루프 형성을 방지하고, 장애 발생 시 대체 경로를 제공하기 위해 설계된 2계층 프로토콜이다. 이 프로토콜은 IEEE 802.1D 표준으로 정의되어 있으며, 스위치나 브리지로 구성된 로컬 에어리어 네트워크에서 활성화된다. STP의 핵심 목적은 네트워크 내에서 모든 노드가 연결되도록 하면서도, 브로드캐스트 스톰, MAC 주소 테이블 불안정, 중복 프레임 수신 같은 루프로 인한 문제들을 제거하는 것이다.

STP는 논리적으로 트리 구조를 생성하여 동작한다. 이 과정에서 네트워크 상의 모든 스위치는 BPDU라는 특수한 메시지를 교환한다. BPDU 정보를 바탕으로 하나의 스위치가 루트 브리지로 선출되고, 다른 모든 스위치는 이 루트 브리지를 기준으로 최적의 경로를 계산한다. 그 결과, 일부 포트는 데이터 전송을 차단(블로킹 포트)하고, 나머지 포트들만이 데이터를 전송(포워딩 포트)하는 활성화된 경로를 구성하여 루프를 제거한다.

STP는 네트워크 토폴로지 변화에 대응하여 재계산을 수행할 수 있다. 예를 들어, 활성 경로 상의 링크나 스위치에 장애가 발생하면, 기존에 차단되었던 포트 중 하나가 새로운 활성 경로의 일부로 전환된다. 이로 인해 네트워크의 가용성과 내결함성이 향상된다. 그러나 이 재수렴 과정에는 전통적인 STP 기준으로 30초에서 50초 가량의 시간이 소요되어, 현대 네트워크의 요구사항을 충족시키기에는 다소 느리다는 한계를 지녔다[1].

2. STP의 동작 원리

STP는 네트워크 토폴로지에서 루프를 제거하기 위해 논리적인 트리 구조를 생성하는 과정을 거친다. 이 과정은 크게 세 가지 단계로 나뉜다. 첫째, 네트워크 내에서 하나의 기준점이 될 루트 브리지를 선출한다. 둘째, 모든 스위치가 루트 브리지로 향하는 최적의 경로를 결정하며, 이 과정에서 루트 포트와 지정 포트가 정해진다. 셋째, 나머지 모든 경로는 차단되어 블로킹 포트가 되며, 이로써 모든 활성 경로는 루프가 없는 단일 트리 구조를 형성한다.

루트 브리지 선출은 브리지 프로토콜 데이터 유닛 교환을 통해 이루어진다. 각 스위치는 자신의 브리지 ID를 담은 BPDU를 주기적으로 전송한다. 브리지 ID는 우선순위 값과 스위치의 MAC 주소로 구성된다. 네트워크에 참여한 모든 스위치는 수신한 BPDU를 비교하여 가장 낮은 브리지 ID를 가진 스위치를 루트 브리지로 선정한다. 루트 브리지는 네트워크의 논리적 중심이 되어 이후 모든 경로 계산의 기준이 된다.

루트 브리지가 결정되면, 각 스위치는 루트 브리지까지의 경로를 계산한다. 이때 사용되는 기준은 누적된 경로 비용이다. 각 스위치는 루트 브리지에 가장 낮은 경로 비용으로 도달할 수 있는 포트를 자신의 루트 포트로 선택한다. 다음으로, 각 네트워크 세그먼트(예: 두 스위치를 연결하는 링크)마다 하나의 지정 포트를 선정한다. 지정 포트는 해당 세그먼트를 통해 루트 브리지에 가장 효율적으로 프레임을 전달할 책임을 진다. 일반적으로 루트 브리지에 더 가까운 스위치의 포트가 지정 포트가 되며, 루트 브리지의 모든 포트는 지정 포트 상태가 된다.

루트 포트와 지정 포트가 결정된 후, 네트워크에서 루프를 일으킬 수 있는 나머지 모든 포트는 블로킹 포트로 전환된다. 블로킹 포트는 사용자 데이터 프레임을 전송하거나 수신하지 않으며, BPDU만 수신하여 토폴로지 변화를 감시한다. 이렇게 하나의 활성 경로만 남기고 나머지를 차단함으로써, 네트워크는 단일 경로 트리가 완성되고 브로드캐스트 스톰 등의 문제를 방지할 수 있다.

2.1. 루트 브리지 선출

루트 브리지 선출은 STP가 네트워크 토폴로지에서 논리적인 루트를 결정하는 첫 번째 단계이다. 모든 스위치는 정기적으로 교환하는 BPDU 메시지에 포함된 브리지 ID 값을 비교하여 가장 낮은 값을 가진 스위치를 루트 브리지로 선출한다.

브리지 ID는 8바이트로 구성되며, 상위 2바이트는 브리지 우선순위, 하위 6바이트는 스위치의 MAC 주소이다. 기본적으로 모든 스위치의 우선순위는 32768로 동일하므로, 일반적으로 MAC 주소가 가장 낮은 스위치가 루트 브리지가 된다. 네트워크 관리자는 특정 스위치가 루트 브리지가 되도록 우선순위 값을 낮춰 설정할 수 있다.

비교 항목

우선순위

브리지 우선순위

가장 낮은 값이 우선

MAC 주소

우선순위 동일 시, 가장 낮은 값이 우선

루트 브리지는 네트워크의 기준점 역할을 하며, 모든 경로 계산의 출발점이 된다. 루트 브리지의 모든 포트는 지정 포트가 되어 포워딩 상태로 전환되며, 네트워크 내에서 유일하게 블로킹 포트를 가지지 않는다. 한 번 선출된 루트 브리지는 네트워크에 장애가 발생하거나 새로운 스위치가 추가될 때까지 그 역할을 유지한다.

2.2. 루트 포트와 지정 포트 결정

루트 브리지가 선출되면, 나머지 모든 스위치는 자신의 포트들 중에서 루트 포트를 하나 결정한다. 루트 포트는 해당 스위치가 루트 브리지에 도달하는 데 가장 좋은 경로, 즉 누적된 경로 비용이 가장 낮은 경로를 제공하는 포트이다. 경로 비용은 대역폭을 기반으로 계산되며, 링크 속도가 높을수록 비용은 낮아진다[2]. 비용이 동일한 경우, 상대 스위치의 브리지 ID와 상대 포트의 포트 ID를 순차적으로 비교하여 최종 경로를 선택한다.

세그먼트(같은 콜리전 도메인에 있는 두 스위치 간의 직접 연결)마다 하나의 지정 포트가 선출된다. 지정 포트는 해당 세그먼트를 통해 루트 브리지로 향하는 프레임을 전달하는 책임을 진다. 지정 포트는 일반적으로 해당 세그먼트에 연결된 두 스위치 중, 루트 브리지에 더 가까운 스위치(더 낮은 누적 경로 비용을 가진 스위치)의 포트가 된다. 만약 두 스위치가 루트 브리지까지의 경로 비용이 동일하다면, 더 낮은 브리지 ID를 가진 스위치의 포트가 지정 포트로 선출된다.

결정 요소

루트 포트

지정 포트

목적

스위치가 루트 브리지에 연결되는 포트

세그먼트가 루트 브리지 방향으로 트래픽을 전달하는 포트

선출 기준 (우선순위)

1. 가장 낮은 누적 루트 경로 비용

2. 가장 낮은 발신자 브리지 ID

3. 가장 낮은 발신자 포트 ID

1. 가장 낮은 누적 루트 경로 비용

2. 가장 낮은 브리지 ID (스위치 자신의 ID)

3. 가장 낮은 포트 ID

루트 포트와 지정 포트는 모두 포워딩 상태로 전환되어 트래픽을 정상적으로 전송한다. 반면, 이 두 가지 포트로 선출되지 못한 모든 포트는 블로킹 포트가 되어 데이터 프레임 전송을 차단한다. 이 과정을 통해 네트워크에 활성화된 모든 경로는 루트 브리지를 중심으로 한 트리 구조를 형성하게 되며, 루프는 제거된다.

2.3. 블로킹 포트 설정

루트 브리지와 루트 포트, 지정 포트가 결정된 후, 루프를 방지하기 위해 남은 포트들은 블로킹 상태로 전환된다. 이 과정을 블로킹 포트 설정이라고 한다.

블로킹 포트는 네트워크 트래픽을 차단하는 역할을 한다. 이 포트는 브리지 프로토콜 데이터 유닛을 수신하는 것 외에는 사용자 데이터 프레임을 전송하거나 수신하지 않는다. 각 네트워크 세그먼트에는 하나의 지정 포트만 활성화되어야 하며, 세그먼트에 연결된 다른 모든 브리지의 포트는 블로킹되어야 한다. 이 규칙은 모든 가능한 경로 중 하나의 활성 경로만 남기고 나머지를 논리적으로 차단함으로써 루프를 제거한다.

블로킹 포트는 네트워크 토폴로지가 변경될 경우를 대비한 백업 경로로 작동한다. 예를 들어, 활성 경로상의 링크나 스위치에 장애가 발생하면, STP는 재계산을 수행한다. 이때 기존의 블로킹 포트 중 하나가 새로운 활성 경로의 일부로 전환될 수 있다. 아래 표는 STP 포트의 주요 역할을 비교한 것이다.

포트 역할

상태

설명

루트 포트

포워딩

루트 브리지로 향하는 최적 경로를 제공하는 포트

지정 포트

포워딩

각 세그먼트를 루트 브리지 방향으로 연결하는 포트

블로킹/대체 포트

블로킹

루프를 방지하기 위해 트래픽을 차단하는 포트

결과적으로, STP는 네트워크 내에 하나의 무루프 트리 구조를 형성한다. 모든 스위치는 루트 브리지에 도달할 수 있는 단일 경로를 가지며, 블로킹 포트는 이 트리 구조에서 불필요한 가지를 차단하는 역할을 한다.

3. STP의 구성 요소

STP의 동작은 두 가지 핵심 구성 요소, 즉 브리지 프로토콜 데이터 유닛과 식별을 위한 ID 체계에 의해 이루어진다.

네트워크 토폴로지 정보를 교환하고 구성 결정을 내리는 데 사용되는 제어 메시지를 BPDU라고 한다. BPDU는 정기적으로(기본적으로 2초마다) 모든 브리지 포트에서 멀티캐스트로 전송된다. BPDU에는 송신 브리지 ID, 송신 포트의 포트 ID, 수신 포트까지의 누적 경로 비용, 그리고 현재 루트 브리지로 알려진 브리지의 ID 등이 포함된다. 이 정보를 바탕으로 각 스위치는 네트워크에서 최적의 루트 경로를 계산하고, 루프를 제거하기 위해 어떤 포트를 차단할지 결정한다.

STP에서 각 장치와 포트는 고유하게 식별되어야 한다. 이를 위해 브리지 ID와 포트 ID가 사용된다. 브리지 ID는 일반적으로 우선순위 값(기본값 32768)과 스위치의 MAC 주소를 결합한 8바이트 값이다. 우선순위 값이 낮을수록 더 좋은(더 높은 우선순위의) 브리지로 간주된다. 포트 ID 역시 우선순위(기본값 128)와 포트 번호로 구성된다. 경로 비용은 링크의 대역폭을 기반으로 하며, 대역폭이 높을수록 비용은 낮아진다. 예를 들어, 10Gbps 링크의 비용은 4, 1Gbps는 19, 100Mbps는 100이다[3]. 이러한 ID와 비용 값은 BPDU를 통해 교환되며, 루트 브리지 선출, 루트 포트 및 지정 포트 결정의 근거가 된다.

3.1. 브리지 프로토콜 데이터 유닛 (BPDU)

브리지 프로토콜 데이터 유닛은 STP가 네트워크 토폴로지를 구성하고 유지하기 위해 교환하는 특수한 제어 메시지이다. 스위치들은 BPDU를 정기적으로 교환하여 네트워크 상태 정보를 공유하고, 이를 바탕으로 루트 브리지 선출, 루트 경로 계산, 루프 감지 등의 작업을 수행한다. BPDU는 이더넷 프레임의 목적지 MAC 주소로 특수한 멀티캐스트 주소(01:80:C2:00:00:00)를 사용한다.

BPDU에는 크게 두 가지 유형이 존재한다. 구성 BPDU는 토폴로지 정보를 전달하는 데 사용되는 가장 일반적인 메시지이다. TCN BPDU는 토폴로지 변경 알림 메시지로, 네트워크 토폴로지에 변화가 생겼을 때 하향 방향으로 전송된다. 구성 BPDU에 포함된 주요 정보는 다음과 같다.

필드

설명

루트 브리지 ID

현재 루트 브리지로 인식된 스위치의 브리지 ID

루트 경로 비용

이 BPDU를 보낸 스위치까지의 누적 경로 비용

송신자 브리지 ID

이 BPDU를 보낸 스위치의 브리지 ID

송신자 포트 ID

이 BPDU를 보낸 스위치의 포트 식별자

메시지 타임 관련 값

Hello Time, Max Age, Forward Delay 등의 타이머 값

BPDU는 기본적으로 2초마다 루트 브리지로부터 생성되어 네트워크 전체로 전파된다. 각 스위치는 자신의 포트로 수신된 BPDU 정보를 분석하여 더 우수한 경로 정보가 들어왔는지 지속적으로 비교한다. 만약 BPDU 수신이 Max Age 시간(기본 20초) 동안 중단되면, 해당 경로 정보는 오래된 것으로 간주되고 토폴로지 재계산이 트리거된다.

3.2. 브리지 ID와 포트 ID

브리지 ID는 스패닝 트리 프로토콜 토폴로지에서 각 네트워크 스위치를 고유하게 식별하는 8바이트 값이다. 이 값은 2바이트의 브리지 우선순위와 6바이트의 MAC 주소로 구성된다. 브리지 우선순위는 관리자가 설정할 수 있는 값으로, 기본값은 32768이다. 브리지 ID는 루트 브리지 선출 과정에서 가장 중요한 결정 요소이며, 숫자가 낮을수록 우선순위가 높다. 우선순위 값이 동일한 경우, MAC 주소가 더 낮은 스위치가 루트 브리지로 선출된다.

포트 ID는 하나의 스위치 내에서 각 포트를 식별하는 2바이트 값이다. 이 값은 1바이트의 포트 우선순위와 1바이트의 포트 번호로 구성된다. 포트 우선순위의 기본값은 128이다. 포트 ID는 루트 포트와 지정 포트를 결정하는 과정에서 사용된다. 루트 브리지로 향하는 경로 비용이 동일한 여러 링크가 존재할 때, 더 낮은 포트 ID를 가진 포트가 선호된다.

브리지 ID와 포트 ID의 구조는 다음과 같이 표로 나타낼 수 있다.

구성 요소

크기

설명

기본값

브리지 ID

8바이트

스위치의 고유 식별자

-

└ 브리지 우선순위

2바이트 (상위 4비트는 확장용)

관리자 설정 가능 값. 낮을수록 우선순위 높음

32768

└ MAC 주소

6바이트

스위치 베이스 MAC 주소

하드웨어 고유값

포트 ID

2바이트

스위치 내 포트 식별자

-

└ 포트 우선순위

1바이트 (상위 4비트)

관리자 설정 가능 값. 낮을수록 우선순위 높음

128

└ 포트 번호

1바이트 (하위 8비트)

스위치의 물리적/논리적 포트 번호

인터페이스 순서

이러한 식별자 체계는 네트워크에서 논리적 트리 구조를 결정적이고 예측 가능한 방식으로 구성하는 데 필수적이다. 관리자는 브리지 우선순위와 포트 우선순위 값을 조정하여 특정 스위치나 경로가 선호되도록 STP의 동작을 제어할 수 있다.

4. STP의 상태 전이

STP는 네트워크에 루프가 존재하더라도 논리적으로 트리 구조를 형성하여 단일 경로만 활성화한다. 이 과정에서 각 스위치 포트는 네트워크 토폴로지 계산과 안정화를 위해 네 가지 상태를 순차적으로 거친다. 상태 전이는 BPDU 교환과 타이머에 의해 제어된다.

각 포트는 초기에 블로킹 상태에서 시작한다. 이 상태에서는 사용자 데이터 프레임을 전송하거나 수신하지 않으며, BPDU 프레임만 수신한다. 네트워크 토폴로지 변화를 감지하거나 새로운 포트가 활성화되면, 포트는 리스닝 상태로 전환된다. 이 상태에서도 사용자 데이터는 처리되지 않지만, 포트는 BPDU를 송수신하여 활성 토폴로지 결정에 참여한다. 리스닝 상태는 일반적으로 15초 동안 유지된다.

리스닝 상태를 거친 후, 포트는 러닝 상태로 들어간다. 이 단계에서는 여전히 사용자 데이터 프레임은 포워딩하지 않지만, 스위치는 해당 포트를 통해 수신될 프레임의 소스 MAC 주소를 학습하기 시작한다. 이렇게 함으로써 포워딩 상태로 전환될 때 MAC 주소 테이블이 이미 준비되어 즉시 효율적으로 작동할 수 있다. 러닝 상태도 약 15초간 지속된다.

마지막으로, 포트가 최종 포워딩 상태에 도달하면 사용자 데이터 프레임의 송수신이 정상적으로 이루어진다. 루트 포트나 지정 포트로 선출된 포트만이 이 상태에 도달한다. 블로킹 포트로 결정된 포트는 포워딩 상태로 전환되지 않고 무한정 블로킹 상태에 머무르며, BPDU만 수신하여 토폴로지 변경을 감시한다.

상태

사용자 데이터 처리

BPDU 처리

MAC 주소 학습

전이 시간 (기본값)

블로킹

차단

수신만 함

안 함

무한정

리스닝

차단

송수신

안 함

약 15초

러닝

차단

송수신

함

약 15초

포워딩

허용

송수신

함

안정 상태

이러한 상태 전이 과정으로 인해 기존 STP는 토폴로지가 수렴되는 데 상당한 시간(최대 30~50초)이 소요된다는 단점이 있다. 이 지연 문제를 해결하기 위해 RSTP가 개발되었다.

4.1. 블로킹 상태

블로킹 상태는 STP 포트의 다섯 가지 상태 중 하나로, 루프를 방지하기 위해 데이터 프레임의 전송과 수신을 모두 차단하는 비활성 상태이다. 이 상태의 포트는 네트워크 트래픽을 전달하지 않지만, BPDU 프레임은 계속 수신하여 토폴로지 변화를 감시한다.

블로킹 상태는 포트가 초기화되거나 장애가 발생한 후 처음 진입하는 기본 상태이다. 포트는 이 상태에서 최대 20초 동안 대기하며, 이 시간을 맥스 에이지(Max Age)라고 한다. 이 기간 동안 포트는 수신한 BPDU를 분석하여 자신이 네트워크에서 어떤 역할을 해야 하는지 결정한다. 만약 블로킹 포트가 더 나은 경로를 제공하는 BPDU를 수신하지 못하면, 다음 상태인 리스닝 상태로 전이할 수 있는 자격을 얻게 된다.

블로킹 상태의 주요 특징은 다음과 같다.

특징

설명

데이터 프레임 처리

프레임을 전송하거나 수신하지 않음

BPDU 처리

수신한 BPDU 프레임만 처리함

MAC 주소 학습

MAC 주소 테이블을 학습하지 않음

전이 가능 상태

리스닝 상태

이 상태는 네트워크에 불필요한 경로가 존재할 때, 그 경로를 비활성화하여 루프를 예방하는 핵심 메커니즘이다. 블로킹 포트는 활성 경로에 장애가 발생하면, 다른 상태로 전이되어 백업 경로로 동작할 수 있도록 준비한다.

4.2. 리스닝 상태

리스닝 상태는 STP의 포트 상태 중 두 번째 단계이다. 블로킹 상태에서 전환된 포트는 이 상태로 진입한다. 이 상태의 주요 목적은 네트워크에 루프가 형성되지 않도록 포트의 역할을 최종 결정하기 전에 대기하는 것이다.

리스닝 상태에서는 BPDU 프레임을 송수신하여 네트워크 토폴로지 정보를 교환하지만, 사용자 데이터 프레임은 전달하지 않는다. 또한 MAC 주소 테이블을 학습하지도 않는다. 이 상태는 기본적으로 15초 동안 지속되며, 이 시간 동안 포트는 자신이 최종적으로 포워딩 상태로 전환되어야 하는지, 아니면 다시 블로킹 상태로 돌아가야 하는지를 판단한다.

이 기간 동안 STP 알고리즘은 수집된 BPDU 정보를 바탕으로 해당 포트가 루트 포트 또는 지정 포트로 선출될 자격이 있는지 계산한다. 만약 포트가 루트 포트나 지정 포트로 선출되지 못하면, 리스닝 상태가 끝난 후 블로킹 상태로 돌아간다. 반대로 선출된 포트는 다음 단계인 러닝 상태로 진행한다.

4.3. 러닝 상태

러닝 상태는 STP의 포트 상태 중 하나로, 리스닝 상태 이후에 도달하는 단계이다. 이 상태에서는 네트워크 트래픽을 아직 전달하지 않지만, MAC 주소 테이블을 학습하기 시작한다.

포트가 러닝 상태에 진입하면, 해당 포트를 통해 수신되는 데이터 프레임의 소스 MAC 주소를 학습하여 스위치의 브리징 테이블(또는 MAC 주소 테이블)에 기록한다. 이 학습 과정은 불필요한 플러딩을 줄이고 향후 효율적인 프레임 전달을 위한 준비 단계이다. 러닝 상태는 표준 STP에서 15초 동안 지속되도록 설계되었다.

상태

프레임 전달

MAC 주소 학습

BPDU 처리

지속 시간 (STP)

블로킹 상태

아니오

아니오

예

무한대 (상태 변화까지)

리스닝 상태

아니오

아니오

예

15초

러닝 상태

아니오

예

예

15초

포워딩 상태

예

예

예

무한대 (정상 작동 시)

러닝 상태를 거친 후 포트는 최종적으로 포워딩 상태로 전이되어 실제 데이터 트래픽을 전송할 수 있게 된다. 이 두 단계(러닝과 포워딩)를 분리함으로써, 루프가 형성된 상태에서 MAC 주소 테이블이 잘못된 정보로 채워지는 것을 방지할 수 있다.

4.4. 포워딩 상태

포워딩 상태는 STP에서 포트가 네트워크 트래픽을 완전히 전송하고 수신할 수 있는 정상 작동 단계이다. 이 상태에 도달한 포트는 사용자 데이터 프레임을 학습(MAC 주소 테이블 갱신)하고 전달한다. 포워딩 상태는 블로킹 상태, 리스닝 상태, 러닝 상태를 거친 후 최종적으로 진입하는 상태로, 루프가 없는 활성 토폴로지의 일부가 된다.

포트가 포워딩 상태에 들어가기까지는 총 30~50초의 지연 시간(포워딩 딜레이)이 발생한다[4]. 이 지연은 네트워크에 루프가 발생하는 것을 방지하기 위한 필수적인 안전 장치이다. 포워딩 상태의 포트는 정기적으로 BPDU를 수신하여 네트워크 토폴로지의 변화를 감시한다.

상태

데이터 프레임 처리

MAC 주소 학습

BPDU 처리

블로킹

차단

없음

수신만

리스닝

차단

없음

송수신

러닝

차단

있음

송수신

포워딩

송수신

있음

송수신

포트가 포워딩 상태를 유지하는 동안 토폴로지 변경을 나타내는 BPDU(예: 상위 경로 실패)를 수신하면, STP 재수렴 과정이 시작된다. 이 경우 해당 포트는 다시 블로킹 상태로 전환되거나 새로운 경로에 따라 포워딩 상태를 유지할지 결정하기 위해 다른 STP 상태를 거칠 수 있다.

5. STP의 한계와 개선 프로토콜

STP는 네트워크 루프를 방지하는 데 효과적이지만, 몇 가지 명확한 한계를 가지고 있다. 가장 큰 문제는 수렴 시간이 느리다는 점이다. 토폴로지 변경 시 포트가 블로킹 상태에서 포워딩 상태로 전환되기까지 최대 50초(기본 포워딩 딜레이 15초 x 2 + 맥스 에이지 20초)가 소요될 수 있다. 이 긴 다운타임은 현대 네트워크에서 허용하기 어려운 서비스 중단을 초래한다. 또한, 모든 VLAN에 대해 단일 스패닝 트리 인스턴스만을 운영하므로, 백업 경로가 활성화되지 않은 동안 대역폭이 낭비되고 VLAN별 트래픽 경로 최적화가 불가능하다.

이러한 한계를 해결하기 위해 개발된 주요 개선 프로토콜은 RSTP와 MSTP이다. RSTP는 표준 IEEE 802.1w로 정의되며, 수렴 시간을 수 초 이내로 획기적으로 단축했다. 이는 포트 상태를 5개에서 3개(디스카드드, 러닝, 포워딩)로 간소화하고, BPDU를 헬로 패킷과 함께 정기적으로 전송하여 링크 장애를 빠르게 감지하는 메커니즘을 도입했기 때문이다. 또한, 백업 포트와 얼터네이트 포트 개념을 명확히 하여 장애 발생 시 즉시 대체 경로로 전환할 수 있게 했다.

MSTP는 표준 IEEE 802.1s로 정의되며, 여러 개의 스패닝 트리 인스턴스를 생성하여 VLAN 그룹별로 독립적인 경로를 제공한다. 이를 통해 트래픽 부하 분산이 가능해지고 네트워크 자원 활용도가 향상된다. MSTP는 일반적으로 RSTP를 기반으로 한 빠른 수렴 메커니즘을 사용하며, 하나의 지역 내에서 여러 MST 인스턴스를 관리한다.

프로토콜

표준

주요 개선 사항

수렴 시간

STP

IEEE 802.1D

기본 루프 방지 프로토콜

최대 50초

RSTP

IEEE 802.1w

빠른 수렴, 포트 역할/상태 간소화

수 초 이내

MSTP

IEEE 802.1s

VLAN 그룹별 다중 인스턴스, 로드 밸런싱

RSTP 기반의 빠른 수렴

결과적으로, 현대의 레이어 2 네트워크에서는 원래의 STP보다 RSTP나 MSTP가 훨씬 더 널리 사용된다. 이들은 STP의 근본적인 목표는 유지하면서 성능과 효율성 측면에서 큰 발전을 이루었다.

5.1. RSTP (Rapid Spanning Tree Protocol)

RSTP는 STP의 느린 수렴 속도와 복잡한 상태 전이 과정을 개선하기 위해 개발된 프로토콜이다. RSTP는 IEEE 802.1w 표준으로 정의되며, 기존 STP의 기본 목표인 루프 방지는 유지하면서 네트워크 토폴로지 변화에 훨씬 빠르게 대응한다. 주요 개선점은 포트 상태의 간소화와 빠른 포트 전환 메커니즘 도입이다.

RSTP는 STP의 5가지 포트 상태(블로킹, 리스닝, 러닝, 포워딩, 비활성화)를 3가지 역할과 4가지 상태로 재정의하여 동작을 단순화한다. 포트 역할은 루트 포트, 지정 포트, 대체 포트, 백업 포트로 구분된다. 포트 상태는 폐기(Discarding), 학습(Learning), 전달(Forwarding)로 축소되어, 폐기 상태가 블로킹과 리스닝 상태의 기능을 모두 수행한다. 이 변화로 인해 불필요한 대기 시간이 줄어든다.

RSTP의 가장 큰 장점은 토폴로지 변경 시의 빠른 수렴이다. STP는 최대 수명(Max Age) 타이머(기본 20초)와 함께 30~50초의 대기 시간이 필요했지만, RSTP는 포인트 투 포인트 링크에서 제안-동의(Proposal-Agreement) 핸드셰이크 메커니즘을 사용하여 수 초 내에 포트를 전달 상태로 전환할 수 있다. 또한, 토폴로지 변경 알림이 네트워크 전체로 빠르게 전파되도록 개선되었다.

RSTP는 STP와의 하위 호환성을 유지한다. RSTP 스위치는 STP 스위치와 혼합 네트워크에서 동작할 수 있지만, STP 스위치와 연결된 포트 근처에서는 빠른 전환 기능이 제한될 수 있다. RSTP의 등장으로 대부분의 현대 레이어 2 네트워크에서는 STP 대신 RSTP가 기본적으로 사용된다.

5.2. MSTP (Multiple Spanning Tree Protocol)

MSTP는 IEEE 802.1s 표준으로 정의되며, STP와 RSTP의 단일 스패닝 트리 인스턴스 한계를 극복하기 위해 개발되었다. MSTP는 네트워크를 여러 개의 논리적 MST 지역으로 분할하고, 각 지역 내에서 여러 개의 독립적인 MST 인스턴스를 운용할 수 있게 한다. 각 인스턴스는 고유한 스패닝 트리 토폴로지를 형성하여, 서로 다른 VLAN 그룹의 트래픽이 서로 다른 경로를 통해 전송되도록 한다[5]. 이를 통해 트래픽 부하를 여러 경로에 분산시키는 로드 밸런싱이 가능해지고, 대역폭 활용 효율이 크게 향상된다.

MSTP의 동작은 크게 지역 내 동작과 지역 간 동작으로 구분된다. 하나의 MST 지역은 동일한 MST 구성 식별자를 공유하는 스위치들의 집합이다. 이 식별자는 지역 이름, 개정 번호, VLAN과 인스턴스의 매핑 테이블로 구성된다. 지역 내에서는 각 MST 인스턴스에 대해 하나의 내부 스패닝 트리가 계산된다. 지역 간 연결을 위해서는 전체 토폴고리를 단일 트리로 축소하는 공통 스패닝 트리가 사용된다. CST는 모든 MST 지역과 기존의 단일 스패닝 트리 스위치를 하나의 가상 브리지로 간주하고 연결한다.

구성 요소

설명

MST 지역

동일한 MST 구성 ID를 가진 스위치들의 그룹

MST 인스턴스

지역 내에서 생성되는 독립적인 스패닝 트리 (인스턴스 0은 CST용)

IST

MST 인스턴스 0에 해당하며, 지역 내부의 연결과 지역 간 CST 연결을 담당

CST

모든 MST 지역과 외부 STP/RSTP 브리지를 연결하는 단일 스패닝 트리

MSTP는 복잡한 구성이 필요하다는 단점이 있지만, 대규모 VLAN 환경에서 루프 방지와 동시에 링크 활용 최적화를 달성하는 데 필수적인 프로토콜이다. 이는 특히 데이터센터나 엔터프라이즈 백본 네트워크에서 유용하게 적용된다.

6. STP 설정 및 구성

루트 브리지 설정은 네트워크 토폴로지의 안정성과 효율성을 결정하는 핵심 요소이다. 일반적으로 네트워크의 중심에 위치하고 고성능인 스위치를 루트 브리지로 지정하는 것이 바람직하다. 자동 선출에 의존하면 예상치 못한 저사양 스위치가 루트 브리지가 될 수 있어 성능 저하를 초래할 수 있다. 따라서 관리자는 브리지 ID의 우선순위 값을 수동으로 낮게 설정하여 특정 스위치를 루트 브리지로 고정시킨다. 우선순위 값은 4096의 배수로 설정하며, 값이 낮을수록 선출 우선순위가 높아진다.

포트의 역할과 상태는 포트 우선순위와 경로 비용을 조정하여 제어할 수 있다. 포트 우선순위는 동일한 스위치 내에서 루트 포트 선출 시 고려되며, 마찬가지로 값이 낮을수록 우선순위가 높다. 경로 비용은 링크 대역폭에 기반한 값으로, 루트 브리지까지의 전체 경로 비용 계산에 사용된다. 관리자는 특정 고속 링크를 주 경로로 사용하도록 하기 위해 해당 포트의 경로 비용을 수동으로 낮게 설정할 수 있다.

설정 항목

목적

영향 범위

일반적인 설정 값

브리지 우선순위

루트 브리지 수동 지정

전체 네트워크

0, 4096, 8192 등 (4096 배수)

포트 우선순위

스위치 내 루트 포트 선출 제어

개별 스위치

0, 16, 32, 48 등 (16 배수)

포트 경로 비용

특정 경로 선호도 조정

개별 링크

링크 속도에 따라 달라짐 (예: 1Gbps=4, 10Gbps=2)

이러한 설정은 주로 네트워크의 예측 가능성과 트래픽 흐름을 최적화하기 위해 수행된다. 또한, 백업 경로를 명시적으로 구성하여 주 링크 장애 시 신속한 전환을 보장할 수 있다. 모든 설정 변경 후에는 BPDU가 교환되어 새로운 토폴로지가 수렴될 때까지 일시적인 불안정 상태가 발생할 수 있음을 고려해야 한다.

6.1. 루트 브리지 설정

루트 브리지는 STP 토폴로지의 논리적 중심이자 모든 경로 계산의 기준점이 되는 장치이다. 네트워크 관리자는 일반적으로 가장 강력한 성능과 중앙에 위치한 스위치를 루트 브리지로 명시적으로 지정하여 최적의 경로를 보장하고 예측 가능한 네트워크 동작을 유도한다.

루트 브리지 설정은 주로 브리지 ID의 우선순위 값을 조정하는 방식으로 이루어진다. 브리지 ID는 우선순위(기본값 32768)와 스위치의 MAC 주소로 구성된다. 수치가 낮을수록 우선순위가 높아지므로, 관리자는 특정 스위치의 우선순위 값을 다른 스위치보다 낮게 설정하여 강제로 루트 브리지가 되도록 한다. 예를 들어, 우선순위를 4096 또는 0으로 설정하는 것이 일반적이다. 대부분의 네트워크 장비에서는 다음과 같은 명령어 형식으로 설정한다.

설정 항목

명령어 예시 (시스코 IOS 기준)

설명

우선순위 변경

spanning-tree vlan 1 priority 4096

특정 VLAN의 스위치 우선순위를 4096으로 설정한다.

기본 우선순위 설정

spanning-tree vlan 1 root primary

자동으로 현재 토폴로지에서 최소값보다 낮은 우선순위를 설정하여 루트 브리지로 만든다.

보조 루트 설정

spanning-tree vlan 1 root secondary

기본 루트 브리지에 장애가 발생할 경우를 대비한 백업 브리지로 설정한다.

루트 브리지를 적절히 설정하지 않으면 성능이 낮은 주변 스위치가 자동 선출 과정에서 루트 브리지가 될 수 있다. 이는 모든 트래픽이 해당 스위치를 경유하도록 만들어 네트워크 전반의 성능을 저하시키고 병목 현상을 초래할 수 있다. 따라서 네트워크 설계 단계에서 핵심 스위치를 루트 브리지로 지정하고, 이중화를 위해 보조 루트 브리지도 함께 구성하는 것이 표준적인 방법이다.

6.2. 포트 우선순위 및 비용 조정

네트워크 관리자는 루트 브리지 선출과 트리 구조 형성을 제어하기 위해 포트 우선순위와 포트 비용을 조정할 수 있다. 이 설정은 BPDU 교환 과정에서 사용되는 결정 기준을 변경하여 특정 경로를 선호하거나 차단하도록 유도한다.

포트 우선순위는 동일한 스위치 내에서 루트 포트 또는 지정 포트를 선택할 때 사용된다. 우선순위 값이 낮은 포트가 더 선호된다. 관리자는 기본값(128)에서 조정하여 특정 포트가 활성 경로에 포함되도록 할 수 있다. 포트 비용은 해당 포트를 통해 루트 브리지에 도달하는 데 드는 누적 경로 비용을 계산하는 데 사용된다. 링크 대역폭에 따라 기본 비용이 할당되지만, 이를 수동으로 높이거나 낮춰 특정 링크를 우회하거나 주 경로로 사용하도록 영향을 미칠 수 있다[6].

이러한 조정은 주로 트래픽 로드 밸런싱, 고대역폭 링크의 적극적 활용, 또는 예비 경로 설정을 위해 수행된다. 구성 변경은 네트워크 전체에 BPDU를 통해 전파되며, 이 과정에서 일시적인 재수렴이 발생할 수 있다. 따라서 변경 작업은 계획된 유지 보수 시간에 수행하는 것이 바람직하다.

7. STP의 장단점

STP는 네트워크에 필수적인 루프를 제거하고 단일 경로를 보장하여 네트워크 안정성을 크게 향상시킨다. 이로 인해 브로드캐스트 스톰과 MAC 주소 테이블 불안정화 같은 치명적인 문제를 효과적으로 방지한다. 또한 프로토콜의 동작이 자동화되어 있어, 관리자가 수동으로 경로를 구성하거나 루프를 찾아 해결할 필요가 없다. 이는 대규모 네트워크에서 특히 유용한 장점이다.

그러나 STP는 몇 가지 중요한 단점을 가지고 있다. 가장 큰 문제는 수렴 시간이 느리다는 점이다. 포트가 차단 상태에서 전송 상태로 전환되기까지 30~50초가 소요되는데, 이 지연 시간 동안 네트워크 통신이 중단될 수 있다[7]. 또한 기본 STP는 전체 네트워크에 대해 단 하나의 활성 경로만을 허용하여, 대체 경로를 완전히 차단한다. 이는 대역폭 활용을 비효율적으로 만들며, 링크 장애 시에도 느린 재수렴으로 인해 가용성이 저하된다.

STP의 단점을 보완하기 위해 여러 개선 프로토콜이 개발되었다. RSTP는 수렴 시간을 수 초 이내로 획기적으로 단축시켰다. MSTP는 여러 개의 스패닝 트리 인스턴스를 통해 VLAN별로 다른 경로를 활성화함으로써 대역폭 활용 효율을 높인다. 이러한 진화에도 불구하고, 많은 현대 데이터센터 네트워크는 루프를 허용하면서도 더 빠른 장애 복구를 제공하는 스패닝 트리 프로토콜 대신 트릴이나 SPB 같은 프로토콜을 채택하는 추세이다.

8. 관련 문서

  • Wikipedia - Spanning Tree Protocol

  • 나무위키 - 스패닝 트리 프로토콜

  • Cisco - Spanning Tree Protocol (STP) Introduction

  • IEEE 802.1D-2004 Standard

  • KISA - 네트워크 보안을 위한 스패닝 트리 프로토콜 이해

  • RFC 7727 - Port-Based Authentication and Access Control for IEEE 802.1D Bridges

리비전 정보

버전r1
수정일2026.02.14 23:11
편집자unisquads
편집 요약AI 자동 생성