본문 바로가기
네트워크 (LAN,WAN)

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

by 날으는물고기 2009. 3. 12.

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

스패닝 트리를 구성하기 위해 필요한 2가지 정보

 

BID : priority  + MAC address 로 구성

        priority는 디폴트로 32768(0~65535)을 사용한다.

 

Path Cost : 기본적으로 1000/BW를 사용한다.

                 그러나 다른 값을 가지는 경우도 있기 때문에 몇 개의 Path Cost는 암기가 필요하다.

                  10Mbps => 100, 100Mbps => 19, 1Gbps => 4 이정도는 기억하도록 하자

 

Spanning Tree를 구성하는 알고리즘은 다음과 같다.

1. 네트워크 당 하나의 root bridge를 갖는다.

2. Non root bridge는 하나의 Root Port를 갖는다.

3. Segment 당 하나씩의 Designated Port를 갖는다.

   Segment는 스위치끼리 연결된 링크를 의미한다.

 

STP에서 root bridge, root port, designated port를 결정하는 순서는 다음과 같다.

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

2. 루트 브릿지까지의 Path Cost는 누가 더 작나?

3. BID가 더 낮은가?

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

 

Catalyst 2950에서 브릿지의 priority 값을 변경하는 방법은 다음과 같다.

SW-3(config)#spainning-tree vlan 1 priority 100

SW-3#show spanning-tree

 

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

Disabled : 포트가 고장 혹은 shut down 시켜 놓은 상태

Blocking : 스위치를 맨 처음 켜거나 Disabled에서 살아났을 때 ( BDPU만 주고 받음)

Listening : 루트나 데지그네이트 포트로 선정되면 리스닝 상태가 됨

Learning : 15초 정도 유지하며 MAC address를 배워 테이블을 만드는 상태 (MAC address, BDPU)

Forwarding : Learning 상태 이후 15초가 지난 후 데이터를 주고 받는 상태

                  (Data, MAC address, BDPU)

 

스패닝트리가 안정되면 2초(Default Hello Time)에 한 번, Hello BDPU를 Non Root Bridge에 전달

 

Hello Time : 헬로 BDPU를 보내는 시간

Max Age : 헬로 BDPU를 받지 못해 기다리는 최대시간, 이 시간이 지나면 spanning tree를 재구성

Forwarding Delay : Blocking에서 Fowarding이 될 때 Listening -> Learing, Learning->Forwarding

                           상태 사이의 시간(15초)



스위치에는 스패닝 트리 프로토콜이라는게 있고 관련된 명령어는 spanning-tree 다.

spanning-tree 명령어를 내리려면 구성모드로 들어가야한다.

구성모드는 configure terminal 명령어로 들어가진다.

spanning-tree 명령어는 vlan 에 설정할 수 있다.

spanning-tree vlan vlan_number

각 VLAN 에 이 스위치가 가지는 브리지 우선순위를 설정할 수 있는데

명령어는

spanning-tree vlan vlan-number priority 4096의배수

가 된다.

priority 값은 4096의 배수여야한다.

그러니까 최종 명령어는

switch(config)# spanning-tree vlan 1 priority 32768

과 같고 위 명령이 기본적으로 세팅되어있다.

 

2계층 스위치의 주요기능은 3가지고 어드레스 학습, 패킷전달 및 필터링, 루프 방지로 나뉘어진다.

 

어드레스 학습은 송신지의 MAC 주소를 파악해서 MAC-ADDRESS-TABLE 을 만드는 기능이다.

맥 주소 테이블을 보는 명령어는 프리빌리지 모드에서 show mac-address-table 이다.

 

만들어진 MAC 주소 테이블을 가지고 수신된 프레임을 처리하는데

수신지 위치를 알고 있다면 해당 포트로 포워딩하고 모른다면 플러딩한다.

이때 해당 포트를 제외한 포트에는 이 프레임을 전송하지 않음으로서 대역폭을 보존하고

충돌을 방지하는데 이것이 필터링 기능이다.

 

루프 회피 기능은 브로드 캐스트 폭풍(루프)를 방지하고, 비 브로드캐스트 프레임의 중복된

전송으로 일어나는 예측불가능한 상황 및 데이터베이스의 불안정성을 제거해주는 기능이다.

 

이더넷 같은 2계층 LAN 프로토콜에는 루프 회피 기능이 없지만,

IP와 같은 3계층 프로토콜은 TTL메커니즘으로 패킷의 전송 횟수를 제한하는 방법이 있고

2계층에는 STP(Spanning-Tree-Protocol)가 있다.

 

규칙.

스패닝 트리 프로토콜이 동작하는 네트워크에서 스위치(브리지)들 중 단 하나만 대장브리지(Root Bridge)가 되고 대장 브리지의 모든 포트는 대표포트(지정포트)이다. 대장 브리지가 아닌 브리지들은 루트 브리지로 향하는 가장낮은 스패닝 트리 코스트를 가지는 루트 포트가 존재한다. 또 물리적으로 연결된 브리지들 사이에는 하나의 대표포트가 존재한다. 


위 그림 처럼 세 스위치가 존재하고 각각의 priority 값이 같을 경우
MAC 주소가 루트 브리지를 선출하는 우선조건이 된다. 따라서 MAC 주소값이 가장 낮은 0001.9612.D1E3 스위치가 루트 브리지가 되었고, 루트 브리지의 모든 포트는 지정포트이므로 동작하고 나머지 두 스위치들은 루트 브리지를 향한 루트포트를 가지게 된다. 그래서 루트 브리지를 향하지 않는 비루트 브리지간의 통신에 사용되는 회선은 하나의 지정포트만을 가지므로 통신을 하지않는 회선으로 설정된다. 이는 결국 루프를 방지하는 역할을 수행하게 된다.

<비지정 포트를 가진 00E0.8F9D.C597 스위치의 Fa0/2 인터페이스의 정보입니다.>

 

위 그름에서 알 수 있듯이 비지정 포트가 되면 input flow-control is off, output folow-control is off 상태가 된다. 연결은 된 상태이지만 데이터의 출입이 통제된다는 뜻이다.

 

따라서 스위치들중 문제가 생기면 이 포트는 활성화될 여지가 있다.즉, 사용하지 않는 것이지 사용할 수 없는 것은 아니라는 것임!

 

스패닝 트리 프로토콜에서의 우선순위 정하기(루트 브리지,루트 포트,지정 포트)

1st. 우선순위값(Priority) : 먼저 기본값이 32768 이거나 switch(config)# spanning-tree vlan vlan_number priority priority_value 값으로 정해준 우선 순위 값이 낮은 브리지가 루트 브리지가 된다.

2nd. 경로 코스트(Path Cost) : 루트브리지로 가는 경로값이 가장 낮아야한다.

3rd. MAC ADDRESS : MAC 주소가 가장 낮아야 한다.

4th. Port Number : 123번으로 순위가 결정되지 않으면 포트의 번호가 가장 낮은 곳이 설정된다.



출처 : http://blog.naver.com/asradad1

728x90

댓글