메뉴 닫기

STP(Spanning Tree Protocol)이란?

STP를 이해하기 위해 두가지를 기억.

1. 브리지ID(Bridge ID)

2. Path Cost

 

*Bridge ID – 16비트의 브리지 우선순위(Bridge Priority)와 48비트의 맥 어드레스로 만들어 짐.

맨 앞에 Bridge Priority가 붙고 그 뒤에 맥어드레스가 붙는 것이 바로 Bridge ID이다.

#Bridge Priority 값에 올 수 있는 수 : 0 ~ 65535

#디폴트 값 : 32768

따라서 Bridge ID 의 예로는 아래와 같다.

                                       8바이트(64비트)

<——————————–><=================================================>

               8000                                                                0260 8C01 1111                                                      <<<<16진수

    1000 0000 0000 0000            0000 0010 0110 0000 1000 1100 0000 0001 0001 0001 0001 0001         <<<<  2진수

<—–2바이트(16비트)—-><========   스위치 Mac-Address – 6바이트(48비트)     =========>

 

이렇게 만들어진 Bridge ID는 나중에 스패닝 트리 프로토콜(STP)를 수행 할 때 아주 중요한 값으로 사용된다.

 

*Path Cost – 장비가 얼마나 가까이, 빠른 링크로 연결되어 있는지 알아내기 위한 값

IEEE 802.1D에서는 Cost값을 계산할 때 1000Mbps를 두 장비 사이의 링크 대역폭으로 나눈 값을 사용.

예) 두 스위치가 10Mbps로 연결이 되어있다고 가정하면 1000/10 = 100

따라서 Cost값은 100이 된다.

예) 두 스위치가 100Mbps로 연결이 되어있다고 가정하면 1000/100 = 10

따라서 Cost값은 10이 된다.

하지만 현재 기가비트급과 ATM이 나옴으로써 기존계산법들이 문제가 생긴다(소수점으로 인하여)

선택 영역_078

STP의 동작원리 세 가지!!

1. 네트워크당 하나의 루트 브리지(Root Bridge)를 갖는다.

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

3. 세그먼트(Segment)당 하나씩의 디사이네이티드 포트(Designated Port)를 갖는다.

선택 영역_079

스위치 A가 루트브리지로 선출.

스위치 B, 스위치 C 각각 가장 가까운 포트가 루트포트로 선정.

세그먼트당 하나의 디사이네이티드 포트를 선정.

 

스패닝트리에서 루트브리지를 선출하는 과정.

 

1. 누가 더 작은 Root BID를 가졌는가?

2. 루트브리지까지의 Path Cost 값은 누가 더 작은가?

3. 누구의 BID(Sender BID)가 더 낮은가?

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

 

스위치는 스패닝트리 정보를 자기들끼리 주고받기 위해서 특수한 프레임을 사용하는데, BPDU(Bridge Protocol Data Unit)를

스위치끼리 2초마다 보내면서 서로의 스패닝트리 정보를 주고 받는다.

그리고 어떤 포트가 루트포트가 될지, 어떤포트가 디사이네이티드포트가 될지를 결정하게 된다.

선택 영역_080

 

만약, ‘스위치C를 루트브리지로 선정하고 싶다!’ 라고 하면 스위치C의 Priority값을 수동으로 낮춰주면 된다.

SW-C(config) # spnning-tree vlan 1 priority 100

SW-C # show spanning-tree

‘Bridge Identifier has priority 100 으로 변경된 화면을 볼 수 있다.’

 

자, 이제 Designated Port 선정만이 남았습니다.

각 세그먼트당 하나의 Designated Port가 선정되어야 하는데, 선정 단계는 다음과 같다.

1. 누가 더 작은 Root BID를 가졌는가?

2. 루트 브리지까지의 Path Cost 값은 누가 더 작은가?

3. 누구의 BID(Sender BID)가 더 낮은가?

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

 

Designated Port 선정, Root Port 선정이 모두 끝났다.

이 중 어디에도 속하지 못하는 포트의 이름은 Non Designated Port(ND)로 불리운다.

 

스패닝 트리의 프로토콜의 5가지 상태 변화.

1. Disabled – 포트 다운상태이거나, 포트를 Shutdown시켜놓은 상태.

* 데이터 전송 X

* 맥 어드레스 못 배움

* BPDU 역시 못주고 못받음.

 

2. Blocking – 스위치를 처음으로 켜거나, 포트셧다운을 풀었을 떄 BPDU를 주고 받으며 루트브리지선정, 루트포트선정, 디사이네이티드포트선정, ND선정이 이 과정에서 일어난다.

* 데이터 전송 X

* 맥 어드레스 못 배움

* BPDU 주고 받음

 

3. Listening – 블로킹 상태에 있던 스위치의 포트가 루투포트나 디사이네이티드포트로 선정되면 해당 포트는 리스닝상태로 바뀜.

                     이 상태에서도 새로운 스위치가 접속 하게 되어 루트포트나 디사이네이티드포트에서 ND로 바뀌게 되면 다시 Blocking 상태로 돌아감.

* 데이터 전송 X

* 맥 어드레스 못 배움

* BPDU 주고 받음

 

4. Learning – 리스닝 상태에 있던 스위치 포트가 포워딩 딜레이(Forwarding Delay)디폴트 시간인 15초 동안 현상태를 유지하게 된다면 러닝상태로 전환.

* 데이터 전송 X

* 맥 어드레스 배움

* BPDU 주고 받음

 

5. Forwarding – 스위치 포트가 러닝 상태에서 다른 상태로 넘어가지 않고 다시 포워딩 딜레이(디폴트 시간인 15초 동안 상태를 유지하면,

                         러닝 상태에서 포워딩 상태로 넘어가게 된다. 포워딩 상태가 되어야 스위치는 데이터 프레임을 주고 받을 수 있게 된다.

* 데이터 전송 O

* 맥 어드레스 배움

* BPDU 주고 받음

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x