본문 바로가기
Network/CCNA

STP 강의 (03)

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

Root 브리지의 결정

 

스위치는 BPDU의 BridgeID를 기반으로 루트 브리지를 선출합니다. 루트 브리지는 BID에 대한 숫자 값이 가장 낮은 스위치입니다. 두 부분으로 구성된 BID는 Priority 값으로 시작하므로 본질적으로 Priority 가 가장 낮은 스위치가 루트 브리지가 됩니다. 예를 들어, 한 스위치의 Priority가 4096이고 다른 스위치의 Priority 가 8192인 경우 각 스위치의 BID를 만드는 데 사용된 MAC 주소와 관계없이 Priority 가 4096인 스위치가 루트 브리지로 결정됩니다.

 

BID의 Priority부분에 따라 동률이 발생하면 BID의 MAC 주소 부분이 가장 낮은 스위치가 루트브리지입니다. 스위치가 BID의 두 번째 부분으로 자체 범용(Burned-IN) MAC 주소 중 하나를 사용하기 때문에 다른 타이브레이커가 필요하지 않습니다(왜냐하면 스위치가 가지는 MAC 주소는 중복될 수 없기 때문입니다). 따라서 우선순위가 동률인 경우 한 스위치가 BID의 일부로 MAC 주소 0200.0000.0000을 사용하고 다른 스위치가 0811.1111.1111을 사용하는 경우 첫 번째 스위치(MAC 0200.0000.0000)가 루트 스위치가 됩니다.

 

STP/RSTP는 선거와 비슷한 방식으로 루트 브리지를 선출합니다. 선출과정은 모든 스위치가 Root BridgeID로 자신의 BID를 포함하는 Hello BPDU를 보내 자기가 루트브리지라고 주장하는 것으로 시작합니다. 스위치가 더 나은(더 낮은) BID를 포함하는 Hello를 수신하면 해당 스위치는 자신을 루트브리지로 광고하는 것을 중단하고 더 우수한 Hello를 받아서 전달하기 시작합니다. 더 나은(BID가 더 낮은) 스위치가 보낸 Hello는 더 나은 스위치의 BID를 루트로 포함합니다. 덜 인기 있는 후보가 포기하고 경쟁에서 물러나면서 더 인기 있는 후보에게 지지를 보내는 방식으로 작동합니다. 결국 모든 스위치는 어떤 스위치가 가장 좋은(가장 낮은) BID를 가지고 있는지에 동의하게되고, 모두가 합의한 방식으로 결정된 스위치를 Root Bridge로 선출합니다.


헤깔릴수가 있는데 포스팅의 설명에서 더 나은 브리지/스위치라는 표현을 사용합니다. 이는 원서에서 우월한에 대응되는 영단어로 Superior 라는 단어를 사용하기 때문입니다. 이는 Bridge ID가 낮은 브리지/스위치를 말하는 것입니다. 반면에 열등한(Inferior) 브리지/스위치는 Brdige ID가 더 높은 브리지/스위치를 말합니다. 포스팅에서 설명에 사용하는 단어들이 좀 낯선 경우들이 있는데, 이는 원서의 영단어를 번역하는 과정에서 일상에서 많이 사용하지 않는 단어를 사용하기 때문인듯 합니다. 많은 기술적 용어들을 영단어와 영단어의 한글발음을 같이 쓰는 경우들이 있는데, 이는 학습자들이 원서를 볼때나 장비를 다룰 때 명령어의 결과에 익숙해지는 것을 고려한 까닭입니다.


아래 그림1은 루트 브리지 결정 프로세스의 시작을 보여줍니다. 이 경우 SW1은 자신을 루트브리지로 광고했고, SW2와 SW3도 마찬가지였습니다. 그러나 SW2는 이제 SW1이 더 나은 루트브리지라고 믿기 때문에 SW2는 이제 SW1에서 시작된 Hello를 전달합니다. 따라서 이 시점에서 그림은 SW1이 Hello를 말하며 루트브리지라고 주장하고, SW2는 동의하며 SW1의 Hello를 SW3에 전달하며 SW1을 루트브리지로 나열합니다. 그러나 SW3은 여전히 ​​자신이 루트브리지라고 주장하며, 자체 Hello BPDU를 보낼때 SW3의 BID를 루트브리지로 포함합니다.

