목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

용어

제한 사항

문제 해결

MST(단일 영역)

토폴로지

설정

검증

지역 간 동기화

토폴로지

검증

디버그

PVST 시뮬레이션 실패

PVST BPDU와 MST BPDU

토폴로지

검증

디버그

P2P 분쟁

토폴로지

설명

MST 접근 방식

관련 정보

소개

이 문서에서는 MST가 PVST 또는 다른 영역과 함께 토폴로지에서 작동하는 방식을 이해하는 데 필요한 기본 개념에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- Rapid-PVST(Rapid Per VLAN Spanning Tree)

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- Catalyst 9300.

- 17.3에서 출발합니다.

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

관련 제품

이 문서는 다음 하드웨어와 함께 사용할 수도 있습니다.

- 모든 Catalyst 9000 제품군

배경 정보

용어

모든 종류의 문제 해결을 시작하고 적용하기 전에 다음 용어를 고려하십시오.

개념

설명

STP 인스턴스

인스턴스는 CPU에서 실행되는 하나의 세션입니다.

PVST에서 하나의 VLAN은 의 인스턴스입니다.

MST에서 인스턴스는 VLAN의 그룹입니다. 이 문서에서는 이 의미에 따라 인스턴스라는 용어를 사용합니다.

IST

IST(내부 스패닝 트리)는 인스턴스 0 또는 MSTI0이라고도 합니다.

- 특별한 경우입니다.

- MSTI 0은 전체 L2 도메인에서 하나의 단일 루프 프리 토폴로지를 생성하는 데 사용됩니다.

- MST가 다른 버전의 스패닝 트리를 실행하는 다른 영역 또는 스위치와 통신하는 경우 IST 또는 MSTI0의 설정이 통신에 사용됩니다.

- MSTI 0은 유일한 BPDU이며 스위치에서 선택한 MSTI 0의 루트는 모든 지역의 루트가 되거나 MST 지역 내의 지역 루트에 대한 정보를 전달해야 합니다.

IST는 BPDU를 보내고 받는 유일한 스패닝 트리 인스턴스입니다. 다른 모든 스패닝 트리 인스턴스 정보는 MSTP BPDU 내에 캡슐화된 M 레코드에 포함되어 있습니다. MSTP BPDU는 모든 인스턴스에 대한 정보를 전달하기 때문입니다. 이 인스턴스에는 타이머 관련 매개 변수가 있습니다.MST가 다른 영역 및 스패닝 트리 버전과 통신할 때 IST 또는 MSTI0의 설정이 통신에 사용됩니다.

MSTI

MSTIs는 Multiple Spanning Tree Instances를 나타냅니다. 1~15

Cisco 구현에서는 16개의 인스턴스, 즉 IST(인스턴스 0) 1개와 MSTI 15개를 지원합니다.

지역

MST를 실행하는 스위치 그룹입니다. 모두 동일한 MST 컨피그레이션을 갖습니다.

CIST 및 CST

- 공통 스패닝 트리는 MST 영역과 단일 스패닝 트리를 상호 연결한다.

- 공통 스패닝 트리 및 내부 스패닝 트리는 각 MST 영역 및 공통 스패닝 트리의 IST 모음입니다.

지역 루트

인스턴스 0을 제외한 영역의 각 인스턴스에 대한 선택 프로세스입니다.

필요한 경우 각 인스턴스에 대해 스패닝 트리 영역에서 다른 루트를 가질 수 있습니다.

이는 정상적인 스패닝 트리 선택을 수행하는 데 필요한 정보가 있는 IST BPDU의 정보로 간주되는 경우 수행됩니다.

CIST 루트 브리지는 예비 표준 구현에서 IST 마스터라고 불렸습니다. CIST 루트 브리지가 지역에 있는 경우 지역 루트는 CIST 루트 브리지입니다.

그렇지 않으면 지역 루트가 지역의 CIST 루트에 가장 가까운 스위치입니다. 지역 루트는 IST의 루트 브리지 역할을 합니다.

M 레코드

BPDU는 하나뿐이며 BPDU는 인스턴스 0을 통합하는 데 필요한 정보를 반영하므로 다른 인스턴스에 대한 루트를 형성하는 다른 메커니즘이 필요합니다.

이를 M-Record라고 합니다. 각 M-Record 내부에는 개별 인스턴스에 대한 모든 스패닝 트리 정보가 있습니다.

이 정보는 IST BPDU에서 TLV와 함께 전달됩니다.

논쟁

Dispute 메커니즘은 단방향 링크 탐지 메커니즘에 내장되어 있습니다. 이 기능은 802.1d의 원래 버전(RSTP가 실제로 2004년에 802.1d 표준에 통합됨) 또는 PVST에서는 사용할 수 없습니다.

분쟁 메커니즘은 지정된 상태를 가지며 학습 및 전달 상태에 있는 하위 BPDU를 수신할 때 트리거됩니다.

이는 단방향 링크를 나타내며, 수신 포트가 링크를 차단하는 루프를 방지합니다.

제안/계약

이 제안 계약 메커니즘은 RSTP의 가장 중요한 변경 사항 중 하나입니다.

이것이 고속 스패닝 트리가 실제로 빠르게 할 수 있도록 하는 것입니다.

제안 계약 프로세스의 간소화된 설명은 두 인접 디바이스가 올라올 때 모두 제안 비트를 사용하여 BPDU 전송으로 시작합니다.

피어 중 하나가 동의로 전환되면(인접 디바이스가 루트에 대한 상위 경로로 수락된다고 표시됨) 링크가 즉시 전달 상태로 전환됩니다.

BPDU를 전송하는 두 포트로 시작합니다. 지정 비트와 제안 비트가 설정된 뿌리가 된다고 주장한다.

