IEEE 802.1d STP 포트 상태
Disable(비활성화)
Blocking(차단)
Listening(청취)
Learning(학습)
Forwarding(전송)
5단계 상태로 동작함
이 환경에서 ①번 구간이 장애가 발생했다고 가정한다면
기존에는 SW1 이 루트브리지 SW2 에게
①로 bpdu 메시지를 수신받았는데
그 연결이 끊긴상태지만
②를 통해 bpdu 메시지를 받게 된다.
SW1 F0/20 포트는
Listening → Learning → Forwarding
순으로 이전하여 루트 포트로 선정된다.
Listening 은 준비단계로
토폴로지에 변화가 일어났을때
말 그대로 듣고있으면서
포트역할을 어떻게 할 지 고민하는 단계로
15초 걸림
Learning 은 배우는단계로
프레임 송수신을 위한
MAC 주소 학습을 하는 단계이다.
15초 걸림
Forwarding 은 정상적으로
프레임 송수신이 가능한 상태
만약에 실제 환경이면
SW1 에 연결된 host 들은
30초동안 통신할 수 없다.
Listening + Learning = 30초
이번엔 반대로 ② 구간에 장애가 발생한다면
조금 다르다.
이 경우 SW3은 루트브리지 SW2로부터
bdpu 메시지를 받을 수 없게되고
어 그럼 내가 루트할래! 하고
SW1 에게 bdpu 메시지를 보내게 된다.
SW1은 SW2 와 SW3 에게 동시에 받게 되고
여기서 누가 더 우선순위가 높은지 판별하게 된다.
그것이 바로 Max Age 타이머 이고 20초 걸린다.
SW2 가 여전히 높은걸 알게되고
SW3 은 다시 꼬리를 말게 된다.
SW1 에서 디버깅 했을 때 비교하는 모습
bpdu 메시지는 2초마다 나가고 2초마다 누가 높은지 확인하고 있다.
이후 SW1 F0/20 은 다시
Listening → Learning → Forwarding
을 하게 된다.
이경우에 SW3 에 연결된
host 들을 생각해보면
Max age 타이머 20초
+
Listening 15초
learning 15초
해서 50초동안 먹통이 된다.
STP 개발당시에
이런 지연은 생각안하고 만들어서 그렇다.
실시간 전송이 필요한
은행이나 게임 서버같은 경우
이렇게 오래기다리면 안된다.
해결 방법으로
포트 패스트(Portfast)가 있다.
리스닝 러닝 을 건너뛰고 그냥 바로 연결해버리는 것
바로 dp forwarding
연결된 인터페이스에
spanning-tree portfast 옵션을 넣어주면 된다.
스위치에 주황색불 없이 바로 초록색불이 들어온다.
단, Listening 단계가 없기 때문에
브리징 루프가 발생될 수 있는
이중화 링크 환경에서 사용하는 것은 주의해야함.
왜냐하면 차단될 예정인 대체 포트에 포트 패스트가 동작하면
다른 스위치 포트가 연결되는 즉시
Forwarding으로 이전하기 때문에
일시적인 브리징 루프가 발생되기 때문
다시 스위치가 파악하고 차단해버리지만
순간적으로 연결된 스위치에 부하가 발생한다.
포트 패스트는 주로
PC, 서버, ip phone 에
연결된 포트에 사용한다.
트렁크포트에는 기본적으론 사용할 수 없지만
spanning-tree portfast trunk 하면 가능
백본패스트나 업링크패스트도 있지만
업링크 패스트는 대체 포트에 대해서만 Forwarding 이전을 실시
백본 패스트는 Max Age 타이머만 생략하므로
그냥 쑤레기 이다.
답은 RSTP 이다.
spanning-tree mode rapid-pvst
STP 와 대부분 같지만
제안 bpdu 와
동의 bpdu 를 교환하는 것의 차이로
우선순위가 높은 스위치가 제안을 보내면
낮은 스위치는 받고 동의를 하고
포트를 바로 RP 로 바꾸고 포워딩한다.
훨씬 빠르다. 0.00x 초 정도 걸림