2013년 7월 28일 일요일

STP보호기술 2 - BPDU Filtering 와 Loop Guard

BPDU Filtering 

BPDU를 송/수신 하지 않도록 설정하는 기능.
BPDU를 받지 않아도 될 장비에 보내서 부하가 걸리지 않도록 하는데 그 목적이 있다.

설정은 크게 두가지 방식을 취한다.

첫번째 방법은 전체 설정모드에서 설정하는 방식으로, 전체 설정모드에서 다음과 같이 입력한다.

SW(config)# spanning-tree portfast bpdufilter default

이렇게 하면, 더이상 해당 스위치에서는 BPDU를 송신하지 않는다.
다만 수신은 하며, 수신한 경우에는 그 포트에 대해서는 BPDU Filtering이 해제되고
정상적으로 BPDU를 송수신하게된다.

이 방식의 장점은 일괄적으로 한번에 설정할 수 있다는 점.

이렇게 설정된 경우, 일단은 해당 스위치에 존재하는 모든 포트에 일괄적으로 BPDU Filtering기능이 적용된다. 하지만 다른 장치에서 BPDU를 전송 받을 경우, 해당 포트는 BPDU Filtering이 해제된다. 이후는 일반적인 STP환경처럼 Root/Desg/Altn으로 설정된다.

결과적으로 BPDU를 보내지 않는 종단 장치와 연결된 포트들에는 BPDU Filtering이 유지되고, 그 외의 포트들은 BPDU Filtering이 자동적으로 해제된다.

단점은 그 기준이 BPDU 수신여부라는 점.

누군가가 악의적으로 BPDU를 조작해서 보낼 경우, STP구조가 엉망이 되는 상황이 발생 할 수 있다. 별도로 조정하지 않은 기본상태 기준으로 최대 50초간 네트워크가 마비될 수도 있다.


두번째 방법은 개별 인터페이스에서 직접 설정하는 방식으로, 개별 인터페이스에서 다음과 같이 입력한다.

SW(config-if)# spanning-tree bpdufilter enable

이 방식의 경우는 BPDU 송신만이 아닌, BPDU의 수신도 차단한다.

이 방식의 장점은 직접 설정을 해제하지 않는 한 해제되지 않는다는 점.

앞서 언급한 전체설정모드에서 하는 방법의 단점은, 이 방식에서는 발생하지 않는다.

단점은 STP구성에 포함된 포트에서 사용시, 루프가 발생할 수 있다는 것.

본래 Altn포트로 지정되서 블럭되야하는 포트가 BPDU Filtering설정이 되면, 강제적으로 Forwarding상태가 되어 버린다. 이렇게 되면 Loop구성이 되버려서 정상적인 통신을 하지 못하게 된다.

따라서, 종단포트에 대해서만 개별 인터페이스에서 설정하는 것이 좋다.



Loop Guard

STP상에서 이미 차단(Altn - BLK)된 포트가 상대 포트에게 일정시간 이상(기본값은 50초) BPDU를 받지 못하면, 차단상태에서 전송상태(Desg - FWD)로 변경된다. 이 경우, 루프가 발생하게 된다. Loop Guard는 이러한 현상을 방지하기 위한 기능으로, 이 기능이 설정된 경우에는 차단된 포트가 BPDU를 받지 못해서 전송포트로 변경되는걸 방지한다.


전체 설정 모드에서 설정하고자 하는 경우는 아래와 같이 한다.

SW(config)# spanning-tree loopguard default


개별 인터페이스에 대해서 설정하고자 하는 경우는 해당 인터페이스에 들어가서 아래와 같이 설정한다.

SW(config-if)# spanning-tree guard loop


관련 문서

Configuring Spanning Tree PortFast, BPDU Guard, BPDU Filter, UplinkFast, BackboneFast, and Loop Guard 

Catalyst 2960-X Switch Layer 2 Configuration Guide, Cisco IOS Release 15.0(2)EX 

Configuring Optional Spanning-Tree Features

댓글 없음:

댓글 쓰기