하위 스위치가 이 포트가 루트 브리지가 아니며 루트에 대한 최상의 경로를 가지고 있음을 인식하면 해당 포트는 더 이상 제안 비트가 설정되지 않으며 루트 상태 및 포워딩로 전환됩니다.

공유 세그먼트

RSTP / MST는 하프 듀플렉스 링크를 "공유" 상태로 전환합니다. 이는 제안 계약 프로세스가 발생하지 않음을 의미합니다.

시퀀스가 P2P 링크를 빠르게 불러오도록 의도되므로, 순방향 상태로의 조기 전이가 루프를 야기할 수 있다. 이는 show commands for spanning tree에서 확인할 수 있습니다

인터페이스에서 spanning-tree link-type point-to-point를 입력하여 P2P 상태가 되도록 할 수 있습니다. 주의 깊게 사용하십시오.

여러 지역

·MST 컨피그레이션이 일치하지 않을 경우 여러 지역이 결정됩니다.

·CIST는 MSTI0 BPDU를 통해 지역 간에 선택됩니다.

· 여러 지역이 다른 장치에게 지역당 하나의 논리적 스위치로 표시됩니다.

경계 포트

이러한 포트는 리전의 한도에 있으며, 일반적으로 이러한 포트에서 비 MST BPDU가 수신되므로 이 포트에서는 MST를 사용할 수 없습니다.

PVST 시뮬레이션은 MST와 PVST가 동일한 네트워크에서 작동할 수 있는 방식입니다.

PVST 시뮬레이션

네트워크 토폴로지의 변경 또는 마이그레이션과 같은 특정 시나리오에서는 둘 이상의 STP 버전이 함께 발견되며 MST 영역이 다른 도메인에 연결됩니다.

예를 들어 PVST+에서 MST로 변경되는 네트워크와 모든 스위치를 동시에 수정할 수 없습니다. 또한 MST와 PVST+를 함께 사용해야 합니다.

PVST+는 MST BPU를 처리할 수 없으므로 두 프로토콜 모두 상호 작용할 수 있도록 PVST+ 간에 호환성 메커니즘이 있습니다. 이러한 호환성 메커니즘을 PVST 시뮬레이션이라고 합니다.

PVST 시뮬레이션 실패

PVST 시뮬레이션에 명시된 규칙이 충족되지 않는 경우

제한 사항

- PVST+, Rapid PVST+ 및 MSTP가 지원되지만, 한 번에 하나의 버전만 활성화할 수 있습니다. 예를 들어, 모든 VLAN은 PVST+를 실행하거나, 모든 VLAN은 Rapid PVST+를 실행하거나, 모든 VLAN은 MSTP를 실행합니다.

- MST 컨피그레이션의 VTP(VLAN Trunking Protocol) 전파는 지원되지 않습니다.

문제 해결

목표는 MST 영역이 영역 외부의 관점에서 가상 CST 브리지처럼 작동하도록 하는 것입니다.

다른 영역 또는 PVST 도메인의 다른 스위치에서는 RootID 및 Root Path 비용이 변경되지 않은 상태로 남아 있으므로 MST 영역을 하나의 스위치로만 간주합니다.

MST(단일 영역)

토폴로지

설정

이 세 가지 특성은 MST 영역 아래의 모든 스위치에서 동일한 방식으로 구성해야 제대로 통합될 수 있습니다. 명령은 MST 컨피그레이션 모드에서 적용됩니다.

- 이름

- 개정 번호

- VLAN과 인스턴스 매핑

spanning-tree mst configuration

name <region name>

revision <number>

instance <number> vlan <vlan number>

다음 명령을 사용하여 특성 컨피그레이션을 검증합니다.

show running-config | section span

예: 영역 1의 스위치 1, 2, 3에 대한 특성 컨피그레이션

R1-SW1

R1-SW1#show running-config | section spann

spanning-tree mode mst

spanning-tree extend system-id

spanning-tree mst configuration

name R1               <---

revision 1            <---

instance 1 vlan 3-4   <---

R1-SW2

R1-SW2#show running-config | section spann

spanning-tree mode mst

spanning-tree extend system-id

spanning-tree mst configuration

name R1

revision 1

instance 1 vlan 3-4

R1-SW3

R1-SW3#show running-config | section spann

spanning-tree mode mst

spanning-tree extend system-id

spanning-tree mst configuration

name R1

revision 1

instance 1 vlan 3-4

검증

MST 마이그레이션 중에는 아직 STP 모드를 변경하지 않고도 MST 매개변수를 구성할 수 있습니다.

컨피그레이션 오류로 인해 네트워크가 중단되지 않도록 다음 권장 사항을 따르십시오.

- 커밋하기 전에 MST 컨피그레이션을 확인합니다.

- 커밋 후 MST 컨피그레이션 확인

커밋하기 전에 MST 컨피그레이션을 확인합니다.

이 검사는 스패닝 트리 모드가 아직 적용되지 않은 경우입니다.

show spanning-tree mst

show current

show spanning-tree mst configuration digest

참고: show current는 MST 컨피그레이션 모드(spanning-tree mst 컨피그레이션 하위 모드)에서만 사용할 수 있습니다

예: 지역 1의 스위치 1의 경우

STP 모드가 아직 MST 모드가 아닌지 확인합니다.

R1-SW1#show spanning-tree mst

% Switch is not in mst mode   <--

현재 MST 컨피그레이션 확인

R1-SW1(config-mst)#show current

Current MST configuration

Name      [R1]

Revision  1     Instances configured 2

Instance  Vlans mapped

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

0         1-2,6-4094

1         3-4

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

참고: show current는 MST 컨피그레이션 모드에서만 사용할 수 있습니다.

참고: show span mst 컨피그레이션과 show current는 동일한 명령입니다.

다이제스트 해시 확인

R1-SW1#show spanning-tree mst configuration digest

% Switch is not in mst mode                          <--

