STP

TAM K
|2024. 12. 11. 23:27

STP

- 표준 프로토콜

- 2계층 프로토콜로 2계층 스위치 네트워크에 루프를 방지한다. 

- 스패닝 트리는 물리적으로 연결된 인터페이스를 비활성화한다.

  이용 가능한 대역폭의 양이 줄어든다는 뜻

- 장애 처리 자동

- 보통 수렴 시간이 느림

 

- 스위치는 온라인 상태가 되면 BPDU를 전송하며

  BPDU는 다른 스위치와 잠재적 루프를 감지하는데 사용됨.

 

 

=========================================================

=========================================================

 

 

Bridge ID

- BPDU는 스위치의 브리지 ID를 포함하고 있으며

  이는 LAN에서 스위치를 고유하게 식별한다. 

 

- 브리지 ID는 스위치의 고유한 MAC 주소와 

  관리자가 정의한 브리지 우선순위 값으로 구성된다. 

 

- 브리지 우선순위 값은 0-65535 범위 내에서 설정 가능하며

  기본 값으로 32768을 가지고 있다.

 

 

=========================================================

=========================================================

 

 

Root Bridge

- 루트 브리지는 브리지 ID 값을 기반으로 선출된다. 

- 제일 낮은 브리지 우선순위 값을 가진 스위치가 루트 브리지로 선출된다. 

- 동점일 경우, MAC 주소가 가장 낮은 스위치가 선택된다. 

- 루트 브리지로 선출되지 않은 스위치들은 루트 브리지로 가는 최적은 경로를 찾을것이며 그 경로들은 전달 상태가 된다.

 

 

=========================================================

=========================================================

 

 

숏 모드와 롱 모드

숏모드 : 인터페이스의 속도가 20 기가바이트 이상이면 1로 동일하다. 

롱모드 : 10 테라바이트 이상까지 다른 값을 가지고 있어 더 정확하다. 

 

스위치는 기본적으로 숏모드가 활성화 되어있고

롱모드를 사용하려면 모든 스위치에서 활성화를 시켜야한다.

 

숏 모드는 16비트 값, 롱 모드는 32비트 값

 

숏, 롱 중 어느 모드가 활성화 되어있는지 확인하는 명령어

show spanning-tree pathcost method

 

롱으로 바꾸는 명령어

spanning-tree pathcost method long

 

 

Cost 값을 바꿔서 스패닝 트리 조작 가능하지만 일반적인 방법은 아님

바꾸려고 하는 링크의 양쪽 인터페이스에서 실행해야함

 

spanning-tree cost "값"

 

 

=========================================================

=========================================================

 

 

스패닝 트리 구성요소

 

루트 브리지

위 설명 참조

 

루트 포트

루트 브리지를 제외한 나머지 스위치들 중 루트 브리지로 가는 최적의 방향으로 선출.

모든 스위치는 1개의 루트 포트만 가짐.

 

지정 포트

루트 포트 반대편에 있는 이웃 스위치의 포트이다. 

루트 브리지에 있는 모든 포트는 항상 지정 포트이다. 

 

남은 링크들

남은 링크들 중 한쪽이 차단되고 한쪽이 지정 포트가 된다. 

 

지정 포트가 되는 쪽은 BPDU를 교환하여

루트 브리지로의 비용이 더 낮거나 브리지 ID가 더 낮은 쪽이다.  

 

오리지널의 STP 버전을 제외한 나머지는 차단 포트를 대체 포트(Alternate Port)라고 부른다. 

 

 

=========================================================

=========================================================

 

 

스패닝 트리 버전

 

표준

802.1D Spanning Tree Protocol (STP)

- 느린 수렴 시간
- 로드 밸런싱 미지원

 

802.1w Rapid Spanning Tree Protocol (RSTP)

- 빠른 수렴 시간

- 로드 밸런싱 미지원

 

802.1s Multiple Spanning Tree Protocol (MSTP)

- 빠른 수렴 시간

- 로드 밸런싱 지원

 

