지난 번 네트워크 이중화(Redundancy)를 얘기하면서 그로 인해 발생될 수 있는 Loop에 대한 것도 얘기하였습니다. 그에 대한 대안으로 STP(Spanning Tree Protocol)을 간략히 언급했는데요.
오늘 그럼, Spanning Tree Protocol에 대해 자세히 알아보도록 하겠습니다.
STP(Spanning Tree Protocol) Overview
STP (Spanning Tree Protocol)의 표준 버전인 IEEE 802.1d는 이중화 환경을 제공하면서 루프가 없는 네트워크를 구축하고 유지하기 위해 개발되었습니다. STP를 사용하면 루프 및 MAC 테이블 불안정성을 피하면서 단일 경로로 인한 장애를 제거할 수 있게 됩니다. STP는 이중화를 위한 백업 링크를 자동으로 비활성화하여 루프없는 토폴로지를 만듭니다.
![](https://egstory2-8b4b6c8e09167390fdc1-endpoint.azureedge.net/wp-content/uploads/2021/04/image-11.png)
위 그림은 복원력과 내결함성(fault-tolerance)을 위한 고도화된 이중화 네트워크 구성의 예시입니다.
이러한 이중화 구성은 루프 및 관련 문제를 야기할 수 있습니다. 하지만, STP를 사용하면 중복되는 링크가 자동으로 비활성화 됩니다. 따라서 루프가 생길 수 있는 요소를 사전에 제거가 되기 때문에 브로드캐스트 스톰이나 MAC주소 테이블의 불안정성과 같은 문제 없이 네트워크를 운영할 수 있게 됩니다.
하지만, 이렇게 비활성화된 링크는 필요에 따라 이중화를 제공하기 위해 계속 사용되게 됩니다.
이러한 루프는 없애면서 이중화라는 목적을 달성하기 위해서, STP 도메인의 스위치 중 하나가 Root 스위치 또는 Root Bridge로 선택됩니다. 나무가 땅에서 뿌리로, 하나의 줄기와 수많은 가지로 분기되는 것과 같이, Root 스위치(뿌리 스위치)가 Spanning Tree라는 나무로 자라나가는 뿌리가 됩니다.
나머지 스위치는 Non-root Bridge 또는 Non-root 스위치로 불리우며, 일부에서는 지정된 스위치 (Designated Switch)라고도 불려지기도 합니다.
루프가 없는(loop-free) 경로에서는 뿌리(Root)에서 나머지(Non-Root)로 뻗어나가게 됩니다.
※ 참고: 지금의 스위치는 예전 Bridge(브릿지)라고 불리던 장비의 빠르고 다중의 포트를 제공하는 업그레이드 버전입니다. 따라서 STP 관련된 내용이 나올때 브릿지라는 용어가 종종 나오게 되며, 맥락상 스위치와 브릿지를 동일시해도 관계 없습니다.
STP 알고리즘
![](https://egstory2-8b4b6c8e09167390fdc1-endpoint.azureedge.net/wp-content/uploads/2021/04/image-15-1024x444.png)
STP 알고리즘은 모든 스위치에서 실행되며 루프를 방지하기 위해 중복되는 링크들은 활성화됩니다. 그러나 장애가 발생하면 STP는 새롭게 활성화된 링크의 토폴로지에 적용(Converge)되고, 프레임을 전달하는 데 사용됩니다. 이 과정에서 루프 없는 토폴로지는 계속 유지됩니다.
※ 네트워크에서 Converge라는 용어는 “수렴하다”라는 원래 뜻과는 달리 “(모든 네트워크 장치가 새로운 토폴로지 환경에 대해) 합의했다”라고 해석합니다.
STP 기술 비교
![](https://egstory2-8b4b6c8e09167390fdc1-endpoint.azureedge.net/wp-content/uploads/2021/04/image-16.png)
STP (Spanning Tree Protocol)
원래 표준(IEEE 802.1d)에서는 타이머를 기반으로 장애를 탐지합니다. 기본값을 사용하면 Root 스위치는 매 2초마다 “Hello” 패킷을 생성합니다. 이 “Hello” 패킷은 나머지 모든 스위치로 전달됩니다.
만약 Root 스위치와 멀리 떨어진 스위치에서 20초 동안 (기본 Max Age Timer) “Hello” 패킷 수신을 중단하게 되면, 연결이 끊어졌다고 인식하고 모든 스위치가 새로운 토폴로지 환경으로 변화하게 됩니다. 이 프로세스의 기간은 전달 지연 타이머(Forward Delay Timer)에 따라 정의됩니다. 기본 설정 값은 15초입니다.
이러한 방식은 아주 오래된 구식으로 간주되며, 최신의 네트워크 환경에서는 더 이상 사용되지 않습니다.
RSTP (Rapid Spanning Tree Protocol)
RSTP는 Converge 속도를 높이기 위해 1998년 개발되었습니다.
Root 스위치에서만 “Hello” 패킷을 생성하던 방식에서, 모든 스위치가 할 수 있게 됩니다. 즉, RSTP는 이제 몇 초(또는 그 이하)내에 응답할 수 있게 되면서 계속적으로 연결상태를 유지하는 메커니즘을 갖게됩니다.
RSTP에서는 더 이상 오래되고 느린 Max Age 및 Forward Delay Timer가 필요하지 않습니다.
RSTP는 오리지널 표준 802.1d와 하위 호환됩니다.
하지만, 이 기능을 유지하기 위해서 RSTP의 일부 이점이 손실됩니다.
MSTP (Multiple Spanning Tree Protocol)
802.1s 또는 MSTP는 모든 링크에서 트래픽의 부하를 분산하기 위해서 여러 개의 루프 없는 토폴로지 또는 인스턴스를 구현하여 전반적인 프로토콜의 성능을 향상시킵니다. 따라서 이 프로토콜은 최적의 경로를 만드는 데 도움이됩니다.
AOS-CX 스위치에서는 기본적으로 MSTP가 동작합니다. 하지만, 별도의 설정이 없다면 RSTP처럼 동작하게 됩니다. 왜 이렇게 동작하는지는 다음 포스팅에서 자세히 다뤄보도록 하겠습니다.