Name [R1]

Revision 1 Instances configured 2

Digest 0xA423B8DBB209CCF6560F55618AB58726            <--

Pre-std Digest 0x8C9BE88BBC9B84CB8AED635EE008436A

참고: 다이제스트 출력에서는 스위치가 이미 MST 모드인지 여부를 알 수 있습니다. MST 모드가 아직 활성화되지 않은 경우에도 다이제스트 해시는 변경되지 않습니다.

참고: Catalyst 9000 스위치는 IEEE 표준 MST 프로토콜을 실행합니다. 따라서 사전 표준 다이제스트 대신 다이제스트 해시에 주력해야 합니다

커밋 후 MST 컨피그레이션 확인

show current

show pending

show spanning-tree mst configuration digest

abort

참고: MST 컨피그레이션 모드에서만 show pending(show current)을 사용할 수 있습니다

show current 출력은 MST 하위 모드(컨피그레이션 변경이 적용될 때)를 종료한 후 MST 컨피그레이션을 보여주는 반면, show pending 출력은 최근에 구성되었지만 적용되지 않은 MST 컨피그레이션을 보여줍니다.

어떤 이유로든 컨피그레이션 변경 사항을 되돌려야 하고 여전히 MST 하위 모드에 있는 경우 변경 사항을 적용하지 않고 MST 하위 모드에서 종료하는 abort 명령을 적용할 수 있습니다.

참고: MST 컨피그레이션 모드에서만 show pending(show current)을 사용할 수 있습니다

예: 지역 1의 스위치 1의 경우

현재 컨피그레이션과 보류 중인 컨피그레이션이 동일하다는 것을 알 수 있습니다. 즉, 변경된 사항이 없습니다.

다이제스트 해시는 이전 출력에서 검증된 해시와 동일합니다.

R1-SW1(config)#spanning-tree mst configuration

R1-SW1(config-mst)#show current

Current MST configuration

Name      [R1]

Revision  1     Instances configured 2

Instance  Vlans mapped

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

0         1-2,5-4094

1         3-4

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

R1-SW1(config-mst)#show pending

Pending MST configuration

Name      [R1]

Revision  1     Instances configured 2

Instance  Vlans mapped

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

0         1-2,5-4094

1         3-4

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

R1-SW1(config-mst)#do show spanning-tree mst configuration digest

Name      [R1]

Revision  1     Instances configured 2

Digest          0xA423B8DBB209CCF6560F55618AB58726   <--

Pre-std Digest  0x8C9BE88BBC9B84CB8AED635EE008436A

새 인스턴스가 생성되고 VLAN 5가 이 인스턴스에 매핑됩니다. 이번에는 show current 출력에 최근에 구성된 새 인스턴스가 표시되지 않지만 show pending은 표시됩니다. 이것은 당연한 일입니다.

다이제스트 해시가 변경되지 않았습니다. 새 컨피그레이션은 MST 컨피그레이션 모드(스패닝 트리 mst 컨피그레이션 하위 모드)를 종료할 때만 적용되기 때문입니다

R1-SW1(config-mst)#instance 2 vlan 5       <--

R1-SW1(config-mst)#show current

Current MST configuration

Name      [R1]

Revision  1     Instances configured 2

Instance  Vlans mapped

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

0         1-2,5-4094

1         3-4

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

R1-SW1(config-mst)#show pending

Pending MST configuration

Name      [R1]

Revision  1     Instances configured 3

Instance  Vlans mapped

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

0         1-2,6-4094

1         3-4

2         5     <--

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

R1-SW1(config-mst)#do show spanning-tree mst configuration digest

Name      [R1]

Revision  1     Instances configured 2

Digest          0xA423B8DBB209CCF6560F55618AB58726     <--

Pre-std Digest  0x8C9BE88BBC9B84CB8AED635EE008436A

MST 컨피그레이션 모드를 종료하면 변경 사항이 반영됩니다. 다이제스트 해시도 새 변경 사항과 일치하도록 다시 계산됩니다.

R1-SW1(config-mst)#exit

R1-SW1(config)#spanning-tree mst configuration

R1-SW1(config-mst)#show current

Current MST configuration

Name      [R1]

Revision  1     Instances configured 3

Instance  Vlans mapped

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

0         1-2,6-4094

1         3-4

2         5       <--

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

R1-SW1(config-mst)#show pending

Pending MST configuration

Name      [R1]

Revision  1     Instances configured 3

Instance  Vlans mapped

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

0         1-2,6-4094

1         3-4

2         5     <--

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

R1-SW1(config-mst)#do show spanning-tree mst configuration digest

Name      [R1]

Revision  1     Instances configured 3

Digest          0x083305551908B9A2CC50B482DC577B8F     <--

Pre-std Digest  0xA8AC09BDF2942058FAF4CE727C9D258F

이러한 명령은 MST 매개변수 및 수렴성을 검증하는 데 유용합니다. 또한 MST 타이머, 비용 등과 관련된 정보를 제공합니다.

show spanning-tree pathcost method

show spanning-tree root

show spanning-tree summary

show spanning-tree mst

show spanning-tree interface <interface>

참고: show spanning-tree mst와 show spanning-tree는 동일합니다

예: 지역 1의 스위치 1의 경우

경로 비용을 측정하는 방법에는 짧음(레거시) 및 길음(long)의 두 가지가 있습니다. 항상 레이어 2 네트워크를 따라 균질하게 관리하는 것이 좋습니다. Long pathcost 메서드를 실행할 경우 STP에서 실행되는 모든 스위치에서 이 메서드를 실행합니다.

R1-SW1#show spanning-tree pathcost method

Spanning tree default pathcost method used is long  <--

이 출력에서는 경로 비용 방법을 사용할 수 있지만, 스위치가 표준 MST 프로토콜을 실행하고 확장 시스템 ID(MST 사용 시 필수)를 사용할 수도 있습니다.

