STP(Spanning Tree Protocol)는 물리적으로 이중화된 토폴로지를 루프가 없는 트리 같은 토폴로지로 변환합니다. STP의 가장 큰 문제는 일부 하드웨어 장애로 인해 장애가 발생할 수 있다는 것입니다. 이 실패는 전달 루프(또는 STP 루프)를 생성합니다. 주요 네트워크 중단은 STP 루프로 인해 발생합니다.
이 문서에서는 레이어 2 네트워크의 안정성을 개선하기 위한 루프 가드 STP 기능에 대해 설명합니다. 이 문서에서는 BPDU(Bridge Protocol Data Unit) 기울이기 탐지에 대해서도 설명합니다. BPDU 스큐 감지는 BPDU가 제시간에 수신되지 않을 때 syslog 메시지를 생성하는 진단 기능입니다.
이 문서에서는 독자가 STP의 기본 작업에 익숙하다고 가정합니다. STP의 작동 방법을 알아보려면 Catalyst 스위치에서 STP(Spanning Tree Protocol) 이해 및 구성을 참조하십시오.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
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 루프 가드 기능은 Cisco IOS Software 릴리스 12.1(12c)EW for Catalyst 4500 스위치와 Cisco IOS Software 릴리스 12.1(11b)EX for Catalyst 6500에 도입되었습니다.
BPDU 스큐 감지 기능은 Cisco IOS 시스템 소프트웨어를 실행하는 Catalyst 스위치에서 지원되지 않습니다.
내부적으로 STP는 각 브리지(또는 스위치) 포트에 컨피그레이션, 토폴로지, 토폴로지에서 포트의 상대적 위치 및 기타 고려 사항을 기반으로 하는 역할을 할당합니다. 포트 역할은 STP POV에서 포트의 동작을 정의합니다. 포트 역할에 따라 포트는 STP BPDU를 전송 또는 수신하고 데이터 트래픽을 전달 또는 차단합니다. 이 목록은 각 STP 포트 역할에 대한 간략한 요약을 제공합니다.
Designated(지정됨) - 링크(세그먼트)당 하나의 지정된 포트가 선택됩니다. 지정된 포트는 루트 브리지와 가장 가까운 포트입니다. 이 포트는 링크(세그먼트)에 BPDU를 전송하고 트래픽을 루트 브리지로 전달합니다. STP 통합 네트워크에서 각 지정 포트는 STP 포워딩 상태에 있습니다.
Root(루트) - 브리지에는 루트 포트가 하나만 있을 수 있습니다. 루트 포트는 루트 브리지로 연결되는 포트입니다. STP 통합 네트워크에서 루트 포트는 STP 포워딩 상태에 있습니다.
Alternate(대체) - 대체 포트가 루트 브리지로 연결되지만 루트 포트는 아닙니다. 대체 포트는 STP 차단 상태를 유지합니다.
백업 - 동일한 브리지(스위치)의 두 개 이상의 포트가 직접 또는 공유 미디어를 통해 연결되어 있는 경우 특별한 경우입니다. 이 경우 하나의 포트가 지정되고 나머지 포트는 차단됩니다. 이 포트의 역할은 백업입니다.
STP 루프 가드 기능은 레이어 2 포워딩 루프(STP 루프)에 대한 추가 보호를 제공합니다. 이중화 토폴로지의 STP 차단 포트가 전달 상태로 잘못 전환될 경우 STP 루프가 생성됩니다. 이는 일반적으로 물리적으로 이중화된 토폴로지(STP 차단 포트가 아닐 수도 있음)의 포트 중 하나가 더 이상 STP BPDU를 수신하지 않기 때문에 발생합니다. STP는 작동 시 포트 역할에 따라 BPDU의 지속적인 수신 또는 전송을 사용합니다. 지정된 포트는 BPDU를 전송하고 지정되지 않은 포트는 BPDU를 수신합니다.
물리적으로 이중화된 토폴로지의 포트 중 하나가 더 이상 BPDU를 수신하지 못할 경우 STP는 토폴로지가 루프 프리(loop free)라고 간주합니다. 결국 대체 또는 백업 포트의 차단 포트가 지정되고 전달 상태로 전환됩니다. 이 상황은 반복을 생성합니다.
루프 가드 기능은 추가 검사를 수행합니다. 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.
BPDU가 루프 불일치 STP 상태의 포트에서 수신되면 포트는 다른 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는 루트 스위치입니다. 스위치 C는 스위치 B와 스위치 C 사이의 링크에서 단방향 링크 장애로 인해 스위치 B에서 BPDU를 받지 않습니다.
루프 가드가 없으면 스위치 C의 STP 차단 포트가 max_age 타이머가 만료되면 STP 수신 대기 상태로 전환되고 forward_delay 시간의 2배 내에 전달 상태로 전환됩니다. 이 상황은 반복을 생성합니다.
루프 가드를 활성화하면 스위치 C의 차단 포트가 max_age 타이머가 만료되면 STP 루프 불일치 상태로 전환됩니다. STP 루프-일관성 없는 상태의 포트는 사용자 트래픽을 전달하지 않으므로 루프가 생성되지 않습니다. 루프-일관성 상태는 사실상 차단 상태와 같습니다.
루프 가드 기능은 포트별로 활성화됩니다. 그러나 STP 레벨에서 포트를 차단하는 한 루프 가드는 VLAN별로 일관성 없는 포트를 차단합니다(VLAN별 STP 때문). 즉, 하나의 특정 VLAN에 대해서만 트렁크 포트에서 BPDU를 수신하지 않으면 해당 VLAN만 차단됩니다(루프 불일치 STP 상태로 이동). 동일한 이유로 EtherChannel 인터페이스에서 활성화된 경우 하나의 링크뿐만 아니라 특정 VLAN에 대해 전체 채널이 차단됩니다(EtherChannel은 STP 관점에서 하나의 논리적 포트로 간주되기 때문).
루프 가드를 활성화할 포트는 무엇입니까? 가장 분명한 대답은 차단 포트에 있습니다. 하지만, 이것은 완전히 틀립니다. 활성 토폴로지의 가능한 모든 조합에 대해 지정되지 않은 포트(더 정확하게 루트 및 대체 포트에서)에서 루프 가드를 활성화해야 합니다. 루프 가드가 VLAN별 기능이 아닌 경우 하나의 VLAN에 대해 동일한(트렁크) 포트를 지정하고 다른 VLAN에 대해 지정되지 않을 수 있습니다. 가능한 장애 조치 시나리오도 고려해야 합니다.
다음 예를 고려하십시오.
기본적으로 루프 가드는 비활성화되어 있습니다. 이 명령은 루프 가드를 활성화하는 데 사용됩니다.
CatOS
set spantree guard loopConsole> (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
버전 7.1(1)의 Catalyst 소프트웨어(CatOS)에서는 모든 포트에서 루프 가드를 전역적으로 활성화할 수 있습니다. 모든 포인트 투 포인트 링크에서 루프 가드가 활성화됩니다. 포인트-투-포인트 링크는 링크의 이중 상태로 탐지됩니다. 듀플렉스가 꽉 차면 해당 링크는 포인트-투-포인트로 간주됩니다. 포트별로 전역 설정을 구성하거나 재정의할 수 있습니다.
loop guard를 전역적으로 활성화하려면 이 명령을 실행합니다.
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 guardConsole> (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(Unidirectional Link Detection) 기능은 부분적으로 중복되어 단방향 링크로 인한 STP 장애로부터 보호됩니다. 그러나 이 두 가지 기능은 기능면에서 서로 다르며, 이 두 가지 기능은 문제에 어떻게 접근하는지 다릅니다. 이 표에서는 루프 가드 및 UDLD 기능에 대해 설명합니다.
기능 | 루프 가드 | UDLD |
---|---|---|
구성 | 포트당 | 포트당 |
작업 세분화 | VLAN별 | 포트당 |
자동 복구 | 예 | 예, err-disable timeout 기능 사용 |
단방향 링크로 인한 STP 장애 방지 | 예, 이중화 토폴로지의 모든 루트 및 대체 포트에서 활성화된 경우 | 예, 이중화 토폴로지의 모든 링크에서 활성화된 경우 |
소프트웨어 문제로 인한 STP 장애 방지(지정된 스위치에서는 BPDU를 전송하지 않음) | 예 | 아니요 |
배선 오류 방지 | 아니요 | 예 |
다양한 설계 고려 사항에 따라 UDLD 또는 루프 가드 기능을 선택할 수 있습니다. STP와 관련하여 두 기능 간의 가장 큰 차이점은 UDLD에서 소프트웨어 문제로 인한 STP 장애에 대한 보호가 없다는 것입니다. 따라서 지정된 스위치는 BPDU를 전송하지 않습니다. 그러나 이러한 유형의 실패는 단방향 링크로 인한 실패보다 (진도에 의해) 더 드물습니다. 그 대신 EtherChannel의 단방향 링크의 경우 UDLD가 더 유연할 수 있습니다. 이 경우 UDLD는 실패한 링크만 비활성화하며, 해당 채널은 계속 작동하는 링크와 함께 작동해야 합니다. 이러한 장애 발생 시 루프 가드는 전체 채널을 차단하기 위해 루프 비일관적인 상태로 만듭니다.
또한 루프 가드는 공유 링크나 링크 작동 후 링크가 단방향인 경우에는 작동하지 않습니다. 마지막 경우에는 포트가 BPDU를 수신하지 않고 지정됩니다. 이 동작은 정상일 수 있으므로 이 특정 케이스는 루프 가드에 포함되지 않습니다. UDLD는 이러한 시나리오에 대한 보호를 제공합니다.
설명된 대로 UDLD 및 루프 가드를 활성화할 때 최고 수준의 보호가 제공됩니다.
루트 가드
루트 가드는 루프 가드와 상호 배타적입니다. 루트 가드는 지정된 포트에서 사용되며 포트가 지정되지 않은 상태로 되는 것을 허용하지 않습니다. 루프 가드는 지정되지 않은 포트에서 작동하며, max_age의 만료를 통해 포트를 지정할 수 없습니다. 루프 가드와 동일한 포트에서 루트 가드를 활성화할 수 없습니다. 루프 가드가 포트에 구성되면 동일한 포트에 구성된 루트 가드가 비활성화됩니다.
빠른 업링크 고속 및 백본
빠른 업링크 및 백본 모두 루프 가드에 투명합니다. 재컨버전스 시 백본을 통해 max_age를 빠르게 건너뛰면 루프 가드가 트리거되지 않습니다. 업링크 고속 및 백본 속도에 대한 자세한 내용은 다음 문서를 참조하십시오.
PortFast 및 BPDU 가드 및 동적 VLAN
portfast가 활성화된 포트에 대해 루프 가드를 활성화할 수 없습니다. BPDU 가드는 포트 고속 지원 포트에서 작동하므로 BPDU 가드에 일부 제한이 적용됩니다. 동적 VLAN 포트에서는 이러한 포트가 portfast를 활성화했으므로 루프 가드를 활성화할 수 없습니다.
공유 링크
공유 링크에서는 루프 가드를 활성화하지 않아야 합니다. 공유 링크에서 루프 가드를 활성화하면 공유 세그먼트에 연결된 호스트의 트래픽이 차단될 수 있습니다.
MST(다중 스패닝 트리)
루프 가드는 MST 환경에서 올바르게 작동합니다.
BPDU 기울이기 감지
루프 가드는 BPDU 기울이기 탐지를 사용하여 올바르게 작동해야 합니다.
STP 작업은 BPDU의 적시에 수신에 크게 의존합니다. hello_time 메시지(기본적으로 2초)마다 루트 브리지는 BPDU를 전송합니다. 비루트 브리지는 각 hello_time 메시지에 대해 BPDU를 재생성하지 않지만 루트 브리지에서 릴레이된 BPDU를 수신합니다. 따라서 모든 비루트 브리지는 각 hello_time 메시지에 대해 모든 VLAN에서 BPDU를 수신해야 합니다. 경우에 따라 BPDU가 손실되거나 브리지 CPU가 너무 바빠서 BPDU를 적시에 릴레이할 수 없습니다. 이러한 문제는 물론 다른 문제로 인해 BPDU가 늦게 도착할 수도 있습니다(도착하는 경우). 이 문제는 스패닝 트리 토폴로지의 안정성을 손상시킬 수 있습니다.
BPDU 스큐 감지 기능을 사용하면 스위치가 늦게 도착하는 BPDU를 추적하고 관리자에게 syslog 메시지를 알릴 수 있습니다. BPDU가 늦게 도착했거나 기울어진 모든 포트에 대해, 스큐 감지 기능은 가장 최근의 기울기와 기울이기(지연 시간)의 기간을 보고합니다. 또한 이 특정 포트에서 가장 긴 BPDU 지연을 보고합니다.
브리지 CPU가 오버로드로부터 보호되도록 BPDU 왜곡이 발생할 때마다 syslog 메시지가 생성되지 않습니다. 메시지는 60초마다 하나의 메시지로 제한됩니다. 그러나 BPDU의 지연이 max_age를 2로 나눈 시간(기본적으로 10초)을 초과하면 메시지가 즉시 인쇄됩니다.
참고: BPDU 기울이기 감지는 진단 기능입니다. BPDU 기울기를 탐지하면 syslog 메시지를 전송합니다. BPDU 기울이기 탐지는 추가적인 수정 조치를 취하지 않습니다.
다음은 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
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
02-Dec-2013 |
최초 릴리스 |