본문 바로가기
Network/Cisco

spanning tree protocol

by 삼성그룹이장 2014. 5. 28.

http://blog.naver.com/c_18?Redirect=Log&logNo=10188366972 더넬님 홈페이지 에서 퍼온것 입니다.

http://blog.naver.com/c_18?Redirect=Log&logNo=10188366972 더넬님 홈페이지 에서 퍼온것 입니다.


line_characters_in_love-6




안녕하세요 더넬입니다




오늘 포스팅은




스위치나 브리지에서 루핑을 막아주기 위한 프로토콜 STP(Spanning tree protocol)에 대한 포스팅입니다






STP란?


STP 미사용시 문제점


STP 동작, 개요


BPDU 필드, 프로세스


STP 포트역할, 상태, 타이머


포트패스트(portfast)


STP 수렴


STP 토폴로지 변경


STP 설계시 고려사항


 


 


 


 


 


 


 


 STP(Spanning Tree Protocol)​?


                                                                                                                        




IEEE 802.1D에서 정의된 STP는 스위치나 브리지에서 루핑을 막아주기 위해 사용되는 프로토콜입니다


스위치나 브리지 네트워크 구성에서 경로가 두 개 이상 존재시 한 개의 경로만 남겨두고 나머지는 모두 끊어두지요


이렇게 포트의 상태를 전달 상태나 차단 상태로 두면서 루프를 방지합니다 


* STP는 수렴시간(디폴트 50초)이 길며 각각의 VLAN을 식별하지 못해 많은 STP의 업그레이드 버전들이 존재합니다


 


 


 


 


 


 


 


 STP를 사용하지 않은 환경에서의 문제점


                                                                                                  






한 네트워크의 두 장치간 여러개의 대체 경로가 존재하며 STP가 비활성화된 상태에서 야기할 수 있는 문제점들 입니다


  • ​MAC 주소 불안정성
  • 브로드캐스트 스톰
  • 중복된 유니캐스트 프레임




 

 

 

 

 

 

 STP 동작

                                                                                                  



우선 STP의 동작을 간단히 설명드리자면 우선 Spanning tree 알고리즘을 사용하며

STP 동작에 몇가지 규칙을 가지고 있습니다

  • 네트워크당 하나의 루트 브리지를 가짐
  • 루트브리지가 아닌 나머지 브리지는 하나의 루트포트를 가짐
  • 세그먼트당 하나씩 지정포트(DP)를 가짐
  • 루트포트나 지정포트가 아닌 나머지 모든 포트는 막음


 

 

 

 

 

 

 STP 개요

                                                                                                  



위의 설명에서처럼 STP를 처음 접하는 분에게는 생소한 단어가 많습니다

기본적으로 알아야 될 개념들에 대해서 정리합니다

  • ​루트브리지 : 브로드캐스트 도메인 내 제일 낮은 값의 우선순위를 가지는 스위치
  • 브리지 ID : 우선순위값, 확장시스템ID, 스위치 MAC 주소로 구성된 BPDU 프레임안의 하나의 필드

                           STP에서는 위의 BID를 사용하며 PVST 등 STP 변형 프로토콜에서는 확장시스템 ID를 가진 BPDU를 사용합니다
                           VLAN 마다 다른 스패닝 트리 인스턴스 생성이 가능합니다
  • 경로비용 : 각각의 스위치에서 루트 브리지로 향하는 경로의 개별 출력포트 비용을 더한 값
                      (링크 속도에 따라 값이 정해짐)


      












 

 

 

 

 

 STP BPDU 필드

                                                                                                  



STP에서는 두 가지 BPDU 프레임을 교환합니다. 

종류는 설정 BPDU와 TCN BPDU가 있어요. 그 필드의 구성을 한번 살펴볼게요

  • ​설정 BPDU (35바이트)

 

       

처음 네 개의 필드는 프로토콜, 버전, 메시지 종류, 상태 플래그를 식별

flags : 상태플래그는 TC, TCA 사용시 설정됨 ( 8-TC ACK /  7~2 Reserved / 1 - TC)

루트 ID : 2바이트 우선순위 값, 6바이트 MAC주소 조합으로 나타남

            (처음 부팅시 루트 ID와 브리지 ID 동일, 선정프로세스진행시 낮은 브리지ID가 로컬 루트 ID를 대체)