R1-SW1#show spanning-tree summary

Switch is in mst mode (IEEE Standard)               <--

Root bridge for: none

EtherChannel misconfig guard            is enabled

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

UplinkFast                              is disabled

BackboneFast                            is disabled

Configured Pathcost method used is long             <--

Name                   Blocking Listening Learning Forwarding STP Active

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

MST0                         0         0        0          3          3

MST1                         0         0        0          3          3

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

2 msts                       0         0        0          6          6

브리지 및 루트 ID, 우선 순위, 비용, 포트 역할 및 상태, VLAN 매핑은 이 출력에서 확인할 수 있습니다.

R1-SW1#show spanning-tree mst

##### MST0    vlans mapped:   1-2,5-4094

Bridge        address 3473.2db8.be80  priority      32768 (32768 sysid 0)

Root          address f04a.021e.9500  priority      24576 (24576 sysid 0)

port    Gi1/0/2         path cost     0

Regional Root address f04a.021e.9500  priority      24576 (24576 sysid 0)

internal cost 20000     rem hops 19

Operational   hello time 2 , forward delay 15, max age 20, txholdcount 6

Configured    hello time 2 , forward delay 15, max age 20, max hops    20

Interface                        Role Sts Cost      Prio.Nbr Type

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

Gi1/0/1                          Desg FWD 20000     128.1    P2p

Gi1/0/2                          Root FWD 20000     128.2    P2p

Gi1/0/4                          Desg FWD 20000     128.4    P2p

##### MST1    vlans mapped:   3-4

Bridge        address 3473.2db8.be80  priority      32769 (32768 sysid 1)

Root          address f04a.021e.9500  priority      24577 (24576 sysid 1)

port    Gi1/0/2         cost          20000     rem hops 19

Interface                        Role Sts Cost      Prio.Nbr Type

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

Gi1/0/1                          Desg FWD 20000     128.1    P2p

Gi1/0/2                          Root FWD 20000     128.2    P2p

Gi1/0/4                          Desg FWD 20000     128.4    P2p

이 명령은 인스턴스별 관점 대신 인터페이스 관점의 STP 역할 상태, 우선순위 및 링크 유형을 표시합니다.

R1-SW1#show spanning-tree interface gigabitEthernet 1/0/1

Mst Instance        Role Sts Cost      Prio.Nbr Type

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

MST0                Desg FWD 20000     128.1    P2p

MST1                Desg FWD 20000     128.1    P2p

R1-SW1#show spanning-tree interface gigabitEthernet 1/0/2

Mst Instance        Role Sts Cost      Prio.Nbr Type

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

MST0                Root FWD 20000     128.2    P2p

MST1                Root FWD 20000     128.2    P2p

지역 간 동기화

Region 2가 토폴로지에 추가되었습니다. 서로 다른 두 지역이 어떻게 상호 작용하고 융합하는지 그 과정을 확인하는 것이다. 이 통신에서는 경계 스위치만 실행됩니다.

링크의 양 끝은 동일한 통신 과정을 갖기 때문이다. 이 섹션에서는 패킷 캡처에서 가져온 R1-SW2 및 2개의 BPDU의 show spanning-tree mst의 출력에 초점을 맞춥니다.

토폴로지

검증

이는 Region 1의 R1-SW2와 Region 2의 R2-SW1 간의 초기 통신입니다. 두 디바이스 간에 연결이 설정되는 즉시 BPDU를 전송합니다.

R2-SW1에서 Gi1/0/2 인터페이스에 포커스를 둡니다. 이 인터페이스는 차단(BLK)을 초기 상태로 합니다. 선택 프로세스 시 스위치 포트가 BLK 상태로 들어간다는 점을 기억하십시오.

R2-SW1#show spanning-tree mst

MST0

! Output omitted for brevity

Interface           Role Sts Cost      Prio.Nbr Type

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

Gi1/0/2             Desg BLK 20000     128.2    P2p

Gi1/0/4             Root FWD 20000     128.4    P2p

MST1

! Output omitted for brevity

Interface           Role Sts Cost      Prio.Nbr Type

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

Gi1/0/2             Desg BLK 20000     128.2    P2p

Gi1/0/4             Root FWD 20000     128.4    P2p

패킷 캡처에서 이 첫 번째 BPDU가 관찰되며, Port Role(포트 역할) 플래그는 Designated(지정됨) 및 Proposal(제안)로 표시됩니다.

이는 통신이 이미 시작되었고 두 포트 모두 계약을 설정하고 포트 역할 및 상태를 설정하기 위한 동기화 프로세스를 시작했음을 의미합니다. 모두 제안 메커니즘으로 시작합니다.

IEEE 802.3 Ethernet

Destination: Spanning-tree-(for-bridges)_00 (01:80:c2:00:00:00)

Source: Cisco_05:d6:02 (f0:4a:02:05:d6:02)

Length: 121

Logical-Link Control

Spanning Tree Protocol

Protocol Identifier: Spanning Tree Protocol (0x0000)

Protocol Version Identifier: Multiple Spanning Tree (3)

BPDU Type: Rapid/Multiple Spanning Tree (0x02)

BPDU flags: 0x0e, Port Role: Designated, Proposal

0... .... = Topology Change Acknowledgment: No

.0.. .... = Agreement: No

..0. .... = Forwarding: No

...0 .... = Learning: No

.... 11.. = Port Role: Designated (3)

.... ..1. = Proposal: Yes

.... ...0 = Topology Change: No

Root Identifier: 24576 / 0 / f0:4a:02:1e:95:00

Root Path Cost: 20004

Bridge Identifier: 32768 / 0 / a0:f8:49:10:47:80

Port identifier: 0x8002

Message Age: 2

Max Age: 20

Hello Time: 2

