목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

표기 규칙

배경 정보

기능 가용성

STP 포트 역할

STP 루프 가드

기능 설명

컨피그레이션 고려 사항

루프 가드 대 UDLD

Loop Guard와 기타 STP 기능의 상호 운용성

BPDU 스큐 감지

기능 설명

컨피그레이션 고려 사항

관련 정보

소개

이 문서에서는 레이어 2 네트워크 안정성을 개선하기 위한 스패닝 트리 프로토콜 기능에 대해 설명합니다.

사전 요구 사항

요구 사항

이 문서에서는 독자가 STP의 기본 작동을 잘 알고 있다고 가정합니다. 자세한 내용은 Catalyst 스위치에서 STP(Spanning Tree Protocol) 이해 및 구성을 참조하십시오.

사용되는 구성 요소

이 문서는 Catalyst 스위치를 기반으로 하지만, 여기에 설명된 기능의 가용성은 사용된 소프트웨어 릴리스에 따라 달라질 수 있습니다.

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

표기 규칙

문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.

배경 정보

STP(Spanning Tree Protocol)는 물리적으로 이중화된 토폴로지를 루프 없는 트리형 토폴로지로 확인합니다. STP의 가장 큰 문제는 일부 하드웨어 장애로 인해 장애가 발생할 수 있다는 것입니다. 이러한 장애로 인해 전달 루프(또는 STP 루프)가 생성됩니다. STP 루프로 인해 주요 네트워크 중단이 발생합니다.

이 문서에서는 레이어 2 네트워크의 안정성을 개선하기 위한 루프 가드 STP 기능에 대해 설명합니다. 이 문서에서는 BPDU(Bridge Protocol Data Unit) 스큐 탐지에 대해서도 설명합니다. BPDU 스큐 탐지는 BPDU가 제시간에 수신되지 않을 때 syslog 메시지를 생성하는 진단 기능입니다.

기능 가용성

CatOS

- STP 루프 가드 기능은 Catalyst 4000 및 Catalyst 5000 플랫폼용 Catalyst 소프트웨어의 CatOS 버전 6.2.1 및 Catalyst 6000 플랫폼용 버전 6.2.2에 도입되었습니다.

- BPDU 스큐 탐지 기능은 Catalyst 4000 및 Catalyst 5000 플랫폼용 Catalyst 소프트웨어의 CatOS 버전 6.2.1 및 Catalyst 6000 플랫폼용 버전 6.2.2에 도입되었습니다.

Cisco IOS란

- STP 루프 가드 기능은 Catalyst 4500 스위치용 Cisco IOS® Software 릴리스 12.1(12c)EW 및 Catalyst 6500용 Cisco IOS Software 릴리스 12.1(11b)EX에 도입되었습니다.

- BPDU 스큐 탐지 기능은 Cisco IOS 시스템 소프트웨어를 실행하는 Catalyst 스위치에서 지원되지 않습니다.

STP 포트 역할

내부적으로 STP는 각 브리지(또는 스위치) 포트에 컨피그레이션, 토폴로지, 토폴로지에서 포트의 상대적 위치 및 기타 고려 사항에 따라 역할을 할당합니다. 포트 역할은 STP 관점에서 포트의 동작을 정의합니다. 포트 역할에 따라 포트는 STP BPDU를 전송하거나 수신하고 데이터 트래픽을 전달하거나 차단합니다. 이 목록에서는 각 STP 포트 역할에 대한 간단한 요약을 제공합니다.

- Designated(지정됨) - 링크(세그먼트)당 하나의 지정된 포트가 선택됩니다. 지정된 포트는 루트 브리지와 가장 가까운 포트입니다. 이 포트는 링크(세그먼트)에 BPDU를 전송하고 트래픽을 루트 브리지로 전달합니다. STP 통합 네트워크에서 각 지정된 포트는 STP 포워딩 상태입니다.

- Root(루트) - 브리지는 루트 포트를 하나만 가질 수 있습니다. 루트 포트는 루트 브리지로 연결되는 포트입니다. STP 통합 네트워크에서 루트 포트는 STP 포워딩 상태입니다.