그림 1

 

위의 그림1에서는 여전히 두 루트 브리지 후보가 있습니다 : SW1과 SW3. 그럼 누가 이길까요? 글쎄요, BID에서 Priority가 낮은 스위치가 이깁니다. Priority가 동률인 경우 MAC 주소가 낮은 스위치가 이깁니다. 왼쪽 그림에서 보듯이 스위치 Priority 값(32,769)은 동점이지만, SW1의 MAC 주소가 낮습니다. SW1의 BID(32,769:0200.0001.0001)가 SW3의 BID(32,769:0200.0003.0003)보다 더 낮기 때문입니다. SW1이 이기고, 이제 SW3도 SW1이 루트브리지라고 믿습니다.

 

그림 2는 스위치에서 보낸 Hello 메시지의 결과를 보여줍니다.

그림 2

 

요약하자면, 루트브리지의 결정은 루트라고 주장하는 각 스위치를 통해 발생하며, 가장 우월한(Superior) 스위치는 숫자적으로 가장 낮은(Lower) BID를 기준으로 선출됩니다. BID를 구성 요소로 분해하면 다음과 같이 비교할 수 있습니다.

  • The lowest priority
  • If that ties, the lowest switch MAC address

각 스위치에서 Root Port 결정하기

STP/RSTP 프로세스의 두 번째 부분은 각 넌-루트Non-Root브리지가 유일한 Root Port(RP)를 결정할 때 입니다 . 스위치의 RP는 루트 브리지에 도달하는 데 가장 적은 STP/RSTP 비용이 드는 인터페이스입니다.

 

스위치가 루트브리지에 도달하는 데 드는 비용을 결정하는 알고리즘은 쉽게 이해할 있습니다. 루트 스위치의 위치를 파악하고, 넌 루트브리지의 포트와 관련된 STP/RSTP 비용을 계산합니다. 아래의 그림3을 보면 넌-루트 브리지의 어떤 포트에서 출발해야 루트브리지까지 최소의 비용으로 갈수 있는지 직관적으로 계산할 수 있습니다. 물론 스위치는 사람이 네트워크 다이어그램을 보고 직관적으로 파악할수 있는 것과는 다른 프로세스를 사용하지만, 다이어그램을 사용하면 루트 브리지까지 가는 최소의 경로를 결정하는 원리를  더 쉽게 이해할 수 있습니다.

 

그림 3은 바로 그런 그림을 보여줍니다. 마지막 몇 개의 그림에서 보여준 것과 같은 세 개의 스위치가 있습니다. SW1은 이미 루트로 선출되었고, 그림3은 SW3의 관점에서 비용을 고려합니다. (그림에서 일부구간은 설명의 편의성을 위해 Default Cost 값을 사용하지 않았습니다.)

그림3은 SW3에서 Root까지 Cost를 계산하는 직관적인 방법을 설명

 

SW3에서 루트 스위치인 SW1으로 프레임을 보낼 수 있는 두 가지 가능한 물리적 경로가 있습니다. 왼쪽으로 가는 직접 경로와 스위치 SW2를 통한 오른쪽으로 가는 간접 경로입니다. 비용은 프레임이 해당 경로를 거쳐가는 동안 경유하는 모든 스위치 포트의 Port Cost 합산입니다. (계산에서 인바운드 포트의 Port Cost는 무시합니다.) 보시다시피, SW3의 G0/1 포트에서 나가는 직접 경로의 비용은 총 Cost는 5이고 다른 경로의 총 Cost는 8입니다. SW3는 루트 스위치로 프레임을 보내는 최소 Path Cost 5를 Gi0/0에서 시작하기 때문에 Gi0/1 포트를 Root Port로 선택합니다.

 

