본문 바로가기
Network/CCNA

STP 강의 (02)

by 계영수 2024. 11. 1.
728x90

스패닝 트리 프로토콜은 어떻게 동작하는가?

 

STP/RSTP 알고리즘은 스위치로 구성된 네트워크에서 프레임을 전달하기 위한 단 하나의 경로를 생성합니다. 이러한 알고리즘은 나무의 뿌리에서 각 잎까지 단 하나의 유일한 경로가 만들어지는 것과 같습니다. 그래서 스패닝 트리 프로토콜에 트리라는 단어가 들어있습니다. 


메모

오늘날 사용하는 스위치는 그 뿌리가 브리지라는 장비에 있습니다. STP은 브리지로 만들어진 네트워크에서 루프를 제거하기 위한 용도로 개발되었습니다. 그래서 STP/RSTP의 용어와 명령어 출력을 보면 오늘날은 잘 사용하지 않는 용어인 Bridge라는 단어를 흔하게 볼수 있습니다. 스위치와 브리지는 개념적으로 크게 다른 장비는 아니기 때문에 STP/RSTP를 공부할때는 굳이 브리지와 스위치라는 단어를 구분할 필요는 없겠습니다.


STP에서 사용하는 프로세스는 스패닝 트리 알고리즘 (Spanning-Tree Algorithm /STA)이라고도 하며, 각 스위치들은 연결된 포트들 중에서 Forwarding 상태로 두어야 할 인터페이스를 선택합니다. Forwarding 상태로 결정되지 않은 인터페이스의 경우, 결국 STP/RSTP는 인터페이스를 Blocking 상태로 둡니다. 즉, STP/RSTP는 단순히 Forwarding해야 할 인터페이스를 결정하고, 포워딩되지 않는 인터페이스는 Blocking 상태로 전환됩니다.

 

STP/RSTP는 인터페이스를 포워딩 상태로 전환할지 여부를 선택하기 위해 세 가지 원칙을 사용합니다.

  • STP/RSTP는 루트 브리지Root Bridge를 선출합니다 . STP는 루트 브리지의 동작중인 모든 인터페이스를 포워딩 상태로 전환합니다. (참고로 루트 브리지가 아닌 브리지는 모두 넌-루트Non-Root 브리지라고 합니다).
  • 각 넌-루트 브리지는 STP/RSTP 인터페이스 비용(Cost)을 기반으로 자신으로부터 루트 브리지까지 최소 비용이 소요되는 경로를 계산합니다. 루트 브리지까지 최소 비용이 소요되는 넌-루트 브리지의 포트를 루트 포트Root Port (RP)라고 부르고 전체 소요되는 비용을 넌-루트 브리지의 루트 코스트Root Cost(루트 브리지까지 가는데 소요되는 비용)라고 합니다 .
  • 오늘날 스위치의 링크는 딱 2대만 연결됩니다. 과거에는 허브를 사용하기 때문에, 스위치의 하나의 포트는 허브를 통해 다수의 기기에 연결될 수 있었지만 오늘날의 스위치 포트는 포트에 연결된 링크를 통해서 딱 한개의 장비만 연결된다는 의미입니다. 하나의 링크에 2대의 스위치가 연결되는 경우, 2대의 스위치중 Root Bridge까지의 비용이 낮은 스위치가 데지그네이티드 브리지Designated Bridge가 되고 해당 링크에 연결된 데지그네이티드 브리지의 포트가 그 링크의 데지그네이티드 포트Designated Port(DP)가 됩니다.

루트 브리지는 루트 브리지의 포트들이 항상 Designated Port(DP) 선출 경쟁에서 이기기 때문에 모든 인터페이스를 포워딩 상태에 두게 됩니다.  중요한 것은 모든 루트 브리지의 동작중인 인터페이스가 프레임을 포워딩한다는 것을 기억하는 것입니다.


최종적으로 루트 포트도 아니고 데지그네이티드 포트도 아닌 인터페이스는 블로킹상태에 놓입니다.  아래 표는 STP/RSTP가 포트를 포워딩 또는 블로킹 상태에 두는 이유를 정리하였습니다.