**MSTP의 로드 밸런싱 

VLANs 별로 할당하여 부하 분산을 할수 있다.

예를 들어 vlan 10-19 까지는 A 스위치를 루트 브리지로

vlan 20-29 까지는 B스위치랄 루트 브리지로

 

 

Cisco 전용 버전

 

PVST+

- 느린 수렴 시간

- 부하 분산 가능 

 

RPVST+

- 빠른 수렴 시간

- 부하 분산 가능 

 

 

스패닝 트리 버전을 구성하는 명령어

spanning-tree mode ? 

mst 

pvst

rapid-pvst

 

show spanning-tree summary로 검증 가능

show mac address-table

 

 

=========================================================

=========================================================

 

 

spanning-tree vlan 1 root primary

(브리지 우선순위 값을 24576으로 바꿈)

(따라서 spanning-tree vlan 1 priority 24576 명령어와 완벽히 동일하다)

spanning-tree vlan 1 root secondary

(브리지 우선순위 값을 28672으로 바꿈)

(따라서 spanning-tree vlan 1 priority 28672 명령어와 완벽히 동일하다)


spanning-tree vlan <id> priority

<id> = 0 ~ 61440

4096 단위로 증가

 

 

=========================================================

=========================================================

 

 

STP와 HSRP 정렬 

 

Active/Active

Active/Active

 

*PC2의 아이피 주소가 위에 명시된 것과 달리 10.10.20.11이고 Vlan 20라고 가정하에 진행

좌, 우측 각각 남-북으로 트래픽이 통하게 된다. 

 

 

HSRP 구성 

 

R1

vlan 10에 대한 Active 라우터 컨피그 값
vlan 20에 대한 Standby 라우터 컨피그 값

 

R2

vlan 10에 대한 Standby 라우터 컨피그 값
vlan 20에 대한 Active 라우터 컨피그 값

 

STP 구성

 

CD1

Vlan 10 루트브리지 / Vlan 20 백업 루트브리지

 

CD2

Vlan 20 루트브리지 / Vlan 10 백업 루트브리지

 

 

=========================================================

=========================================================

 

 

Portfast, BDPU 가드, 루트 가드

 

Portfast

루프를 절대 형성하지 않을 포트. 즉, 기본적으로 일반적인 엔드 호스트에 연결된 포트가 활성화되었을 때 즉시 포워딩 상태로 전환할 수 있도록 포트패스트를 활성화 할 수 있다. 

 

이는 인터페이스 레벨, 전역 구성에서 구성 가능하며 명령어는 아래와 같다. 

 

 

interface <int name> 

spanning-tree portfast 

 

 

spanning-tree portfast default

 

전역 구성시 엔드호스트가 연결되지 않은 인터페이스는 아래와 같이

 

interface <int name>

no spanning-tree portfast

 

일반적으로 Portfast는 엔드호스트가 연결된 인터페이스에서만 활성화한다. 

스위치 끼리 연결된 경우엔 루프를 발생시킬 위험이 있기에 활성화 하지 않는다. 

 

그러나, Router-On-A-Stick이나 VMware와 같은 가상화 호스트와 같은 특수 호스트에 연결된 스위치 포트는 여러 VLAN을 전달하기 위해 트렁크 포트로 구성되지만 여전히 엔드 호스트에 연결되어 있어 VLAN으로 트래픽을 다시 루프할 수 없으므로 포트패스트 포트로 구성되어야 한다.

 

트렁크 포트에 포스패스트를 구성할 때는 추가적인 키워드를 포함해야 한다. 

 

spanning-tree portfast trunk

 

 

BPDU 가드

포트패스트 포트에서 BPDU 가드를 활성화할 수 있다.

 

BPDU가드를 활성화하면 해당 포트에서 BPDU가 수신될 경우 그것이 엔드 호스트가 아닌 스위치가 연결된 것을 나타내므로 해당 포트는 오류 비활성화 상태가 되어 즉시 셧다운된다. 

 

