본문 바로가기

Network

스패닝 트리 프로토콜 (STP, Spanning Tree Protocol) 개념

반응형

1. STP 를 알아보기 전에

 

네트워크를 단일로 구성할 경우 하나라도 장애가 생길경우 전체 네트워크에 장애가 발생합니다.

이러한 상황을 막기위해 스위치 2대로 네트워크를 구성하지만 패킷이 네트워크를 따라 계속 전송되어 마비 될 수 있습니다. 이와같은 상황을 네트워크 루프 라고 합니다. 

https://ehym.tistory.com/entry/Looping%EB%BA%91%EB%BA%91%EC%9D%B4

 

BroadCast Storm

네트워크가 연결된 상태에서 단말기에서 브로드캐스트를 발생시키면 스위치는 이 패킷을 유입된 포트를 제외하고 모든 포트로 플러딩을하고 이 패킷을 받은 스위치도 유입된 포트를 제외하고 모든 포트로 플러딩합니다. 이러한 구조로 계속 돌아가는 현상을 말합니다.

이 현상이 발생될시 브로드캐스트를 계쏙 처리해야하므로 CPU사용률이 올라가 부하걸려 느려집니다.

 

2. STP

스패닝 트리 프로토콜(Spanning Tree Protocol)의 약자로 루프를 확인하고 적절히 포트를 사용하지 못하게 하는 프로토콜이다.

 

전체적인 스위치 연결상황을 알기위해 BPDU(Bridge Protocol Data Unit)라는 프로토콜을 통해 정보를 공유하는 것 외에도 스위치는 BPDU를 사용하여 네트워크 토폴로지를 학습하고, 어떤 스위치가 어떤 스위치와 연결되어 있는지, 학습 된 토폴로지에 레이어 2 스위칭 루프가 있는지 여부를 학습합니다.

BPDU Packet 구조

루트브리지 는 STP 의 시작점입니다. 가장 낮은 Bridge ID(우선순위번호+맥주소) 를 갖는 스위치가 선출됩니다. 한 네트워크에 루트브리지는 한개는 무조건 존재하며 해당 스위치가 문제가 생길시 새로 선출합니다.

루트포트는  루트브리지로 가는 최단 경로에 있는 포트입니다. 최단경로는 아닐수도 있지만 가장 빠른 경로입니다.

https://www.computernetworkingnotes.com/ccna-study-guide/stp-spanning-tree-protocol-explained-with-examples.html

  • STP 도메인의 모든 스위치는 먼저 루트 브리지를 선택합니다. 루트 브리지는 네트워크의 다른 모든 스위치에 대한 참조 지점 역할을합니다. 루트 브리지의 모든 포트는 전달 모드로 유지됩니다.
  • 루트 브리지가 선택되면 나머지 모든 스위치는 루트 브리지에 도달하기위한 경로 비용이 가장 짧은 단일 포트를 선택하고 루트 포트로 표시합니다.
  • 루트 포트를 선택한 후 스위치는 각 연결에 대해 지정된 단일 포트를 결정합니다.
  • 여러 포트가 동일한 스위치 또는 LAN 세그먼트에 연결되어있는 경우 스위치는 경로 비용이 가장 낮은 포트를 하나만 선택하고 지정된 포트로 표시합니다.
  • 루트 포트와 지정된 포트가 선택되면 스위치는 나머지 모든 포트를 차단하여 네트워크에서 가능한 루프 나 기존 루프를 제거합니다.

 

3. STP 4가지 변화과정

1. Blocking

  STP가 동작중인 스위치에 새로운 스위치가 연결되면 바로 트래픽이 흐르지 않도록 차단합니다.

  그리고 BPDU가 오기를 기다립니다.

 

2. Listening

  도착했으면 학습하고 구조를 파악한 뒤 트래픽을 흘려도 되는지 차단해야할지 결정합니다.

  이제 자신의 BPDU를 전송합니다.

  • 포트에서받은 프레임을 버립니다.
  • 주소를 배우지 않음
  • BPDU 수신

 

3. Learning

  러닝상태는 이제 해당포트를 포워디아고 결정하고 실제로 패킷포워딩이 일어 날때 스위치가 동작할수 있도록 MAC주소를 러닝합니다.

  • 포트에서받은 프레임을 버립니다.
  • 주소를 배움
  • BPDU 수신

 

4. Forwarding

  정상적인 통신이 가능합니다.

  • 포트에서 수신된 프레임을 수신 및 전달
  • 주소를 배움
  • BPDU 수신
반응형