Forward Delay: 15

Version 1 Length: 0

Version 3 Length: 80

MST Extension

스위치 간에 BPDU가 교환되면 상태가 LRN(Learning)으로 변경됩니다.

R2-SW1이 앞서 나타낸 제1 BPDU를 수신한 이후, LRN 상태는 차단 상태 이후의 제1 전이 상태이다.

R2-SW1#show spanning-tree mst

MST0

! Output omitted for brevity

Interface           Role Sts Cost      Prio.Nbr Type

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

Gi1/0/2             Desg LRN 20000     128.2    P2p

Gi1/0/4             Root FWD 20000     128.4    P2p

MST1

! Output omitted for brevity

Interface           Role Sts Cost      Prio.Nbr Type

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

Gi1/0/2             Desg LRN 20000     128.2    P2p

Gi1/0/4             Root FWD 20000     128.4    P2p

피어 중 하나가 계약을 설정하고 동기화가 발생하면(인접 디바이스가 루트에 대한 상위 경로로 허용됨) 링크가 즉시 전달 상태로 전환됩니다.

여기서 Flags(플래그)가 학습으로 설정된 BPDU를 관찰할 수 있으며, 포트가 LRN에서 FWR(Forwarding)로 전환되는 즉시 트리거되는 토폴로지 변경 알림 플래그도 포함됩니다.

이 상태에서 MST는 포트가 프레임 포워딩에 참여하는지 여부를 결정합니다(상태 BLK).

IEEE 802.3 Ethernet

Logical-Link Control

Spanning Tree Protocol

Protocol Identifier: Spanning Tree Protocol (0x0000)

Protocol Version Identifier: Multiple Spanning Tree (3)

BPDU Type: Rapid/Multiple Spanning Tree (0x02)

BPDU flags: 0x3d, Forwarding, Learning, Port Role: Designated, Topology Change

0... .... = Topology Change Acknowledgment: No

.0.. .... = Agreement: No

..1. .... = Forwarding: Yes

...1 .... = Learning: Yes

.... 11.. = Port Role: Designated (3)

.... ..0. = Proposal: No

.... ...1 = Topology Change: Yes

Root Identifier: 24576 / 0 / f0:4a:02:1e:95:00

Root Path Cost: 20004

Bridge Identifier: 32768 / 0 / a0:f8:49:10:47:80

Port identifier: 0x8002

Message Age: 2

Max Age: 20

Hello Time: 2

Forward Delay: 15

Version 1 Length: 0

Version 3 Length: 80

MST Extension

마지막으로, 스위치 포트는 네트워크 토폴로지 생성과 관련된 모든 상태를 통과한 후 포워딩 상태가 됩니다.

이는 포트의 마지막 상태가 되며 역할 지정(Desg) 및 상태 FDW가 포함됩니다.

R2-SW1#show spanning-tree mst

MST0

! Output omitted for brevity

Interface           Role Sts Cost      Prio.Nbr Type

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

Gi1/0/2             Desg FWD 20000     128.2    P2p

Gi1/0/4             Root FWD 20000     128.4    P2p

MST1

! Output omitted for brevity

Interface           Role Sts Cost      Prio.Nbr Type

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

Gi1/0/2             Desg FWD 20000     128.2    P2p

Gi1/0/4             Root FWD 20000     128.4    P2p

디버그

이러한 버그는 R2-SW1과 R1-SW2 간 통신 중에 활성화되었다.

debug spanning-tree mstp roles

debug spanning-tree mstp tc

debug spanning-tree mstp boundary

예:

R2-SW1#show debugging

Packet Infra debugs:

Ip Address                                               Port

------------------------------------------------------|----------

Multiple Spanning Tree:

MSTP port ROLES changes debugging is on

MSTP Topology Change notifications debugging is on

MSTP port BOUNDARY flag changes debugging is on

관찰된 로그

%LINK-3-UPDOWN: Interface GigabitEthernet1/0/2, changed state to down

%LINK-3-UPDOWN: Interface GigabitEthernet1/0/2, changed state to up

MST[0]: Gi1/0/2 is now designated port

MST[0]: Gi1/0/2 becomes designated - clearing BOUNDARY flag

MST[1]: Gi1/0/2 is now designated port

MST[0]: port Gi1/0/2 received external tc

MST[0]: port Gi1/0/2 received external tc

MST[1]: port Gi1/0/2 received tc

MST[0]: port Gi1/0/2 received external tc

MST[0]: port Gi1/0/2 received external tc

MST[1]: port Gi1/0/2 received tc

MST[0]: port Gi1/0/2 received external tc

MST[0]: port Gi1/0/2 received external tc

MST[1]: port Gi1/0/2 received tc

MST[0]: port Gi1/0/2 initiating tc

MST[1]: port Gi1/0/2 initiating tc

MST[0]: port Gi1/0/2 received external tc

MST[0]: port Gi1/0/2 received external tc

MST[1]: port Gi1/0/2 received tcsho span

%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/2, changed state to up

MST[0]: port Gi1/0/3 received internal tc

MST[0]: port Gi1/0/3 received internal tc

MST[0]: port Gi1/0/3 received internal tc

PVST 시뮬레이션 실패

PVST 시뮬레이션은 MST가 비 MST 스위치와 통신하는 데 사용하는 메커니즘입니다.

PVST 스위치는 단순히 다르기 때문에 MST BPDU를 인식하지 않습니다. 따라서 PVST와 MST BPDU의 차이를 이해하는 것이 중요합니다.

PVST BPDU와 MST BPDU

PVST와 MST의 두 BPDU를 캡처하여 차이점을 살펴보았습니다.

pvst

- PVST는 스위치에 구성된 모든 VLAN에 대해 BPDU를 전송합니다. 따라서 100개의 VLAN을 구성하면 100개의 BPDU가 모든 포트를 통해 전송되어 자체 루프 프리 토폴로지를 구축할 수 있습니다.

