RSTP

- RSTP란?


기존 STP의 컨버전스 타임을 최소화하는 방식의 STP를 이야기한다. Rapid-STP의 줄임말이다.



- RSTP의 BPDU





RSTP의 BPDU구조는 위 그림과 같다.


전체적으로 일반 STP의 BPDU구조와 크게 다르지 않다.


둘사이의 차이점은


▶ STP는 35바이트의 길이를 가지지만 RSTP는 36바이트의 길이를 가진다. 마지막에 버전 1 길이 필드가 추가되어 36바이트이다.

▶ 프로토콜 버전이 항상 2이다.


▶ BPDU 종류 필드가 항상 2이다. 이는 RSTP BPDU임을 의미한다.


▶ 위 그림처럼 플래그 필드 내용이 추가되었다.

    STP에서는 플래그필드의 0번과 7번만을 사용하였지만 RSTP에서는 우측 그림과 같이 플래그필드를 이용한다.


1) TC : 토폴로지가 변화 되었음을 알릴 때 사용합니다.


2) 제안 : BPDU를 전송하는 포트가 지정포트로 동작하겠다는 것을 제안할 때 사용합니다.


3) 포트역할 : 00 - 미정, 01 - 대체, 10 - 루트, 11 - 지정


4) 학습 : 학습상태임을 표시합니다.


5) 전송 : 전송상태임을 표시합니다.


6) 동의 : 상대측 포트가 보낸 제안 BPDU를 동의하여 자신은 루트포트로 동작하겠다는 것을 알릴 때 사용합니다.


7) TCA : 토폴로지 변화를 알리는 BPDU를 수신했음을 알릴 때 사용합니다.





- RSTP 포트 종류


지정포트 : STP에서의 지정포트와 같은 역할이다. 특정 세그먼트에서 루트 스위치 방향으로 수신받는 포트.

루트포트 : STP의 루트 스위치와 동일하다. 특정 세그먼트에서 루트 스위치 방향으로 전송하는 포트.

대체포트 : 루트포트가 다운되면 그 역할을 이어받는 포트

백업포트 : 지정포트가 다운되면 그 역할을 이어받는 포트. 스위치가 자신이 보낸 BPDU를 다른 포트를통하여 수신할 때 그 중 후순위 포트가 백업포트가 된다.

비활성 포트 : RSTP에서 역할이 없는 포트를 말함. shutdown된 포트 등이 여기에 해당한다.




- RSTP 포트 상태


폐기 : 일반적으로 차단상태라고 생각하면 됩니다. 데이터 프레임과 BPDU를 전송하지 않고 BPDU 수신합니다.

학습 : STP의 학습상태와 동일합니다. MAC 주소 테이블을 채우기 시작하며, 지정포트라면 BPDU 전송을 시작합니다.

전송 : STP의 전송상태와 동일합니다.




- RSTP 링크 종류


포인트 투 포인트 링크 : 풀 듀플렉스(full duplex)로 동작하는 포트

세어드 링크 : 하프 듀플렉스 (half duplex)로 동작하는 포트

링크 : 상대 장비도 RSTP로 동작하는 스위치와 연결된 포트

엣지 : PC나 서버등과 같이 종단장치와 연결되어 스패닝트리가 동작하지 않는 포트

피어 : RSTP가 아닌 다른 프로토콜 (STP같은)이 동작하는 스위치와 연결된 포트




- RSTP 토폴로지 구성 절차





SW1의 priority 값을 0으로. SW2를 4096으로 잡아줍니다. 그렇게 되면 SW1의 root switch가 되며 SW2가 SW3보다 선순위 스위치가 됩니다.

이 상태에서 RSTP토폴로지가 생성되는 과정을 간략히 보겠습니다.


* 앞서 말씀드렸다시피 RSTP는 지정포트와 루트포트간에 제안과 동의 BPDU교환을 통해 즉시 전송상태가 됩니다.

스위치가 부팅될 때, 토폴로지가 변화되어 새로운 루트포트가 생겼을 때 등 대부분 상황에서 이 작업을 거치게 됩니다.

Edge port는 즉시 전송상태로 됩니다.


* 루트포트가 헬로 주기의 3배 (헬로주기는 2초)동안 BPDU를 받지 못하면 RSTP 재계산이 이루어 집니다.

* 지정포트가 RSTP 루트포트와 연결되지 않은 경우에는(백업포트, PC등과 연결된 포트 중 portfast가 설정되지 않은 포트 등) 상대방의 동의 BPDU를 수신하지 않으므로 15초간의 차단상태 -> 15초간의 학습상태 -> 전송상태가 됩니다.

