네트워크

STP ( Spanning Tree protocol )

이잽 2022. 5. 13. 00:35

STP가 필요한 이유 

 

- 고 가용성을 위해 스위치 케이블 연결을 이중화 할 때 생길 수 있는 Broadcast Storm( 트래픽의 Looping으로 생긴 트래픽 과중 현상 ) 을 방지하기 위해서 필요함 

 

Broadcast Storm이 발생하면

 

- 네트워크에 접속된 디바이스의 속도가 느려짐 -> 브로드캐스트를 처리해야 하므로 디바이스의 자원의 사용률이 증가

- 네트워크 접속 속도가 현저히 떨어짐 -> 거의 통신이 불가능 수준

 

그래서 STP란?

 

STP란 루프를 확인하고 루프가 발생할 수 있는 포트를 사용하지 못하게 만들어 루프를 예방하는 메커니즘을 가진 프로토콜 입니다. STP를 적용하기 위해선 스위치간 연결 상태를 파악해야 하는데 이것은 BPDU(Bridge Date Unit)라는 프로토콜을 통해 스위치간 구조를 파악합니다.  

 

BPDU

 

BPDU에는 각각의 스위치를 구별할 수 있는 ID와 같은 고유값 정보가 포함되어 이런 정보들을 스위치 끼리 교환 함으로써 루프 파악이 가능해집니다. 

출처 : http://www.ktword.co.kr/word/abbr_view.php?m_temp1=2403 정보통신기술용어해설

STP 상태 변경 과정

 

STP는 스위치에서는 기본적으로 활성화 되어 있습니다.

STP가 작동하는 스위치에서 포트는 총 4가지의 상태를 가집니다 

 

- Blocking

  포트가 처음 활성화 되면 가지는 상태로 데이터 통신이 차단된 상태로 BPDU를 기다림

  

- Listening

  리스닝 상태에서는 해당 포트가 Forwarding 상태로 변경되는 것을 판단하고 준비하는 단계, 이 상태를 가진 스위치는 자신의 BPDU 정보를 상대방에게 전송하기 시작

 

- Learning

  러닝 상태는 통신이 일어날 때 스위치가 바로 동작 할 수 있도록 MAC 주소를 러닝하는 단계

 

- Forwarding

  통신하는 단계, 패킷을 전송하는 단계.

 

STP 동작 과정

1. Root 스위치(중심이 되는 스위치)를 선정함. root 스위치는 Bridge ID 값을 기반으로 선정( Bridge ID는 Priority 값과 MAC 주소 값으로 선정, priorty 값을 먼저 기준으로 하며 값이 가장 낮은 것 이 root 스위치로 선정 ) 

2. root 스위치가 아닌 스위치들에서는 하나의 root 포트를 선정. root 스위치로 가는 경로가 가장 짧은 포트를 루트 포트라고 함( 경로상 cost 합계가 같으면 port ID를 기반하여 root 포트가 선출됨)

3. 각 스위치 사이의 경로당 Designated 포트를 하나씩 선출, designated 포트는 root 스위치에 대한 path cost, bridge id, port id 가 낮은 순으로 결정 됨 (root 스위치의 포트는 모드 designated 포트가 됨) 

4. root 포트와 designated 포트가 아닌 포트들은 Alternate 포트로 설정됨 ( 이 포트는 트래픽이 차단되지만 BPDU 는 보내줌) 

5. 스위치는 Loop가 생기지 않는 구성을 만들 때 까지 트래픽을 전송하지 않음 ( 루프가 생길만한 포트는 blocking state)

6. Loop를 발생 시키는 포트가 없다는 확인이 되면 트래픽 전송을 시작함 

한 스위치에서 어느 하나의 포트가 예상치 못하게 shut down이 됐을 시에 다른 포트를 통해 통신이 끊이지 않도록 하는 위 그림과 같은 구조에서 STP가 사용됩니다. 위 그림은 처음 스위치 포트들이 연결 되었을 때 모두 blocking 된 상태입니다.

STP 동작이 끝난 후는 위와 같이 보입니다. 

주황색은 차단된 포트로 Alternate 포트이고 초록색은 root 포트와 desginate 포트로 트래픽 통신이 가능한 포트입니다.

 

Port Fast

위에서 이야기 했듯이 스위치는 기본적으로 STP가 활성화 되어 있습니다. 하지만 스위치 포트에 연결된 디바이스가 스위치가 아니라 일반 pc나 서버에 연결되는 포트라면 STP를 사용하지 않거나 blocking 에서 forwarding 까지의 과정을 생략해야 합니다. 이런 상황을 위해 특정 포트를 Port Fast 모드로 설정하면 BPDU 수신, 습득 과정 없이 중간 과정을 스킵하고 포워딩 상태로 포트를 사용할 수 있습니다.  Port Fast가 적용된 포트에  스위치가 접속되면 예상치 못한 루프가 생성될 수 있어 Port Fast는 해당 포트에 BPDU가 들어오자마자 곧바로 포트를 차단하는 BPDU Guard같은 기술과 함께 사용됩니다. 

'네트워크' 카테고리의 다른 글

네트워크 보안  (0) 2022.05.16
네트워크 이중화 기술  (0) 2022.05.13
UDP(User Datagram Protocol)  (0) 2022.04.18
Routing protocol의 분류  (0) 2022.04.13
Routing table  (0) 2022.04.13