소개
이 문서에서는 STP(Spanning Tree Protocol)를 사용하여 네트워크에 이중 경로가 있을 때 루프를 생성하지 않도록 하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
문서에서 제시하는 스패닝 트리 원칙은 STP를 지원하는 거의 모든 디바이스에 적용됩니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
STP(Spanning Tree Protocol)는 브리지 및 스위치에서 실행되는 레이어 2 프로토콜입니다. STP의 사양은 IEEE 802.1D입니다. STP의 주요 목적은 네트워크에 이중화 경로가 있을 때 루프를 생성하지 않도록 하는 것입니다. 루프가 네트워크에 치명적입니다.
이 문서의 구성은 Catalyst OS(CatOS)를 실행하는 Catalyst 2926G, 2948G, 2980G, 4500/4000, 5500/5000 및 6500/6000 스위치에 적용됩니다. 다른 스위치 플랫폼의 STP 컨피그레이션에 대한 자세한 내용은 다음 문서를 참조하십시오.
네트워크 다이어그램
이 문서에서는 이 네트워크 설정을 사용합니다.
개념
STP는 802.1D 호환 브리지와 스위치에서 실행됩니다. STP의 다양한 종류가 있지만 802.1D가 가장 널리 사용되고 널리 구현됩니다. 네트워크에서 루프를 방지하기 위해 브리지와 스위치에 STP를 구현합니다. 이중화 링크를 원하지만 루프를 원하지 않는 경우 STP를 사용합니다. 이중화 링크는 네트워크에서 장애 조치가 이루어지는 경우 백업만큼 중요합니다. 기본 시스템이 실패하면 사용자가 네트워크를 계속 사용할 수 있도록 백업 링크가 활성화됩니다. 브리지와 스위치에 STP가 없으면 이러한 장애로 인해 루프가 발생할 수 있습니다. 연결된 두 스위치가 서로 다른 STP 기능을 실행할 경우 통합하려면 서로 다른 제어가 필요합니다. 스위치에서 다양한 기능을 사용할 경우 차단 상태와 전달 상태 사이에 제어 문제가 발생합니다. 따라서 STP도 같은 맛으로 사용하는 것이 좋습니다. 이 네트워크를 고려해 보십시오.
이 네트워크에서는 스위치 A와 스위치 B 간에 이중화 링크가 계획되어 있습니다. 그러나 이 설정에서는 브리징 루프가 발생할 수 있습니다. 예를 들어, 스테이션 M에서 전송하고 스테이션 N으로 향하는 브로드캐스트 또는 멀티캐스트 패킷은 두 스위치 간을 계속 순환합니다.
그러나 STP가 두 스위치에서 모두 실행되면 네트워크는 논리적으로 다음과 같습니다.
이 정보는 네트워크 다이어그램의 시나리오에 적용됩니다.
-
스위치 15는 백본 스위치입니다.
-
스위치 12, 13, 14, 16, 17은 워크스테이션 및 PC에 연결되는 스위치입니다.
-
네트워크는 다음 VLAN을 정의합니다.
-
VTP(VLAN Trunk Protocol) 도메인 이름은 STD-Doc입니다.
원하는 경로 이중화를 제공하고 루프 조건을 방지하기 위해 STP는 확장 네트워크의 모든 스위치를 포괄하는 트리를 정의합니다. STP는 특정 중복 데이터 경로를 대기(차단됨) 상태로 강제하고 다른 경로는 전달 상태로 둡니다. 전달 상태의 링크를 사용할 수 없게 되면 STP는 네트워크를 재구성하고 적절한 대기 경로를 활성화하여 데이터 경로를 다시 라우팅합니다.
기술 설명
STP의 핵심은 네트워크의 모든 스위치가 네트워크의 중심이 되는 루트 브리지를 선택하는 것입니다. 차단할 포트, 포워딩 모드로 설정할 포트 등 네트워크의 다른 모든 결정은 이 루트 브리지의 관점에서 이루어집니다. 브리지 환경과 다른 스위치드 환경은 대부분 여러 VLAN을 처리합니다. 스위칭 네트워크에서 루트 브리지를 구현할 때 일반적으로 루트 브리지를 루트 스위치라고 합니다. 각 VLAN은 별도의 브로드캐스트 도메인이므로 각 VLAN에는 고유한 루트 브리지가 있어야 합니다. 서로 다른 VLAN의 루트는 모두 단일 스위치 또는 다양한 스위치에 상주할 수 있습니다.
참고: 특정 VLAN에 대한 루트 스위치를 선택하는 것은 매우 중요합니다. 루트 스위치를 선택할 수도 있고, 스위치가 결정하도록 할 수도 있는데, 이는 위험합니다. 루트 선택 프로세스를 제어하지 않는 경우 네트워크에 차선의 경로가 있을 수 있습니다.
모든 스위치는 루트 스위치 선택 및 후속 네트워크 컨피그레이션에 사용할 정보를 교환합니다. BPDU(Bridge Protocol Data Unit)는 이 정보를 전달합니다. 각 스위치는 스위치가 네이버에 전송하는 BPDU의 매개변수와 스위치가 네이버에서 수신하는 BPDU의 매개변수를 비교합니다.
STP 루트 선택 프로세스에서는 적을수록 좋습니다. 스위치 A가 스위치 B가 광고하는 루트 ID보다 낮은 숫자인 루트 ID를 광고하면 스위치 A의 정보가 더 좋습니다. 스위치 B는 루트 ID의 광고를 중지하고 스위치 A의 루트 ID를 승인합니다.
다음과 같은 일부 선택적 STP 기능에 대한 자세한 내용은 선택적 STP 기능을 참조하십시오.
-
포트패스트
-
루트 가드
-
루프 가드
-
BPDU 가드
STP 작업
작업
사전 요구 사항
STP를 구성하기 전에 스패닝 트리의 루트가 될 스위치를 선택합니다. 이 스위치는 가장 강력한 스위치일 필요는 없지만, 네트워크에서 가장 중앙 집중화된 스위치를 선택합니다. 네트워크의 모든 데이터 흐름은 이 스위치의 관점에서 바라본 것입니다. 또한 네트워크에서 가장 덜 방해받는 스위치를 선택합니다. 백본 스위치는 일반적으로 엔드 스테이션에 연결되지 않으므로 스패닝 트리 루트의 역할을 합니다. 또한 네트워크 내에서의 이동 및 변경은 이러한 스위치에 영향을 미칠 가능성이 적습니다.
루트 스위치를 결정한 후 스위치를 루트 스위치로 지정하기 위해 적절한 변수를 설정합니다. 설정해야 하는 유일한 변수는 입니다bridge priority . 스위치의 브리지 우선순위가 다른 모든 스위치보다 낮은 경우 다른 스위치는 자동으로 스위치를 루트 스위치로 선택합니다.
스위치 포트의 클라이언트(엔드 스테이션)
포트별로 명령을 set spantree portfast 실행할 수도 있습니다. 포트에서 변수portfast 를 활성화하면 포트가 차단 모드에서 전달 모드로 즉시 전환됩니다. 활성화하면 portfast Novell Netware를 사용하거나 DHCP를 사용하여 IP 주소를 가져오는 클라이언트에서 시간 초과를 방지할 수 있습니다. 그러나 스위치 간 연결이 있는 경우 이 명령을 사용하지 마십시오. 이 경우 명령은 루프를 초래할 수 있습니다. 차단에서 전달 모드로 전환하는 동안 발생하는 30~60초 지연은 두 스위치를 연결할 때 네트워크에서 일시적인 루프 상태를 방지합니다.
대부분의 다른 STP 변수는 기본값으로 둡니다.
운영 규칙
이 섹션에서는 STP 작동 방식에 대한 규칙을 소개합니다. 스위치가 처음 작동하면 루트 스위치 선택 프로세스를 시작합니다. 각 스위치는 VLAN별로 직접 연결된 스위치로 BPDU를 전송한다.
BPDU가 네트워크를 통해 나가면 각 스위치는 스위치가 네이버에서 수신한 BPDU에 보내는 BPDU를 비교합니다. 그러면 어떤 스위치가 루트 스위치인지 스위치가 일치합니다. 네트워크에서 브리지 ID가 가장 낮은 스위치가 이 선택 프로세스에서 승리합니다.
참고: 하나의 루트 스위치는 VLAN별로 식별됩니다. 루트 스위치를 식별한 후 스위치는 이러한 규칙을 준수합니다.
-
STP Rule 1(STP 규칙 1) - 루트 스위치의 모든 포트가 포워딩 모드에 있어야 합니다.
참고: 셀프 루프 포트와 관련된 일부 코너 경우 이 규칙에는 예외가 있습니다.
다음으로, 각 스위치가 루트에 도달하는 최상의 경로를 결정합니다. 스위치는 스위치가 모든 포트에서 수신하는 모든 BPDU의 정보를 비교하여 이 경로를 결정합니다. 스위치는 루트 스위치에 도달하기 위해 BPDU에서 가장 적은 양의 정보가 포함된 포트를 사용합니다. BPDU에서 가장 적은 정보가 포함된 포트는 루트 포트입니다. 스위치가 루트 포트를 확인한 후, 스위치는 규칙 2로 진행합니다.
-
STP Rule 2(STP 규칙 2) - 루트 포트를 전달 모드로 설정해야 합니다.
또한 각 LAN 세그먼트의 스위치는 서로 통신하면서 해당 세그먼트에서 루트 브리지로 데이터를 이동할 때 어떤 스위치를 사용하는 것이 가장 좋은지 결정합니다. 이 스위치를 지정 스위치라고 합니다.
-
STP Rule 3(STP 규칙 3) - 단일 LAN 세그먼트에서 해당 LAN 세그먼트에 연결되는 지정된 스위치의 포트는 포워딩 모드에 있어야 합니다.
-
STP Rule 4(STP 규칙 4) - 모든 스위치의 다른 모든 포트(VLAN별)는 차단 모드로 전환해야 합니다. 규칙은 다른 브리지 또는 스위치에 연결되는 포트에만 적용됩니다. STP는 워크스테이션 또는 PC에 연결하는 포트에는 영향을 주지 않습니다. 이러한 포트는 계속 전달됩니다.
참고: PVST/PVST+(per-VLAN spanning tree) 모드에서 STP가 실행될 때 VLAN을 추가하거나 제거하면 해당 VLAN 인스턴스에 대한 스패닝 트리 재계산이 트리거되며 트래픽은 해당 VLAN에 대해서만 중단됩니다. 트렁크 링크의 다른 VLAN 부분은 트래픽을 정상적으로 전달할 수 있습니다. 존재하는 MST(Multiple Spanning Tree) 인스턴스에 대한 VLAN을 추가하거나 제거하면 해당 인스턴스에 대한 스패닝 트리 재계산이 트리거되며 해당 MST 인스턴스의 모든 VLAN 부분에 대해 트래픽이 중단됩니다.
참고: 기본적으로 스패닝 트리는 모든 포트에서 실행됩니다. 포트별로 스위치에서 스패닝 트리 기능을 끌 수 없습니다. 권장하지 않지만 VLAN별로 또는 전역적으로 스위치에서 STP를 끌 수 있습니다. 스패닝 트리를 비활성화하면 네트워크 내에 레이어 2 루프가 생성되므로 항상 각별히 주의해야 합니다.
단계별 지침
다음 단계를 완료하십시오.
-
스위치가 show version 실행되는 소프트웨어 버전을 표시하려면 명령을 실행합니다.
참고: 모든 스위치는 동일한 소프트웨어 버전을 실행합니다.
Switch-15> (enable)show version
WS-C5505 Software, Version McpSW: 4.2(1) NmpSW: 4.2(1)
Copyright (c) 1995-1998 by Cisco Systems
NMP S/W compiled on Sep 8 1998, 10:30:21
MCP S/W compiled on Sep 08 1998, 10:26:29
System Bootstrap Version: 5.1(2)
Hardware Version: 1.0 Model: WS-C5505 Serial #: 066509927
Mod Port Model Serial # Versions
--- ---- ---------- --------- ----------------------------------------
1 0 WS-X5530 008676033 Hw : 2.3
Fw : 5.1(2)
Fw1: 4.4(1)
Sw : 4.2(1)
이 시나리오에서는 스위치 15가 백본 스위치이므로 스위치 15가 모든 VLAN에 대한 네트워크의 루트 스위치에 가장 적합합니다.
-
에서 set spantree root vlan_id 지정하는 VLAN에 대해 스위치의 우선순위를 8192로 설정하려면 명령을 vlan_id 실행합니다.
참고: 스위치의 기본 우선 순위는 32768입니다. 이 명령으로 우선순위를 설정할 경우 스위치 15의 우선순위가 가장 낮으므로 스위치 15를 루트 스위치로 선택해야 합니다.
Switch-15> (enable)set spantree root 1
VLAN 1 bridge priority set to 8192.
VLAN 1 bridge max aging time set to 20.
VLAN 1 bridge hello time set to 2.
VLAN 1 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 1.
Switch-15> (enable)
Switch-15> (enable)set spantree root 200
VLAN 200 bridge priority set to 8192.
VLAN 200 bridge max aging time set to 20.
VLAN 200 bridge hello time set to 2.
VLAN 200 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 200.
Switch-15> (enable)
Switch-15> (enable)set spantree root 201
VLAN 201 bridge priority set to 8192.
VLAN 201 bridge max aging time set to 20.
VLAN 201 bridge hello time set to 2.
VLAN 201 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 201.
Switch-15> (enable)
Switch-15> (enable)set spantree root 202
VLAN 202 bridge priority set to 8192.
VLAN 202 bridge max aging time set to 20.
VLAN 202 bridge hello time set to 2.
VLAN 202 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 202.
Switch-15>
Switch-15> (enable)set spantree root 203
VLAN 203 bridge priority set to 8192.
VLAN 203 bridge max aging time set to 20.
VLAN 203 bridge hello time set to 2.
VLAN 203 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 203.
Switch-15>
Switch-15> (enable)set spantree root 204
VLAN 204 bridge priority set to 8192.
VLAN 204 bridge max aging time set to 20.
VLAN 204 bridge hello time set to 2.
VLAN 204 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 204.
Switch-15> (enable)
이 예에서 보여주는 것처럼 명령의 더 짧은 버전도 동일한 효과를 갖습니다.
Switch-15> (enable)set spantree root 1,200-204
VLANs 1,200-204 bridge priority set to 8189.
VLANs 1,200-204 bridge max aging time set to 20.
VLANs 1,200-204 bridge hello time set to 2.
VLANs 1,200-204 bridge forward delay set to 15.
Switch is now the root switch for active VLANs 1,200-204.
Switch-15> (enable)
이 set spantree priority 명령은 루트 스위치를 지정하는 세 번째 방법을 제공합니다.
Switch-15> (enable)set spantree priority 8192 1
Spantree 1 bridge priority set to 8192.
Switch-15> (enable)
참고: 이 시나리오에서는 모든 스위치가 지워진 컨피그레이션으로 시작되었습니다. 따라서 모든 스위치는 브리지 우선 순위인 32768으로 시작되었습니다. 네트워크의 모든 스위치에 8192보다 큰 우선순위가 있는지 확실하지 않은 경우 원하는 루트 브리지의 우선순위를 1로 설정합니다.
-
스위치 12, set spantree portfast mod_num/port_num enable 13, 14, 16, 17에서 PortFast 설정을 구성하려면 명령을 실행합니다.
참고: 워크스테이션 또는 PC에 연결하는 포트에서만 이 설정을 구성합니다. 다른 스위치에 연결된 모든 포트에서 PortFast를 활성화하지 마십시오.
이 정보를 기반으로 포트 3/1~3/24 및 포트 4/1~4/24에서 명령을 set spantree portfast실행합니다.
Switch-12> (enable)set spantree portfast 3/1-24 enable
Warning: Spantree port fast start should
only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc.
to a fast start port can cause temporary spanning-tree loops. Use with caution. Spantree ports 3/1-24 fast start enabled.
Switch-12> (enable) Switch-12> (enable)set spantree portfast 4/1-24 enable Warning: Spantree port fast start should
only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc.
to a fast start port can cause temporary spanning-tree loops. Use with caution. Spantree ports 4/1-24 fast start enabled. Switch-12> (enable)
-
스위치 15 show spantree vlan_id가 모든 해당 VLAN의 루트인지 확인하려면 명령을 실행합니다.
이 명령의 출력에서 루트 스위치인 스위치의 MAC 주소를 명령을 실행한 스위치의 MAC 주소와 비교합니다. 주소가 일치하면 현재 있는 스위치가 VLAN의 루트 스위치입니다. 1/0인 루트 포트는 루트 스위치에 있음을 나타내기도 합니다. 다음은 샘플 명령 출력입니다.
Switch-15> (enable)show spantree 1
VLAN 1
spanning-tree enabled
spanning-tree type ieee
Designated Root 00-10-0d-b1-78-00
!--- This is the MAC address of the root switch for VLAN 1.
Designated Root Priority 8192
Designated Root Cost 0
Designated Root Port 1/0
Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
Bridge ID MAC ADDR 00-10-0d-b1-78-00
Bridge ID Priority 8192
Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
이 출력은 스위치 15가 VLAN 1에 대한 스패닝 트리에서 지정된 루트임을 보여줍니다. 지정된 루트 스위치 00-10-0d-b1-78-00의 MAC 주소는 스위치 15,00-10-0d-b1-78-00의 브리지 ID MAC 주소와 동일합니다. 이 스위치가 지정된 루트임을 나타내는 또 다른 지표는 지정된 루트 포트가 1/0이라는 것입니다.
스위치 12의 이 출력에서 스위치는 스위치 15를 VLAN 1Designated Root의 로 인식합니다.
Switch-12> (enable)show spantree 1
VLAN 1
spanning-tree enabled
spanning-tree type IEEEDesignated Root 00-10-0d-b1-78-00
!--- This is the MAC address of the root switch for VLAN 1.
Designated Root Priority 8192
Designated Root Cost 19
Designated Root Port 2/3
Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
Bridge ID MAC ADDR 00-10-0d-b2-8c-00
Bridge ID Priority 32768
Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
참고: 다른 스위치 및 VLAN에 대한 show spantree vlan_id 명령의 출력은 스위치 15가 모든 VLAN에 대해 지정된 루트임을 나타낼 수도 있습니다.
다음을 확인합니다.
이 섹션에서는 컨피그레이션이 제대로 작동하는지 확인하는 데 사용할 수 있는 정보를 제공합니다.
문제 해결
이 섹션에서는 설정 문제 해결에 사용할 수 있는 정보를 제공합니다.
포트 속도/듀플렉스가 변경되면 STP 경로 비용이 자동으로 변경됩니다.
STP는 스위치 간 링크의 미디어 속도(대역폭)와 각 포트 전달 프레임의 포트 비용을 기반으로 경로 비용을 계산합니다. 스패닝 트리는 경로 비용을 기준으로 루트 포트를 선택합니다. 루트 브리지에 대한 경로 비용이 가장 낮은 포트가 루트 포트가 됩니다. 루트 포트는 항상 전달 상태입니다.
포트의 속도/듀플렉스가 변경되면 스패닝 트리는 경로 비용을 자동으로 다시 계산합니다. 경로 비용을 변경하면 스패닝 트리 토폴로지가 변경될 수 있습니다.
포트 비용을 계산하는 방법에 대한 자세한 내용은 스패닝 트리 구성의 포트 비용 계산 및 할당 섹션을 참조하십시오.
명령 문제 해결
참고: debug 명령을 사용하기 전에 Debug 명령에 대한 중요 정보를 참조하십시오.
명령 요약
구문: |
show version |
이 문서에서 사용된 대로: |
show version |
구문: |
set spantree root [vlan_id] |
이 문서에서 사용된 대로: |
set spantree root 1 |
|
set spantree root 1,200-204 |
구문: |
set spantree priority [vlan_id] |
이 문서에서 사용된 대로: |
set spantree priority 8192 1 |
구문: |
set spantree portfast mod_num/port_num {enable | disable} |
이 문서에서 사용된 대로: |
set spantree portfast 3/1-24 enable |
구문: |
show spantree [vlan_id] |
이 문서에서 사용된 대로: |
show spantree |
관련 정보