- PVST는 기존 STP를 기반으로 함

Ethernet II, Src: Cisco_06:19:01 (f0:4a:02:06:19:01), Dst: PVST+ (01:00:0c:cc:cc:cd)

Destination: PVST+ (01:00:0c:cc:cc:cd)

Source: Cisco_06:19:01 (f0:4a:02:06:19:01)

Type: 802.1Q Virtual LAN (0x8100)

802.1Q Virtual LAN, PRI: 7, DEI: 0, ID: 3

111. .... .... .... = Priority: Network Control (7)

...0 .... .... .... = DEI: Ineligible

.... 0000 0000 0011 = ID: 3

Length: 50

Logical-Link Control

DSAP: SNAP (0xaa)

SSAP: SNAP (0xaa)

Control field: U, func=UI (0x03)

Organization Code: 00:00:0c (Cisco Systems, Inc)

PID: PVSTP+ (0x010b)

Spanning Tree Protocol

Protocol Identifier: Spanning Tree Protocol (0x0000)

Protocol Version Identifier: Spanning Tree (0)

BPDU Type: Configuration (0x00)

BPDU flags: 0x01, Topology Change

0... .... = Topology Change Acknowledgment: No

.... ...1 = Topology Change: Yes

Root Identifier: 32768 / 0 / 68:9e:0b:a0:f5:80

Root Bridge Priority: 32768

Root Bridge System ID Extension: 0

Root Bridge System ID: Cisco_a0:f5:80 (68:9e:0b:a0:f5:80)

Root Path Cost: 20000

Bridge Identifier: 32768 / 0 / f0:4a:02:06:19:00

Bridge Priority: 32768

Bridge System ID Extension: 0

Bridge System ID: Cisco_06:19:00 (f0:4a:02:06:19:00)

Port identifier: 0x8001

Message Age: 1

Max Age: 20

Hello Time: 2

Forward Delay: 15

Originating VLAN (PVID): 3

Type: Originating VLAN (0x0000)

Length: 2

Originating VLAN: 3

MST

- MST는 스위치에 구성된 모든 MST 인스턴스에 대해 단일 BPDU를 전송합니다. 이는 모든 인스턴스의 정보를 포함하는 MST 확장(M 레코드) 덕분에 가능합니다.

- MST는 RSTP를 기반으로 하므로 이 프로토콜의 모든 내장 메커니즘이 MST에 상속되었습니다.

- 타이머는 IST에 의해 정의되며 지역 내의 다른 모든 인스턴스에 영향을 미칩니다

IEEE 802.3 Ethernet

Destination: Spanning-tree-(for-bridges)_00 (01:80:c2:00:00:00)

Source: Cisco_b8:be:81 (34:73:2d:b8:be:81)

Length: 121

Logical-Link Control

DSAP: Spanning Tree BPDU (0x42)

SSAP: Spanning Tree BPDU (0x42)

Control field: U, func=UI (0x03)

Spanning Tree Protocol

Protocol Identifier: Spanning Tree Protocol (0x0000)

Protocol Version Identifier: Multiple Spanning Tree (3)

BPDU Type: Rapid/Multiple Spanning Tree (0x02)

BPDU flags: 0x0e, Port Role: Designated, Proposal

0... .... = Topology Change Acknowledgment: No

.0.. .... = Agreement: No

..0. .... = Forwarding: No

...0 .... = Learning: No

.... 11.. = Port Role: Designated (3)

.... ..1. = Proposal: Yes

.... ...0 = Topology Change: No

Root Identifier: 32768 / 0 / 34:73:2d:b8:be:80

Root Bridge Priority: 32768

Root Bridge System ID Extension: 0

Root Bridge System ID: Cisco_b8:be:80 (34:73:2d:b8:be:80)

Root Path Cost: 0

Bridge Identifier: 32768 / 0 / 34:73:2d:b8:be:80

Bridge Priority: 32768

Bridge System ID Extension: 0

Bridge System ID: Cisco_b8:be:80 (34:73:2d:b8:be:80)

Port identifier: 0x8001

Message Age: 0

Max Age: 20

Hello Time: 2

Forward Delay: 15

Version 1 Length: 0

Version 3 Length: 80

MST Extension

MST Config ID format selector: 0

MST Config name: R1

MST Config revision: 1

MST Config digest: a423b8dbb209ccf6560f55618ab58726

CIST Internal Root Path Cost: 0

CIST Bridge Identifier: 32768 / 0 / 34:73:2d:b8:be:80

CIST Bridge Priority: 32768

CIST Bridge Identifier System ID Extension: 0

CIST Bridge Identifier System ID: Cisco_b8:be:80 (34:73:2d:b8:be:80)

CIST Remaining hops: 20

MSTID 1, Regional Root Identifier 32768 / 34:73:2d:b8:be:80

MSTI flags: 0x0e, Port Role: Designated, Proposal

0... .... = Topology Change Acknowledgment: No

.0.. .... = Agreement: No

..0. .... = Forwarding: No

...0 .... = Learning: No

.... 11.. = Port Role: Designated (3)

.... ..1. = Proposal: Yes

.... ...0 = Topology Change: No

1000 .... = Priority: 0x8

.... 0000 0000 0001 = MSTID: 1

Regional Root: Cisco_b8:be:80 (34:73:2d:b8:be:80)

Internal root path cost: 0

Bridge Identifier Priority: 8

Port identifier priority: 8

Remaining hops: 20

토폴로지

PVST를 사용하는 스위치가 네트워크에 추가되었습니다. 지역 1과 2를 상호 연결합니다.

검증

PVST 스위치가 연결된 후 영역 1에서 스위치 R1-SW3의 경계 포트(gi1/0/1)가 PVST 불일치로 이동하여 포트를 차단합니다.