* STP가 설정된 포트와 연결되면 컨버전스 절차는 STP에 따르게 됩니다.



1) STP와 마찬가지로 priority값이 가장 우선하는(숫자가 낮은) SW1이 root switch가 됩니다.

2) root switch는 상대 스위치 SW2, SW3에게 포트 역할을 지정포트로 설정한 제안 BPDU를 전송한다 (SW1의 f1/14, f1/10이 지정포트라고 제안한다)
이 처럼 제안 BPDU를 전송하는 포트의 역할은 항상 지정포트가 됩니다.

3) 스위치 SW2와 SW3은 RSTP제안 BPDU를 수신한 포트를 제외한 나머지 포트를 모두 차단상태로 설정합니다. 이 처럼 루트포트 후보를 제외한 모든 포트를 차단하는 것을 동기화(synchronization)라고 합니다. 이는 루프 방지를 위한 절차입니다.

4) SW2, SW3포트 역할을 루트포트로 설정한 동의 BPDU를 SW1에게 전송합니다. 이 처럼 동의 BPDU를 전송한 포트는 루트포트로 설정됩니다.

5) 동의 BPDU를 수신한 SW1은 스위치 SW2, SW3이 루트포트를 제외한 모든 포트를 차단한 것을 확인 후, SW2, SW3과 연결된 포트들 (f1/14, f1/10)을 전송상태로 변경합니다.

6) SW2는 자신의 포트 f1/14가 지정포트 이므로 포트역할을 지정포트로 설정한 제안 BPDU를 SW3에게 전송합니다.(선순위 priority값) 하지만 SW3의 f1/12포트는 대체포트이기 때문에 동의 BPDU를 전송하지는 못합니다.

7) 이 처럼 지정포트로 부터 RSTP BPDU를 수신하였지만 자신이 루트포트가 될 자격이 없으면 응답하지 않습니다. 응답을 받지 못한 상대방 (SW2의 f1/10)은 차단상태에서 15초동안 BPDU를 계속 전송합니다.

8) 계속 응답을 받지 못한 상태로 15초가 지나면 학습상태로 변경되며 다시 15초의 시간이 흐르면 전송상태로 설정됩니다.








이 상황에서 SW1과 SW2사이의 링크가 단절되게 다음과 같은 절차로 토폴로지가 변경됩니다.


1) SW2의 루트포트인 f1/14를 다운시키면 SW2는 자신이 루트 스위치라고 간주합니다. SW3에게 제안 BPDU를 전송하지만 이는 후순위 BPDU가 됩니다.


2) SW2에게서 후순위 BPDU를 수신한 SW3은 간접 링크인 SW2와 루트 스위치간의 링크가 다운된 것을 알게됩니다.


3) 이제 토폴로지가 변경되어 SW3의 f1/12가 지정포트가 되고, SW3은 SW2에게 루트 스위치가 SW1로 설정되었다는 선순위 BPDU를 전송합니다. (SW1의 priority 값이 SW2보다 선순위이기 때문입니다)


4) SW2가 SW3이 전송한 BPDU를 수신하면 자신의 f1/10포트를 루트포트로 지정합니다.


5) SW2가 f1/10포트를 싱크시키고 SW3은 자신의 f1/12포트를 지정포트로 하겠다는 제안 BPDU를 전송합니다.


6) SW2는 이 제안 BPDU를 수신한 후 동의 BPDU를 전송, SW3이 이를 수신하면 양측 포트가 모두 전송상태로 변경됩니다.




글로 하니 절차가 많이 복잡해 보이지만 이 과정에서 STP와 같이 15초씩 기다리는 과정 없이 컨버전스가 이루어 지기 때문에 포트의 변화가 빠르게 이루어집니다.


다시 결론을 지으면 처음 말씀드린거와 같이 RSTP는 포트의 상태가 빠르게 변하는 STP라고 보시면 됩니다. 절차가 다소 다를 뿐 기본적인 포트의 변화, 상태는 STP와 동일하다고 보시면 됩니다.


피터전샘의 책을 보면 RSTP가 구성된 상태에서의 다양한 상황에 대한 이야기가 나옵니다. 가급적이면 다 읽어보시고 실습을 해보시길 권합니다.


이번 포스팅은 여기까지 하도록 하겠습니다.

댓글

이 블로그의 인기 게시물

ping 일반오류 (General failure)를 고쳐보자

Windows 10. 공유폴더 쉽게 삭제하기 (feat. CMD)

Piolink TiFront Switch password recovery (파이오링크 스위치 비밀번호 초기화)