본문 바로가기
📁study archive/네트워크와 서버

3. 루핑과 스패닝 트리 알고리즘

by Hush 2022. 2. 2.


[루핑이란?]
브리지나 스위치를 사용하여 네트워크를 구성할 때, 어떤 프래임이 무한히 네트워크를 도는 현상을 루핑이라고 한다. 이런 현상은 한 호스트에서 다른 호스트로 가는 경로가 두 개 이상인 경우 발생할 수 있다. 1번 경로로 건너간 프레임이 2번 경로로 돌아오고 다시 1번경로로 가는 식으로 무한히 프레임이 네트워크로 전송되는 것이다.
루핑을 막기 위해선 임의의 호스트에서 다른 임의의 호스트로 가는 경로가 하나만 되도록 네트워크를 구성하면 된다. 하지만 이것이 여간 복잡하고 민감한 문제가 아니기 때문에 루핑을 방지하는 알고리즘을 개발하였다. 이를 Spanning Tree Algorithm이라고 한다.

[스패닝 트리에 대한 이해]
스패닝 트리 알고리즘은 루핑을 막아주는 프로토콜이다. STP(Spanning Tree Protocol)이라고도 부른다.
STP를 이해하기 위해서는 두가지 개념을 먼저 알아야 한다. Bridge ID 와 Path Cost이다.
-Bridge ID란?
모든 브리지나 스위치들이 가지는, 서로를 구분하기 위한 8바이트 숫자이다. ID의 앞 2바이트는 Bridge Priority로, 스위치들간의 우선순위를 결정할 때 참고하는 숫자이다. ID의 나머지 6바이트는 기기의 맥 어드레스이다.
-Path Cost란?
직역하면 경로 비용으로, 한 스위치에서 다른 스위치로 가는 데 드는 비용이다. 속도가 빠를수록 Path Cost는 낮아진다. 여러 스위치를 경유하는 경로는 각 경로의 Path Cost를 더해 Path Cost를 계산한다. 다양한 경로 중 어떤 경로를 선택할지를 결정할 때 참고하는 수이다.

스패닝 트리 알고리즘은 세가지 규칙을 기반으로 작동한다.
1. 네트워크 하나당 하나의 Root Bridge를 갖는다.
2. 루트 브리지가 아닌 모든 브리지(Non Root Bridge)는 무조건 하나씩의 루트 포트(Root Port)를 갖는다.
3. 세그먼트(segment)당 하나씩의 Designated Port를 갖는다.
*루트 브리지는 스패닝 트리 프로토콜을 수행할 때 기준이 되는 브리지.
*루트포트란 루트 브리지에 가장 빨리 갈 수 있는 포트를 말함
*세그먼트란 브리지 또는 스위치간에 서로 연결된 링크라고 볼 수 있다.

스패닝 트리는 이러한 세가지 규칙을 적용할 때, 우선순위를 비교하는데 우선순위를 비교하는 네가지 단계는 다음과 같다.
1. 누가 더 작은 Root BID를 가졌는가?
2. 루트 브리지까지의 Path Cost값은 누가 더 작은가?
3. 누구의 Sender BID가 더 낮은가?
4. 누구의 포트 ID가 더 낮은가?
브리지, 스위치는 스패닝 트리 정보를 자기들끼리 주고받기 위해 특수한 프레임을 사용하는데, 이를 BPDU(Bridge Protocol Data Unit)이라고 부른다. 여기에는 Root BID, Root Path Cost, Sender BID, 보낸 포트 번호가 들어있다. 스위치가 부팅을 하면 각 포트로 BPDU를 보내고, 이 정보들에 4단계를 적용해 스패닝 트리를 구축한다.

Designated Port는 세그먼트의 두 포트 중 더 작은 Root Path Cost를 가진 포트가 선정된다.
세가지 규칙의 적용이 끝났다면 루트 포트와 데지그네이티드 포트를 제외한 포트들은 막아버린다.

구체적으로 STP에서 포트틀은 다섯가지 중 하나의 상태를 가진다.
Disabled-포트가 고장났거나 관리자가 막아놓은 경우
데이터 전송X 맥어드레스 학습X BPDU교환 X
Blocking-스위치를 맨 처음 켰거나 disabled상태의 포트를 살린 직후의 포트 상태.
데이터 전송X 맥어드레스 학습X BPDU교환 O
Listening-블로킹 상태이던 포트가 루트포트 또는 데지그네이티드 포트로 선정되면 이 상태가 됨.
데이터 전송X 맥어드레스 학습X BPDU교환 O
Learning-리스닝 상태에서 15초를 버티면 러닝 모드가 됨. 드디어 맥어드레스 학습 시작
데이터 전송X 맥어드레스 학습O BPDU교환 O
Forwarding-러닝에서 또 15초를 버티면 드디어 포워딩 상태가 되고 데이터 전송이 시작됨
데이터 전송O 맥어드레스 학습O BPDU교환 O

'📁study archive > 네트워크와 서버' 카테고리의 다른 글

6. 서브넷 마스크와 VLAN  (0) 2022.02.02
5. IP(IPv4, IPv6)  (0) 2022.02.02
4. 라우터  (0) 2022.02.02
2. 네트워크 장비(랜카드, 허브, 브리지, 스위치)  (0) 2022.02.02
1. 네트워크 기본지식  (0) 2022.02.02

댓글