[Protocol] STP (Spanning-tree Protocol)

STP는 스위치 네트워크(L2)에서 루프를 방지하고, 스위치 간의 최적 경로를 설정하기 위해서 사용되는 프로토콜입니다.

STP는 스위치 간에 루프가 발생하는 경우 불필요한 트래픽 전송과 네트워크 혼잡을 방지하기 위해 하나의 경로만 활성화하고, 나머지 경로를 차단하는 역할을 합니다. 

 

STP Topology

위의 사진 처럼 토폴로지가 구성된다면 루프가 발생하게 됩니다. 

왜냐하면 스위치는 라우터와 다르게 목적지를 알지 못하는 패킷이 들어오면 drop 하는 것이 아니라

Broadcast를 하기 때문입니다. 즉 서로 패킷을 계속 주고 받게 됩니다. 이런 현상이 엄청나게 빠른 속도로 진행이 되기

때문에 장비는 순식간에 CPU, Memory 사용량이 한계에 달해 Down 되고 맙니다.

이런 현상을 막기 위해 각 포트마다 역할을 주고 역할이 없는 포트를 막아 루프를 방지하는것이 목적입니다. 

 

STP는 다음과 같은 순서로 동작합니다.

1. Root Bridge 선정

2. Root Port 선정

3. Designated Port 선정

4. Alternate Port 선정

 

Root Bridge 선정은 다음과 같은 방식으로 진행됩니다.

 

1.  Bridge ID 

각 스위치는 고유한 Bridge ID를 가지고 있습니다. 2byte의 우선순위 값과 6byte의 MAC 주소로 구성됩니다.

스위치들은 BPDU를 주고 받아서 우선순위가 가장 높은 스위치를 Root Bridge로 선정합니다. 

 

우선순위에는 Priority 비교, MAC 주소 비교가 있습니다. 

 

Prioirty 비교

Switch의 Prioirty는 default로 32768의 값을 가지고 있습니다. 이 값은 0부터 65535까지 가질 수 있고 설정이 가능합니다.

Prioirty가 낮을수록 우선순위가 높습니다. 

 

MAC 주소비교

Switch들의 Prioirty가 같을 경우 MAC 주소를 비교합니다. Prioirty와 마찬가지로 낮은 주소값을 가진 스위치의 우선순위가 더 높습니다. 

 

첫 번째 사진에서는 vlan 1(naive vlan)에 해당하는 STP 의 설정에 대해서 보여주고 있습니다.

Root ID는 vlan 1의 Root ID를 의미하는 것이고 Bridge ID는 command를 입력한 브릿지의 ID를 보여줍니다.

저는 Root Bridge에서 커맨드를 입력했기 때문에 두 정보가 같고, This bridge is the root라고 친절하게 알려줍니다. 

show spanning-tree vlan (number)를 입력할 경우 prioirty와 MAC address 모두 알려주지만 Bridge ID를 알려주지는 않습니다. (몰라도 상관없음) 

 

2. Root Port 선정 

Root Bridge 선정 이후 각 스위치는 Root Bridge에 대해 최적 경로를 가지고 있는 포트를 루트 포트로 선정합니다.

루트 포트는 Root Bridge에 가장 가까운 포트로, 해당 포트는 활성화되고 데이터 전송에 사용됩니다. 

 

SW1이 Root Bridge이기에 SW2, 3에서는 그와 가장 가까운 ethernet 0/0 port가 Root Port가 됩니다.

 

3. Designated Port 선정

루트 포트를 제외한 포트들 중에서 designated Port가 선정됩니다. Root Bridge로부터의 경로 비용을 비교하여 가장 낮은 비용을 갖는 포트를 Designated Port로 선정합니다. 가장 낮은 비용이란 쉽게 말해 속도가 빠르고 대역폭이 넓은 링크입니다. 만약에 Cost가 같다면 다른 것을 비교하여 선정하게 됩니다.

 

1. Bridge ID (Path Cost가 같을 경우)

Birdge ID 우선순위가 낮은 포트가 우선적으로 선택됩니다.

 

2. Port ID (Bridge ID가 같을 경우)

Port ID가 낮은 번호 일수록 우선순위가 높습니다. 여기서 의미하는 Port ID는 자신의 Port ID가 아니라 상대방의 Port ID입니다. 

 

4. Non-Designated Port 선정 (Alternate Port) 

Designated Port가 선정된 세그먼트(스위치간의 연결)에서는 나머지 포트들이 Non-Designated Port가 됩니다. 

이 포트들은  Root Bridge까지 경로 비용이 더 크므로 데이터 전송에 참여하지 않고 Blocking하여 불필요한 루프를 방지합니다. 

 

Alternate Port가 된 SW3의 Ethernet 0/1 Port는 BLK 입니다.

'네트워크' 카테고리의 다른 글

[Protocol] RARP이란? 네트워크에서의 중요성과 작동원리  (0) 2023.06.06
[Protocol] ARP (Address Resoultion Protocol)  (0) 2023.06.04
[L2] BPDU Format  (0) 2023.05.23
[L3] IP Packet Header  (0) 2023.05.19
[L2] Ethernet Frame  (0) 2023.05.19