본문 바로가기

Ryu's Tech

[CCNP Switch] BPDU Guard


BPDU Guard는 BPDU Filter와 혼동하기 쉽다. 하지만 내용을 이해하면 구분하기 쉬울 것입니다.

BPDU Guard를 인터페이스에 걸어둘 경우 BPDU Guard가 enable된 인터페이스로 BPDU가 수신되면 포트를 Down 시키게 됩니다.

BPDU Guard는 위와같은 토폴로지에서 스위치에 종단 장치를 연결하는 것은 아무 문제가 없습니다.
PC와 같은 End-device는 BPDU를 방생시키지 않기 때문입니다.
그렇다면 BPDU Guard가 하는 일은 스위치에 무단으로 추가의 스위치를 추가하는 것을 막는 것입니다.





Spanning-tree portfast bpduguard default 명령을 통해서 모든 Access 포트에 설정을 해 줄수 있습니다.
일단은 fa0/10에 spanning-tree bpduguard enable을 통해서 설정을 해 주었습니다.

영상을 보시면 fa0/10에 bpduguard를 걸어주고 컴퓨터를 연결하면 아무 변화가 없지만 Switch를 연결했을 때는
Switch는 BPDU 프레임을 송출하기 때문에 BPDU guard가 걸려있는 포트에 BPDU를 수신하는 순간 이를 감지하고 포트를
차단해 버립니다. 이는 일반적으로 사용하는 shutdown 명령과는 좀 다른 방식으로 차단됩니다.

영상의 뒤를 보면 아시겠지만 스위치를 빼고 컴퓨터를 연결하더라도 no shutdown 명령어를 통해서 포트가 활성화 되지 않습니다.
꼭 shutdown 을 해 준 뒤 다시 no shutdown 을 입력해 주어야지만 포트가 제대로 살아나게 됩니다.
패킷 트레이서에서는 지원하지 않지만 show interface status 명령어를 통해서 err-disabled 라는 메세지를 확인할 수 있습니다.


  • 사용법
    • Global Configuration Mode
      • Switch(config)# spanning-tree portfast bpduguard default
      • portfast를 걸어주는 방식과 동일하며, bpduguard를 access mode인 스위치 포트에 설정해줍니다.
    • Interface Configuration Mode
      • Switch(config-if)# spanning-tree bpduguard enable
      • 말 그대로, 인터페이스 각각 넣어 주는 방법입니다.
    • Veryfying


Switch#sh int fa0/10
FastEthernet0/10 is down, line protocol is down (err-disabled)
  Hardware is Lance, address is 0002.1644.680a (bia 0002.1644.680a)
 BW 100000 Kbit, DLY 1000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 100Mb/s
  input flow-control is off, output flow-control is off
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:08, output 00:00:05, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue :0/40 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     956 packets input, 193351 bytes, 0 no buffer
     Received 956 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     0 watchdog, 0 multicast, 0 pause input
     0 input packets with dribble condition detected
     2357 packets output, 263570 bytes, 0 underruns

Switch#

SW(config)# show interface status






learned from 심재승.