네트워크 학습 일기 20차시

Gjs831·2025년 8월 10일
0

PART 06 스위치를 켜라!

목차

  • STP에서 순서를 하는 4가지 순서
  • BPDU (Bridge Protocol Data Unit)
  • 스패닝 트리 프로토콜의 5가지 상태 변화

전 시간에 이어 스패닝 트리 알고리즘을 이어서 학습한다.

STP에서는 누가 루트 브리지가 될지, 누가 루트 포트나 데지그네이티드 포트가 될지를 정할 순서가 필요하다.

STP에서 순서를 하는 4가지 순서

1. 누가 더 작은 Root BID를 가졌는가?

스위치에서 대장 브리지(Root Bridge)를 뽑을때 서로 Root BID를 비교한다.

만약 내가 Root Bridge로 만들고 싶은 스위치가 있다면 그 Root BID를 다른 스위치보다 작게 설정하면 된다.

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

Root Bridge가 정해지면 나머지들은 Non Root Bridge가 되고 이들은 각각 루트 포트(Root Port)를 가져야 한다.

루트 포트는 Path Cost값으로 비교해 결정한다.

지정 포트(Designated Port)도 세그먼트 상에서 Root Path Cost를 서로 비교해 더 작은 값을 가진 포트로 정해진다.
만약 스위치끼리의 값이 같아 비교할 수 없다면 3단계로 간다.

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

Sender BID: BPUD에 스패닝 트리 정보를 실어 보낼 때 발신자의 주소를 넣는 것

즉 자기 자신의 BID를 비교해 지정 포트를 정한다.

여기서도 지정 포트를 정하지 못했다면 4단계로 간다.

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

BPDU (Bridge Protocol Data Unit)

스패닝 트리 정보를 자기들끼리 주고받기 위해서 사용하는 특수한 프레임.

Root BID, Root Path Cost, Sender BID, Port ID 정보 등이 실린다.

  • Root BID: 루트 브리지의 BID
  • Root Path Cost: 루트 브리지까지 가는 경로값
  • Sender BID: 보내는 브리지의 BID
  • Port ID 정보: 어떤 포트에서 보냈는지를 알게 해주는 것

브리지나 스위치가 부팅하면 이들은 각각의 포트로 BPUD를 매 2초마다 내보내 서로의 스패닝 트리 정보를 주고받는다.

이렇게 주고받으며 누가 루트 브리지고 어떤 포트가 루트 포트가 될지를 결정한다.

스패닝 트리를 만드는 과정 요약

  1. 루트 브리지 하나를 뽑는다.
  2. 루트 브리지를 제외한 나머지 모든 브리지에서 루트 포트를 뽑는다.
  3. 데지그네이티드 포트를 뽑는다.
  4. 나머지 포트는 Non Designated 포트로 지정한다.

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

Disabled

포트가 고장나서 사용할 수 없거나 네트워크 관리자가 포트를 일부러 Shut Down 시켜놓은 상태

  • 데이터 전송 불가
  • 맥 주소 학습 불가
  • BPDU 주고받기 불가

Blocking

스위치를 맨 처음 키거나 Disabled되어 있는 포트를 관리자가 다시 살렸을 때 블로킹 상태에 진입한다.

  • 데이터 전송 불가
  • 맥 주소 학습 불가
  • BPDU 주고받기 가능

Listening

블로킹 상태에 있던 스위치 포트가 루트 포트나 데지그네이티드 포트로 선정됬을때 리스닝 상태로 넘어간다.

  • 데이터 전송 불가
  • 맥 주소 학습 불가
  • BPDU 주고받기 가능

Learning

리스닝 상태에 있던 스위치 포트가 포워딩 딜레이 디폴트 시간인 15초동안 그 상태를 유지하면 러닝 상태로 넘어간다.

  • 데이터 전송 불가
  • 맥 주소 학습 가능
  • BPDU 주고받기 가능

Forwarding

스위치 포트가 러닝 상태에서 다른 상태로 넘어가지 않고 다시 포워딩 딜레이 시간인 15초 동안 그 상태를 유지하면 포워딩 상태로 넘어간다.

  • 데이터 전송 가능
  • 맥 주소 학습 가능
  • BPDU 주고받기 가능

스패닝 트리에 변화가 생겼을때 어떻게 동작할까?

루트 브리지는 매 2초마다 헬로(Hello) BPDU를 Non Root Bridge로 전송하고, 이 헬로 BPDU를 받은 Non Root Bridge들은 이것을 자신의 데지그네이티드 포트를 통해 다시 전달한다.

여기서 Non Root Bridge들은 매 2초마다 오는 루트 브리지의 헬로패킷을 보면서 루트 브리지까지의 길에 문제가 없다는 것을 알게 된다.

만약 지정된 시간동안(맥스 에이지) 받지 못했다면 중간 경로에 뭔가 문제가 발생했다고 생각하고, 스패닝 트리를 재편성하는 모드로 들어가게 된다.

이 과정에서 꽤 긴 시간이 걸린다.

스패닝 트리의 재편성과 관한 용어들

Hello Time (헬로타임)

루트 브리지가 얼마 만에 한 번씩 헬로 BPDU를 보내는지에 대한 시간. 디폴트 헬로타임은 2초이다.

Max Age (맥스 에이지)

브리지들이 루트 브리지로부터 헬로패킷을 받지 못하면 맥스 에이지 시간동안 기다린 후 스패닝 트리 구조 변경을 시작한다. 디폴트 시간은 20초이다.

Forwarding Delay (포워딩 딜레이)

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


스패닝 트리 프로토콜을 개선한 기법들

  • RSTP (Rapid Spanning Tree Protocol)
  • Port Fast
  • Uo-link Fast
  • Backbone Fast
    등등...

0개의 댓글