[CISCO] Spanning-Tree 보호 기술 [errdisable / BPDUguard / BPDUfilter / Loop guard]
Nowhere 와 Now here 의 차이

IT/ㄴ Cisco

[CISCO] Spanning-Tree 보호 기술 [errdisable / BPDUguard / BPDUfilter / Loop guard]

TIENE 2023. 7. 21. 09:38
반응형

[Spanning-Tree 보호 기술]

- Switch는 End-Point와 바로 연결되는 통신장비다. 물리적인 Layer 1 의 바로 다음의 Layer 의 통신장비이기 때문에 물리적인 요소에도 크게 영향을 받는다. 무엇보다도 Switch간의 연결도 고려를 해야하는데 Switch만의 특수한 성질로 인하여 다양한 기능이 존재하고 그 기능들을 보호하기 위한 기술도 존재한다. Cisco는 다양한 Switch 보호 기술을 마련하였으며 이를 알아보고자 한다.


목차

1. BPDU Guard

2. BPDU Filter

3. Loop Guard

4. Root Guard 


1. BPDU Guard

- BPDU Guard기능을 설정한 Port BPDU 패킷이 들어오면 Switch는 해당 Port Err-disable상태로 전환한다.

기능 On
spanning-tree bpdufilter enable

기능 Off
spanning-tree bpdufilter disable

- Switch가 연결되지 않아야 하는 구간에서 사용한다. (ex = Portfast가 설정된 Port에 사용)

- et0/0 포트로 BPDU를 받았고, 설정에 따라서 포트를 disable 처리했다.

- 이에 따라서, bpduguard 로 인해 해당 Port는 err-disable 상태로 전환했다.

 

- 상태 확인 결과, err-disabled 처리 되었다.

 

 * err-disable

- Switchport가 논리적으로 shutdown 된 상태

- Err-disable Port를 활성화 하기위해서는 'shutdown' command를 사용하여 물리적으로 비활성화 상태로 전환한 후 'no shutdown' command를 사용하여 해당 Port를 활성화 상태로 전환해야한다.

- 또는, 장애 원인을 정확히 파악한 후, 시도해야한다.

장애 발생 원인 지정과 장애 복구 시간 간격 설정
errdisable recovery cause bpduguard
= bpduguard 설정으로 인하여 링크 및 장애 발생 시, 장애 복구 Enable
errdisable recovery interval 30
= 30초 마다 장애 복구

- 그렇지 않으면, interval 시간을 입력하여도 계속해서 errdisable 상태로 전환하기 때문이다.


 

2. BPDU Filter                                                                                   

- BPDPfilter 기능이 설정된 Port BPDU를 송신하지 않는다. 

기능 On
spanning-tree bpdufilter enable

기능 Off
spanning-tree bpdufilter disable

  (STP Switch간 연결시 Loop를 방지하는 기능이므로 Switch가 아닌 장비는 BPDU를 수신하지 않는 것이 좋다.)

- PC , Server , Router등과 같이 BPDU를 수신하지 않는 장비가 연결된 Port에 설정한다.

 

- 간단한 테스트를 진행하여 BPDU filter의 기능을 알아보자


- L3Switch-1은 VLAN100의 Root-bridge[Priority 0]다.

- 그리고 L3Switch-2은 VLAN100의 Backup Root-bridge[Priority 4096]다. 

- Root-bridge의 포트Designated Port이기 때문에, BPDP 패킷을 보낸다.

Root-bridge의 포트 는  Designated Port이기 때문에, BPDP 패킷을 보낸다.

- 현재 구성도에 맞게, L3_Switch#2에서 Gi0/0는 Root Port로서, BPDP 패킷을 받는다.

BPDU Filiter Disable

 

- 이때, L3Switch-1의 Gi0/0 Port에 BPDU Filter를 지정한다.

- 아래 사진과 같이 Gi0/0 Port를 제외한 나머지 Port는 BPDU 패킷을 보낸다.

 

- 다시 L3Switch-2에서 Port 상태를 살펴보면 변화가 일어났다.

- 기존에 Gi0/0의 역할이 Root에서 Desg로 변경되었으며, Gi0/1의 역할이 Root로 변경되었다.

- 어떻게 된 것일까?

 

- L3Switch-1의 Gi0/0 Port에 BPDU를 보내지 않기 때문에, Gi0/2로 보낸 BPDU 패킷을 받은 것이다.

