< 스패닝 트리 프로토콜 >

STP(Spanning Tree Protocol) - 스위치에서 루핑을 막아주기 위한 프로토콜

스위치나 브리지 구성에서 출발지부터 목적지까지의 경로가 두 개 이상 존재할 때, 한 개의 경로만을 남겨 두고 나머지는 모두 끊어 두었다가 사용하던 경로에 문제가 발생하면 그때 끊어두었던 경로를 하나씩 살리는 방식의 프로토콜

 

① Bridge ID - 스위치나 브리지들이 통신할 때 서로를 확인하기 위해 하나씩 가지고 있는 번호. (디폴트 값은 32768)

구성은 앞 2Byte : Priority, 뒤 6Byte : Mac address

② Path Cost - 스위치가 얼마나 가까이, 빠른 링크로 연결되어 있는지를 알아내기 위한 값이며, 속도가 빠를수록 값이 작다.

둘 사이의 링크 대역폭을 1000Mbps로 나눈 값이지만, 기가비트로 넘어갈 때는 소수점이 나와 IEEE에서 정수 값으로 정의해줌






<스패닝 트리 프로토콜 구하기 법칙>

1. 네트워크당 하나의 루트 브리지를 갖는다

2. 루트 브리지가 아닌 나머지 모든 브리지는 무조건 하나씩의 루트 포트를 갖는다

- 루트포트란? 루트 브리지에 가장 빨리 갈 수 있는 포트

3. 세그먼트(스위치 간에 서로 연결된 링크)당 하나씩의 Designated 포트를 갖는다.

 



<STP 정하는 순서>

1. 누가 더 작은 Root BID(Bridge ID)를 가졌는가?

2. 루트 브리지의 Path Cost값은 누가 더 작은가?

3. 누구의 BID(Sender BID)가 더 낮은가?

4. 누구의 포트 ID가 더 낮은가?

 

BPDU란? 스패닝 트리 정보를 자기들끼리 주고받기 위해서 사용하는 프레임, 2초에 한 씩 뿌려짐

① 루트 브리지의 BID

② Root Path Cost값

③ 보내는 브리지의 BID

④ 어떤 포트에서 보냈는지를 알게 해주는 Port ID
 



<STP 1단계. 루트 브리지 뽑기>

대장 브리지를 뽑는 조건은 무조건 낮은 BID를 갖는 녀석이 대장이 됨

스위치들이 부팅을 시작하면 서로 BPDU를 보내면서 자신의 스위치 정보와 상대방의 스위치 정보를 비교해서 더 낮은 BID를 가려낸다. → 가장 낮은 BID를 갖은 스위치가 루트 브리지가 됨.

명령어)

show spanning-tree : Bridge Priority를 확인하는 명령어

spanning-tree vlan 1 priority 100 : 브리지의 Priority를 100으로 변경하는 명령어

 




<STP 2단계. Non Root Bridge의 루트 포트 뽑기>

루트 포트를 뽑는 조건은 루트 브리지와 가장 가까이 있는 포트를 말하는데. 즉, Path Cost가 가장 적게 드는 포트를 말한다.

 



<STP 3단계, Designated 포트 뽑기>

Designated 포트를 뽑는 조건은 우선 맨 처음에 루트 브리지를 뽑았기 때문에 서로의 BPDU에는 모두 같은 Root BID가 있을 것이다. 두 번째 조건인 Path Cost를 이용하여 가장 가까이 있는 포트가 Designated 포트로 뽑힌다.(루트 브리지의 나머지 포트는 모두 Designated가 되는 것을 알 수 있다)

두 번째 조건까지 똑같다면 <STP 정하는 순서>에 세 번째 단계인 Sender ID를 비교해보면 된다.

 



<스패닝 트리 프로토콜 5가지 상태 변화>

① Disabled : 포트가 고장나서 사용할 수 없거나 포트를 shutdown시켜 놓은 상태

- 데이터 전송 : X

- 맥 어드레스 : 배울 수 없음

