IT Technology/Network

STP란? Spanning Tree Protocol

by빵수 2021. 3. 31. 15:59
728x90
반응형

 

SpanningTree Algorithm

 

 

  • 별도의 설정 없이 동작하는 PLUG & PLAY PROTOCOL

  • 네트워크 안정화를 위하여 스위치 이중화(Redundancy) 구성

  • 물리적인 LOOP 구조에서 발생하는 LOOPING을 방지하기 위해 특정 포트를 논리적으로 차단

  • 스위치 구성에서 출발지부터 목적지까지 두 가지 이상의 경로가 존재할 때 한 개의 경로만 남겨 두고 차단

  • 사용하던 경로에 문제 발생 시 끊어 두었던 경로를 되살려 스위치 장애 대비

 

 

 

STP - Broadcast storm & Multiple Frame Copy 

 

 

 

  • ARP Broadcast Packet

  • Packet이 유입된 Port를 제외한 나머지 Port로 Flooding

  • Fa0/2로 나간 Packet은 여전히 Broadcast MAC Addr을 가지고 있기 때문에 또 다른 Port로 Flooding          

  • Looping 발생

STP - MAC Database Instability

 

 

  • ARP Packet의 Source를 보고 두대의 스위치는 Source MAC 0000.0000.0001이 Fa0/1에 있다고 MAC Addr Table에 등록

  • 다른 스위치의 Fa0/2으로부터 받은 ARP정보 또한 Source MAC 0000.0000.0001이 Fa0/2에 있으므로 MAC Addr의 위치가 변경

  • MAC-Addr-Table은 빠른 속도로 Fa0/1과 Fa0/2 등록을 반복함

  • Looping 발생

 

 

 

STP Operations

 

  • Network당 하나의 Root Bridge선정

  • Non-Root Bridge마다 하나의 RP (Root Port) 선정

  • Segment별로 하나의 DP (Designated Port) 선정

 

 

 

 

 

 

STP - Ports

 

DP ( Designated Port )

  • BPDU를 송신하는 Port 

  • Root Bridge 의 모든 Port는 DP로 선출되며 모든 스위치는 하나의 Segment 당 하나의 DP를 갖는다 

 

RP ( Root Port )

  • BPDU를 수신하는 Port 

  • 해당 스위치에서 Root Bridge로 가는 가장 빠른 경로를 의미하며 실제 통신이 실시되는 Port이다

  • Root Bridge를 제외한 모든 스위치는 한 개의 RP를 갖는다

 

AP ( Alternated Port, Blocked Port )

  • Cost 값이 큰 Port가 Blocked Port로 선출된다

  • Sender Bridge-ID 값이 큰 Port가 Blocked Port로 선출 ( Root Bridge Priority 기준 )

 

 

 

STP - Root Bridge Selection Criteria

 

 

Root Bridge 

- Root 스위치에서 BPDU Packet을 생성해 연결된 모든 Port에 Flooding

- Lowest Bridge ID를 갖는 Bridge
- 모든 Port가 DP (Designated Port)
    
Non-Root Bridge 

- BPDU Packet을 최종적으로 수신하는 Bridge
- 한 개의 RP (Root Port) 를 갖는다

 

 

 

 

 

 

 

BDPU란?

 

BPDU ( Bridge Protocol Data Unit ) – 스위치 간 Loop가 없는 구조로 구성하기 위해 주기적으로 주고받는 정보

Configuration BPDU 

 

  • Root 스위치가 Root 선정에 필요한 정보를 담고 2초마다 전송

  • STP를 유지하고 상태를 확인하기 위해 Non-Root 로 전송하는 Hello Packet

  • Spanning-Tree를 최초로 시작했을 때 모든 스위치가 자신이 Root라고 알고 있기 때문에 이 BPDU를 전송하여 Root Bridge를 선정한다

 


Topology Change Notification BPDU

 

  • Non-Root 스위치에서 망 Topology 변경을 알린다

  • 링크가 끊어지거나 새로운 장비가 연결되었을 때 전송하여 Root에게 알린다

 

 

 

Version : STP의 version을 나타내며 상대방과 어떻게 통신할지 판단
- 0×00 = STP
- 0×10 = RSTP
- 0×11 = MSTP

Message Type : BPDU의 두 가지 Type을 정의
- 0×00 = Configuration BPDU
- 0×80 = TCN BPDU

Flags : Topology가 변할 때 상태 정보를 전달하기 위한 값의 표시
- Bit 0 = Topology 변화를 알릴 때 사용
- Bit 7 = TCN BPDU를 수신했음을 알릴 때 사용 

Root Bridge ID : Root의 Bridge ID 정보 

Root Path Cost : 누가 Root와 더 가까운지 판단하기 위한 값

Port ID : 두대의 스위치에서 발생하는 작은 Looping 방지를 위한 값

Message Age : Root가 해당 BPDU생성 후 얼마나 지났는가 표시

MAX Age : BPDU가 살아있는 시간. Default 20초

Hello Time : BPDU 전송 주기를 결정. Default 2초

Forwarding Delay : Listening, Learning 단계의 소비 시간 

 

 

 

STP - Operation Principle 

 

 

 

 

 

 

STP 동작단계

 

 

Disabled : 이 상태는 포트가 고장나서 사용할 수 없거나 Shutdown 시켜논 상태
(전송 : X, 맥 어드레스 학습 : X, BPDU 송수신 : X)

