Spanning Tree Protocol로서 데이터 링크 계층에서 루핑 방지를 위해서 스위치간 통신하는 프로토콜을 의미
루핑이 발생하면, 스위치의 CPU 사용률이 100%에 도달해 장비가 다운될 수 있음
스패닝 프로토콜에 대한 정보를 포함하는 패킷
Configuration BPDU?
BPDU은 루트 브릿지가 보내는 Configuration BPDU가 있음
처음엔 모두 루트 브릿지로 생각하기 때문에, 모든 브릿지에서 Configuration BPDU를 전송
이후에는, 루트 브릿지만 Configuration BPDU를 전송
TCN BPDU?
포트 상태 변화를 알리기 위한 TCN BPDU가 존재(Topology Change Notification)
TCN BPDU를 수신하면, 맥 어드레스 테이블의 에이징 타임이 300초에서 15초로 변경
에이징 타임 15초는 Listening이 끝나고 Learning이 시작할 때까지 걸리는 시간
Message Age
Max Age?
Hello Time?
Forward Delay?
브릿지(스위치) ID가 가장 낮은 것이 선정
초기에는 서로 루트 브릿지라고 주장하다가, 서로의 BPDU Configuration을 통해서 루트 브릿지 선정
루트 브릿지가 선정되면, 논루트 브릿지에서는 루트 포트가 결정
루트 포트
논루트 스위치에서 루트 포트가 선정
Path Cost가 가장 낮은 포트
연결된 상대방의 Bridge ID가 가장 낮은 포트
연결된 상대방의 Port ID가 가장 낮은 포트
데지그네이티드 포트
특정 세그먼트에서 아래 기준으로 결정
Root Bridge의 모든 포트
Switch 자체의 Path Cost가 낮은 Switch의 포트
자신의 Bridge ID가 가장 낮은 Switch의 포트
자신의 Port ID가 가장 낮은 Switch의 포트
블락 포트
여러 스위치가 연결된 상황에서, 포트가 다운되면 즉시적으로 다른 스위치에서 경로를 바꿀 수 없음
경로를 바꿀 수 없는 이유는 맥어드레스 테이블의 에이징 타임과 블락 포트의 컨버전스 타임과 관련
TCN BPDU를 통해서, 맥어드레스 테이블의 에이징 타임을 Forwarding Delay로 변경하도록 구성
TCN BPDU가 Forwarding Delay는 Listening 이후 Learning이 될 수 있도록 Listening 시간과 동일
직접 링크 단절 시 컨버전스 타임은 Forwarding Delay * 2(Listening + Learning)
간접 링크 단절 시 컨버전스 타임은 Forwarding Delay * 2 + Max Age
Portfast?
스위치의 인터페이스에 설정
종단 장치(PC, 서버)를 연결할 때 설정, 포트를 다운시키고 업시켰을 때 컨버전스 타임이 0이다.
Uplinkfast
2개의 스위치간 2개의 링크가 있을 때 설정
직접 연결된 링크가 다운될 시에 블락 포트를 루트 포트 혹은 데지그네이티드 포트로 전환
Backbonefast?
스위치에 설정
백본 스위치는 모든 프레임들이 지나가는 스위치를 의미
낮은 BPDU 패킷을 받은 스위치가 직접 루트 스위치에 질의(RLQ : Root Link Query)
간접 연결된 링크가 다운될 시에 맥스 에이지를 기다리지 않고 리스닝 상태로 전환
관련된 모든 스위치에 설정해야 컨버전스 타임이 2 * Forwarding Delay로 수렴