[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 패킷을 보낸다.
- 현재 구성도에 맞게, L3_Switch#2에서 Gi0/0는 Root Port로서, BPDP 패킷을 받는다.
- 이때, 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]
'IT > ㄴ Cisco' 카테고리의 다른 글
[Cisco] GRE Protocol 알아보기 [GNS3 / Wireshark / ChatGPT] (0) | 2023.08.19 |
---|---|
[Cisco] IPSec 구축으로 데이터 보호하기 [GNS3] (0) | 2023.08.14 |
[CISCO] Etherchannel PAgP / LACP정리 [GNS3] (0) | 2023.07.20 |
[CISCO] Port-Security 기초 및 추가 옵션 [GNS3] (0) | 2023.07.20 |
[CISCO] Switch 보안 및 사용자 차단 설정 [storm-control / SPAN] (0) | 2023.07.19 |