경로비용: 설정메시지를 보내는 브리지로부터 루트브리지까지 경로비용

             (비용 필드는 루트 브리지까지 경로 상에 있는 각 스위치에 의해 업데이트)

브리지 ID : 송신 브리지의 우선순위, MAC 어드레스 ID를 나타냄

Port ID: 설정메시지가 보내진 포트 번호를 나타냄

message age : 현재의 설정 메시지 기반으로 하고 있는 설정 메시지를 루트가 전송한 이후부터 경과한 시간의 양

max age : 현재 설정 메시지가 삭제 되어야 할 시기를 나타냄 - 디폴트 20 (6~40)

hello time : 설정 메시지 간 시간 - 디폴트 2 (1~10)

forward delay : 토폴로지 변경 후 브리지가 새로운 상태로 변하기 전에 대기해야하는 시간을 나타냄 디폴트15(4~30)

 

 

  • ​TCN BPDU (4바이트)
    토폴로지 변경을 감지 했을때 전송하는 BPDU

 


           


TCN BPDU는 4byte의 설정프레임의 35byte보다 작은 크기의 프레임이며
Protocol ID와 Version은 설정 BPDU필드와 동일하며
Type필드에서 0x80의 값으로 설정이 되어있습니다




 

 

 

 

 

 

 

 

BPDU 프로세스(처리과정)

                                                                                                  



루트 브리지를 선정하기위해 스위치는 BPDU를 교환하지요

간단한 처리과정을 보면 이렇습니다

 

    1. ​스위치 부팅
    2. 자신이 루트브리지라고 가정하고 BPDU 프레임을 2초(디폴트) 간격으로 전송
    3. 스위치들은 각 BPDU프레임을 수신
      (BPDU의 BID값이 낮으면 버리고, 더 좋은 값이면 그 값으로 업데이트)
    4. 브리지ID(BID)값을 비교후 경로비용과 로컬 루트 ID 업데이트




 

 

 

 

 

 

 

 STP 포트종류

                                                                                                  



STP에서 STA알고리즘은 각각 스위치의 포트 역할을 할당합니다

포트역할의 종류들은 4가지가 있습니다

  • 루트포트 : 루트스위치가 아닌 스위치에 하나의 루트포트가 지정
                      루트브리지를 향해 가는 최저의 경로비용을 가지는 포트
  • 지정포트 : 동일한 세그먼트/충돌 도메인에 연결되어 있는
                      각 스위치의 모든 포트중 최상의 BPDU를 광고하는 포트
  • 비지정포트 : 차단된 상태에 있는 스위치 포트
  • 비활성화포트 : 관리상으로 다운된 포트, 비활성화된 포트는 스패닝 트리 상 작동하지 않음




 

 

 

 

 

 

 

 STP 포트상태

                                                                                                  



STP에서 사용하는 5가지 포트상태입니다.

이런 다섯 가지 상태 변화를 통해 스위치나 브리지는 링크를 막기도 하고 열기도 하면서 스패닝 트리를 만듭니다




    




 

 

 

 

 

 STP 타이머

                                                                                                  



STP에서 사용하는 3가지 타이머에 대한 설명입니다

    
  • Hello time : 루트에서 만들어진 두 헬로 사이의 시간 간격, 디폴트 2초
  • MaxAge : 헬로 청취 중단 후부터 STP 토폴로지 변경 전까지 스위치가 대기하는 시간, 디폴트 20초
  • Forward Delay(전송지연) : 인터페이스가 차단 상태에서 전달상태로 변경될 때 진행되는 과정을 지연시키는 시간
                                                    (청취, 학습상태에서 사용)
  • 명령어로 타임설정이 가능하나 네트워크 지름별로 표를 참조해 수정해주는 것이 보다 적은 오류를 가질 수 있습니다
           


 

 

 

 

 

 

 

 포트패스트(PortFast)

                                                                                                  



STP에서 사용되는 하나의 시스코 기술이며 명령어를 통해 설정이 가능합니다

효과는 청취와 학습상태를 거치지 않고 블록킹 상태에서 바로 포워딩상태로 변경됩니다

단 위의 그림에서 처럼 루프가 전혀 발생할 여지가 없는 포트(액세스 포트)에 설정 해야합니다
(액세스 포트에서 스패닝 트리 수렴시간 최소화하기 위해 사용, 디폴트로 모든 인터페이스에서 비활성화 되있음)


 

 

 

 

 

 

 

 STP 수렴(Convergence)

                                                                                                  