포트의 특성 STP 상태 설명
루트브리지의 모든 포트 Forwarding 루트 브리지는 항상 모든 연결된 세그먼트에서 Designated 스위치입니다. 따라서 루트 브리지의 동작중인 포트는 Designated Port입니다.
Non-Root브리지의 RootPort Forwarding Non-Root Bridge가 Root Bridge에 도달하는 데 가장 적은 비용이 드는 포트(가장 낮은 Root Cost).
각 LAN Segment의
DesignatedPort
Forwarding 한 세그먼트로 가장 적은 Root Cost 값을 가진 Hello를 포워딩하는 포트를 가진 스위치가 해당 세그먼트에서 Designated Switch이다.
그외의 동작중인 포트 Blocking 해당 포트는 사용자 프레임을 전달하는 데 사용되지 않으며, 이러한 인터페이스에서 수신된 프레임은 포워딩을 고려하지 않습니다.

 


STP/RSTP는 STP/RSTP 토폴로지에서 연결되지 않은(즉, 동작중이지 않은) 인터페이스는 STP/RSTP 알고리즘에서 고려하지 않습니다. 모든 연결되지 않은 인터페이스(즉, 연결된 혹은 Up상태의 인터페이스가 아닌 모든 인터페이스)를 STP 알고리즘에서 제외하기 위해서 STP/RSTP는 작동하지 않는 포트에 비활성화된 포트(disabled port) Role을 할당합니다 . STP/RSTP는 이러한 포트를 잠재적인 RP(RootPort) 또는 DP(Designated Port)로 간주하지 않습니다. STP는 또한 이러한 포트를 disabled state (Blocking과 매우 유사)로 전환합니다.


STP의 Bridge ID와 Hello BPDU

STA는 루트 스위치가 될 한 스위치를 선출하는 것으로 시작합니다. 이 선출 프로세스를 더 잘 이해하려면 스위치 간에 전송되는 STP/RSTP 메시지와 각 스위치를 고유하게 식별하는 데 사용되는 식별자의 개념과 형식을 이해해야 합니다.

 

STP/RSTP  Bridge ID (BID)는 각 스위치마다 고유하게 가지는 8바이트 값입니다. 브리지 ID는 2바이트 Priority 필드와 6바이트 System ID로 구성되며, System ID는 각 스위치의 범용(Bruned-In) MAC 주소를 기반으로 합니다. Bruned-In MAC 주소를 사용하면 각 스위치의 Bridge ID가 고유하게 생성됩니다.


Bruned-In MAC 주소라는 것은 스위치가 공장에서 출하될때부터 기본적으로 가지고 있는 MAC Address 입니다. 스위치는 여러가지 기술적 이유로 기본적으로 다수의 MAC 주소를 가지고 있습니다.


STP/RSTP는 스위치가 서로 정보를 교환하는 데 사용하는 Bridge Protocol Data Unit(BPDU) 라고 하는 메시지를 정의합니다. 이는 Configuration BPDU라고도 부릅니다. 가장 일반적인 BPDU인 Hello BPDU 는 BPDU를 전송하는 스위치의 BID외에도 많은 세부 정보를 포함하고 있습니다. 각 스위치는 고유한 BID를 BPDU에 포함하여 전송함으로써 어떤 스위치가 어떤 Hello BPDU를 보냈는지 알 수 있습니다. 아래표는 Hello BPDU의 핵심 정보 중 일부를 나열합니다.

필드  
Root Bridge ID Hello를 전송한 스위치가 현재 Root Bridge라고 믿고 있는 스위치의 Bridge ID
Sender Bridge ID Hello BPDU를 전송한 스위치의 Bridge ID
Sender's Root Cost BPDU를 전송한 스위치로부터 Root 브리지까지의 Cost
Timer Value on the
Root Switch
Hello Timer, MaxAge Timer, Forward Delay Timer등이 포함되어 있다.
표  STP BPDU의 주요 필드

 

지금은 다음 포스팅에서 설명할 STP/RSTP가 포워딩 상태에 놓을 인터페이스를 결정하는  3 단계를 살펴보는 동안 표의 처음 세 가지 항목에만 관심을 두면 될 것 같습니다. 다음 포스팅은 STP/RSTP 프로세스의 세 가지 주요 단계를 살펴봅니다.

 

 

728x90

'Network > CCNA' 카테고리의 다른 글

STP 강의 (04)  (0) 2024.11.01
STP 강의 (03)  (0) 2024.11.01
STP 강의 (01)  (0) 2024.11.01
라우팅Routing의 이해  (0) 2024.10.30
STP LAB  (0) 2024.10.30