Doctor Pepper

[STP] PVST+ 동작과 STP, RSTP 상호 연동 본문

Packet Tracer/트러블 슈팅

[STP] PVST+ 동작과 STP, RSTP 상호 연동

Doctor Pepper 2024. 12. 1. 13:32
728x90

 

 

 Cisco 스위치는 연결된 포트 유형에 따라 다양한 스패닝 트리 프로토콜을 사용하여 작동한다. 포트가 Access 모드인지, ISL 트렁크 또는 802.1Q 트렁크 모드인지에 따라 스패닝 트리의 동작 방식이 달라진다.

 

 기본적으로 Cisco 스위치는 VLAN을 생성하면 각 VLAN에 고유한 스패닝 트리 인스턴스를 자동으로 생성하여 Per-VLAN Spanning Tree (PVST) 방식으로 동작한다. PVST는 각 VLAN마다 독립된 스패닝 트리 인스턴스를 사용하기 때문에, VLAN별로 세부적인 네트워크 트래픽 제어가 가능하다.

 

 반면, IEEE 표준을 준수하는 스위치(Non-Cisco 스위치)는 모든 VLAN에 대해 단일 스패닝 트리 인스턴스만 사용하는 Common Spanning Tree (CST) 방식으로 동작한다. 이 경우, VLAN 수에 관계없이 네트워크 전체에서 하나의 스패닝 트리만 관리됩니다. CST 방식으로 작동하는 스위치 그룹은 일반적으로 Mono Spanning Tree (MST) 영역이라고 불린다.

 

 이러한 차이점은 Cisco와 비표준 IEEE 스위치 간의 호환성 문제를 발생시킬 수 있으므로, 네트워크 설계 시 이를 고려한 설정이 필요하다.

※ 참고 : Cisco PVST 및 PVST+와 타 제조사와의 호환성
Cisco의 PVST(Peer Spanning Tree)와 PVST+는 VLAN을 생성할 때 자동으로 스패닝 트리 인스턴스를 생성한다. 이러한 방식은 사용자가 별도로 설정하지 않더라도 VLAN에 맞는 스패닝 트리 인스턴스를 자동으로 할당하게 된다. 그러나 장비 사양에 따라 지원할 수 있는 VLAN 수에 제한이 있으며, 예를 들어 Cisco 3750 스위치는 약 300개 이상의 스패닝 트리 인스턴스를 지원하지 않는다. 이 경우, 300개를 초과하는 VLAN에서는 스패닝 트리가 연산되지 않게 되어, 스패닝 트리의 동작에 제한이 발생할 수 있다.

- 호환성 문제와 해결 방법
Cisco 스위치에서 사용하는 PVST+는 타 제조사의 장비와의 호환성 문제를 일으킬 수 있다. 이를 해결하기 위해 몇 가지 다른 벤더들은 Cisco와의 호환성을 고려한 프로토콜을 제공하고 있다.

· Foundry(현 Brocade) : Cisco와의 호환을 위해 per-VLAN 모드를 제공하여, 각 VLAN에 대해 독립적인 스패닝 트리 인스턴스를 처리할 수 있게 한다.
· 주니퍼(Juniper) MX, EX 시리즈 : Cisco와의 호환성을 위해 VSTP(Virtual Spanning Tree Protocol)를 제공, PVST+와 유사한 동작을 구현한다.
· Force10 FTOS, SFTOS : Cisco와의 호환을 위해 PVST+를 지원, Cisco 장비와 동일한 방식으로 스패닝 트리 인스턴스를 처리한다.
· HP : 최근 버전의 Comware 소프트웨어(12500 시리즈는 Comware 1335, 7500 시리즈는 Comware 5.20 이상)에서는 PVST 모드를 제공하여 Cisco 장비와의 연동을 지원한다.

- 연동 시 권장 사항

 Cisco 장비와 다른 벤더의 장비가 연동되는 백본 네트워크에서는 PVST 호환성 문제로 인한 위험을 줄이기 위해 라우팅 구조를 사용하는 것이 권장된다. 대부분의 경우, routed port를 이용한 라우팅 방식이 타 장비와의 호환성 문제를 해결하는 데 유리하다.

 