R1-SW3#show spanning-tree mst

##### MST0    vlans mapped:   1-2,5-4094

Bridge        address f04a.021e.9500  priority      32768 (32768 sysid 0)

Root          address 689e.0ba0.f580  priority      16385 (16384 sysid 1)

port    Gi1/0/1         path cost     20000

Regional Root this switch

Operational   hello time 2 , forward delay 15, max age 20, txholdcount 6

Configured    hello time 2 , forward delay 15, max age 20, max hops    20

Interface                        Role Sts Cost      Prio.Nbr Type

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

Gi1/0/1                          Root BKN*20000     128.1    P2p Bound(PVST) *PVST_Inc

Gi1/0/2                          Desg FWD 20000     128.2    P2p

Gi1/0/3                          Desg FWD 20000     128.3    P2p

##### MST1    vlans mapped:   3-4

Bridge        address f04a.021e.9500  priority      32769 (32768 sysid 1)

Root          address 3473.2db8.be80  priority      32769 (32768 sysid 1)

port    Gi1/0/2         cost          20000     rem hops 19

Interface                        Role Sts Cost      Prio.Nbr Type

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

Gi1/0/1                          Mstr BKN*20000     128.1    P2p Bound(PVST) *PVST_Inc

Gi1/0/2                          Root FWD 20000     128.2    P2p

Gi1/0/3                          Altn BLK 20000     128.3    P2p

참고: 다른 경계 포트인 영역 2의 R2-SW2에서도 유사한 출력이 관찰됩니다.

.

이 규칙 중 하나라도 어겼기 때문에 이런 일이 발생했다

- CIST에 대한 루트 브리지가 비 MST 영역 내에 있는 경우 해당 도메인 내에서 VLAN 2 이상의 스패닝 트리 우선순위는 VLAN 1보다 낮아야 합니다.

- CIST의 루트 브리지가 MST 영역 내에 있는 경우 비 MST 도메인에 정의된 2개 이상의 VLAN의 스패닝 트리 우선순위는 CIST 루트보다 높아야 합니다.

이 문제를 해결하려면 스위치에 설정된 잘못된 구성을 확인하십시오.

사례 1. PVST 스위치는 VLAN 2-4의 루트이지만, VLAN 2-4는 VLAN 1보다 우선순위가 더 낮습니다. 이 경우 PVST 스위치를 제외한 모든 스위치에는 기본 STP 우선순위(32768)가 있습니다

PVST-SW1# show run | inc span

spanning-tree mode pvst

spanning-tree extend system-id

spanning-tree vlan 1 priority 4096    <--

spanning-tree vlan 2-4 priority 16384 <--

spanning-tree mst configuration

관찰된 로그:

%SPANTREE-2-PVSTSIM_FAIL: Blocking root port Gi1/0/1: Inconsitent inferior PVST BPDU received on VLAN 2, claiming root 16386:689e.0ba0.f580

사례 2. PVST 스위치는 VLAN 1의 루트가 아니지만 VLAN 2-4는 루트보다 우선순위가 더 낮습니다. 이 경우 루트는 기본 우선순위 24576. 이는 루트 브리지가 모든 VLAN의 루트가 아니라는 것을 의미합니다

PVST-SW1#show run | inc span

spanning-tree mode pvst

spanning-tree extend system-id

spanning-tree vlan 1 prio 32768       <-- higher priority than the root

spanning-tree vlan 2-4 priority 16384 <--  lower priority than the root

spanning-tree mst configuration

관찰된 로그:

%SPANTREE-2-PVSTSIM_FAIL: Blocking root port Gi1/0/1: Inconsistent inferior PVST BPDU received on VLAN 2, claiming root 40962:689e.0ba0.f580

앞서 설명한 규칙을 고려했으면 이러한 유효한 컨피그레이션을 사용하여 이 문제를 삭제할 수 있습니다.

사례 1.

PVST-SW1# show run | inc span

spanning-tree mode pvst

spanning-tree extend system-id

spanning-tree vlan 1 priority 16384  <-- VLAN 1 has a higher priority than all other VLANs

spanning-tree vlan 2-4 priority 4096 <--

spanning-tree mst configuration

관찰된 로그:

%SPANTREE-2-PVSTSIM_OK: PVST Simulation nconsistency cleared on port GigabitEthernet1/0/1.

사례 2.

PVST-SW1#show run | inc span

spanning-tree mode pvst

spanning-tree extend system-id

spanning-tree vlan 1 prio 32768       <-- higher priority than the root

spanning-tree vlan 2-4 priority 40960 <--  higher priority than the root

spanning-tree mst configuration

관찰된 로그:

%SPANTREE-2-PVSTSIM_OK: PVST Simulation nconsistency cleared on port GigabitEthernet1/0/1.

디버그

패킷 캡처가 불가능한 경우 BPDU 디버그가 있는 BPDU를 확인합니다.

debug spanning-tree mstp bpdu receive

debug spanning-tree mstp bpdu transmit

예: PVST 스위치에 연결된 영역 2의 스위치 2의 경우

R2-SW2#debug spanning-tree mstp bpdu receive

MSTP BPDUs RECEIVEd dump debugging is on

R2-SW2#debug spanning-tree mstp bpdu transmit

MSTP BPDUs TRANSMITted dump debugging is on

R2-SW2#debug condition interface gigabitEthernet 1/0/2 <-- interface facing PVST switch

R2-SW2#show logging

! Output omitted for brevity

%LINK-3-UPDOWN: Interface GigabitEthernet1/0/2, changed state to down

%LINK-3-UPDOWN: Interface GigabitEthernet1/0/2, changed state to up

MST[0]:-TX> Gi1/0/2 BPDU Prot:0 Vers:3 Type:2

MST[0]: Role :Desg Flags[P] Age:2 RemHops:19

