My Study/Network

Spanning Tree Protocol(스패닝 트리 프로토콜)

 Spanning Tree Protocol(스패닝 트리 프로토콜)은 스위치나 브리지 구성에서 출발지부터 목적지까지 경로가 2개 이상일 때 루핑을 막기위해 한 개의 경로를 남겨두고 나머지 경로를 끊었다 한 개의 경로에 문제가 생기면 끊었던 경로를 살리는 기능입니다.


 스패닝 트리 프로토콜(앞으로 STP)를 이해하기 위해 두 가지 개념을 잡고 가겠습니다.


 1. Bridge ID(브리지 ID)

스위치나 브리지가 통신할 때 서로를 확인하기 위하여 하나씩 가지고 있는 번호입니다. Bridge ID(앞으로 BID)는 Bridge Priority(8bit)와 MAC Address(48bit)로 구성되어 있다.




2. Path Cost

장비와 장비가 연결되어 있는 링크를 알아내기 위한 값입니다. IEEE 802.1D에서 정의한 값을 사용합니다. Path Cost가 낮을 수록 좋은겁니다.


Bandwidth(대역폭)

STP Cost(Path Cost) 

 4Mbps

250 

 10Mbps

100 

 16Mbps

62 

 45Mbps

39 

 100Mbps

19 

 155Mbps

14 

 622Mbps

1Gbps

4

 10Gbps



STP를 구성해보겠습니다.


1. 네트워크당 하나의 Root Bridge(루트 브리지)가 필요합니다.

루트 브리지는 브로드캐스트 도메인에 하나씩 루트 브리지가 가지고 있는 겁니다. 이 루트 브리지를 선정할 땐 제일 낮은 BID를 가지는 스위치가 선정됩니다.


2. 루트 브리지가 아닌 Non Root Bridge(나머지 모든 브리지)는 무조건 하나씩의 루트 포트(Root Port)를 가집니다.

Non Root Bridge는 루트 브리지를 제외한 나머지 브리지 또는 스위치입니다. Non Root Bridge는 루트 포트를 선정할 땐 루트 브리지에 가장 가까운 포트를 선정합니다. 여기서 말한 가장 가까운 포트는 Root Path Cost가 가장 낮은 포트 입니다.


3. Segment(세그먼트)당 하나의 Designated Port(데지그네이티드 포트)를 가집니다.

세그먼트는 브리지 또는 스위치 간에 연결된 링크를 의미합니다. 데지그네이티드 포트는 4단계를 거쳐서 선발이 됩니다.

3-1.누가 작은 Root BID(루트 브리지의 BID)를 가졌는가?

3-2.누가 낮은 Path Cost 값을 가졌는가?

3-3.누가 BID가 낮은가?

3-4.누구의 포트 ID가 낮은가?


 위 3단계를 거치면 스패닝 트리를 구성할 수 있습니다. 상태를 들어가기 전에 한가지를 배우고 들어가겠습니다. 그건 Bridge Protocol Data Unit(앞으로 BPDU)라는 것입니다.


 BPDU는 Root BID, 루트 브리지까지 가는 경로 값인 Root Path Cost, Sender BID(보내는 브리지 BID), Port ID 등 다양한 정보를 가지는 프레임 입니다.


 용어도 설명 했으니 STP의 5가지 상태로 들어가겠습니다.


1. Disable

포트가 고장나거나 네트워크 관리자가 Shut Down 시켜 놓은 상태입니다.

데이터 전송                  : X

MAC Address 학습        : X

BPDU                         : X


2. Blocking

새로운 스위치를 키거나 Disable 포트를 살리면 블로킹 상태로 들어갑니다. STP 구성하는 단계가 블로킹 상태입니다.

데이터 전송                  : X

MAC Address 학습        : X

BPDU                         : O


3. Listening

블로킹 상태에 있던 포트가 루트 포트나 데지그네이티드 포트로 선정되면 리스닝 상태로 넘어 옵니다. 리스닝 상태에서도 새로운 브리지나 스위치 구성값들이 바뀌면 블로킹 상태로 돌아가게됩니다. 만약 블로킹 상태로 돌아가지 않고 Fowarding Dealy(포워딩 딜레이) 디폴트 시간인 15초동안 유지하면 Learning 상태로 넘어가게 됩니다.

데이터 전송                  : X

MAC Address 학습        : X

BPDU                         : O


4. Learning

러닝 상태에서 MAC Address 를 학습하여 MAC Address 테이블을 만듭니다. 만약 블로킹 상태로 돌아가지 않고 포워딩 딜레이 디폴트 시간인 15초동안 유지하면 Forwarding 상태로 넘어가게 됩니다.

데이터 전송                  : X

MAC Address 학습        : O

BPDU                         : O


5. Forwarding

스위치 포트에서 데이터를 주고 받을 수 있습니다.

데이터 전송                  : O

MAC Address 학습        : O

BPDU                         : O




마지막으로 STP 작동 순서에 대해서 알아보기 전에 용어를 정리하겠습니다.


1. Hello Time 

루트 브리지가 연결된 브리지나 스위치들에게 BPDU(헬로 패킷)를 전송하는 시간입니다. 디폴트 시간은 2초입니다. 


2. Max Age

브리지나 스위치들이 루트 브리지로부터 헬로 패킷을 기달리는 시간 입니다. 만약 멕스 에이지 동안 헬로 패킷을 받지 못하면 STP를 시작합니다. 디폴트 시간은 20초 입니다.


3. Forwarding Delay

브리지 포트가 블로킹 상태에서 포워딩 상태로 넘어갈 때 걸리는 시간입니다. 블로킹 상태에서 포워딩 상태로 넘어갈 땐 리스닝과 러닝 상태를 거치기에 시간이 걸립니다.


STP 작동 순서입니다.


1. 포트가 고장나 루트 브리지로부터 헬로 패킷을 못 받을 시에 맥스 에이지(20초) 동안 기달립니다.

2. 만약 맥스 에이지를 넘으면 STP를 진행합니다.

3. 블로킹 상태인 Non Designated 포트가 리스닝 상태로 넘어가고  러닝 상태로 넘어가기 위해 디폴트 시간(15초)을 기달립니다.

4. 러닝 상태에서 포워딩 상태로 넘어가기 위해 다시 디폴트 시간(15초)을 기달립니다.

5. 포워딩 상태가 진행되면 고장난 포트는 블로킹 상태가 됩니다.


글이 길어진 관계로 다음 글에서 지금까지 학습한 이론을 가지고 예제 풀이를 하겠습니다


[여기를 클릭하시면 STP 예제로 넘어갑니다.]


최근 트랙백

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.