1. Cisco 스위치의 포트 유형별 스패닝 트리 동작 방식

- 액세스 포트

Cisco 스위치의 Access 포트는 IEEE 표준 스패닝 트리 프로토콜(STP)을 기반으로 작동한다.

BPDU 전송 방식 IEEE 스패닝 트리 BPDU는 목적지 MAC 주소로 '0180.C200.0000'을 사용하며, IEEE 802.2 LLC SAP 캡슐화를 통해 SSAP와 DSAP 값을 '0x42'로 설정하여 전송됨.
호환성 Cisco 스위치의 Access 포트와 Non-Cisco 스위치 간 연결은 완벽히 호환됨.
이 경우, 스위치들은 각각의 Access VLAN에 대해 IEEE 스패닝 트리 인스턴스(MST)로 작동함.
BPDU 필터링 2계층 필터링 시, MAC ACL에서 LSAP 값을 '0x4242'로 설정하여 BPDU를 필터링할 수 있음.

 

- ISL 트렁크 포트

 ISL(Inter-Switch Link) 트렁크 포트는 Cisco 스위치가 Per-VLAN Spanning Tree(PVST) 방식으로 작동하도록 지원한다.

BPDU 캡슐화 IEEE BPDU는 ISL 트렁크 링크를 통해 전달될 때, VLAN ID가 포함된 ISL 헤더로 캡슐화되어 전송됨
ISL 헤더 역할 ISL 헤더는 프레임이 BPDU인지 여부를 식별할 수 있는 플래그를 포함하여, PVST가 다중 스패닝 트리 인스턴스를 구성할 수 있도록 지원함.
PVST 영역 ISL 트렁크를 통해 연결된 Cisco 스위치 그룹은 PVST 영역으로 정의됨.

 

- 802.1Q 트렁크 포트

802.1Q 트렁크 포트를 사용하는 Cisco 스위치는 PVST+ 방식으로 작동한다.

PVST+의 특징 Cisco 스위치와 IEEE 표준 스패닝 트리(MST) 간의 상호 호환을 보장함
PVST+ 인스턴스가 생성한 BPDU는 MST 영역을 투명하게 통과할 수 있음
BPDU MAC 주소 PVST+는 '0100.0CCC.CCCD'를 사용하여 MST 영역과의 호환성을 지원함
PVST+ 영역 802.1Q 트렁크를 사용하는 Cisco 스위치 그룹은 PVST+ 영역으로 정의되며, MST 영역과 ISL 트렁크 기반 PVST 영역 모두와 연결될 수 있음

 

- PVST+, MST, CST 간의 연계

CST와 PVST+의 상호 연계 MST 영역은 단일 스패닝 트리 인스턴스(CST)만을 지원함
VLAN1을 통한 연계 PVST+는 MST의 CST와 연계될 때 기본적으로 VLAN1 스패닝 트리 인스턴스를 사용함
확장된 스패닝 트리 범위 이러한 방식으로 CST는 PVST, PVST+, MST 영역 간의 상호 연결을 지원하며, 네트워크 전체에서 통합된 스패닝 트리 범위를 제공함

 

2. VLAN 종류와 관련 용어 정의

 VLAN은 스위치에서 트래픽을 논리적으로 분리하여 네트워크 관리와 보안을 강화하는 데 사용된다. Cisco 스위치를 기준으로 VLAN의 종류와 주요 용어를 정리하면 다음과 같다. (대부분의 다른 제조사 스위치도 유사한 개념을 사용하나, 용어에 약간의 차이가 있을 수 있다.)

 

- VLAN 1

정의 - 공장 초기화 상태에서 모든 스위치 포트가 기본적으로 속하는 VLAN.
- Cisco 스위치에서 CDP, PAgP, VTP와 같은 2계층 프로토콜의 전송에 사용되는 특별한 VLAN.
특징 - 트렁크 링크를 통해 IEEE 표준 MST 영역과 스패닝 트리 정보를 교환하기 위한 BPDU 전송에 사용됨.
- VLAN 1은 기본적으로 모든 물리적 포트가 할당되어 있으며, 변경은 가능하나 Cisco는 VLAN 1 사용을 권장.

 