MST[0]: CIST_root:16385.689e.0ba0.f580 Cost :40000

MST[0]: Reg_root :32768.f04a.0205.d600 Cost :20000

MST[0]: Bridge_ID:32768.a0f8.4910.4780 Port_ID:32770

MST[0]: max_age:20 hello:2 fwdelay:15

MST[0]: V3_len:80 region:R2 rev:1 Num_mrec: 1

MST[1]:-TX> Gi1/0/2 MREC

MST[1]: Role :Desg Flags[MAP] RemHops:20

MST[1]: Root_ID :32769.a0f8.4910.4780 Cost :0

MST[1]: Bridge_ID:32769.a0f8.4910.4780 Port_id:130

%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/2, changed state to up

MST[0]:-TX> Gi1/0/2 BPDU Prot:0 Vers:3 Type:2

MST[0]: Role :Desg Flags[P] Age:2 RemHops:19

MST[0]: CIST_root:16385.689e.0ba0.f580 Cost :40000

MST[0]: Reg_root :32768.f04a.0205.d600 Cost :20000

MST[0]: Bridge_ID:32768.a0f8.4910.4780 Port_ID:32770

MST[0]: max_age:20 hello:2 fwdelay:15

MST[0]: V3_len:80 region:R2 rev:1 Num_mrec: 1

MST[1]:-TX> Gi1/0/2 MREC

MST[1]: Role :Desg Flags[MAP] RemHops:20

MST[1]: Root_ID :32769.a0f8.4910.4780 Cost :0

MST[1]: Bridge_ID:32769.a0f8.4910.4780 Port_id:130

MST[0]:

MST[0]: Role :Desg Flags[FLTc] Age:0

MST[0]: CIST_root:16385.689e.0ba0.f580 Cost :0

MST[0]: Bridge_ID:16385.689e.0ba0.f580 Port_ID:32770

MST[0]: max_age:20 hello:2 fwdelay:15

P2P 분쟁

토폴로지

설명

이 섹션에서는 계약을 체결하지 못한 두 디바이스의 문제를 관찰하고 포트의 상태를 적절히 설정할 수 있습니다.

R1-SW1#show spanning-tree mst

##### MST0    vlans mapped:   1-2,5-4094

Bridge        address 3473.2db8.be80  priority      32768 (32768 sysid 0)

Root          address 689e.0ba0.f580  priority      4097  (4096 sysid 1)

port    Gi1/0/2         path cost     20000

Regional Root address f04a.021e.9500  priority      24576 (24576 sysid 0)

internal cost 20000     rem hops 19

Operational   hello time 2 , forward delay 15, max age 20, txholdcount 6

Configured    hello time 2 , forward delay 15, max age 20, max hops    20

Interface                        Role Sts Cost      Prio.Nbr Type

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

Gi1/0/1                          Desg FWD 20000     128.1    P2p

Gi1/0/2                          Root FWD 20000     128.2    P2p

Gi1/0/4                          Desg BLK 20000     128.2    P2p Dispute

##### MST1    vlans mapped:   3-4

Bridge        address 3473.2db8.be80  priority      32769 (32768 sysid 1)

Root          address f04a.021e.9500  priority      24577 (24576 sysid 1)

port    Gi1/0/2         cost          20000     rem hops 19

Interface                        Role Sts Cost      Prio.Nbr Type

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

Gi1/0/1                          Desg FWD 20000     128.1    P2p

Gi1/0/2                          Root FWD 20000     128.2    P2p

Gi1/0/4                          Desg BLK 20000     128.2    P2p Dispute

R1-SW1(루트)은 새 디바이스가 연결된 것을 발견했습니다. 따라서 BPDU를 전송하고 스스로를 루트로 정의합니다.

링크의 반대쪽에서 플래그가 포트 역할(지정, 전달 및 학습)로 설정되도록 지정하는 BPDU를 수신했습니다.

이것은 새로운 스위치가 루트에 도달하는 더 나은 경로를 가진 상태를 연결했다는 것을 의미합니다. 그러나 R1-SW1이 루트이고 더 나은 경로가 없기 때문에 이는 가능하지 않습니다.

두 스위치 모두 계약을 설정하고 포트를 올바르게 설정할 수 없으므로(두 BPDU가 모두 루트에 더 나은 경로를 표시함), R1-SW1은 새 스위치가 BPDU를 수신하지 않는다고 가정하고 루프를 발생시킬 수 있는 단방향 시나리오를 방지하기 위해 포트 상태를 P2P Dispute로 설정합니다.

MST 접근 방식

이 문서에서 살펴본 것처럼, 네트워크에 더 많은 스위치를 추가하는 한 MST는 더 복잡해질 수 있습니다. 이로 인해 동일한 네트워크에 대해 다른 접근 방식을 갖는 것이 중요합니다.

예:

문제가 MST 영역이 아닌 PVST 도메인에 있는 경우 더 넓은 그림을 사용하고 MST 영역 내의 모든 것을 무시할 수 있습니다(CST 관점).

반면, 문제가 MST 지역 간 또는 지역 내에서만 의심되는 경우 CIST에서 더 나은 전망을 제공합니다.

필요한 경우 스위치의 포트 역할 및 상태에 집중할 수 있습니다

관련 정보

- 다중 스패닝 트리 프로토콜 이해(802.1s)

- 레이어 2 컨피그레이션 가이드, Cisco IOS XE Amsterdam 17.3.x(Catalyst 9300 스위치)

- 레이어 2 및 레이어 3 컨피그레이션 가이드, Cisco IOS XE Everest 16.5.1a(Catalyst 9300 스위치)

- MST 스위치의 PVST 시뮬레이션

- Cisco 버그 ID CSCvy02075 - 스위치가 차단 BLK 상태의 포트에서 수신된 트래픽을 전달합니다.