본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 Catalyst 9000 Series 스위치를 비롯한 네트워크에서 레이어 2 루프를 식별하고 문제를 해결하는 방법에 대해 설명합니다.
스패닝 트리 프로토콜 개념을 이해하는 것이 좋습니다.
이 문서는 특정 소프트웨어 또는 하드웨어 버전으로 제한되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
레이어 2 루프는 LAN에서 havok를 일으킵니다. 그 결과 발생하는 "브로드캐스트 스톰"은 영향을 받는 VLAN(Virtual Lan) 내 통신을 방해하고 엔드포인트와 네트워크 디바이스를 모두 차단합니다. 레이어 2 트래픽에는 TTL(time-to-live)과 같은 메커니즘이 없기 때문에 결국 패킷이 네트워크에서 소비됩니다. ARP(Address Resolution Protocol) 또는 DHCP(Dynamic Host Configuration Protocol) 트래픽과 같은 루프가 있는 트래픽은 대신 루프가 끊어질 때까지 무한 루프가 발생합니다. 활동적인 고리의 조사를 맡은 개인은 스트레스를 받는 자세에 처해 있다.
다행히도 레이어 2 루프를 조사하고 문제를 해결할 수 있는 시도되고 진정한 방법이 있습니다. 이 문서에서는 TAC 엔지니어 세대가 사용하는 방법론에 대해 간략하게 설명합니다.
스패닝 트리: 루프를 어떻게 방지합니까?
이 간단한 토폴로지는 스패닝 트리 프로토콜의 작동 방식을 보여줍니다. 이 토폴로지에서는 다음과 같은 사항이 적용됩니다.
이 토폴로지에서는 스패닝 트리가 수렴되어 루프를 방지합니다. 녹색 화살표는 클라이언트 PC가 전송한 브로드캐스트 패킷이 상호 연결된 스위치에서 전달되는 방식을 나타냅니다. BBB의 차단 포트는 클라이언트가 전송한 브로드캐스트가 디바이스 간에 무한 루핑되는 것을 방지합니다.
레이어 2 브로드캐스트 스톰은 어떻게 형성됩니까?
스패닝 트리에서 제공하는 루프 방지 기능이 브로드캐스트 스톰을 방지하지 못하는 많은 시나리오가 있습니다.
네트워크의 물리적(레이어 1) 문제로 인해 단방향 링크가 발생하여 스패닝 트리 스피커가 BPDU를 안정적으로 교환하지 못할 수 있습니다. BPDU의 신뢰할 수 없는 수신 또는 전달은 원치 않는 예기치 않은 스패닝 트리 통합을 유발합니다.
예 1:
이 시나리오에서 BBB는 루트 포트의 루트 브리지에서 BPDU 수신을 중지합니다. BBB는 이러한 BPDU 손실에 대응하여 수렴한다. 루트 포트는 더 이상 BPDU를 수신하지 않고 지정된 포트가 되기 때문에 더 이상 루트에 대한 실행 가능한 경로가 아닙니다. 차단 포트는 AAAA로부터 BPDU를 계속 수신하고 루트 포트가 됩니다. 두 인터페이스 모두 차단되지 않으므로 루프가 계속됩니다.
예 2:
스패닝 트리가 예상대로 통합되는 경우에도 네트워크 중단이 발생할 수 있습니다. 네트워크에 연결된 특정 디바이스는 루프에 대한 벡터가 될 수 있습니다. 네트워크에 예기치 않게 연결된 허브 또는 유사 장치로 인해 브로드캐스트 스톰이 발생할 수 있습니다.
네트워크 엔지니어가 레이어 2 루프에 접근하여 스톰을 알리는 데에는 여러 가지 방법이 있습니다. 이 섹션에서는 무수히 많은 TAC 사례와 심각한 운영 중단으로 인해 테스트된 검증된 실제적인 방법에 대해 설명합니다.
이 방법은 매우 기본적인 명령을 활용하고 STP(Spanning Tree Protocol) TCN(topology change notifications)과 같은 데이터 포인트를 검사하여 추격하기 혼란스러울 수 있습니다. RSTP(Rapid STP) 토폴로지의 TCN은 비 에지 포트가 BLOCKING에서 FORWARDING으로 이동할 때 발생합니다. 루프 자체는 STP 스피커가 수렴에 예상대로 참여할 수 없는 지점까지 부담을 줄 수 있습니다. 제어 평면이 혼잡하여 인바운드 BPDU를 제대로 처리할 수 없는 경우, 피해 스위치의 인터페이스는 FORWARDING으로 이동합니다. TCN은 종종 피해를 입은 디바이스를 드러내는 증상이지만 반드시 루프의 소스로 이어지지는 않습니다.
STP TCN 대신 좀 더 타당하고 선형 데이터 포인트를 고려해야 할 인터페이스 입력 속도입니다. 루프에 참여하는 인터페이스는 예상 입력 속도보다 훨씬 높게 표시됩니다. 이러한 다운스트림 장치 자체는 피해를 입을 가능성이 높기 때문에 생산률은 큰 문제가 되지 않습니다. 또한 영향을 받는 인터페이스에서 높은 브로드캐스트 및 멀티캐스트 속도를 관찰할 수 있으며 평균 패킷 크기가 예상보다 작은 값으로 기울어지는 것을 확인할 수 있습니다.
네트워크 엔지니어는 이러한 명령만 사용하여 모든 레이어 2 루프를 간단한 방식으로 대부분 격리할 수 있습니다.
show interfaces | include is up|입력 속도
명령 "show interfaces | include is up|input rate" with the pipe and arguments를 통해 빠르게 소화할 수 있는 출력 코드 조각을 얻을 수 있습니다. 현재 '작동 중'인 모든 인터페이스와 입력 속도를 보여줍니다. 우리의 목적을 위해, 우리는 오직 입력률에 대해서만 관심을 가진다. 입력 속도가 예상치 않게 높은 인터페이스는 루프의 영향을 받을 가능성이 높습니다. 예기치 않게 높은 입력 속도로 인터페이스에 연결된 디바이스는 루프의 소스에 더 가까울 수 있습니다. 예기치 않게 높은 출력 속도를 가진 인터페이스는 아마도 우리를 루프의 근원으로부터 멀어지게 할 것이다.
ACCESS-SWITCH1#show interfaces | in is up|input rate <snip>
GigabitEthernet1/0/1 is up, line protocol is up (connected) <----- Typical endpoint with a low input rate. This would not raise suspiscion. 5 minute input rate 33000 bits/sec, 21 packets/sec GigabitEthernet1/0/2 is up, line protocol is up (connected) 5 minute input rate 24000 bits/sec, 11 packets/sec <snip> 5 minute input rate 0 bits/sec, 0 packets/sec <----- This output represents interfaces that are down. 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) <----- Twe1/1/1 in this scenario is high-bandwith uplink interface. We would expect uplinks to have a fair amount of traffic on input. 5 minute input rate 2816922000 bits/sec, 2072252 packets/sec. If we were troubleshooting a loop, pay special attention to this interface given the input rate. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 2926942401 bits/sec, 3043467 packets/sec <-- The same logic goes for this port. The input rate is relatively high but that is possibly function of its position in the network. TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 0 bits/sec, 0 packets/sec <snip>
ACCESS-SWITCH1#show cdp neighbor twe1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-SWITCH2 Twe 1/1/1 142 S I C9300-48P Twe 1/1/4 <--- We confirm that the expected neighbor is attached to this interface. Total cdp entries displayed : 1
스패닝 트리 표시
이 명령을 사용하여 로컬 스위치에서 스패닝 트리가 수렴되는 방식을 이해할 수 있습니다. 스패닝 트리의 다양한 맛의 차이점에 유의하십시오. Catalyst 스위치는 기본적으로 rapid-PVST를 실행하지만 PVST와 MST를 지원합니다.
ACCESS-SWITCH1#show spanning-tree VLAN0001 <----- Keep in mind that in per-vlan spanning-tree, each VLAN represents a unique instance of spanning-tree Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 2000 Port 3 (TwentyFiveGigE1/0/3) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gig1/0/1 Desg FWD 20000 128.1 P2p Gig1/0/2 Desg FWD 20000 128.2 P2p <snip> Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p Twe1/1/3 Alt BLK 800 128.35 P2p <---- This output corresponds with expectation. This step helps to populate STP information in your topology as you move from device to device
이 간단한 방법으로 시간이 많이 드는 패킷 캡처를 방지하고 스패닝 트리 TCN에 초점을 맞출 필요가 없으며 실제 문제를 조사의 최전선에서 유지할 수 있습니다. 또한 "추측 및 확인" 트러블슈팅을 없앱니다.
이 토폴로지 다이어그램을 고려해 보십시오.
스패닝 트리는 스위치 간의 이중 상호 연결로 인해 이 토폴로지의 여러 포트를 차단합니다. 이 예에서 노란색 X 그래픽은 차단 포트를 나타냅니다. 포워딩 포트는 루트 브리지와 비교했을 때 로컬 스위치의 위치에 따라 모두 루트로 지정됩니다. 녹색 화살표는 클라이언트가 이 네트워크에서 전송하는 정상적인 예상 브로드캐스트 트래픽 흐름을 나타냅니다.
매우 복잡하지는 않지만, 이 네트워크는 많은 이중화 링크로 인해 루프가 형성될 수 있는 많은 기회를 제공합니다.
더 큰 토폴로지의 이 스니펫은 서버가 연결되는 액세스 스위치의 스패닝 트리 역할/상태에 초점을 맞춥니다.
다운스트림 액세스 스위치가 루트 포트에서 BPDU를 수신하지 못하게 하는 단방향 링크가 있는지 고려하십시오. 스패닝 트리는 응답으로 다시 수렴하고 레이어 2 루프가 계속됩니다.
ACCESS-C의 이전 루트 포트는 DISTRO-B에서 BPDU 수신을 중지합니다. 스위치에서는 더 이상 루트를 실행 가능한 경로로 인식하지 않으므로 우선순위가 가장 높은 차단 포트가 ROOT/FORWARDING이 됩니다. 이전 루트 포트는 DESIGNATED/FORWARDING으로 전환됩니다. 이러한 재컨버전스는 포워딩 루프를 초래합니다.
이 다이어그램은 루프가 클라이언트에서 전송된 브로드캐스트 트래픽에 미치는 영향을 보여줍니다. 루프가 끊어지지 않는 한, 반복되는 트래픽은 계속 무기한 반복되며 여러 인터페이스에서 영향을 받는 스위치의 인그레스/이그레스(ingress/egress) 가능성이 있습니다. 반복되는 트래픽의 방향을 나타내는 여러 개의 빨간색 화살표를 볼 수 있습니다.
이 문제는 무한정 반복되는 트래픽이 늘어나면서 계속 가속화되고 있습니다. Catalyst 9000 스위치 제품군은 기본적으로 강력한 CoPP(Control-Plane Policing) 메커니즘을 활용하지만 일부 제품에서는 활용하지 못합니다. 루핑된 VLAN에 로컬 SVI(스위치 가상 인터페이스)가 있는 스위치에는 해당 VLAN 내의 브로드캐스트 트래픽 복사본이 CPU에 펑트되어 있습니다. CoPP가 없으면 이 펑트된 모든 트래픽이 스위치 CPU를 중단할 수 있습니다. 이는 피해 스위치가 스패닝 트리에 예상대로 참여할 수 없기 때문에 상황을 더 악화시키는 경향이 있습니다.
이러한 유형의 문제를 해결할 때 직면하는 초기 과제 중 하나는 어디서부터 시작해야 할지 결정하는 것입니다. 궁극적으로 우리가 시작하는 위치는 크게 중요하지 않다. 루프의 영향을 받는 모든 디바이스는 결국 루프의 소스로 추적됩니다.
이 예에서는 영향을 받는 클라이언트가 연결되는 스위치부터 시작합니다.
시작점 - ACCESS-A - 클라이언트에 직접 연결
이 방법을 사용하면 초기 시작점은 관련이 없습니다. 영향을 받는 모든 인터페이스는 문제의 원인을 가리킵니다. 어디서든 이 프로세스를 수행하면 루프/반사의 소스에 도달합니다. 이 시나리오에서는 영향을 받는 클라이언트가 스위치 ACCESS-A에 연결됩니다. 여기서 시작합니다. 이 프로세스의 첫 번째 단계는 모든 활성 인터페이스의 입력 속도를 고려하는 것입니다.
ACCESS-A#show interfaces | in is up|input rate GigabitEthernet1/0/1 is up, line protocol is up (connected) 5 minute input rate 33000 bits/sec, 21 packets/sec <--- This access port (downlink) has a small volume of traffic inbound. This does not raise suspiscion. <snip> 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 2816922000 bits/sec, 2672252 packets/sec <--- This port is an uplink. There is a fair amount of traffic inbound on this port, but also keep in mind that the uplink is expected to be busier. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) <--- This is our other uplink on this switch. The input rate is zero, suggesting the other end of this link is not transmitting. This implies that the other end of the link successfully blocks. 5 minute input rate 0 bits/sec, 0 packets/sec
평균 패킷 크기는 초당 바이트를 초당 패킷으로 나누어 계산합니다. 이 예에서 평균 패킷 크기는 약 132바이트입니다. 이는 평균을 왜곡하는 소규모 패킷의 볼륨을 나타냅니다. 예를 들어, ARP의 양이 많으면 프로덕션 네트워크의 예상 평균 패킷 크기와 동일한 스큐(skew)가 발생할 수 있으며, 이는 포트가 브로드캐스트 스톰의 영향을 받는다는 것을 의미합니다.
모든 다운링크에서 비정상적인 입력 비율이 표시되지 않습니다. 잠재적 영향을 받는 유일한 포트는 루트 포트, 즉 디스트리뷰션 레이어에 대한 업링크입니다. 다음 장치로 이동하기 전에 먼저 스위치에 대한 스패닝 트리를 고려합니다.
ACCESS-A#show spanning-tree <--- Without an argument, this command gives spanning-tree information for all VLANs with an active STP instance running. For this example, we assume VLAN 1 is consistent with all VLANs on the trunk. VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 2000 Port 3 (TwentyFiveGigE1/1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gig1/0/1 Desg FWD 20000 128.1 P2p Gig1/0/2 Desg FWD 20000 128.2 P2p <snip> Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p
<snip>
다음은 네트워크를 파악하는 데 도움이 되는 부분과 스패닝 트리가 통합되는 방법입니다. Te1/1/1은 예상 루트 포트입니다. Twe1/1/2도 스위치에 연결하여 전달하지만 입력 속도가 0 패킷/초이므로 링크의 다른 쪽 끝을 성공적으로 차단합니다. 스패닝 트리와 관련해서는 모든 것이 괜찮아 보입니다. 이제 영향을 받는 포트의 링크 피어를 확인합니다.
ACCESS-A#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/1/1 137 S I C9300-48P Twe 1/0/3
Next-Hop Switch - DISTRO-A
다음 단계는 의심스러운 인터페이스에 연결되는 스위치에서 이전 활동을 반복하는 것입니다. "show interfaces(인터페이스 표시)" 실행 | include is up|input rate" 를 사용하여 의심스럽게 높은 입력 속도를 가진 인터페이스를 식별합니다.
DISTRO-A#show interfaces | in is up|input rate 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 4846092202 bits/sec, 4572251 packets/sec <-- In this scenario, this input rate raises red flags. This is another situation where understanding normal baselines is helpful. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 0 bits/sec, 0 packets/sec <-- The other end of this link is likely blocking. TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 146192134 bits/sec, 171252 packets/sec <-- Fair amount of usage, though exponentially smaller that our 'suspect' link. Again, knowing expected baselines is helpful to identify when deviations occur. This is a downlink towards an access switch in this scenario, and does not raise red flags. TwentyFiveGigE1/1/4 is up, line protocol is up (connected) 5 minute input rate 4938392202 bits/sec, 4723294 packets/sec <-- This is along the same magnitude of input as Twe1/1/1. Often, interfaces impacted by the same broadcast storm shows similar activity. In our scenario, this interface raises red flags. TwentyFiveGigE1/1/5 is up, line protocol is up (connected) 5 minute input rate 032182156 bits/sec, 104263 packets/sec <-- Similar to Twe1/1/3, this interface is active but not at a suspicious level.
DISTRO-A에서는 입력 속도가 예상보다 높은 2개의 인터페이스를 발견했습니다. 루프의 특성은 일반적으로 소스에 대한 경로가 여러 개라는 것을 의미합니다. 두 인터페이스를 모두 살펴보지만, 먼저 스패닝 트리에서 정상적인 범위를 벗어난 사항을 확인합니다.
DISTRO-A#show spanning-tree
VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 2000 Port 3 (TwentyFiveGigE1/1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address c18b.a18d.5b76 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p Twe1/1/3 Desg FWD 800 128.35 P2p Twe1/1/4 Desg FWD 800 128.36 P2p Twe1/1/5 Desg FWD 800 128.37 P2p
<snip>
네트워크에서 DISTRO-A의 위치를 보면 이 스위치의 모든 포트가 앞으로 나와야 함을 알 수 있습니다. 루트 브리지에 직접 연결하는 루트 포트(Twe1/1/1)가 있습니다. 모든 다운링크와 다른 스위치와의 상호 연결이 지정되고 전달됩니다. 스패닝 트리 출력을 추적합니다.
이제 의심스러운 인터페이스에서 피어를 확인하고 다음으로 이동할 위치를 결정합니다. 어느 방향이든지 고리의 근원에 도달한다.
DISTRO-A#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID CORE Twe 1/1/1 137 S I C9500-48Y4C Twe 1/0/1 DISTRO-A#show cdp neighbors twentyFiveGigE 1/1/4 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-B Twe 1/1/4 137 S I C9300-48P Twe 1/1/1
먼저 CORE를 체크 아웃하지만 이 시나리오에서는 ACCESS-B로 이동하는 경우에도 동일하게 유효합니다.
Next-Hop 스위치 - 코어
CORE#show interfaces | in is up|input rate TwentyFiveGigE1/0/1 is up, line protocol is up (connected) <--- Both active downlinks have comparably high input rates. It is not unexpected for core devices to have high interface activity. 5 minute input rate 4946092202 bits/sec, 4671352 packets/sec TwentyFiveGigE1/0/2 is up, line protocol is up (connected) 5 minute input rate 4936092202 bits/sec, 4474252 packets/sec <--- It appears that both Twe1/0/1 and Twe1/0/2 are victimized. These are the only active downlinks, so this makes sense. <snip> 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec
이 스위치는 루트 브리지이므로 모든 인터페이스가 전달되어야 합니다. "show spanning-tree"로 빠르게 확인합니다.
CORE#show spanning-tree VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 1 (priority 0 sys-id-ext 1) Address 380e.4d77.4800 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Twe1/0/1 Desg FWD 800 128.25 P2p Twe1/0/2 Desg FWD 800 128.26 P2p
브로드캐스트 스톰에 대한 예기치 않은 인그레스 경로가 없습니다. 우리가 처리할 수 있는 정보를 바탕으로 루프는 코어의 하류에 있다. 이제 동료들의 다운링크를 확인합니다.
CORE#show cdp neighbors twentyFiveGigE 1/0/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/0/1 144 S I C9300-48P Twe 1/1/1 CORE#show cdp neighbors twentyFiveGigE 1/0/2 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-B Twe 1/0/2 139 S I C9300-48P Twe 1/1/1
방금 DISTRO-A에서 왔습니다 DISTRO-A를 다시 방문하여 의심스러운 것으로 표시된 스위치의 다른 인터페이스/피어를 확인하거나 DISTRO-B로 이동할 수 있습니다. 다음은 DISTRO-B입니다.
Next-Hop Switch - DISTRO-B
DISTRO-B#show interfaces | in is up|input rate <snip> 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 4446192309 bits/sec, 4673252 packets/sec <--- Suspicious TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 4457101202 bits/sec, 4571365 packets/sec <--- Suspicious TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 136192034 bits/sec, 170261 packets/sec TwentyFiveGigE1/1/4 is up, line protocol is up (connected) 5 minute input rate 4936092202 bits/sec, 4474252 packets/sec <--- Suspicious
이제 스패닝 트리를 간단히 살펴보면서 예상대로 상황이 나타나는지 확인합니다.
DISTRO-B#show spanning-tree VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 800 Port 3 (TwentyFiveGigE1/1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- <snip> Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p Twe1/1/3 Desg FWD 800 128.33 P2p
Twe1/1/3 Desg FWD 800 128.33 P2p Twe1/1/5 Alt BLK 800 128.34 P2p
이 스위치의 스패닝 트리는 안정적인 네트워크에서 예상하는 것과 일치합니다. 루트 포트가 예상대로 통합되고 DISTRO-B(Twe1/1/4) 블록에 대한 상호 연결을 확인할 수 있습니다. Cisco의 액세스 대면 인터페이스는 지정/포워딩입니다.
이제 우리는 의심스러운 인터페이스에 대한 피어를 조사합니다.
DISTRO-B#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID CORE Twe 1/1/1 144 S I C9500-48Y4C Twe 1/0/1 DISTRO-B#show cdp neighbors twentyFiveGigE 1/1/2 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-C Twe 1/1/2 139 S I C9300-48P Twe 1/1/1 DISTRO-B#show cdp neighbors twentyFiveGigE 1/1/5 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/1/5 132 S I C9300-48P Twe 1/1/2
우리는 CORE에서 방금 왔고 우리는 이미 DISTRO-A를 방문했습니다. 지금까지의 연구 결과에 따르면 논리는 ACCESS-C로 우리를 보냅니다.
액세스 C
ACCESS-C#show interfaces | in is up|input rate GigabitEthernet1/0/1 is up, line protocol is up (connected) 5 minute input rate 43012 bits/sec, 34 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec
<snip> TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 0 bits/sec, 0 packets/sec <-- This interface has zero packets inbound. Normally this means the interface on the other end of the link is blocking. In this scenario we need to take a closer look since the upstream switch is a distribution switch. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 4834056103 bits/sec, 4461235 packets/sec <-- This interface has a suspicious input rate. TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 4456091109 bits/sec, 4573242 packets/sec <-- This interface also has a suspicious input rate.
이 스위치는 루프의 영향을 분명히 받습니다. 두 개의 인터페이스가 피해의 증거를 보여줍니다. 예기치 않게 조용한 디스트리뷰션 레이어로의 업링크도 있습니다. 우리는 이러한 관찰들을 주목하고, 어떤 것이 눈에 띄는지 보기 위해 옆에 있는 스패닝 트리를 체크한다.
ACCESS-C#show spanning-tree VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 1600 Port 4 (TwentyFiveGigE1/1/2) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gig1/0/1 Desg FWD 20000 128.01 P2P <snip> Twe1/1/1 Desg FWD 800 128.33 P2p Twe1/1/2 Root FWD 800 128.34 P2p Twe1/1/3 Alt BLK 800 128.33 P2p
스패닝 트리 작업과 네트워크에서 예상되는 작업을 이해하는 것도 중요합니다. 예상 스패닝 트리 컨버전스를 보여주는 이전 다이어그램에 따르면 ACCESS-C에는 2개의 차단 포트가 있을 것으로 예상됩니다. show spanning-tree의 출력에는 거대한 빨간색 플래그인 차단 포트가 하나만 나열됩니다. 이는 트러블슈팅할 때 눈에 띄지 않을 수 있으므로 이 스위치에서 눈에 띄는 또 다른 기능은 표준에서 벗어난 것입니다.
계층형 네트워크의 액세스 스위치에는 일반적으로 루트 포트와 루트에 대한 하나 이상의 대체 포트가 있습니다. 루트 브리지에서 떨어진 다운링크는 일반적으로 '지정' 및 '전달'입니다. Twe1/1/1은 지정된 포트로 표시되는데, 이는 링크 파트너보다 루트 브리지에 더 가깝다고 생각한다는 의미입니다. 다이어그램에는 포트 번호가 나열되어 있지 않으므로, 의심되는 디바이스의 어떤 포트에 어떤 디바이스가 연결되는지 확인해 보겠습니다.
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID. <--- There is no neighbor information listed for this interface. Very suspiscious. ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/2 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-B Twe 1/1/2 144 S I C9300-48P Twe 1/1/3
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/3 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/1/3 137 S I C9300-48P Twe 1/1/2
인터페이스 Twe1/1/1에 인접 디바이스가 나열되지 않았습니다. 이는 피어에서 전송된 CDP 프레임이 도착하지 않거나 도착하여 처리할 수 없음을 나타내며 이 컨텍스트에서 단방향 링크를 제안합니다. 이 시점에서는 DISTRO-B와 ACCESS-C 사이의 연관성을 더 자세히 살펴볼 수 있는 충분한 증거가 있다.
이 인터페이스의 입력 속도 0은 다른 쪽 끝이 스패닝 트리 출력과 인터페이스 출력 속도를 기준으로 앞으로 올 것으로 예상합니다. 링크의 각 끝이 지정된 STP 컨버전스와 CDP 정보 부족을 주장하는 예상치 못한 STP 컨버전스와 함께 이 링크는 단방향입니다.
이 상황에서 가장 빠르게 루프를 끊는 방법은 ACCESS-A에서 Twe1/1/1을 종료하는 것입니다. 일단 Twe1/1/1이 닫히면 루프가 물리적으로 끊어진다. 루프가 물리적으로 중단되면, 방송 폭풍은 즉시 가라앉기 시작한다.
이는 단순화된 시나리오였지만, 그 개념을 잘 보여준다. 루프의 소스에 영향을 미치는 인터페이스를 추적합니다.
요약
이 시나리오에서는 레이어 2 루프를 빠르고 정확하게 트러블슈팅하기 위한 기본 방법론을 시연했습니다. 이 방법은 다음 단계로 요약할 수 있습니다.
ACCESS-C#show interfaces | in is up|input rate
2. 의심되는 인터페이스에 연결하는 피어 디바이스를 확인합니다. 루프는 이러한 인터페이스 중 하나의 다운스트림입니다. 여러 경로가 루프를 가리키지만 모든 경로는 결국 소스로 연결됩니다.
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/1
3. 일부 네트워크에는 여러 포워딩 경로를 사용하는 디바이스가 있습니다. 토폴로지가 예상대로 통합되는지 스패닝 트리를 확인합니다. 차단 인터페이스가 차단되는지 확인합니다.
ACCESS-C#show spanning-tree
이러한 단계를 통합하고 디바이스 간에 이동할 때 토폴로지를 구성합니다. 결국 고리의 원천에 도달하게 됩니다.
어떤 요인이 스패닝 트리가 예상대로 수렴하는 것을 방해할 때 루프가 발생할 수 있다. 이 시나리오에서 단방향 링크로 인해 액세스 스위치가 차단될 링크를 전달했습니다.
브로드캐스트 스톰은 비인가 또는 의심스러운 디바이스가 루프를 일으키거나 트래픽을 네트워크로 반영하는 경우에도 발생합니다.
이 문서에 설명된 방법론을 통해 네트워크 전문가는 레이어 2 루프 또는 트래픽 반사 시나리오의 소스를 신속하게 찾을 수 있습니다.
마지막으로, TCN은 어떻습니까?
현장의 일반적인 방법은 문제 해결 루프 시 스패닝 트리 TCN에 초점을 맞추고 추적하는 것입니다. 우리는 이에 대해 입력 금리에 찬성하는 것을 추천한다. Catalyst 9000 스위치 제품군은 강력한 CoPP(Control-Plane Policing Policy)를 통합하여 많은 양의 트래픽을 통해 경로 중단을 최소화합니다. Catalyst 9000의 CoPP는 볼륨이 플랫폼 폴리서 값을 초과할 경우 폴리서 BPDU를 전환합니다. 그러나 높은 CPU 사용률이 보이지 않더라도 Catalyst 9000의 스패닝 트리가 피해를 받습니다. 2960, 3560, 3750 및 4k 라인과 같은 레거시 Catalysts를 비롯한 다른 스위치 플랫폼은 CoPP를 사용하지 않으므로 루프 과정에서 쉽게 오버오버될 수 있습니다. 모든 디바이스는 루프에 의해 피해를 입을 수 있으며, 이로 인해 스패닝 트리는 CPU 펀트 경로에서 수백만 개의 잘못된 브로드캐스트와 경쟁하게 됩니다. 그 결과, 생성된 TCN은 오탐인 경우가 많으며 엔지니어를 잘못된 경로로 인도합니다.
Catalyst 스위치에는 레이어 2 루프를 방지하는 선택적 기능이 있습니다. 이러한 기능 및 모범 사례는 루프가 발생하기 전에 방지하고 실제로 발생할 경우 영향을 줄이는 데 목적이 있습니다.
기능
RootGuard - Root Guard는 인터페이스가 루트 포트가 되는 것을 방지합니다. 이 기능은 상위 BPDU를 수신하는 경우 인터페이스를 Root-Inconsistent 상태로 전환합니다. 이 기능은 네트워크에 다른 조직에서 관리하는 디바이스에 대한 연결이 포함된 경우 특히 유용합니다. 일반적으로 이는 액세스 레이어를 향하는 디스트리뷰션 레이어 다운링크에 적용됩니다. 뛰어난 BPDU는 안정적인 네트워크의 다운스트림에서 결코 나올 수 없습니다.
LoopGuard - 일반적으로 STP에서는 루트 포트 및 대체 포트가 BPDU를 수신하는 반면 지정된 포트는 BPDU를 전송합니다. 이 관계로 인해 스패닝 트리가 단방향 링크에 응답하지 못할 수 있습니다. 루프 가드는 대체 포트 또는 루트 포트가 지정되는 것을 방지합니다. Loop Guard는 BPDU가 인터페이스에서 정기적으로 수신 및 처리되지 않을 경우 인터페이스를 err-disabled 상태로 전환합니다.
BPPDUuard - 이 기능은 구성된 포트에서 BPDU를 수신하는 경우 인터페이스를 err-disable 상태로 전환하여 작동합니다. 다른 네트워크 디바이스가 연결할 것으로 예상되지 않는 에지 포트에서 이를 구성합니다. 이 기능은 Portfast와 함께 사용하는 경우가 많습니다.
PortFast - Portfast는 에지 포트에서 사용되며 대부분 액세스하지만 일부 시나리오에서는 트렁크에도 사용됩니다. 에지 포트가 스패닝 트리의 일반 단계를 포워드하고 포워딩로 직접 이동할 수 있게 합니다. 이렇게 하면 엔드포인트의 관점에서 시간을 절약할 수 있으며 불안정한 에지 포트가 TCN을 전송하는 것도 방지됩니다. Portfast는 네트워킹 디바이스가 실수로 연결되는 경우 루프를 유발하지 않도록 항상 BPDUCKuard와 함께 사용해야 합니다.
추가 모범 사례
VLAN 범위 - 트렁크에 필요한 VLAN만 허용합니다. 이렇게 하면 루프 범위가 제한되고 지역화된 문제가 네트워크 전반에서 중단되는 것을 방지할 수 있습니다.
Use Non-Operational VLANs as Native - 모범 사례는 트렁크에 Non-operational VLAN을 사용하는 것입니다. 많은 네트워크에서 전체 네트워크를 포괄하는 기본 네이티브 VLAN(1)을 사용합니다. 루프의 잠재적 범위를 더 제한하려면 비작동 VLAN을 기본으로 사용합니다.
Uniform Path Cost Calculation Method 사용 - Catalyst 9000 Series 스위치는 모두 IOS XE 17.6부터 기본적으로 긴 경로 비용 방법을 실행합니다. 이전 버전은 기본적으로 짧게 실행될 수 있습니다. 대부분의 레거시 Catalyst 스위치는 기본적으로 부족합니다. 혼합 경로 비용 방법을 사용하는 환경에서는 토폴로지 변경 및 교란에 대응하는 데 문제가 있습니다. 모든 스위치가 동일한 방법을 실행하는지 확인합니다. 자세한 내용은 spanning-tree 관련 플랫폼 컨피그레이션 가이드에서 확인할 수 있습니다.
"spanning-tree pathcost method <long/short>" 명령을 사용하여 경로 비용 메서드를 조작할 수 있습니다. "Show spanning-tree summary"는 사용 중인 메서드를 확인하는 데 사용됩니다.
ACCESS-A(config)#spanning-tree pathcost method ? long Use 32 bit based values for default port path costs short Use 16 bit based values for default port path costs ACCESS-A(config)#spanning-tree pathcost method long <snip>
ACCESS-A#show spanning-tree summary Switch is in rapid-pvst mode Root bridge for: VLAN0001 Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled EtherChannel misconfig guard is enabled UplinkFast is disabled BackboneFast is disabled Configured Pathcost method used is long <--- Displays the configured pathcost method.
<snip>
Spanning Tree Protocol 구성 - Catalyst 9300 Switch
스패닝 트리 기능(옵션) 구성 - Catalyst 9300 Switch
스패닝 트리 기능(옵션) 구성 - Catalyst 9600 Switch
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
14-Nov-2023 |
최초 릴리스 |