📕스패닝 트리 프로토콜(Spanning Tree Protocol : STP)
스패닝 트리 프로토콜이란 스패닝 트리 알고리즘(Spanning Tree Algorithm : STA)을 사용해 스위치나 브릿지로 구성된 네트워크 환경에서 루핑이 발생하는 것을 막는 프로토콜이다. 출발지에서 목적지까지 가는 경로가 여러 개일 때, 한 가지 경로를 제외한 모든 경로를 끊었다가 사용 중인 경로에 문제가 생기면 나머지 경로를 하나씩 연결하는 방식으로 작동한다.
스패닝 트리 프로토콜을 이해하려면 먼저 브릿지 ID(Bridge Indentification)와 경로 비용(Path Cost)을 알아야 한다.
📖브릿지 ID와 경로 비용
브릿지 ID란 브릿지나 스위치가 통신할 때 필요한 식별 번호이다. 브릿지 ID는 64비트로 이루어져 있으며 앞의 16비트는 브릿지 우선순위(Bridge Priority), 뒤의 48비트는 맥 어드레스를 나타낸다.
위 이미지에서 위의 숫자는 16진수로 표현한 것이고 아래의 숫자는 2진수로 표현한 것이다. 브릿지 우선순위 값인 8000은 디폴트 값인 32768을 16진수로 표현한 것이다.(0~65535의 중간값을 사용)
그렇다면 경로 비용은 무엇일까? 여기서 말하는 경로란 각 네트워크 장비를 잇는 길을 말한다. 경로 비용은 쉽게 말해 해당 경로가 얼마나 효율적인지를 나타내는 값이다. 경로 비용이 높다면 비효율적인 경로이고 경로 비용이 낮다면 효율적인 경로이다.
📑경로 비용 계산하기
경로 비용은 원래 전송 속도 1,000Mbps를 해당 경로의 대역폭으로 나눈 값이었다. 가령 두 스위치가 10Mbps로 연결되어 있다면 해당 경로의 경로 비용은 10이 되는 것이다. 그런데 대역폭이 점점 커지면서 경로 비용의 계산 결과가 1이하로 나왔고, 이러한 문제를 해결하기 위해 현재는 경로 비용을 대역폭별로 정의해 사용한다. 대역폭별 경로 비용은 아래 표와 같다.
📖스패닝 트리 프로토콜의 구성과 작동 방식
스패닝 트리 프로토콜을 구성하는 요소는 다음과 같다.
- 네트워크당 루트 브릿지(Root Bridge)를 하나씩 갖는다. 이때의 네트워크는 스위치나 브릿지로 구성된 작은 네트워크를 말한다.
- 루트 브릿지가 아닌 나머지 브릿지(Non Root Bridge)는 모두 루트 포트(Root Port)를 하나씩 갖는다.
- 세그먼트(Segment)당 데지그네이티드 포트(Designated Port)를 하나씩 갖는다.
여기서 루트 브릿지와 루트 포트, 데지그네이티드 포트를 결정하려면 Root BID와 Root Path Cost, Sender BID, Port ID 등을 알아야 하는데, 이에 대한 정보는 BPDU(Bridge Protocol Data Unit)라는 데이터 프레임에 저장된다. 이 BPDU가 각 네트워크 장비를 왔다 갔다 하면서 루트 브릿지, 루트 포트, 데지그네이티드 포트를 결정하는 정보를 전달하는 것이다.
📑스패닝 트리 프로토콜의 구성 요소 정하기
스패닝 트리 프로토콜의 구성 요소는 BPDU에 저장된 정보에 따라 정해진다고 했다. 아래는 요소를 구성할 때 고려되는 정보의 우선 순위이다.
- 누구의 Root BID가 더 작은가?
- 루트 브릿지까지의 Path Cost는 누가 더 작은가?
- 누구의 BID(Sender BID)가 더 낮은가?
- 누구의 포트 ID가 더 낮은가?
📖스패닝 트리 프로토콜의 다섯 가지 상태
스패닝 트리 프로토콜에는 다섯 가지 상태가 있다. 그 상태란 바로 Disabled, Blocking, Listening, Learing, Forwarding이다.
- Disabled
- 포트가 고장 났거나 포트를 Shut Down한 상태이다. 데이터 전송과 맥 어드레스 저장을 할 수 없으며 BPDU 또한 주고받을 수 없다.
- Blocking
- 스위치를 처음 켤 때나 포트의 Disabled 상태를 해제할 때 포트가 머무는 상태이다. 데이터 전송과 맥 어드레스 저장은 할 수 없지만 BPDU는 주고받을 수 있다.
- Listening
- 블로킹 상태의 스위치 포트가 루트 포트나 데지그네이티드 포트로 선정되면 머물게 되는 상태이다. 데이터 전송과 맥 어드레스 저장은 할 수 없지만 BPDU는 주고받을 수 있다. Non Designated 포트로 바뀌면 다시 블로킹 상태가 된다.
- Learing
- 리스닝 상태의 스위치 포트가 포워딩 딜레이(Fowarding Dealy) 시간 동안 리스닝 상태에 머문다면 오게 되는 상태다. 데이터 전송은 할 수 없지만 맥 어드레스 저장을 할 수 있고 BPDU도 주고받을 수 있다.
- Forwarding
- 러닝 상태의 스위치 포트가 포워딩 딜레이 시간 동안 러닝 상태에 머문다면 오게 되는 상태다. 데이터 전송과 맥 어드레스 저장을 할 수 있고 BPDU도 주고받을 수 있다.
📖스패닝 트리의 재편성
루트 브릿지와 Non Root Bridge는 헬로 타임(Hello Time)마다 BPDU를 주고받으면서 스패닝 트리에 이상이 생겼는지 확인한다. Non Root Bridge는 헬로 타임이 지났는데도 BPDU가 오지 않으면 맥스 에이지(Max Age) 동안 기다린 후 스패닝 트리의 구조를 변경한다. 문제가 생긴 세그먼트 대신 멀쩡한 세그먼트를 통해 BPDU를 받고, 루트 포트를 새로 선정하는 것이다. 새로 선정된 루트 포트는 블로킹 상태에서 포워딩 상태가 되고, 기존의 루트 포트는 포워딩 상태에서 블로킹 상태가 된다.
새로 선정된 루트 포트가 포워딩 상태가 되려면 리스닝 상태와 러닝 상태를 거쳐야 하기 때문에 재편성 시간이 오래 걸린다는 단점이 있다.
🔖용어 정리
루트 브릿지(Root Bridge): 스패닝 트리 프로토콜을 수행할 때 기준이 되는 브릿지(스위치).
세그먼트(Segment): 브릿지 혹은 스위치끼리 연결된 링크.
루트 포트(Root Port): 루트 브릿지에 가장 가까운 포트.
데지그네이티드 포트(Designated Port): 루트 포트가 아닌 포트 중에 루트 브릿지에 가장 가까운 포트.
헬로 타임(Hello Time): 루트 브릿지가 BPDU를 보내는 간격. 디폴트는 2초이다.
맥스 에이지(Max Age): 스패닝 트리의 이상을 감지한 뒤 구조를 변경하기까지 대기하는 시간.
포워딩 딜레이(Fowarding Dealy): 다음 상태로 넘어가기 전 대기하는 시간이다. 리스닝 상태에서는 추가로 BPDU가 들어오는지 기다려 보는 시간이고, 러닝 상태에서는 맥 어드레스를 학습하는 시간이다.
'네트워크 > 네트워크 장비' 카테고리의 다른 글
라우터 (0) | 2022.05.27 |
---|---|
가상 랜(Virtual LAN) (0) | 2022.05.26 |
서브넷(Subnet)과 서브넷 마스크(Subnet Mask) (0) | 2022.05.10 |
IP 주소(Internet Protocol Address) (0) | 2022.05.09 |
라우터(Router) (0) | 2022.04.29 |