- Alternate(대체) - 대체 포트가 루트 브리지로 이어지지만 루트 포트는 아닙니다. 대체 포트는 STP 차단 상태를 유지합니다.

- 백업 - 동일한 스위치 간에 둘 이상의 포트가 직접 또는 공유 미디어를 통해 연결되는 특수한 경우입니다. 이 경우 하나의 포트가 지정되고, 나머지 포트는 차단됩니다. 이 포트의 역할은 백업입니다.

STP 루프 가드

기능 설명

STP 루프 보호 기능은 레이어 2 포워딩 루프(STP 루프)를 막는 추가적인 보호 장치입니다. STP 루프는 이중화 토폴로지의 STP 차단 포트가 포워딩 상태로 잘못 전환될 때 발생합니다. 대개는 물리적 이중화 토폴로지의 포트 중 하나가(STP 차단 포트가 아닐 수도 있음) 더는 STP BPDU를 수신하지 못하는 것이 원인입니다. 이 작업에서 STP는 포트 역할에 따라 지속적인 BPDU 수신 또는 전송에 의존합니다. 지정된 포트가 BPDU를 전송하고, 지정되지 않은 포트에서 BPDU를 수신합니다.

물리적 이중화 토폴로지의 포트 중 하나에서 더는 BPDU를 수신하지 않으면, STP는 그 토폴로지에 루프가 없다고 가정합니다. 결국 대체 또는 백업 포트의 차단 포트가 지정되어 포워딩 상태가 됩니다. 이러한 상황에서 루프가 생성됩니다.

루프 가드 기능은 추가 확인을 수행합니다. BPDU가 지정되지 않은 포트에서 수신되지 않고 루프 가드가 활성화되어 있으면, 해당 포트는 수신 대기/학습/포워딩 상태가 아니라 STP 루프 불일치 차단 상태로 바뀝니다. 루프 가드 기능이 없으면 포트는 지정된 포트 역할로 가정합니다. 포트가 STP 포워딩 상태가 되어 루프가 생깁니다.

루프 가드가 일치하지 않는 포트를 차단할 경우 다음 메시지가 기록됩니다.

- CatOS

%SPANTREE-2-LOOPGUARDBLOCK: No BPDUs were received on port 3/2 in vlan 3. Moved to

loop-inconsistent state.

- Cisco IOS란

%SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port FastEthernet0/24 on

VLAN0050.

루프 일관성 없는 STP 상태의 포트에서 BPDU가 수신되면 포트는 다른 STP 상태로 전환됩니다. 수신된 BPDU에 대해, 이것은 복구가 자동적이며, 개입이 필요하지 않다는 것을 의미한다. 복구 후 다음 메시지가 기록됩니다.

- CatOS

%SPANTREE-2-LOOPGUARDUNBLOCK: port 3/2 restored in vlan 3.

- Cisco IOS란

%SPANTREE-2-LOOPGUARD_UNBLOCK: Loop guard unblocking port FastEthernet0/24 on

VLAN0050.

이 동작을 설명하기 위해 다음 예를 고려하십시오.

스위치 A가 루트 스위치입니다. 스위치 B와 스위치 C 간 링크의 단방향 링크 장애로 인해 스위치 C가 스위치 B로부터 BPDU를 수신하지 않습니다.

단방향 링크 오류

루프 가드가 없으면 max_age 타이머가 만료되면 스위치 C의 STP 차단 포트가 STP 수신 대기 상태로 전환되고 forward_delay 시간의 2배 후에 전달 상태로 전환됩니다. 이러한 상황에서 루프가 생성됩니다.

루프가 생성됨

루프 가드가 활성화되면 max_age 타이머가 만료되면 스위치 C의 차단 포트가 STP 루프 비일치 상태로 전환됩니다. STP 루프 불일치 상태의 포트는 사용자 트래픽을 전달하지 않으므로 루프가 생성되지 않습니다. 루프 비일치 상태는 차단 상태와 사실상 동일합니다.

