본문 바로가기
Network tech/STP

[STP, Spanning tree protocol] part2. BPDU Format

by 어깨 :) 2023. 10. 8.
728x90

STP 2번째 시간으로 STP에서 정보를 송수신할 때 필요한 특수 프레임 "BPDU"에 대해서 공부해 보자.


 

BPDU ?

   - BPDUBridge Protocol Data Unit

   - Spanning Tree 정보를 주고받기 위한 특수한 프레임

   - Configuration BPDUTCN(Topology Change Notification) BPDU가 존재

Configuration BPDU : Root Bridge가 만들어서 일반스위치(Non Root Bridge)로 보내는 정보
TCN BPDU : 토폴로지의 변화(네트워크의 다운, 활성화 등등)를 알려주며 일반스위치(Non Root Bridge)에서 만들어져서 Root Bridge로 보내짐
 

    - Root BID(루트 브리지의 BID), Root Path Cost(루트 브리지까지의 경로 값),

        Sender BID(보내는 브리지의 BID), Port ID(어떤  포트에서 보냈는지) 등을 담고 있다.

    - 브리지나 스위치가 부팅하면 각각의 포트로 매 2초마다 BPDU를 내보내면서 서로의 스패닝 트리 정보를

      주고받는다.

 

 

 

그럼 구체적으로 STP BPDU에 대해서 항목을 설명해 보자.

 

1. Protocol Identifier

: Always 0x0000

예전 L2 기술에서 사용할 수 있는 공통적인 프로토콜을 정의하려 할 때 나온 게 BPDU. 그리고 이때 STP에서 BPDU를 BPDU 쓰기로 하고 Protocol ID 0x0000을 가져가게 된다.

(현재까지 STPSTP 외에 사용하는 곳이 없어 다른 아이디가 존재하지 않는다. )

 

2. Protocol Version

STP가 하나만 있는 게 아니라 발전하면서 새로운 표준들이 나오게 되는데 이를 구분하기 위한 필드다.

최초의 STP 뿐만 아니라 RSTP, MST까지 나오면서 이를 구분한다.

 

3. BPDU Type

Configuration BPDU:

-Root Bridge가 네트워크 상의 다른 브리지 또는 스위치에게 스패닝 트리 정보를 알리기 위해 사용됨.

-Root BID, Root Path Cost, Sender BID, Port ID 등의 정보를 포함하며, 네트워크의 토폴로지를 구성하는 데 사용됨.

-Root Bridge에서 일반 스위치로 방향성을 가지며 구성된다.

 

 

TCN BPDU (Topology Change Notification BPDU):

-네트워크 토폴로지에 변화가 있을 때, 이를 다른 장비들에게 알리기 위해 사용됨.

-토폴로지의 변화를 나타내는 정보를 포함하며, 스패닝 트리의 재구성을 트리거하는 데 사용됨.

-토폴로지 변화를 감지한 스위치에서 Root Bridge로 방향성을 가지며 전송된다.

 

정리하면

일반 STPConfig BPDU, TCN BPDU가 있다.

개선된 RSTP부터는 Config BPDU(0x02)만 사용한다.

 

 

 

4. Flags

BPDU가 어떤 역할을 하는 BPDU인지와 현재 스위치의 상태를 알려주기 위한 정보를 담고 있는 필드이다.

여러 플래그 중 가장 중요한 것은 TC (Topology Change) 비트이다. 이 비트는 스패닝 트리의 변화가 있을 때 설정되어 다른 스위치에게 변화를 알린다.

 

 

5. Root Bridge ID : 루트스위치의 ID

6. Root Path Cost : 루트스위치까지의 경로값

7. Sending Bridge ID : 브리지 IDID

8. Sending Port ID :  포트 ID

 

 

 

9. Message Age : BPDU가 만들어지고 얼마나 시간이 지났는가에 대한 정보

10. Max Age: BPDU의 수명으로 최대 얼마큼 살아남을 수 있는지에 대한 정보 (default 20)

11. Hello Time: Config BPDU를 보내는 주기를 정하는 정보(default 2)

12. Forwarding Delay: 스위치 포트의 상태가 다음 단계로 넘어갈 때 그 시간을 지정하는 정보(default 15)

 

 


Root Bridge 선출방식

 

트리 구조에서 최상단에 위치한 Root를 내부적으로 선정해야지 트리 구조를 어떻게 만들 것인지 정할 수 있다.

가장 효율적인 트리 구조를 만들기 위해 스위치들은 Root 선출을 위해 서로 정보를 교환하며 다음과 같은 절차를 거친다. 이때 교환하는 정보를 BPDU라고 한다.

 

기본적으로 스위치는 Configuration BPDU2초마다 서로 교환하며 서로의 역할을 결정할 수 있도록 동작한다. BPDU(Bridge Protocol Data Unit)STP에서 스위치(브리지) 간 서로 주고받는 정보 프레임이다.

 

