STP
STP에 대한 설명
P. 242
STP : 루핑 방지 프로토콜
1) IEEE 802.1d : STP : Spanning Tree Protocol
~> 기본 동작 시간 : 50초
2) IEEE 802.1w : RSTP(Rapid STP) : STP의 5단계 동작을 3단계로 줄인다.
: Learning --> Forward --> Blocking
~> 기본 동작 시간 : 30초
- 현재 사용하는 스위치 : Pvst+(Per Vlan STP) : 각 VLAN마다 별도의 STP가 동작한다.
- 네트워크 장비 스위치에서는 자동으로 스위치용 프로토콜이 동작한다.
ex) IEEE 802.1Q, IEEE 802.1D
● STP 포트 상태
1. DP(Dsignated Port)
: Root Bridge의 BPDU를 다른 스위치들에게 전달하기 위해 지정된 포트(Forwarding)
2. RP(Root Port)
: Root Bridge에서 BPDU를 수신하는 포트
3. AP(Alternate Port)
: 논리적으로 BPDU 수신을 제외한 통신을 차단한 포트(Block)
● 스패닝 트리 포트 상태
차단(Block) ~> 청취(Listening) ~> 학습(Leaning) ~> 전송(Forwarding)
차단(Block)
: 차단 상태에서는 BPDU를 제외한 데이터를 송수신 할 수 없다.
만약 포트의 상태가 AP(Alternate Port)이면 차단 상태로 변경된다.
DP포트나 RP포트로 전환되면 20초의 시간이 경과 후 청취상태로 변경된다.
------ : 맥스 에이지(max age)
청취(Listening)
: 포트가 AP라면 청취상태에서 BPDU를 전송한다.
청취상태에서 15초의 시간이 경과되면 학습상태로 변경된다.
----- : 전송 지연(Forwarding delay)
학습(Leaning)
: BPDU를 수신 후 MAC 테이블에 등록한다.
학습상태에서 15초의 시간이 경과되면 전송상태로 변경된다.
----- : 전송지연(Forwarding delay)
전송(Forwarding)
: 데이터를 송수신
다운상태
: STP 비활성 상태(disabled state)
이 경우 데이터송수신은 물론 BPDU도 송수신하지 않는다.
* 기본적으로 스위치가 활성화되면 청취상태에서 시작한다.
~> 만약 DP나 RP이면 전송 상태까지 30초(15 + 15)의 시간이 걸린다.
● 실습 1
목적
: STP의 동작 원리를 살펴보자.
- 위 사진과 같은 랩에서 브로드캐스트가 발생한다면 브로드캐스트패킷은 멈추지 않고 계속 루핑을 돌 것이다.
이와같은 무한루핑을 방지하기 위하여 STP이 사용된다.
- STP의 상태(Sts)
1) Disable : 관찰 불가 (비활성)
2) Listen : LIS (대기상태) 청취상태
(20초)
3) Learning : LRN (학습상태) --> 연결된 상대방의 MAC 학습
4) Forward : FWD (전달상태) --> 정상적으로 패킷 전달
5) Blocking : BLK (블럭상태) 차단상태
----- : 인터페이스의 차단이 아니라
STP의 BPDU(정보)를 제외한 모든 패킷을 차단
SW1)
SW2)
SW3)
위에 스위치들의 spanning-tree를 살펴보면 각 인터페이스마다 상태가 보인다.
여기서 STP로 인하여 SW3의 인터페이스 f1/1이 BLK(Block)상태인 것을 확인할 수 있다.
● STP 동작 순서
● SW1 기준
1. 각 스위치의 브릿지 ID를 구한다.
- Bridge ID = Priority(32768) + Address(c401.3090.0000)
실제 구하는 방식
- Bridge ID = Priority(32768) + VLAN ID +Address(c401.3090.0000)
2. 구한 브릿지 ID 중 우선순위가 높은 스위치를 루트 브릿지 스위치로 선정한
- 우선 순위가 높은 : 먼저 설치된 (오래된/안정적인)
: 메인 스위치
SW1 : c401.3090.0000 ~> 루트 브릿지 스위치로 선정된다.
SW2 : c402.23dc.0000
SW3 : c403.300c.0000
3. 선출된 루트 브릿지 스위치는 자신의 BPDU(설정 정보) 자신의 모든 포트로 내보낸다.
: 만약 자신의 f1/0 으로 보낸 BPDU를 자신의 f1/1으로 수신했다면 Looping이 발생했음을 알 수 있다.
해결법 : 루트 브릿지 스위치로부터 가장 멀리 떨어져 있는 포트를 차단함으로써 루핑을 방지한다.
가장 멀리 떨어져 있는 포트 구하는 방법
* 우선순위
1. cost의 합이 가장 큰 포트
SW2 : f1/1
SW3 : f1/1
속도(Bandwidth) | 경로값(cost) |
10Mbps(이더넷) | 100 |
100Mbps(패스트 이더넷) | 19 |
1Gbps(1기가비트 이더넷) | 4 |
10Gbps(10기가 이더넷) | 2 |
2. 루트 브릿지 스위치로 가기 위한 이웃 스위치의 Bridge ID ~> 클수록 우선순위가 높음
스위치의 이웃 스위치 : Bridge ID가 같은경우
자신의 Bridge ID와 비교한다.
: SW3 : f1/1 ~> AP로 선정
3. Port ID로 구분한다. (기본값:128.X)
숫자가 낮으면 우선순위 높음
DP(designated Port):지정포트:루트 브릿지 스위치에서 BPDU를 발생하는 포트
RP(Root Port) :루트 브릿지 스위치에서 발생된 BPDU를 수신하는 포트
AP(alternated port):대체 포트:우선에서 가장 밀려서 블럭킹되는 포트
● 실습 2 (STP Routing)
목표
: vlan 10번은 왼쪽 안쪽라인을 통하여 패킷을 송수신하고,
vlan 20번은 오른쪽 바깥쪽라인을 통하여 패킷을 송수신하도록 설정
설정
R1)
R1#conf t
R1(config)#int f0/0
R1(config-if)#no sh
R1(config-if)#int f0/0.10
R1(config-subif)#encapsulation dot1Q 10
R1(config-subif)#ip add 10.1.1.254 255.255.255.0
R1(config-subif)#int f0/0.20
R1(config-subif)#encapsulation dot1Q 20
R1(config-subif)#ip add 20.1.1.254 255.255.255.0
SW 설정 완..
- SPANNING-TREE
SW1
SW2
SW3
SW4
VLAN 10번은 왼쪽으로만
VLAN 20번은 오른쪽으로만 패킷을 송수신하게 설정
~~> Priority 값을 변경
SW1)
VLAN 10 Priority 0
VLAN 20 Priority 0
SW2)
VLAN 10 Priority 4096
VLAN 20 Priority 8192
SW3)
VLAN 10 Priority 8192
VLAN 20 Priority 4096
SW4)
VLAN 10 Priority 32768
VLAN 20 Priority 32768
: R4에서 VLAN 10번은 왼쪽(SW2)과 오른쪽(SW3)을 비교하였을 때 오른쪽(int f1/5)이 우선순위가 낮기에 차단
: R4에서 VLAN 20번은 왼쪽(SW2)과 오른쪽(SW3)을 비교하였을 때 왼쪽(int f1/3)이 우선순위가 낮기에 차단
설정
SW1)
ESW1#conf t
ESW1(config)#spanning-tree vlan 10 priority 0
ESW1(config)#spanning-tree vlan 20 priority 0
SW2)
ESW2#conf t
ESW2(config)#spanning-tree vlan 10 priority 4096
ESW2(config)#spanning-tree vlan 20 priority 8192
SW3)
ESW3#conf t
ESW3(config)#spanning-tree vlan 10 priority 8192
ESW3(config)#spanning-tree vlan 20 priority 4096
SW4)
: priority default값이 32768이다.
SW4에서 확인
원하는대로 설정이 되었지만 마지막으로 핑통신을 통하여 한번 더 검증
스위치가 플러딩을 하여 패킷이 하나가 잡혔지만, 경로를 정한 뒤 패킷이 다시 잡히지 않는 모습을 확인할 수 있다.