- BPDU : 못 받음

 

② Blocking : 스위치를 맨 처음 켜거나 포트를 다시 살렸을 때 블로킹 상태가 됨. 루트 브리지, 루트 포트, Designated 포트를 뽑는 과정이 블로킹 상태에서 발생한다.

- 데이터 전송 : X

- 맥 어드레스 : 배울 수 없음

- BPDU : 받음

 

③ Listening : 블로킹 상태에 있던 스위치 포트가 루트 포트나 Designated 포트로 선정되면 포트는 바로 리스닝 상태로 넘어감. But 새로운 스위치가 접속했거나 스위치의 구성 값이 바뀌면서 루트 포트나 Designated 포트에서 Non Designated 포트로 상황이 변하면 블로킹 상태로 돌아감

- 데이터 전송 : X

- 맥 어드레스 : 배울 수 없음

- BPDU : 받음

④ Learning : 리스닝 상태에 있던 스위치 포트가 포워딩 딜레이(15초)동안 그 상태를 유지하면 러닝 상태로 넘어감

- 데이터 전송 : X

- 맥 어드레스 : 배울 수 있음

- BPDU : 받음

 

⑤ Forwarding : 스위치 포트가 러닝 상태에서 다른 상태로 넘어가지 않고, 포워딩 딜레이(15초)동안 유지하면 포워딩 상태로 넘어간다.

- 데이터 전송 : O

- 맥 어드레스 : 배울 수 있음

- BPDU : 받음



 

<스패닝 트리에 변화가 생기는 경우>

① Hello Time : 루트 브리지가 얼마만에 한 번씩 헬로 BPDU를 보내는지에 대한 시간. 디폴트 2초

② Max Age : 브리지들이 루트브리지로부터 얼마 동안 헬로 패킷을 받지 못했을 때 루트 브리지가 죽었다고 생각하고 새로운 스패닝 트리를 만들기 시작하는가에 대한 시간.

③ Forwarding Delay : 브리지 포트가 블로킹 상태에서 포워딩 상태로 넘어갈 때까지 걸리는 시간.



1. 루트 브리지로부터 헬로패킷을 2초마다 받던 스위치 C에 갑자기 헬로패킷이 들어오지 않게 된다.

2. 스위치 C는 Max Age시간인 20초 동안 기다리지만, E0포트를 통해 들어오지 않는다

3. 스위치 C는 스위치 B에서 전달해 준 헬로패킷을 자신의 E1포트로 받아들여(원래 블로킹 상태였지만, BPDU는 받아들임), E1포트를 루트 포트로 세팅하게 된다.

4. Non Designated 포트로 블로킹 상태에 있던 스위치 C의 E1 포트를 루트 포트로 선정했다고 바로 포워딩이 되는건 아니다. 포워딩 딜레이 시간 15초를 두 번(리스닝→러닝→포워딩) 기다려야 포워딩 상태로 넘어가게 된다.




VLAN10과 VLAN11 두 VALN을 만들어 종단 장치인 R5와 R7는 VLAN10으로 R6와 R8은 VLAN11로 지정한다.

그 후, R1~R4간의 STP를 조정하여 다음그림과 같이 만들어보자

위에 설명한 방법으로 하려면 R1에 루트(여기 실습에서는 VLAN10만 생각하자)브리지로 만들고, R2를 secondary브리지로 만들어야 가능하다.

 

R1)

R1의 구성

spanning-tree vlan 10 priority 8192
spanning-tree vlan 11 priority 16384

interface FastEthernet1/0
 no switchport
 ip address 1.1.1.1 255.255.255.0

interface FastEthernet1/1
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface FastEthernet1/2
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface Vlan10
 ip address 10.10.10.254 255.255.255.0

router ospf 1
 network 1.1.1.1 0.0.0.0 area 0
 network 10.10.10.254 0.0.0.0 area 0

 

show spanning-tree brief 명령어를 쳤을때 R1의 STP

