Risut 2023. 6. 19. 22:29

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에서 확인

VLAN 10
VLAN 20

원하는대로 설정이 되었지만 마지막으로 핑통신을 통하여 한번 더 검증

서로 막힌 쪽의 패킷을 잡아 정말 패킷이 안가는지 확인

 

막힌 VLAN 20
막힌 VLAN 10

스위치가 플러딩을 하여 패킷이 하나가 잡혔지만, 경로를 정한 뒤 패킷이 다시 잡히지 않는 모습을 확인할 수 있다.