지난 시간에 이어 STP(Spanning Tree Protocol), 그 중에서도 RSTP(Rapid STP)에 대해 알아보고자 합니다.
RSTP 알고리즘이 트래픽을 전달에 사용할 포트와 그렇지 않은 포트를 결정짓는 주요 요소들에 대해 알아보겠습니다.
- Bridge Identifier
- Bridge Protocol Data Unit
- Rapid Spanning Tree Port States
- Rapid Spanning Tree Port Cost
- Rapid Spanning Tree Port Roles
Bridge Identifier (브릿지 식별자)
Spanning Tree는 각 스위치에 Bride ID라는 고유 식별자를 할당합니다.
이 식별자는 우선 순위를 나타내는 2 바이트와 MAC 주소를 나타내는 6 바이트로 구성됩니다.
우선 순위의 기본값은 32,768이므로 기본적으로 모든 스위치의 우선 순위는 동일합니다. 그러나 각 스위치에는 고유한 MAC 주소가 있으므로 각 브리지 ID(BID)는 유일하게 됩니다.
AOS-CX 스위치의 기본 우선 순위 값은 32,768입니다.
Bridge Protocol Data Unit
Spanning Tree 알고리즘에 참여하는 모든 스위치는 BPDU(Bridge Protocol Data Unit)라는 제어 메시지를 교환합니다.
원래 802.1d 표준에서 BPDU는 Root 스위치에 의해서만 생성되고, 다른 스위치들로 퍼져나가야만 했습니다. 이 때문에 느린 Max Age 및 Forward Delay Timer가 필요했었습니다.
RSTP에서는 모든 스위치가 매 2초(기본 Hello-time 기간)마다 현재 정보와 함께 BPDU를 발생시킵니다.
따라서 포트가 세 번의 Hello-Timer가 지나도록 BPDU를 수신하지 못하면, 스위치는 인접 장치와 연결이 끊어졌다고 바로 인식합니다. 바로 프로토콜 정보를 만료시키고, 새로운 토폴로지로 변화합니다.
각 스위치가 BPDU를 시작하기 때문에 진정한 연결 유지(Keep-Alive) 매커니즘이 됩니다. 이로써 장애 탐지에 걸리는 시간은 6초 이상 걸리지 않게 됩니다.
Port States (포트 상태)
Spanning Tree 구축할 때, 또는 장애 발생 이후 새로운 토폴로지 적용 중에, 스위치는 데이터를 전달할 포트와 Layer 2 루프를 방지하기 위해 비활성화해야하는 포트를 결정해야합니다.
스패닝 트리는 포트 상태(Port states)를 사용하여 차단 포트(Blocking Port)에서 전달 포트(Forwarding Port)로 전환합니다. 아래 표에는 포트 상태와 특정 작업이 요약되어 있습니다.
이 표에서 802.1d와 802.1w에서 사용되는 Port State를 비교하여 보여줍니다.
차단(Blocking)에서 전달(Forwarding)로 전환하는데 802.1d 표준은 30 초가 소요됩니다. 수신(Listening)상태에서 15 초가 소요되고 학습(Learning)상태에서 15 초가 소요됩니다.
RSTP가 802.1d보다 효율적인 이유 중 하나는 포트가 폐기(Discarding)에서 학습(Learning), 전달(Forwarding)상태로 빠르게 전환되기 때문입니다.
※ 참고: MSTP에서도 차단(Blocking) 및 수신(Listening) 상태가 더 이상 사용되지 않습니다.
※ 참고: RSTP에서 학습(Learning) 상태는 일시적이며, 토폴로지에서 변경 사항이 발생하여 프로토콜을 재 적용하는 동안에만 사용됩니다. 일반적인 상태는 폐기(Discarding) 또는 전달(Forwarding) 상태입니다.
Path Cost
RSTP는 Root 스위치에서 나머지 스위치(Non-Root Switch)로 이동하는데 여러 경로를 가질 수 있습니다. Link(회선)속도에 따라 Cost가 달라지고, 이 Cost를 기준으로 최적의 경로를 선택합니다.
다음 표는 AOS-CX의 포트별 Cost 기본 값을 나타냅니다.
다음 그림의 예시를 살펴보면, 직관적으로 봤을 때 Access-1의 대한 최선의 경로(Best Path)는 Direct Path로 생각할 수 있습니다. 하지만, 이것은 20,000 Cost인 1Gbps 링크입니다.
Core-2를 통한 Access-1이 연결되는 Indirect Path에는 10Gbps의 링크가 두 개 연결되어 있으며, 이 Cost는 각각 2,000입니다.
즉, 2,000 + 2,000 = 4,000이 20,000보다 훨씬 적기 때문에 Indirect Path가 최선의 경로가 됩니다.
Port Role (포트별 역할) – Designated and Root
802.1w RSTP를 사용하는 스위치는 전체적인 토폴로지를 볼 수 있는 View를 갖고 있지 않습니다. 때문에 각 스위치들은 Root 스위치에 얼마나 가까운지를 나타내는 BPDU를 교환하여 루프 없는 토폴로지를 구축 및 유지하게 됩니다.
여기서 BPDU는 스위치가 각 포트에 대한 올바른 포트의 역할을 계산하도록 도와줍니다.
Root 스위치의 모든 포트는 지정된 포트(Designated Port)입니다. Root 스위치는 도메인의 “Boss”와 같으며 포트를 차단하지 않습니다. 오직 지정되지 않은 포트(Non-designated Port)만 이 부분에 대해 신경 써야만 합니다.
아래 그림은 각 포트별 역할에 대한 예시 토폴로지입니다.
그림과 함께 각 포트별 역할을 정리하면 다음과 같습니다.
- Designated Port (DP)
- Root 스위치와 가장 가까운 포트
- Root 스위치의 모든 포트
- Port State(포트 상태): Forwarding
- Root Port (RP)
- Root 스위치와 연결된 스위치 중 더 가까운 스위치의 포트
- Root 스위치까지 가장 최선의 경로상 위치한 포트
- Port State(포트 상태): Forwarding
- Alternative Port (ALT)
- 링크상에서 Root 스위치와 가장 가까운 포트(RP)가 아닌 포트
- 이 링크는 스위치에 Root에 대한 최선의 경로를 제공하지 않음
- 포트가 동일한 스위치에 연결되지 않음 – 자체적으로 Loop가 없음
- Active 링크에 문제가 발생하면 Root Port(RP)로 변경
- Port State (포트 상태): Discarding
- Backup Port
- 링크상에서 Root 스위치와 가장 가까운 포트(RP)가 아닌 포트
- 이 링크는 스위치에 Root에 대한 최선의 경로를 제공하지 않음
- 포트가 동일한 스위치에 연결되어 있음 – 스위치 또는 Layer 1 Hub에 의한 Loop가 존재
- 기존 Designated Port에 문제가 생기면 Backup Port가 Designated Port(DP)로 변경
Layer 1 Hub가 토폴로지에 배치되면 루프가 발생될 수 있습니다.
※참고: Layer 1 Hub를 RSTP 토폴로지에 배치되지 않도록 주의해야 합니다.