루프 가드 사용 시 루프 방지

컨피그레이션 고려 사항

루프 가드 기능은 포트별로 활성화됩니다. 그러나 STP 레벨에서 포트를 차단하는 한, 루프 가드는 VLAN별로 일관성 없는 포트를 차단합니다(VLAN별 STP 때문). 즉, 하나의 특정 VLAN에 대해서만 트렁크 포트에서 BPDU가 수신되지 않으면 해당 VLAN만 차단됩니다(루프 일관성 없는 STP 상태로 이동). 같은 이유로 EtherChannel 인터페이스에서 활성화되면 하나의 링크만 차단되는 것이 아니라 특정 VLAN에 대해 전체 채널이 차단됩니다(EtherChannel은 STP 관점에서 하나의 논리적 포트로 간주되기 때문).

어떤 포트에서 루프 가드를 사용할 수 있습니까? 가장 분명한 답은 포트 차단입니다. 그러나, 이것은 완전히 옳지 않다. 활성 토폴로지의 가능한 모든 조합을 위해 지정되지 않은 포트(더 정확하게는 루트 및 대체 포트)에서 루프 가드를 활성화해야 합니다. 루프 가드가 VLAN별 기능이 아닌 한, 동일한(트렁크) 포트를 하나의 VLAN에 지정하고 다른 VLAN에는 지정하지 않을 수 있습니다. 가능한 장애 조치 시나리오도 고려해야 합니다.

예

Loop Guard가 활성화된 포트

기본적으로 루프 가드는 비활성화되어 있습니다. 이 명령은 루프 가드를 활성화하는 데 사용됩니다.

- CatOS

set spantree guard loop

Console> (enable) set spantree guard loop 3/13

Enable loopguard will disable rootguard if it's currently enabled on the port(s).

Do you want to continue (y/n) [n]? y

Loopguard on port 3/13 is enabled.

- Cisco IOS란

spanning-tree guard loop

Router(config)#interface gigabitEthernet 1/1

Router(config-if)#spanning-tree guard loop

Catalyst 소프트웨어(CatOS) 버전 7.1(1)에서는 모든 포트에서 전역적으로 루프 가드를 활성화할 수 있습니다. 효과적으로, 루프 가드는 모든 포인트-투-포인트 링크에서 활성화됩니다. 포인트-투-포인트 링크는 링크의 이중 상태에 의해 탐지됩니다. 듀플렉스가 꽉 차면 링크는 포인트-투-포인트로 간주됩니다. 포트별로 전역 설정을 구성하거나 재정의할 수 있습니다.

루프 가드를 전역적으로 활성화하려면 다음 명령을 실행합니다.

- CatOS

Console> (enable)  set spantree global-default loopguard enable

- Cisco IOS란

Router(config)# spanning-tree loopguard default

루프 가드를 비활성화하려면 다음 명령을 실행합니다.

- CatOS

Console> (enable) set spantree guard none

- Cisco IOS란

Router(config-if)#no spanning-tree guard loop

루프 가드를 전역적으로 비활성화하려면 다음 명령을 실행합니다.

- CatOS

Console> (enable) set spantree global-default loopguard disable

- Cisco IOS란

Router(config)#no spanning-tree loopguard default

루프 가드 상태를 확인하려면 다음 명령을 실행합니다.

- CatOS

show spantree guard

Console> (enable) show spantree guard 3/13

Port                     VLAN Port-State    Guard Type

------------------------ ---- ------------- ----------

3/13                     2    forwarding          loop

Console> (enable)

- Cisco IOS란

show spanning-tree

Router#show spanning-tree summary

Switch is in pvst mode

Root bridge for: none

EtherChannel misconfig guard is enabled

Extended system ID           is disabled

Portfast Default             is disabled

PortFast BPDU Guard Default  is disabled

Portfast BPDU Filter Default is disabled

Loopguard Default            is enabled

UplinkFast                   is disabled

BackboneFast                 is disabled

Pathcost method used         is short

Name                   Blocking Listening Learning Forwarding STP Active