VLAN10
  Spanning tree enabled protocol ieee
  Root ID    Priority    8192
             Address     c400.0b9c.0001
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    8192
             Address     c400.0b9c.0001
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface                                   Designated
Name                 Port ID Prio Cost  Sts Cost  Bridge ID            Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/1      128.42   128    19 FWD     0  8192 c400.0b9c.0001 128.42 
FastEthernet1/2      128.43   128    19 FWD     0  8192 c400.0b9c.0001 128.43

 

 

 

R2)

R2의 구성

spanning-tree vlan 10 priority 16384
spanning-tree vlan 11 priority 8192

interface FastEthernet1/0
 no switchport
 ip address 1.1.1.2 255.255.255.0

interface FastEthernet1/1
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface FastEthernet1/2
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface Vlan11
 ip address 11.11.11.254 255.255.255.0

router ospf 1
 log-adjacency-changes
 network 1.1.1.2 0.0.0.0 area 0
 network 11.11.11.254 0.0.0.0 area 0

 

show spanning-tree brief 명령어를 쳤을때 R2의 STP

VLAN10
  Spanning tree enabled protocol ieee
  Root ID    Priority    8192
             Address     c400.0b9c.0001
             Cost        38
             Port        43 (FastEthernet1/2)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    16384
             Address     c401.0b9c.0001
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface                                   Designated
Name                 Port ID Prio Cost  Sts Cost  Bridge ID            Port ID
-------------------- ------- ---- ----- --- ----- ---------------------------
FastEthernet1/1      128.42   128    19 BLK    19 32768 c403.1ce8.0001 128.42 
FastEthernet1/2      128.43   128    19 FWD    19 32768 c402.1ce8.0001 128.43

 

 

 

R3)

R3의 구성

interface FastEthernet1/0
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface FastEthernet1/1
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface FastEthernet1/2
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface FastEthernet1/10
 switchport access vlan 10

interface FastEthernet1/11
 switchport access vlan 11

 

show spanning-tree brief 명령어를 쳤을때 R3의 STP

VLAN10
  Spanning tree enabled protocol ieee
  Root ID    Priority    8192
             Address     c400.0b9c.0001
             Cost        19
             Port        42 (FastEthernet1/1)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32768
             Address     c402.1ce8.0001
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface                                   Designated
Name                 Port ID Prio Cost  Sts Cost  Bridge ID            Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/0      128.41   128    19 FWD    19 32768 c402.1ce8.0001 128.41 
FastEthernet1/1      128.42   128    19 FWD     0  8192 c400.0b9c.0001 128.42 
FastEthernet1/2      128.43   128    19 FWD    19 32768 c402.1ce8.0001 128.43 
FastEthernet1/10     128.51   128    19 FWD    19 32768 c402.1ce8.0001 128.51

 

 

 

R4)

R4의 구성

interface FastEthernet1/0
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface FastEthernet1/1
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface FastEthernet1/2
 switchport trunk native vlan 99
 switchport trunk allowed vlan 1,10,11,1002-1005
 switchport mode trunk

interface FastEthernet1/10
 switchport access vlan 10

interface FastEthernet1/11
 switchport access vlan 11

 

show spanning-tree brief 명령어를 쳤을때 R4의 STP

VLAN10
  Spanning tree enabled protocol ieee
  Root ID    Priority    8192
             Address     c400.0b9c.0001
             Cost        19
             Port        43 (FastEthernet1/2)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32768
             Address     c403.1ce8.0001
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface                                   Designated
Name                 Port ID Prio Cost  Sts Cost  Bridge ID            Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/0      128.41   128    19 BLK    19 32768 c402.1ce8.0001 128.41 
FastEthernet1/1      128.42   128    19 FWD    19 32768 c403.1ce8.0001 128.42 
FastEthernet1/2      128.43   128    19 FWD     0  8192 c400.0b9c.0001 128.43 
FastEthernet1/10     128.51   128    19 FWD    19 32768 c403.1ce8.0001 128.51

posted by 경원구