따라서 BPDU 가드는 항상 포트패스트 포트와 함께 사용되며 명령어는 아래와 같다. 

 

interface <int name>

spanning-tree portfast

spanning-tree bpduguard enable

 

spanning-tree bpduguard default

 

특정 포트가 BPDU 가드로 인해 셧다운 될 경우 해당 인터페이스로 접근하여 껏다가 다시 활성화 하면된다.

 

interface <interface name>

shutdown

no shutdown

 

혹은 이를 자동으로 수행할 수 있는 다른 방법도 있다. 

오류 비활성화 복구를 구성하여 몇 초 후에 포트를 자동으로 서비스로 복귀시킬 수 있다. 

 

전역구성에서

errdisable recovery cause bpduguard

errdisable recovery interval 30 

 

 

루트가드

의도치 않은 스위치가 루트 브리지가 되는 것을 방지한다. 

 

루트 가드가 활성화된 포트가 현재 루트 브리지보다 우수한 BPDU를 수신하면 해당 포트를 루트 불일지 상태로 전환하여 해당 포트로는 트래픽이 전달되지 않도록 한다. 

 

interface <int name>

spanning-tree guard root

 

 

Portfast Edge

BPDU를 수신하면 포트는 계속 활성 상태를 유지한다.

단지 포트패스트 포트가 되는 것을 중지할 뿐이다.

 

spanning-tree portfast edge

 

 

=========================================================

=========================================================

 

 

BPDU 필터

BPDU 가드와 유사한 기능으로 예상치 못한 BPDU를 감지한다.

 

BPDU 가드 = 오류 비활성화 기능, BPDU 수신하는 포트를 다운시킴

 

BPDU 필터 = BPDU를 필터링하지만 이를 오류 비활성화 하지는 않는다.

글로벌 또는 인터페이스 레벨에서 활성화를 하느냐에 따라 다르게 작동

 

글로벌 구성에서 활성화하면 포트패스트가 활성화된 인터페이스에만 적용된다. 

초기 BPDU를 전송한 후 해당 포트에서 전송을 중지한다. 

 

포트에서 BPDU를 수신하면 포트패스트가 구성에서 제거되고

BPDU 필터링이 비활성화되며 일반 인터페이스처럼 작동한다.

**포트패스트 엣지랑 유사

 

인터페이스 레벨에서 구성시 스위치는 해당 포트에서 BPDU를 전송하지 않으며 들어오는 BPDU를 무시한다. 

결과적으로 STP를 비활성화한다.

 

일반적으로 BPDU 필터를 활성화하는 것은 권장되지 않는다.

 

spanning-tree portfast bpdufilter default

 

interface <int name>

spanning-tree bpdufilter enable



=========================================================

=========================================================

 

 

Loop 가드

- 시스코 고유의 스패닝 트리 기능

- 단방향 링크를 방지하는 것

- PVST+, RPVST+, MST 에서 사용가능

- 장애 조치시 자동 활성화

- 루트 포트, 차단 포트에서 작동함

   (지정 포트에서도 활성화가 가능하지만

    BPDU를 수신하지 않을 때 아무런 조치를 취하지 않음)

- 정확히 반대되는 역할을 하여 루트가드와 양립하여 활성화가 불가능하니

   둘 다 활성화 하고 싶으면 인터페이스 별로 할당해야한다. 

 

명령어

spanning-tree loopguard default

 

interface <int name> 

spanning-tree guard loop

 

 

UDLD는 스패닝 트리의 일부가 아닌 2계층 프로토콜이다. 

기본적으로 양방향으로 킵어라이브를 보내고 둘 다 도착하지 않으면 단방향 링크 문제가 있다고 인식함

 

 

 

 

 

'Network' 카테고리의 다른 글

BGP - Part 3  (1) 2025.01.02
BGP - Part 2  (0) 2025.01.01
BGP - Part 1  (0) 2024.12.30
HSRP(Hot Standby Routing Protocols)  (0) 2024.12.09
OSPF  (1) 2024.11.27