스위치는 똑같은 결론에 도달하지만 조금 다른 프로세스를 사용합니다. 대신 로컬 인터페이스의 STP/RSTP 비용을 수신한 Hello BPDU에 포함된 Root Cost에 추가합니다. STP/RSTP 포트 Cost는 STP/RSTP가 STP/RSTP 토폴로지에 추가할 인터페이스를 선택할 수 있도록 하는 객관적인 측정을 제공하기 위해 VLAN당 각 인터페이스에 할당된 정수 값일 뿐입니다. 스위치는 또한 각 이웃으로부터 수신된 Hello BPDU에 이전한 설명한 대로 이웃의 Root Cost를 살펴봅니다.

 

그림 4는 스위치가 최상의 Root Cost를  계산한 다음 이전 그림3에 표시된 것과 동일한 토폴로지와 STP/RSTP 비용을 사용하여 루트 포트를 선택하는 방법의 예를 보여줍니다 . SW3의 STP/RSTP는 그림에 나열된 인터페이스 비용에 광고된 비용(Hello 메시지에 있음)을 추가하여 두 가지 가능한 경로를 통해 루트에 도달하는 비용을 계산합니다.

그림 4. STP/RSTP에서 실제로 SW3가 Root Cost를 결정하는 방법

 

잠시 Root Cost를 결정하는 프로세스에 집중해 보세요. 루트 스위치는 Hellos를 보내는데, 루트 비용은 0으로 포함되어 있습니다. 기본적인 아이디어는 루트입장에서 자신에게 도달하는 데 드는 비용이 0이라는 것입니다.

 

다음으로, 그림의 왼쪽을 살펴봅니다. SW3는 SW1이 보낸 Hello에서 수신 비용(0)을 가져와서 Hello가 수신된 인터페이스의 인터페이스 비용(5)을 더한다. SW3은 해당 포트(G0/1)에서 루트 스위치까지 도달하는 비용이 5라고 이미 결정되어 있습니다.

 

오른쪽에서 SW2는 루트에 도달하는 최적 비용이 비용 4라는 것을 알고 있습니다. 따라서 SW2가 Hello를 SW3에 전달할 때 SW2는 루트 비용 4를 포함합니다. SW3의 포트 G0/2에서 STP/RSTP 포트 비용은 4이므로 SW3의 G0/2 포트에서 루트에 도달하는 총 비용을 8로 결정합니다.

 

그림4에 나와 있는 프로세스의 결과로 SW3는 Gi0/1을 RootPort로 선택합니다. 그 이유는 해당 포트를 통해 루트 스위치에 도달하는 비용(5)이 다른 대안(Gi0/2, 비용 8)보다 낮기 때문입니다. 마찬가지로 SW2는 Gi0/2를 RP로 선택합니다. 비용은 4입니다(SW1의 광고 비용 0과 SW2의 Gi0/2 인터페이스 비용 4). 각 스위치는 루트 포트를 전달 상태로 전환합니다.

스위치는 두 개 이상의 경로에 대해 최상의 루트 비용이 동점일 경우 사용할 타이브레이커가 필요합니다. 동점이 발생하면 스위치는 다음과 같이 동점인 경로에 이 세 가지 타이브레이커를 순서대로 적용합니다.

  1. 가장 낮은 이웃 Bridge ID를 기준으로 선택합니다( Choose based on the lowest neighbor bridge ID ).
  2. 가장 낮은 이웃 Port Priority를 기준으로 선택합니다( Choose based on the lowest neighbor port priority ).
  3. 가장 낮은 이웃 internal port number를 기준으로 선택합니다( Choose based on the lowest neighbor internal port number).
728x90

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

STP 강의 (05)  (3) 2024.11.01
STP 강의 (04)  (0) 2024.11.01
STP 강의 (02)  (1) 2024.11.01
STP 강의 (01)  (0) 2024.11.01
라우팅Routing의 이해  (0) 2024.10.30