수렴 : 루트 브리지 역할을 결정하며, 모든 포트 상태들을 거치며 모든 스위치가 최종 스패닝 트리 포트로 설정하는데 소요되는 시간


수렴절차 세가지 단계

 

  1. ​​루트 ​브리지 선정
    루트 브리지는 모든 스패닝 경로 비용 계산의 기초​
    BPDU 프레임을 교환
    루트 브리지 선정 후에도 BPDU 프레임은 계속 전송
    MaxAge타임동안 BPDU 프레임을 받지 못하면 다시 루트브리지 선정을 시작

  2. ​​루트 ​포트 선정
    루트브리지 결정 후 첫 번째 결정해야 할 포트
    졸병브리지(non-root 브리지)는 하나의 루트포트를 가짐
    루트포트로 향하는 포트 중 가장 작은 경로비용을 가지는 포트
    경로비용이 동일시 우선순위값을 비교
    루트포트로 지정되지 않은 포트는 비지정포트로 설정됨

  3. 지정/비지정 포트 선정
    루트포트 결정 후 지정포트와 비지정포트를 설정
    각 스위치 네트워크 세그먼트에 하나의 지정포트를 가짐
    세그먼트에서 지정포트 설정시 최저 경로 비용을 사용, 동일시 우선순위 값 비교

 






 

 

 

 

 

 STP 토폴로지 변경

                                                                                                  



STP에서는 지정된 시간 동안 헬로 BPDU를 받지 못한 경우 토폴로지 변화를 감지합니다

그때 사용되는 TCN BPDU, TCA BPDU, TC BPDU를 교환합니다

 

  • ​TCN BPDU(Topology Change Notification)
    토폴로지 변경 감지시 보내는 BPDU
    헬로우 타임 주기로 전송
    감지한 스위치가 지정 브리지로 전송

  • TCA BPDU(Topology Change Acknowledgement)
    토폴로지 변경에 응답하는 BPDU

  • TC BPDU(Topology Change)
    루트 브리지가 보내는 BPDU
    각 스위치는 포워딩 포트와 블록킹 포트로 수신

 


-토폴로지 설명

S2가 토폴로지 변경을 감지하고 TCN BPDU를 지정브리지로 전송
TCN BPDU를 받은 D1은 루트브리지가 아님으로 TCN BPDU를 지정브리지(위 토폴로지에서는 루트브리지)로 중계해주고
응답하는 TCA BPDU를 보냅니다

 


TCN BPDU를 받은 C1(루트 스위치)는 네트워크의 모든 스위치로 TC BPDU를 전송합니다
이를 받은 스위치들은 에이징타임(디폴트 300초)를 전송지연(forward delay)시간만큼 줄여
MAC 주소 테이블 리셋하고 사용되는 MAC 주소들로 다시 업데이트하며 
새로운 MAC 테이블을 구성하고 통신하게 됩니다


 

 

 

 

 

STP 설계시 고려사항

                                                                                                  

 

 

STP 설계시 고려사항으로 몇 가지 알아두어야 될 점입니다

 

  • ​루트 브리지 위치 파악
    일반적으로 네트워크 중간지점에 있는 성능이 좋은 브리지로 선택합니다
  • 차단 포트 수의 최소화
    실수로 전송상태로 변경된 포트가 광범위하게 나쁜 영향을 줄 수 있음
  • VTP 프루닝 사용
    VTP 프루닝으로 불필요한 트래픽을 차단
  • 3계층 스위칭 사용
    3계층 스위치끼리는 추가적인 세그먼트에 관한 속도 저하 요인이 없음


http://blog.naver.com/c_18?Redirect=Log&logNo=10188366972 더넬님 홈페이지 에서 퍼온것 입니다.

http://blog.naver.com/c_18?Redirect=Log&logNo=10188366972 더넬님 홈페이지 에서 퍼온것 입니다.

반응형

'Network > Cisco' 카테고리의 다른 글

cisco asa 5506 BVI interface 삭제 하기  (1) 2021.04.06
NTP 란?  (0) 2015.02.03
cisco ios 업그레이드  (0) 2014.12.30
cisco 날짜 및 시간 설정하기  (0) 2014.06.18
ASA 5505 URL 필터링  (0) 2013.09.10