|

[ACSA 교육#27] RSTP 동작 방식

⏱️ 예상 읽기 시간: 약 10분 (10 min read)

RSTP(Rapid STP)는 다음과 같은 알고리즘을 통해 루프 없는 토폴로지를 운영합니다.

  • 루트 스위치 (Root Switch) 선택
  • 루트가 아닌 다른 모든 스위치(Non-Root Switch)나 지정되지 않은(Non-Designated) 브릿지 스위치의 루트 포트(RP) 선택
  • 각 스위치간 연결된 링크의 지정된 포트(DP) 선택
  • 다른 포트들은 루프(Loop)를 방지하기 위해 차단 상태로 동작

루트 스위치 (Root Switch) 선택

STP(802.1d)와 RSTP(802.1w) 표준 모두, 루트 스위치의 선택은 브릿지 ID (BID)를 기반으로 가장 낮은 값이 우선합니다. 두 부분으로 나눠져 있는 BID는 32,768이라는 기본값(Default)을 갖고 있는 우선 순위(Priority)와 고유한 MAC주소로 구성되어 있습니다.

이 기본 값을 그대로 사용할 수도 있지만, 예상치 않은 동작이 나올 수 있기 때문에 권장되지 않습니다. 네트워크 토폴로지상의 엣지(Edge)단에 위치한 액세스 스위치가 루트 스위치가 될 수 있기 때문입니다. 이럴 경우에는 좀 더 덜 최적화된 구성을 갖게 되고 그만큼 복원력이나 안정성면에서 떨어지게 됩니다.

아래 표와 같이 Priority가 기본값인 32768으로 되어 있다면, Access-2 스위치가 루트 스위치로 될 것입니다.

[ACSA 교육#27] RSTP 동작 방식 - image 25

그래서 그림과 같이 중앙에 위치한 Core-1 스위치를 루트 스위치가 되도록 하고자 합니다.

[ACSA 교육#27] RSTP 동작 방식 - image 27

Core-1 스위치가 루트 스위치가 된다면 더 강력하고 탄력적이고 최적의 경로를 갖는 트리 구조를 갖추게 됩니다. 이렇게 만들기 위해서는 Core-1 스위치의 Priority를 낮춰주면 됩니다. Core-1 스위치의 Priority를 4096과 같이 확 낮춰주면 Core-1 스위치의 BID가 가장 낮기 때문에 루트 스위치가 됩니다. 그런데, Core-1 스위치의 문제가 생겼을 경우에는 여전히 Access-2 스위치가 백업의 루트 스위치가 될 것입니다. 이를 막기 위해서 Core-2 스위치의 Priority 값도 함께 낮춰줘야 합니다. (Core-1 스위치보다는 높게)

[ACSA 교육#27] RSTP 동작 방식 - image 24

※ 우선 순위 값(Priority)은 4096 단위로 설정해야만 합니다.

루트 아닌 스위치(Non-Root Switch)의 루트 포트 선택

루트가 아닌 스위치(Non-Root Switch) 또는 지정되지 않은 브릿지(Non-Designated Bridge)는 루트 포트 (최적 경로에 연결된 포트)를 선택하여 루트 스위치에 대한 최적의 경로를 선택해야 합니다. 루트 포트 선택 기준은 다음과 같습니다.

  • Lowest root bridge ID (가장 낮은 루트 브릿지 ID)
  • Lowest path cost to the root bridge (루트 브릿지로 가는 가장 낮은 경로 값)
  • Lowest sender bridge ID (가장 낮은 발신자 브릿지 ID)
  • Lowest port priority (가장 낮은 포트 우선 순위)
  • Lowest port ID (가장 낮은 포트 ID)
[ACSA 교육#27] RSTP 동작 방식 - image 28

위 그림에서 Core-2 스위치는 1, 2, 43, 44포트에서 BPDU를 수신합니다. Core-2 스위치는 어떤 포트가 가장 적합한지 확인해야 합니다. 아래 내용을 통해 한 번 살펴볼까요?

Lowest root bridge ID (가장 낮은 루트 브릿지 ID)

앞선 우선 순위 값 조정에 따라 우리는 Core-1 스위치가 가장 낮은 BID를 갖고, 이에 따라 루트 스위치라는 것에 동의합니다. 이 기준은 최상의 경로를 선택하는 것에 도움이 되지 않습니다.

Lowest path cost to the root bridge (루트 브릿지로 가는 가장 낮은 경로 값)

모든 링크의 속도가 동일하다면 Core-2 스위치의 Port 1번과 2번은 간접 경로로 Cost가 높게 됩니다. 따라서 이 경로는 버려지게(Discarding) 됩니다. 그리고 Port 43번과 44는 Cost가 동일하기 때문에 다음 기준을 살펴야 합니다.

Lowest sender bridge ID (가장 낮은 발신자 브릿지 ID)

Port 43번과 44번에서 수신되는 BPDU는 동일한 Core-1 스위치로부터 오는 것이기 때문에 이 역시 도움이 되지 않아 다음 기준을 살펴봐야 합니다.

Lowest port priority (가장 낮은 포트 우선 순위)

발신자(Core-1)는 광고(advertisement)에 포트 우선 순위(Port Priority)를 포함합니다. 포트 우선 순위는 0부터 240사이의 값으로 이루어져 있으며, AOS-CX 스위치의 기본 값은 128입니다. 스위치는 이 우선 순위 값이 낮을 수록 우선 순위가 높다고 인식합니다. 별다른 스위치 기본 값을 건들지 않았다면, 이 역시 두 포트(43번, 44번) 값이 동일하므로 다음 기준을 통해 결정해야 할 듯 합니다.

Lowest port ID (가장 낮은 포트 ID)

최종 결정은 포트 ID 값에 따라 정해집니다. Core-1 스위치의 포트 중 43번 포트가 더 낮기 때문에 이 포트와 연결된 Core-2 스위치의 포트 43번이 루트 포트(RP)가 됩니다.


Access-1 스위치도 위와 같은 기준과 순서대로 루트 포트를 정하게 됩니다.
Core-2 스위치와 마찬가지로 가장 낮은 루트 브릿지 ID의 기준은 최적의 경로 선택에 도움이 되지 않습니다. 하지만, 모든 링크가 동일한 속도라면 포트 21번이 포트 22번보다 루트 스위치로 가는 경로 값이 더 낮습니다. 포트 22번의 경우 간접 경로(indirect path)이기 때문에 경로 값(Cost)가 높기 때문입니다.
따라서, 포트 21번이 루트 포트(RP)가 됩니다.

Access-2 스위치 역시 포트 21번과 22번에 BPDU를 수신하고, 이 중 Cost가 더 낮은 포트 21번이 루트 포트(RP)가 됩니다.


이렇게 RSTP 토폴로지에서 루트 스위치와 루트 포트를 선정하는 로직을 알아보았습니다.
자, 그럼 지정된 포트(DP)를 선택하는 방법을 알아보겠습니다.

지정된 포트(Designated Port, DP) 선택

지정된 포트를 선택하는 기준은 루트 포트와 동일합니다.

  • Lowest root bridge ID (가장 낮은 루트 브릿지 ID)
  • Lowest path cost to the root bridge (가장 낮은 루트 브릿지까지의 경로 비용)
  • Lowest sender bridge ID (가장 낮은 발신자 브릿지 ID)
  • Lowest port priority (가장 낮은 포트 우선 순위)
  • Lowest port ID (가장 낮은 포트 ID)
[ACSA 교육#27] RSTP 동작 방식 - image 29

다음은 위 그림의 토폴로지에서 각 스위치별로 지정된 포트(Designated Port, DP)를 어떻게 지정하는지 보여줍니다.

Core-1 스위치

Core-1 스위치는 루트 스위치(Root Switch)이기 때문에 모든 포트가 루트 브릿지(Root Bridge)에 가깝게 됩니다. 즉, 모든 포트가 DP가 됩니다.

Core-2 스위치

Core-2 스위치는 루트 포트(RP)인 포트 43번을 제외하고 살펴보겠습니다.

1번 포트

Core-2 스위치는 1번 포트가 루트와 가장 가까운지 확인합니다. 이 확인하는 프로세스는 Access-1로부터 받은 BPDU 신호와 비교하여 진행합니다. 앞서 언급한 기준에 따라 진행해보겠습니다.

  • Lowest root bridge ID (가장 낮은 루트 브릿지 ID): 토폴로지의 모든 장치는 Core-1 스위치가 루트라는 것에 동의합니다. 즉, 이 값은 모든 장치에게 동일합니다.
  • Lowest path cost to the root bridge (가장 낮은 루트 브릿지까지의 경로 비용): Access-1 스위치와 Core-2 스위치 모두 동일한 값(Cost)를 갖습니다. 두 스위치 모두 1 hop 떨어져 있기 때문입니다.
  • Lowest sender bridge ID (가장 낮은 발신자 브릿지 ID): Core-2 스위치의 BID 값이 더 낮기 때문에 두 스위치간 연결된 링크에서 Core-2 스위치의 1번 포트가 DP가 됩니다.
2번 포트

Core-2 스위치는 다시 이 포트가 루트에 가장 가까운지 확인합니다. 1번 포트에서 확인했던 것과 마찬가지로 Access-2 스위치로부터 받은 BPDU를 비교하여 확인합니다.

  • Lowest root bridge ID (가장 낮은 루트 브릿지 ID): 토폴로지의 모든 장치는 Core-1 스위치가 루트라는 것에 동의합니다. 즉, 1번 포트와 마찬가지로 동일합니다.
  • Lowest path cost to the root bridge (가장 낮은 루트 브릿지까지의 경로 비용): 각 스위치간 링크의 속도가 같기 때문에 1 hop씩 떨어져 있는 두 스위치 모두 동일한 값(Cost)를 갖습니다.
  • Lowest sender bridge ID (가장 낮은 발신자 브릿지 ID): Core-2 스위치의 BID 값이 더 낮기 때문에 두 스위치간 연결된 링크에서 Core-2 스위치의 2번 포트가 DP가 됩니다.
44번 포트

두 스위치 링크 중 다른 쪽(Core-1 스위치)의 포트가 루트와 가장 가깝기 때문에 DP를 지정할 수 없습니다.

Access-1 스위치
1번 포트

이 포트는 연결된 링크에서 유일한 RSTP 스피커입니다. 즉, 다른 스위치와 연결되어 있지 않습니다. 따라서 이 포트는 DP가 됩니다.

22번 포트

이 포트에 연결된 링크의 다른 쪽(Core-1 스위치) 포트가 루트와 가장 가깝기 때문에 DP를 지정할 수 없습니다.

Access-2 스위치

Access-1 스위치와 동일하게 1번 포트가 DP가 되고 22번 포트는 DP가 될 수 없습니다.


위 그림에서 Layer 1 Hub가 없는 토폴로지 구성입니다. 따라서 Backup 포트는 없고, 오직 Alternative 포트만 존재하게 됩니다. DP(지정 포트)나 RP(루트 포트)로 선택되지 않은 모든 포트는 ALT 포트가 되고, Discarding 상태가 됩니다. 그림에서는 Core-2 스위치의 44번 포트, Access-1과 Access-2 스위치의 22번 포트가 ALT 포트가 된 것을 확인할 수 있습니다.

RSTP Edge Port & Link Type

엣지 포트(Edge Port)는 엔드 포인트에 연결되므로 BPDU를 수신하지 않습니다. 엔드 포인트 단말은 루프를 발생 시킬 수 없기 때문에 Spanning Tree 알고리즘에 참여할 필요가 없습니다. 즉, “Leaf on the Spanning Tree”입니다. 루프를 생성 할 수 없기 때문에 중간 과정 없이 빠르게 전달 상태(Forwarding State)로 전환 할 수 있습니다.

만약, 엣지 포트에서 BPDU가 수신 되면, 포트는 일반 스패닝 트리 포트로 작동하고 Layer 2 루프를 방지하기 위해 알고리즘에 참여합니다. 따라서 아래와 같이 엣지 포트를 수동으로 구성해야 합니다.

Switch(config)# interface 1/1/1
Switch(config-if)# spanning-tree port-type admin-edge

admin-edge 옵션의 대안으로 AOS-CX 관리 네트워크 옵션이 있습니다. 이 옵션을 사용하면 포트는 링크가 작동 된 후 처음 3 초 동안 BPDU를 찾습니다. BPDU가 수신 되지 않으면 포트는 엣지 포트가 되어 즉시 프레임을 전달합니다. BPDU가 감지되면 포트는 비 엣지 포트가 됩니다. 정상적인 STP 작업에 참여합니다.

Switch(config)# interface 1/1/1
Switch(config-if)# spanning-tree port-type admin-network

RSTP 토폴로지 변경 메커니즘

RSTP에서는 Non-Edge 포트가 다른 상태로 변경되거나 BPDU 값을 더 이상 받지 않을 때, 토폴로지 변화가 일어납니다. 스위치는 이러한 토폴로지 변화를 탐지하고, 토폴로지 변경된 네트워크 내 스위치들에게 알려줍니다. BPDU에 TC(Toplogy Change) 비트를 설정하고 이러한 BPDU를 전송하여 모든 Non-Edge 포트와 관련된 MAC 주소 테이블 항목을 플러시합니다.

다른 스위치들은 주변으로부터 TC (Topology Change) 비트가 설정된 BPDU를 수신합니다. 스위치들은 TC BPDU의 수신 포트를 제외한 모든 포트에서 확인된 MAC 주소 테이블 항목을 지웁니다. 그리고 이 스위치들은 차례로 TC가 설정된 BPDU를 전송합니다.

참고: 원래 802.1d 표준에서 모든 스위치는 TC BPDU를 전송하여 다른 스위치에게 알릴 수 있지만 MAC 주소 테이블을 지우라는 명령은 항상 루트 스위치에서 제공 되어야 합니다. 이 2 단계 프로세스는 완료하는 데 더 많은 시간이 걸리게 됩니다.


이번 포스팅은 다소 길었습니다. Spanning Tree는 복잡해지는 네트워크 환경에서 굉장히 중요한 기술입니다. 루프가 발생할 경우 네트워크 전체적으로 큰 문제가 발생하기 때문에 이 부분은 반드시 제대로 숙지해야 할 것입니다.

다음 포스팅에서 MSTP(Multiple Spanning Tree Protocol)을 살펴보겠습니다.

유사 게시물

  • [ACSA 교육#28] MSTP 이론과 지역 구성

    ⏱️ 예상 읽기 시간: 약 6분 (6 min read) 일반적인 Spanning Tree(Common Spanning Tree, CST)는 VLAN 수에 관계없이 전체 네트워크에 대해 하나의 스패닝 트리 인스턴스(Spanning Tree Instance)를 정의하게 됩니다. 모든 BPDU는 Untagged VLAN 1을 사용하여 VLAN에 대한 내용은 고려되지 않습니다. 또한, 로드 밸런싱이 없어, 대체…

  • [ACMA 교육#4] AOS 8 아키텍처

    ⏱️ 예상 읽기 시간: 약 6분 (6 min read) ACMA 자격증 시험은 AOS 8 운영체제를 기반으로 진행됩니다. 그렇기 때문에 AOS 8 아키텍처에 대해 이해하는 것은 중요합니다. 지난 포스팅에서 Aruba 무선랜 포트폴리오에 대해서 이미 설명을 드렸는데요. AP(Access Point)를 설명하면서 CAP(Campus AP)와 IAP(Instant AP)에 대한 개념을 말씀드렸습니다….

  • HPE Aruba 이더넷 기반 스토리지 패브릭

    ⏱️ 예상 읽기 시간: 약 4분 (4 min read) 차세대 데이터센터 및 프라이빗 클라우드 구축에는 이러한 새로운 워크로드와 데이터 중심 애플리케이션을 지원하기 위해 100/200/400GbE 패브릭이 필요합니다. 최근 스토리지 아키텍처는 성능을 개선하고 데이터센터에 클라우드와 같은 확장성 및 효율성을 제공하기 위해 빠르게 진화하고 있습니다. 분리형 스토리지(Disaggregated Storage)는…

  • [ACP-DC 교육#13] Spine-Leaf 아키텍처

    ⏱️ 예상 읽기 시간: 약 8분 (8 min read) Spine-Leaf 아키텍처는 코어 역할을 하는 Spine 스위치, 액세스 계층인 Leaf 스위치, 그리고 데이터센터의 계산 및 저장 자원을 담당하는 수많은 엔드포인트로 구성됩니다. 이 구조는 확장성이 매우 뛰어나고 효율적이며, 저지연(Low-latency) 통신에 최적화되어 있어 고성능 네트워크가 필요한 현대 데이터센터…

  • IPv6-ready 스위치: HPE Aruba Networking 스위치

    ⏱️ 예상 읽기 시간: 약 3분 (3 min read) 베테랑 네트워크 관리자들은 인터넷 액세스에 필요한 디바이스가 거의 없고 연결이 고정적이었던 과거의 단순했던 네트워크 시절을 아마도 기억할 것입니다. 네트워크 장치의 수가 증가함에 따라 고유 식별자(즉, 주소)로 태그를 지정하고 관리, 라우팅 및 보안을 가능하게 하기 위해 인터넷…

  • AOS-CX에서 RoCE 구성하기 (1) – 이론편

    ⏱️ 예상 읽기 시간: 약 8분 (8 min read) 오늘날 미션 크리티컬 스토리지 환경은 높은 비즈니스 요구에 부응하기 위해 더 높은 일관성, 예측 가능성, 성능을 필요로 합니다.데이터 센터는 방대한 양의 데이터, App, 워크로드를 수용하기 위해 더 많은 I/O 용량을 필요로 합니다. 이러한 데이터의 급증과 더불어…