Spanning Tree Protocol(STP) 2
## STP 경로 조정 ##
- Cisco Switch의 경우 기본적으로 PVST+로 동작한다. 즉, VLAN 마다 독립된 STP 프로세스가
동작한다.
- 하지만 관리자가 별도의 경로 조정 설정을 입력하지 않는다면 모든 VLAN은 동일한 Root
Bridge와 Block 포트를 사용하기 때문에 같은 경로를 사용하게 된다.
(MAC 주소를 기반으로 역할이 결정되기 때문이다)
=> 결과적으로 트래픽이 분산되지 않는다
- 관리자는 상황에 따라서 각 VLAN 마다 다른 경로를 사용할 수 있도록 STP 경로를 조정하여
트래픽을 분산처리 할 수 있다.
- STP 경로 조정은 다음과 같은 방법으로 수행이 가능하다.
[1. Bridge-ID 변경]
- Bridge-ID는 다음과 같이 구성되어 있다.
<Bridge Priority(32,768)> + <MAC Address>
- Cisco Switch의 변경 가능한 Bridge Priority 값의 범위는 0 - 61,440이고, 4096의 배수로 변경이
가능하다.
<IOU1 => VLAN10/VLAN20 Root Bridge>
conf t
spanning-tree vlan 10 priority 4096
spanning-tree vlan 20 priority 4096
<IOU2 => VLAN 20 Secondary Root>
conf t
spanning-tree vlan 20 priority 8192
<IOU3 => VLAN 10 Secondary Root>
conf t
spanning-tree vlan 10 priority 8192
[2. Path Cost 변경]
- 특정 VLAN이 전송되길 원하는 포트의 Path Cost를 반대편 포트의 Path Cost보다 낮게 설정
하면 해당 포트가 Root 포트로 선출되어 Forwarding 상태가 된다.
<IOU4>
conf t
int e0/1
spanning-tree vlan 10 cost 50
!
int e0/0
spanning-tree vlan 20 cost 50
!
[3. Port ID 변경]
<SW1>
spanning-tree vlan 10,20 priority 4096
conf t
int fa 0/2
spanning-tree vlan 20 port-priority 16
============================================================================================================
## RSTP(Rapid Spanning Tree Protocol) ##
- STP의 경우 BLK인 포트가 FWD으로 전환될 때 직접 연결된 링크 단절시 30초, 간접 링크 단
절시 50초라는 convergence time이 발생한다. 앞서 공부한 Uplinkfast, Backbonefast, timer 조정
등의 방법을 사용하면 시간을 단축시킬 수 있지만 한계가 존재한다.
때문에 IEEE가 2001년 6월에 RSTP를 발표했다. 초기에는 IEEE 802.1w에서 표준화했으나
때문에 IEEE가 2001년 6월에 RSTP를 발표했다. 초기에는 IEEE 802.1w에서 표준화했으나
2004년 802.1D-2004의 17장에 정의되었다.
- RSTP의 경우 STP와 기본동작(스위치의 역할과 포트의 역할 지정 방식)은 거의 동일하지만
STP의 단점인 convergence time을 획기적으로 단축시킨다는 장점이 있다.
STP의 경우 링크의 다운시 루프 발생의 가능성 때문에 BLK포트를 바로 활성화하지 않고, 특
STP의 경우 링크의 다운시 루프 발생의 가능성 때문에 BLK포트를 바로 활성화하지 않고, 특
정 convergence time이 지난후 해당 포트를 활성화한다.
하지만 RSTP의 특정 스위치가 자신의 BPDU의 정보가 우선할 경우 자신이 Designated 포트
임을 주장하는 proposal(제안) BPDU를 전송하고, 이를 수신한 상대 포트는 해당 제안에 동의
하면 agreement(동의) BPDU를 전송하면서 자신이 root 포트 상태가 되어 바로 FWD 상태로
변경한다. 또한 agreement BPDU를 수신한 Designated 포트 역시 자신의 상태를 FWD 상태로
변경한다.
즉, STP와는 달리 RSTP는 순간적으로 FWD 상태로 변경된다.
-------------------------------------------------------------------------------------------------------------------------
- RSTP로 동작시키기 위해서는 [spanning-tree mode rapid-pvst] 명령어를 사용한다.
다시 STP로 동작시키려면 [spanning-tree mode pvst], [no spanning-tree mode rapid-pvst] 명령어
다시 STP로 동작시키려면 [spanning-tree mode pvst], [no spanning-tree mode rapid-pvst] 명령어
를 사용한다.
- RSTP는 STP가 토폴로지 변화시 사용하는 TCN BPDU는 사용하지 않는다. RSTP는 TCN
BPDU와 TCA를사용하지 않으나 STP가 동작하는 스위치와의 호환성을 위해 TCA 비트를 사
용한다.
** RSTP는 포트의 역할에는 Root 포트, Designated 포트, alternate 포트, Backup 포트 및
disabled 포트가 있다. **
-> Designated 포트 : STP의 지정포트와 동일.
-> Root 포트 : STP의 루트포트와 동일.
-> Alternate 포트 : 평소에는 BLK 상태에 있다가 root 포트가 다운되면 그 역할을 이어받는 포
트.
-> Backup 포트 : Designated 포트가 다운될 경우 그 역할을 이어받는 포트. 스위치가 자신이
보낸 BPDU를 다른 포트를 통해 수신할 경우 두 포트중 낮은 순위의 포트가 Backup이 된
다. Hub와 복수개의 링크로 접속할 때 생성되는 포트다. Backup포트도 데이터 프레임을 송
수신하지 않고, BLK 상태에 있다.
-> Disabled 포트 : RSTP에서 역할이 없는 포트를 말한다. (ex. shutdown된 포트)
** RSTP 포트 상태 **
- Discarding(폐기)상태, Learning(학습)상태, Forwarding(전송)상태가 있다.
-> Discarding 상태 : RSTP의 Discarding(폐기)상태는 STP의 Blocking 상태와 동일하게 데이
터 프레임과 BPDU를 전송하지 않지만 BPDU를 수신한다. Cisco 카탈리스트 스위치의 경
우 STP와 동일하게 Discarding 대신 Blocking이라는 용어를 사용한다.
-> Learning 상태 : STP의 Learning과 동일하지만 15초의 시간을 갖는 STP와 다르게 시간이
아주 짧다. 해당 포트로 MAC table을 학습하는 단계이다.
-> Forwarding 상태 : 데이터 frame을 전송하는 상태. STP와 동일하다.
-------------------------------------------------------------------------------------------------------------------------
** RSTP 링크 종류 **
- 상대 장비에 따른 분류 -
-> link : 상대방 장비도 RSTP로 동작하는 경우
-> edge : 상대방 장비가 end device일 경우 (즉, STP가 동작하지 않는 장비)
-> peer : 상대방 장비가 STP와 같이 RSTP가 아닌 프로토콜로 동작하는 스위치와 연결된 경
우
- 포트 duplex에 따른 분류 -
-> point-to-point 링크 : full-duplex로 동작하는 포트
-> shared 링크 : half-duplex로 동작하는 포트
=> RSTP의 Designated 포트는 edge포트, point-to-point link로 동작할 경우에만 즉시 FWD 상태
로 변경.
-------------------------------------------------------------------------------------------------------------------------
< RSTP의 동작 >
1) 브리지 ID가 낮은 스위치가 Root Switch가 된다.
2) Root Switch는 상대 스위치에게 proposal BPDU를 전송. 이렇게 Designated 포트가 될 포트에
서 Proposal을 전송한다.
STP의 경우에는 Proposal BPDU가 없고, forward delay(15초) 동안 2초 주기로 설정BPDU를
반복해서 전송.
하지만 RSTP는 Proposal BPDU를 전송하기 때문에 포트의 역할을 빨리 정할 수 있다.
STP의 경우에는 활성화된 포트의 역할이 Root포트 혹은 Designated포트이면 Listening 상태
에서 시작해 30초가 지나야 Forwarding 상태가 된다.
3) proposal BPDU를 수신한 스위치들은 수신 포트를 제외한 나머지 포트를 모두 BLK 상태로
변경. 이유는 proposal을 수신한 포트를 Root포트로 정하고 바로 FWD상태로 변경해도 루프
가 발생하지 않게 하기 위해서이다.
이렇게 Root포트를 제외한 나머지 포트를 차단하는 것을 Synchronization(동기화)라고 부른
다.
4) proposal BPDU를 수신한 스위치들은 수신한 포트의 역할을 Root포트로 동의하는 agreement
4) proposal BPDU를 수신한 스위치들은 수신한 포트의 역할을 Root포트로 동의하는 agreement
BPDU를 Root Switch에게 전송한다. 그후 자신의 포트 역할을 FWD상태로 변경한다.
5) agreement BPDU를 수신한 Root 스위치는 수신한 포트를 FWD 상태로 변경한다.
6) Root 스위치가 아닌 스위치에서 designated 포트가 있을 경우 마찬가지로 proposal BPDU를
상대에게 전송한다.
하지만 상대 포트가 alternate 포트일 경우에는 agreement BPDU를 전송하지 않는다..
이 경우 해당 포트는 30초동안(차단 15초, 학습15초) BPDU를 전송하고 포트 상태를 FWD으
로 전환한다.
해당 포트가 30초 동안 BLK 상태여도 데이터 프레임을 전송하는 포트들은 이미 활성화 되있
기 때문에 크게 영향을 미치지 않는다.
< 간접 Link 다운시 동작 >
- STP의 경우 간접 링크가 다운시 후순위 BPDU를 max-age(20초)동안 수신한 다음 30초
(Listening, Learning)를 지나 FWD 상태로 변환된다. 즉, 총 50초 시간이 걸린다.
- 하지만 RSTP의 경우 BLK이었던 포트가 후순위 BPDU 수신시 자신의 포트가 Designated 포
트 역할을 하기 위해 바로 상대방 포트에게 Proposal BPDU를 전송한다.
원래 Designated 포트역할을 하던 상대방 포트는 선순위의 BPDU를 수신했기 때문에 상대방
의 proposal에 동의하고 agreement를 전송한다. agreement를 수신한 포트는 BLK에서 FWD 상
태로 전환된다.
- 다운되었던 포트가 복구될 경우 일단 모든 포트를 차단한 다음 Root 스위치의 proposal을 수
신한다.
그 후 agreement를 전송하고 다운되었던 해당 포트는 Root포트로 변경되어 즉시 FWD 상태로
전환된다.
그리고 해당 포트가 다운되었을 동안 Root포트 역할을 하던 포트는 BLK 상태로 잠시 변경된
후 FWD 상태로 전환될 때까지 30초가 걸린다.(상대방 포트가 altn이기 때문에 agreement를 전
송하지 않는다.)
하지만 상대 포트가 어차피 alternate 포트이기 때문에 통신과는 전혀 상관이 없다.
< 직접 Link 다운시 동작 >
- Root포트가 다운시 alternate포트가 Root포트 역할을 하면서 즉시 FWD 상태가 된다.
- 다운되었던 포트 복구시 Designated포트로 간주된다. 그후 Root Switch에게서 선순위 BPDU
를 받고 새로 활성화된 포트를 Root 포트로 만든다. 그후 모든 포트를 잠시 차단후 alternate 포
트를 지정하고, Root포트로 Root 스위치에게 agreement BPDU를 전송한 다음 FWD 상태로 만
든다.
int range e0/0 - 1
duplex full
spanning-tree link-type point-to-point
!
=> IOU 경우 Full Duplex로 수동 설정해도 인식이 되지 않는다. 때문에 다음과 같이 강제로
'point-to-point' link-type으로 변경한다.
spanning-tree link-type point-to-point
<1/2/3/4>
spanning-tree mode rapid-pvst
님 못생겼어요...
답글삭제