---------------------- -------- --------- -------- ---------- ----------

Total                        0         0        0          0          0

루프 가드 대 UDLD

루프 가드 및 UDLD(Unidirectional Link Detection) 기능은 부분적으로 단방향 링크로 인한 STP 장애로부터 보호한다는 점에서 중복됩니다. 그러나 이 두 가지 기능은 기능과 문제 해결 방법에서 차이가 있습니다. 이 표에서는 루프 가드 및 UDLD 기능에 대해 설명합니다.

기능

루프 가드

UDLD

설정

포트당

포트당

작업 세분화

VLAN당

포트당

자동 복구

예

예, err-disable 시간 초과 기능 사용

단방향 링크로 인해 발생하는 STP 장애에 대한 보호

예, 이중화 토폴로지의 모든 루트 및 대체 포트에서 활성화된 경우

예(이중화 토폴로지의 모든 링크에서 활성화된 경우)

소프트웨어 문제로 인한 STP 장애 방지(지정된 스위치가 BPDU를 전송하지 않음)

예

아니요

잘못된 배선 방지

아니요

예

다양한 설계 고려 사항에 따라 UDLD 또는 루프 가드 기능을 선택할 수 있습니다. STP와 관련하여 두 기능의 가장 눈에 띄는 차이점은 소프트웨어의 문제로 인한 STP 장애에 대한 UDLD의 보호 부재입니다. 따라서 지정된 스위치에서 BPDU를 전송하지 않습니다. 그러나 이 유형의 장애는 단방향 링크에 의한 장애보다 크기 순으로 더 적습니다. 그 대신 EtherChannel의 단방향 링크의 경우 UDLD를 더 유연하게 사용할 수 있습니다. 이 경우 UDLD는 장애가 발생한 링크만 비활성화하며, 채널은 남아 있는 링크에서 계속 작동할 수 있습니다. 이러한 실패에서 루프 가드는 전체 채널을 차단하기 위해 그것을 루프 비일관성 상태로 둔다.

또한, 루프 가드는 공유 링크에서 또는 링크가 링크 업 이후 단방향이었던 상황에서는 작동하지 않습니다. 마지막 경우에는 포트가 BPDU를 수신하지 않고 지정됩니다. 이 동작은 정상적일 수 있으므로, 이 특정 경우는 루프 가드에 의해 커버되지 않는다. UDLD는 이러한 시나리오에 대한 보호를 제공합니다.

설명한 대로 UDLD 및 루프 가드를 활성화하면 최고 수준의 보호가 제공됩니다.

Loop Guard와 기타 STP 기능의 상호 운용성

루트 가드

루트 가드는 루프 가드와 함께 사용할 수 없습니다. 루트 가드는 지정된 포트에서 사용되며 포트가 비지정이 되는 것을 허용하지 않습니다. 루프 가드는 지정되지 않은 포트에서 작동하며 max_age가 만료될 때까지 포트를 지정할 수 없습니다. 루트 가드는 루프 가드와 동일한 포트에서 활성화할 수 없습니다. 포트에 루프 가드가 구성된 경우 동일한 포트에 구성된 루트 가드를 비활성화합니다.

Uplink Fast 및 Backbone Fast

Uplink Fast 및 Backbone Fast는 모두 루프 가드에 투명합니다. 재컨버전스 시 max_age를 백본에서 빠르게 건너뛰면 루프 가드가 트리거되지 않습니다. Uplink Fast 및 Backbone Fast에 대한 자세한 내용은 다음 문서를 참조하십시오.

- Cisco Uplink Fast 기능 이해 및 구성

- Catalyst 스위치에서 Backbone Fast 이해 및 구성

PortFast 및 BPDU 가드, 동적 VLAN

PortFast가 활성화된 포트에 대해 Loop Guard를 활성화할 수 없습니다. BPDU 가드는 portfast 지원 포트에서 작동하므로 BPDU 가드에 몇 가지 제한 사항이 적용됩니다. 동적 VLAN 포트에는 portfast가 활성화되어 있으므로 이 포트에서 루프 가드를 활성화할 수 없습니다.