Root 스위치의 선출은 우선순위+MAC Address 값이 가장 작은 스위치가 Root Root로 선발된다

Bridge Priority32768을 기본값으로 가진다.

 

 

 

 

루트 브리지(Root Bridge)데지그네이티드 포트(Designated port)와 루트 선출 단계

① 누가 더 작은 Root BID를 가졌는가?

루트 브리지까지의 Path Cost 값이 누가 더 작은가?

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

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

 

 

Path Cost

브릿지가 얼마나 가까이, 얼마나 빠른 링크로 되어 있는지 알아내기 위한 값
링크의 속도 대역폭이다. 1000 per link 단위로 계산된다.
링크의 속도(대역폭)가 빠를 수록 더 작은 값
IEEE 802.10(STP 정의 표준)에서 Path Cost 구하는 공식

 

 

 

Bridge  ID (BID)

- STP(Spanning Tree Protocol) 알고리즘에서 LAN 상의 모든 브리지 또는 스위치를 추적 확인하는데, 중요한 실마리가 되는 ID

- 브리지/스위치들이 통신할 때 서로를 확인하기 위해 가지고 있는 번호

 

브리지 우선순위 (Bridge Priority)

16비트, 0 ~ 2^16 - 1 (0 ~ 65535)
디폴트 값 : 32768
낮은 값이 더 높은 우선순위!
 
 

Port ID

- 스위치 포트마다 부여된 고유한 ID를 의미한다.

기본적으로 128. 뒤에 해당 포트 번호를 붙여서 사용한다.

- 번호가 낮을수록 우선순위가 높아진다.

 

 

-STP Port-ID 확인

  1. 포트의 우선순위를 나타내며 기본적으로 128.

  2. 포트의 번호

Ex) FA0/1 à 128.1 , Fa0/8 à 128.8

 

 

 

 

 

스위치 포트 변경 과정

STP(Spanning Tree Protocol)가 동작중인 스위치에선 루프를 막기 위해 스위치 포트에 신규스위치가 연결되면 바로 트래픽이 흐르지 않게 차단한다.

그리고 이 포트로 트래픽이 흘러도 되는지(루프 구조가 아닌지) 파악하기 위해 BPDU를 기다려 학습 후에 구조를 파악 후 트래픽을 흘리거나 루프 구조인 경우 차단을 유지한다.

이런 스위치 포트의 상태와 변경 과정은 다음 5가지로 구분할 수 있다.

 

 

 

STP의 5가지 상태변화

Disable

•포트가 고장나서 사용불가, 네트워크 관리자에 의한 Shutdown
 

Blocking

•스위치 부팅 시, Shutdown 포트를 활성화 했을 때
•BPDU 송ㆍ수신 (루트 브릿지, 루트 포트, 데지그네이티드 포트, Non-Designated 포트 선출)

 

 

Listening

•루트 포트나 데지그네이티드 포트로 선정되면 리스닝 상태가 된다.
•BPDU 송ㆍ수신 (새로운 스위치 접속, 브릿지나 스위치 구성값이 바뀌면 루트 포트나 데지그네이티드 포트에서 Non-Designated 포트로 변할 수 있다.)
 

 

Learning

•리스닝 상태에서 있던 스위치 포트가 Forwarding Delay 디폴트 시간인 15초 동안 그 상태를 유지하면 러닝 상태로 넘어 간다.
•BPDU 송ㆍ수신
•MAC Address 학습 (MAC Address Table 생성)
 
 
 

Forwarding

•러닝 상태에서 있던 스위치 포트가 Forwarding Delay 디폴트 시간인 15초 동안 그 상태를 유지(루트 포트나 데지그네이티드 포트에서 Non-Designated 포트로 바뀌지 않았다는 뜻)하면 포워딩 상태로 넘어 간다.
•데이터 전송 가능 (데이터 프레임 송ㆍ수신 가능)
•MAC Address 학습
•BPDU 송ㆍ수신
•블로킹 상태에서 포워딩 상태로 변화하기까지 총 30초 소요.

 

여기서 잠깐!!

참고로 RSTP는 STP와 단계가 다릅니다. 뒤에 또 나올 것이기에 지금은 이런 것이 있다는 정도로 알면 좋을 것 같습니다.

-STP와는 다르게 Port3가지 상태변화를 가지고 있다.

(Discarding [차단], Learning [학습], 학습 Forwarding [전송])

 

-STPDisable, Blocking, ListeningDiscarding으로 사용한다.

 

다음 시간에는 STP의 동작방식에 대해 다루어보겠습니다.

감사합니다.

728x90

'Network tech > STP' 카테고리의 다른 글

[RSTP] STP 한계와 극복을 위한 RSTP로!  (0) 2023.10.09
[STP] STP의 동작과정  (2) 2023.10.09
[STP] Part 1 스패닝 트리의 개념과 이해  (0) 2023.10.08