- 이처럼 BPDU Filter의 기능을 알아보았다.


 

- 물론, 간단하게 살펴볼 수도 있다.

- PC로 가는 BPDU를 막기 위해 spanning-tree bpdufilter enable 를 입력하면, 일정 주기로 보내는 BPDU를 보내지 않는다.


3. Loop Guard

- BPDU가 수신되지 않는 다양한 경우에 의해서 Loop가 발생할 수 있다.

- BPDU Filter / ACL 등 BPDU를 보낼 수 없는 이유로 발생하는 Loop를 방지한다.

 

- Blocking 되어있는 Port가 상대 Port에서 BPDU를 받을 수 없으면, Forwarding 상태로 전환한다.

- 이렇게 전환하게 되면 Blocking Port가 없는 구조로 변하기 때문에, Loop가 발생한다.

- Loop Guard를 Spanning-tree에 의해 Blocking 되어있는 Port에 설정하여, Forwarding으로 전환하는 것을 막아 Loop를 방지한다.

기능 On
전역 설정
spanning-tree loopguard default

Port별 설정
spanning-tree guard loop

기능 Off
전역 설정
no spanning-tree loopguard default

Port별 설정
no spanning-tree guard loop

 

- 현재 구성도는 다음과 같다.

L3Switch-1 = Priority 0 = Root-Bridge
L3Switch-2 = Priority 4096 = Backup Root-Bridge
IOU2 = Priority 32768 = e3/1 = Blocking Port = Loopguard Enable

 

 

- 어떠한 이유로 Blocking Port 에서 BPDU를 받지 못하는 상황을 가정하고자, L3Switch-2에서  BPDUfilter를 적용한다.

 

- 이때 Blocking Port의 상태를 살펴보자

 

- Blocking Port의 Configuration은 다음과 같다.

interface Ethernet3/1
spanning-tree guard loop
!

 

- 먼저, Loopguard 적용 전의 상태를 살펴보았다.

- Et3/2의 Port와 Et3/1의 Port 모두 Priortiy에 의해 결정된 Switch의 역할에 맞게 정상적으로 인식되었다.

- Et3/1의 Port는 Blocking 되어 있고, 이 상태에서 BPDU를 받지 못하는 상황을 만든다.

- 그와 동시에 LOOPGUARD BLOCK이라는 Log이 등장한다.

*Jul 21 00:13:38.479: %SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port Ethernet3/1 on VLAN0001.

 

- 다시 상태를 살펴보면, 역할 자체는 Desg이지만 상태는 BKN* (Broken)으로 Loopguard에 의하여 Blocking Port로 전환되었음을 알 수 있다.

 

- BPDU를 다시 받을 수 있는 상황으로 변하면,  다시 전환하는 것도 확인할 수 있다.

- 이와 같이, BPDU를 받지 못하는 Blocking Port가 Forwarding Port로 전환하는 것을 막는 Loopguard를 알아보았다.


4. Root Guard

-Root-bridge를 보호하기 위한 기능으로 기존에 수신하는 BPDU Bridge-ID보다우선하는 BPDU를 수신 시 Switch Root Guard기능에의해 우선하는 BPDU를 수신한 Port를 차단한다.

-기존 Switch가 연결된 Port를 제외한 나머지 모든 Port에서 설정해야한다.

기능 On
spanning-tree guard root

기능 Off
no spanning-tree guard root

 

- 공격 스위치가 VLAN100에 대해서 Priority 0으로 LSSwitch-1 [Priority 4096] 과 연결하여, Root-Bridge 역할을 가져오려고 하는 상황이다.

- 이런 상황에 미리, 기존의 포트를 제외한 나머지 포트에 Root Guard가 지정되어 있다면, 이러한 공격을 막을 수 있다.

 

 

- VLAN100에 대하여 Root guard 설정이 발동되었다.


[CISCO] Port-Security 기초 및 추가 옵션 [GNS3]

 

[CISCO] Port-Security 기초 및 추가 옵션 [GNS3]

HTML 삽입 미리보기할 수 없는 소스 - Switch 엔지니어는 Switch만 챙길 수 없다. 결국, Host 들 사이의 통로를 만들어주는 것이고, Host의 특성과 특징들도 잘 알아두어야한다. 그리고, Switch의 특성답게

a-gyuuuu.tistory.com

 

반응형