- 디폴트 VLAN

정의 공장 초기화 상태에서 기본적으로 모든 스위치 포트가 속하는 VLAN.
특징 - Cisco 스위치의 초기 설정에서는 디폴트 VLAN이 VLAN 1로 지정.
- 다른 VLAN 설정 이전까지 모든 포트와 연결된 장비가 디폴트 VLAN의 멤버가 됨.

 

 Juniper 스위치의 경우에는 Cisco 스위치와 달리 기본적으로 모든 스위치 포트가 VLAN 1이 아닌 'default VLAN'이라는 인스턴스 0 VLAN에 속한다.

 

- 사용자 VLAN

정의 사용자 그룹이나 브로드캐스트 영역을 논리적으로 분리하기 위해 생성된 VLAN.
특징 - switchport access vlan n 명령어를 사용하여 포트를 특정 사용자 VLAN에 할당 가능.
- 네트워크 내에서 다양한 사용자 그룹을 분리하는 데 사용됨.

 

- 네이비트 VLAN

정의 802.1Q 트렁크 포트에서 태그되지 않은(un-tagged) 프레임을 전송하기 위해 사용되는 VLAN.
특징 - 태깅되지 않은 프레임은 기본적으로 네이티브 VLAN에 속함.
- 오래된 스위치와의 하위 호환성을 위해 도입.
- Cisco 스위치에서는 기본적으로 VLAN 1이 네이티브 VLAN으로 설정되지만, switchport trunk native vlan - VLAN-ID 명령어를 통해 다른 VLAN으로 변경 가능.
- 트렁크 포트 양 끝단에서 네이티브 VLAN이 일치하지 않으면 브로드캐스트 영역 충돌 발생 가능.
- 최근 Cisco IOS에서는 네이티브 VLAN 불일치(Native VLAN Mismatch)에 대한 로그를 생성하여 문제를 알림.

 

- 관리 VLAN

정의 스위치 관리 트래픽(예: Telnet, SSH, SNMP 등)을 처리하기 위해 설정된 VLAN.
특징 - 관리 VLAN은 일반적으로 VLAN 1이 아닌 별도의 VLAN으로 설정하는 것이 권장됨.
- interface vlan n 명령어를 사용하여 스위치 관리 IP 주소를 할당.

 

3. VLAN 실별과 PVST+ 및 SSTP의 동작 원리

- VLAN 식별 방식

 IEEE 802.1Q는 프레임에 포함된 태그 정보를 통해 VLAN을 인식한다. 반면, IEEE 802.1D는 VLAN 인식 기능이 없어 모든 VLAN에 대해 단일 스패닝 트리 인스턴스만 동작한다. 이로 인해 특정 포트가 블로킹 상태로 전환되면 해당 포트는 모든 VLAN에 대해 블로킹 포트로 동작하게 된다.

 

- PVST+와 VLAN 기반 스패닝 트리

 Cisco의 PVST+는 SSTP(Shared Spanning Tree Protocol) BPDU에 TLV(Type, Length, Value) 필드를 포함시켜 VLAN 정보를 전달한다. 이를 통해 VLAN별로 독립적인 스패닝 트리 인스턴스를 유지할 수 있다. 이는 VLAN마다 별도의 트리 구조를 제공하므로 네트워크 유연성과 효율성을 높이는 데 기여한다.

 

- 802.1Q 트렁크 포트에서의 SSTP BPDU 동작

 802.1Q 트렁크 포트에서는 SSTP BPDU가 태그 없이 전송되더라도 TLV 필드를 포함하고 있다. Cisco 스위치는 수신된 SSTP BPDU의 TLV에 포함된 전송 포트의 PVID(Port VLAN ID)와 수신 포트의 PVID를 비교한다. 두 값이 일치하지 않을 경우, 해당 포트를 PVID 불일치로 판단하여 블로킹 상태로 전환한다.

 

728x90