Looping을 방지하는 스패닝 트리 구성하기

김지윤·2024년 5월 18일
0

컴퓨터 네트워크

목록 보기
17/19

이전에 브리지를 설명하면서 Looping 현상을 방지하는 방법으로 스패팅 트리 알고리즘에 대해 잠깐 얘기했었는데요, 오늘은 이부분을 자세히 다뤄보겠습니다~

스패닝 트리 프로토콜을 알기 위해서는 우선 브리지의 ID와 경로 비용 개념에 대해 알아야 하는데요.

브리지의 ID는 16비트의 브리지 우선순위와 48비트의 브리지 MAC 주소로 이루어져 있습니다.

그리고 경로 비용(Path Cost)는 하나의 브리지에서 상대 브리지로 가는 경로 비용을 말합니다.

경로 비용은 대역폭이 클수록 비용이 적게 드는데, 대역폭 당 비용이 계산되어 있어요.

10Mbps : 100 / 100Mbps : 19 / 1Gbps : 4


STP(스패닝 트리 프로토콜)

스패닝 트리를 구성하기 위해서는 몇 가지 규칙이 있습니다!

  • 하나의 네트워크는 하나의 루트 브리지(대장 브리지)를 가져야 한다.

  • 루트 브리지가 아닌 나머지 브리지는 루트 브리지로 가는 가장 가까운 포트를 지정한다.

  • 세그먼트(브리지와 브리지의 연결선)는 둘 중 하나의 포트를 데지그네이티드 포트(Designated Port)로 선정해야 한다.


스패닝 트리 구성하기

이제 진짜 스패닝 트리를 만들어봐요!
스패닝 트리는 각 노드를 연결하는 경로로 사이클이 존재하지 않는 그래프를 말합니다.

브리지 사이에서는 스패닝 트리를 구성하기 위해 어떤 방법을 거칠까요?

먼저

1. 한 네트워크에서 루트 브리지를 뽑습니다.

루트 브리지는 브리지 ID가 가장 적은 것이 선택이 되는데요, 이를 뽑기 위해 각 브리지는 서로 자신의 정보가 담겨있는 BPDU(Bridge Protocol Data Unit)를 2초 간격으로 주고 받게 됩니다.

BPDU 구성
자신의 루트 브리지 ID, 자신의 ID, 루트 브리지까지의 경로 비용, 루트 브리지로 가는 포트 ID

BPDU 정보를 사용해 네트워크의 대장 브리지를 뽑습니다.

2. 루트까지의 경로 비용이 가장 작은 루트 포트를 뽑습니다.

브리지에 달려있는 여러 포트 중에 루트까지의 경로 비용이 가장 작은 것을 루트 포트로 선정하는데요, 경로 비용은 위에서 알려줬듯이 대역폭에 따른 비용으로 계산하면 됩니다!

3. 가장 중요한 마지막 단계! 각 세그먼트에서 Designated Port를 뽑고, 나머지 포트는 닫아놓습니다.

이 단계를 통해 세그먼트에 연결된 2개의 포트 중 1개만 열어놓음으로서 프레임 전송이 무한반복되는 Looping 현상을 막을 수 있는 것입니다.

Designated Port를 뽑는 방법은 4단계까지 존재하는데요, 윗 단계에서 정해지지 않으면 아랫 단계까지 확인해야 합니다.

더 작은 루트 ID -> 더 작은 루트 경로 비용 -> 더 작은 BID -> 더 작은 포트 ID



브리지와 스위치는 상태가 계속 변해요

위에서 알아본 스패닝 트리를 완성하는 과정에서 브리지와 스위치의 상태가 변화하는 과정은 각 단계별로 정의되어 있어요.

Disabled -> Blocking -> Listening -> Learning -> Forwarding

  • Disabled : 이것은 맨 처음 스위치가 켜지기 전 상태예요

  • Blocking : BPDU를 생성하여 어떻게 스패닝 트리를 구성할지 정보를 주고받는 단계입니다.

  • Listening : 스패닝 트리를 완성하는 단계에서 Designated Port 선정까지 진행되고, 15초 동안 더 이상 변화가 없는지 지켜보는 단계예요

  • Learning : 스패닝 트리가 구성된 상태에서 각 브리지와 스위치가 MAC 주소를 배워 테이블을 생성하는 단계입니다. 이 단계에서도 더 이상 상태변화가 없는지 15초 동안 지켜보게 되요.

  • Forwarding : 대망의 데이터 전송 단계입니다!


스패닝 트리는 언제나 변경될 수 있고, 따라서 Listening, Learning, Forwarding은 언제나 Disabled, Blocking 될 수 있다는걸 명심하세요!

profile
꾸준하게 공부하고 기록하는 개발자

0개의 댓글