공유 링크

루프 가드는 공유 링크에서 사용하도록 설정할 수 없습니다. 공유 링크에서 루프 가드를 활성화할 경우 공유 세그먼트에 연결된 호스트의 트래픽을 차단할 수 있습니다.

MST(다중 스패닝 트리)

루프 가드는 MST 환경에서 올바르게 작동합니다.

BPDU 스큐 감지

루프 가드는 BPDU 스큐 검출로 올바르게 작동할 수 있습니다.

BPDU 스큐 감지

기능 설명

STP 운영은 BPDU의 적시 수신에 크게 의존합니다. hello_time 메시지마다(기본적으로 2초) 루트 브리지는 BPDU를 전송합니다. 비루트 브리지는 각 hello_time 메시지에 대해 BPDU를 재생성하지 않지만 루트 브리지에서 릴레이된 BPDU를 수신합니다. 따라서 루트가 아닌 모든 브리지는 각 hello_time 메시지에 대해 모든 VLAN에서 BPDU를 수신해야 합니다. 경우에 따라 BPDU가 손실되거나 브리지 CPU가 너무 바빠서 BPDU를 적시에 릴레이할 수 없습니다. 이러한 문제는 물론 다른 문제로도 BPDU가 늦게 도착할 수 있습니다(조금이라도 도착할 경우). 이 문제는 스패닝 트리 토폴로지의 안정성을 손상시킬 수 있습니다.

BPDU 스큐 탐지를 통해 스위치가 늦게 도착하는 BPDU를 추적하고 관리자에게 syslog 메시지를 알릴 수 있습니다. BPDU가 늦게 도착했거나 스큐(skew)된 모든 포트에 대해 스큐 탐지는 가장 최근의 스큐 및 스큐 기간(레이턴시)을 보고합니다. 또한 이 특정 포트에서 가장 긴 BPDU 지연을 보고합니다.

브리지 CPU를 오버로드로부터 보호하기 위해 BPDU 기울이기가 발생할 때마다 syslog 메시지가 생성되지 않습니다. 메시지는 60초마다 하나의 메시지로 속도가 제한됩니다. 그러나 BPDU의 지연이 max_age를 2로 나눈 값(기본적으로 10초)을 초과하면 메시지가 즉시 인쇄됩니다.

참고: BPDU 스큐 감지는 진단 기능입니다. BPDU 왜곡이 탐지되면 syslog 메시지를 전송합니다. BPDU 스큐 탐지는 더 이상의 수정 조치를 취하지 않습니다.

참고: BPDU 스큐 탐지 기능은 Cisco IOS 시스템 소프트웨어를 실행하는 Catalyst 스위치에서 지원되지 않습니다.

다음은 BPDU 스큐 탐지에 의해 생성된 syslog 메시지의 예입니다.

%SPANTREE-2-BPDU_SKEWING: BPDU skewed with a delay of 10 secs (max_age/2)

컨피그레이션 고려 사항

BPDU 스큐 감지는 스위치별로 구성됩니다. 기본 설정은 비활성화되어 있습니다. BPDU 스큐 감지를 활성화하려면 다음 명령을 실행합니다.

Cat6k> (enable) set spantree bpdu-skewing enable

Spantree bpdu-skewing enabled on this switch.

BPDU 기울이기 정보를 보려면 다음 예시에 나와 있는 대로 show spantree bpdu-skewing <vlan>|<mod/port> 명령을 사용합니다.

Cat6k> (enable) show spantree bpdu-skewing 1

Bpdu skewing statistics for vlan 1

Port Last Skew (ms) Worst Skew (ms) Worst Skew Time

-------------- --------------- --------------- -------------------------

3/12 4000 4100 Mon Nov 19 2001, 16:36:04

관련 정보

- 루트 가드로 STP(Spanning Tree Protocol) 향상

- UDLD 프로토콜 기능 구성

- PortFast 및 기타 명령을 사용하여 워크스테이션 시작 연결 지연 해결

- Cisco 기술 지원 및 다운로드