1. 스패닝 트리로 가는 첫번째 관문 두 가지

스패닝 트리 알고리즘이란 스위치나 브리지에서 발생하는 루핑을 막아주기 위한 프로토콜이다. 스위치나 브리지 구성에서 출발지부터 목적지까지 경로가 두 개 이상 존재할 때 한 개의 경로만을 남겨 두고 나머지는 모두 끊어 두었다가 사용하던 경로에 문제가 발생하면 그때 끊어 두었던 경로를 하나씩 살린다.

그러면 STP(Spanning Tree Protocol)가 어떻게 동작하는지 알아보도록 하자. STP를 이해하기 위해서는 먼저 두 가지 개념인 Bridge ID와 Path Cost이다.

1) Bridge ID

브리지 ID는 브리지나 스위치들이 통신할 때 서로 확인하기 위해 하나씩 가지고 있는 번호이다.

Untitled

브리지 우선순위(Bridge Priority)는 0~65535까지 값을 가질 수 있고 디폴트로 그 중간에 해당하는 값인 32768을 사용한다. 맥 어드레스는 스위치에 고정된 값을 의미한다.

2) Path Cost

Path Cost란 말 그대로 ‘길을 가는데 드는 비용’ 이다. 네트워크 분야에서 길이란 바로 장비와 장비가 연결되어 있는 링크를 말하는 것이다. 즉, Path Cost란 브리지가 얼마나 가까이, 그리고 빠른 링크로 연결되어 있느지를 알아내기 위한 값이다. 원래 STP를 정의학 있는 IEEE 802.1D에서는 이 Cost값을 계산할 때 100Mbps를 두 장비 사이의 링크 대역폭으로 나눈 값을 사용했다.

예를 들어 두 스위치가 10Mbps로 연결되어 있다고 가정하자. 그러면 Path Cost는 1000Mbps를 둘 사이의 링크 대역폭으로 나눈 값인 1000/10 = 100이 된다.

즉, Path Cost는 링크의 속도(대역폭)가 빠르면 빠를수록 더 작은 값이 되는 것이다. 말하자면 링크 속도가 빠르면 그만큼 빨리 도착하기에 Path Cost가 적게 드는 것이다. 그런데 문제는 기가비트(1000Mbps)와 ATM(2.4Gbps)가 나온것이다. 이 값들이 대역폭인 경우 Path Cost가 소수점이 나오게 된다. 그래서 IEEE에서는 소수점이 나오지 않도록 각 속도마다 다음 표와 같은 Path Cost 값을 정의하게 되었다.

Untitled

그럼 이 값들을 가지고 실제 Path Cost를 계산해보도록 하자. 스위치 A와 스위치 C가 100메가로 연결되어 있는 걸 볼 수 있다. 그렇다면 스위치 C에서 스위치 A로 가는 Path Cost는 19라는 것을 알 수 있다. 그러면 스위치 D에서 스위치 A로 가는Path Cost는 어떻게 될까? 간단하게 두 스위치 간 Path Cost를 더해주면 된다.

Untitled

2. 스패닝 트리를 잘하려면 세 가지만 기억하세요!

스패닝 트리 프로토콜은 복잡한 스위치의 루핑을 방지하기 위한 복잡한 프로토콜처럼 보이지만 사실 기본적인 동작 세 가지만 이해하면 단순 명료하다.

첫째, 네트워크당 하나의 루트 브리지(Root Bridge)를 갖는다.

둘째, 루트 브리지가 아닌 나머지 모든 브리지(Non Root Bridge)는 무조건 하나씩의 루트 포트를 갖는다.

셋째, 세그먼트(Segment)당 하나씩의 데지그네이티드 포트(Designated Port)를 갖는다.