Blocking : 스위치를 맨 처음 켜거나 Disabled되어 있는 포트를 관리자가 다시 살렸을때 블로킹 상태가 됨
(전송 : X, 맥 어드레스 학습 : X, BPDU 송수신 : O)

Listening (Forwarding delay = 15초) : 블로킹 상태에 있던 스위치 포트가 루트 포트나 데지그네이티드 포트로 선정되면 리스닝 상태로 됨
(전송 : X, 맥 어드레스 학습 : X, BPDU 송수신 : O)

Learning (Forwarding delay = 15초) : 리스닝 상태에 있던 포트가 포워딩 딜레이 디폴트 시간인 15초 동안 그 상태를 계속 유지하면 러닝 상태로 됨
(전송 : X, 맥 어드레스 학습 : O, BPDU 송수신 : O)

Forwarding : 러닝 상태에서 다른 상태로 넘어가지 않고 다시 포워딩 딜레이 디폴트 시간인 15초 동안 그 상태를 계속 유지하면 포워딩 상태로 됨
(전송 : O, 맥 어드레스 학습 : O, BPDU 송수신 : O)

 

 

 

 

 

 

STP - PORTFAST

 

 

 

  • Port가 활성화 되면 Forwarding Delay ( Listening & Learning Status )없이 곧바로 Forwarding 상태

  • PC, Server 등과 같은 종단 장치 ( End-User Device )와 연결된 Port에 많이 설정

  • 전체 설정모드에서 설정된 Portfast는 일시적인 Loop를 야기할 수 있으므로 Interface에 Portfast 설정 권장

 

 

 

Config EX)

 

 

 

config-if)#switchport mode access

config-if)#switchport access vlan 2

config-if)#spanning-tree portfast -> end-user단 설정

config-if)#spanning-tree portfast [trunk] ->point-to-point 로 연결된 구간에서 굳이 stp 활성화 필요없음

config)#spanning-tree portfast default -> global 설정가능 ( 일시적인 loop를 유의 )

config-if)#spanning-tree portfast disable ( 해제 )

 

 

 

 

 

 

 

PVST (Per VLAN Spanning Tree)

 

 

  • 각각의 VLAN에 대해서 STP가 지원하는 STP를 의미

  • 각각의 VLAN에 대해서 서로 다른 루트 브리지 선출이 가능

  • 대체 포트도 조정할 수 있기 때문에 각각의 VLAN에 대한 차단 위치를 수동으로 지정하여 VLAN 로드 분산 가능

  • VLAN에 지원하는 STP는 최대 128개 까지 제공

  • 129번쨰 VLAN에서는 STP가 제공되지 않으므로 브리징 루프가 발생할 수 있음을 주의

 

BPDU Guard

 

PortFast가 활성화된 Port에 BPDU를 수신했을 때 해당 Port를 자동으로 Shutdown 시키는 기능

 

  • Port 상에 Enable 되어있는 경우 : BPDU Guard는 이 해당 Port가 BPDU를 수신하면 Port를 Shutdown

  • Global CMD로 Enable 되어있는 경우 : BPDU Guard는 현재 동작하고 있는 PortFast Enabled Port에서 BPDU를 받은 경우 해당 Port를 Shutdown 

 

 

 

Loop Guard

 

 

  • 상대의 BPDU를 수신하지 않는 동안 AP ( BLK Port ) 를 Forwarding 상태로 전환하는 것을 방지하는 기능

  • Switch가 down된 것이 아닌 데도 어떠한 이유 ( ACL등의 이유로 )로 인해 단순히 일시적으로 BPDU를 전송하지 못했을 뿐 인데도 BLK포트를 Forwarding port로 바꾸게 되면 Looping이 발생 할 수 있음

  • LoopGuard는 Point-to-Point link 상에서 Undirectional Link가 Failure 되었을 때 발생하는 Bridge Looping를 방지

 

 

 

Root Guard

 

 

  • 특정 Port에 접속된 Network에 있는 스위치들이 Root가 될 수 없도록 하는 기능
  • 기존의 스위치의 환경에 성능이 떨어지는 스위치를 연결할 경우 Root 스위치가 되는 것을 방지함

 

 

 

 

 

 

UDLD

 

 

 

  • UniDirectional Link Detection ( 단방향 연결 탐지 ) 
  • 스위치 간에 단방향 링크가 생겼을 때 해당 Port를 Shutdown 시키는 기능 
  • 단방향 링크가 발생하면 Layer 2 Looping 이 발생하거나, Blackhole 현상이 발생할 수 있다
  • Blackhole : 한쪽이 송신한 프레임이 사라지는 현상
  • 전역 설정모드에서 : SW(config)# udld ? Aggressive : 지역적으로 설정된 곳을 제외하고 광케이블과 UTP 케이블의 단방향을 적극적으로 감지  Enable : 지역적으로 설정된 곳을 제외하고 광케이블의 단방향을 감지 ( Normal Mode ) Message : Neighbor에게 Hello Message를 전송하는 주기를 지정
  • 인터페이스에서 : SW(config-if)# udld port

 

 

 

 

 

반응형

'IT Technology > Network' 카테고리의 다른 글

RSTP란? Rapid Spanning  (0) 2021.04.02
L4, L7 로드밸런서 스위치 개요  (0) 2021.04.01
BGP 란 ?  (0) 2021.03.24
Etherchannel 이란?  (0) 2021.03.15
BMT / POC / Pilot 이란?  (0) 2021.03.03