반응형

브리지 ID


브리지 ID를 만드는 규칙

Bridge Priority(2byte) +MAC Address(6byte)


Bridge Priority

2byte로 구성 되어 있으므로 2^16-1 즉 0~65535까지 올수있다.

디폴트로 그중간에 해당하는 값인 32768을 사용


Path Cost 


한 스위치에서 다른 스위치로 가는 데 드는 비용

빠를수록 Path Cost는 작다.

브리지가 얼마나가까이, 그리고 빠른 링크로 연결되어 있는지를 알아내기 위한 값

IEEE 802.1D에서는 Cost값을 계산할때 1000Mbps를 두 장비 사이의 링크 대역폭으로 나눈 값을 사용







스패닝 트리 프로토콜(STP)



3가지 과정


1.네트워크당 하나의 루트 브리지를 갖는다

라우터에 의해 나눠지는 브로드캐스트 도메인이 하나의 네트워크라고 생각하면 된다.

즉 하나의 브로드캐스트 도메인에 하니씩의 루트 브리지가 있다.

루트 브리지란 STP를 수행할때 기준이 되는 브리지(스위치)


한 네트워크의 모든 스위치 중에서 루트 브리지 결정

루트 브리지를 뽑는 조건은 무조건 낮은 BID를 갖는 녀석이 루트

특정 스위치를 루트 스위치로 만들고 싶다면 디폴트값 32768로 정해져 있던Bridge Priority필드의 값을 조정하면된다.



2.루트 브리지가 아닌 나머지 모든 브리지(Non Root Bridge)는 무조건 하나씩의 루트포트(Root Port)를 갖는다.

루트 포트란 루트 브리지에 가장 빨리 갈수 있는 포트 즉 루트 브리지쪽에 가장 가까운 포트

Non Root Bridge란 네트워크당 하나씩의 루트 브리자기 있으므로 루트 브리지를 제외한 모든 브리지이다.



루트포트 결정

각각의 Non Root Bridge 에서 루트포트 선출

각각의 Non Root Bridge들의 Root Path Cost 비교하여 가장 작은 Cost를 가지는 포트 선정



3.세그먼트당 하나씩의 데지그네이티드 포트를 갖는다.

세그먼트란 쉽게 생각해 브리지 또는 스위치 간에 서로 연결된 링크

즉 브리지나 스위치가 서로 연결되어 있을 때 이 세그먼트에서 반드시 한 포트는 Designated Port로 선출되어야 한다.


데지그네이티드 포트 결정

각 세그먼트 상에서 Root Path Cost를 비교해서 더 작은 Root Path Cost를 가진 포트가 데지그네이티드 포트로 선출된다.

루트 브리지에 연결된 세그먼트에 데지그네이티드 포트는 루트 브리지의 포트가 된다.(루트 브리지의 Root Path Cost=0이다.)

문제는 루트 브리지에서 각 스위치 까지의 Root Path Cost가 같은 브리지간의 연결에서 데지그네이티드 포트를 선출할때이다.

이때는 BID를 비교하여 낮은 BID를 가진 브리지의 연결포트가 데지그네이티드 포트가 된다.

루트포트도 아니고 데지그네이티드 포트도 아닌경우 Non Designated 포트로 지정한다.




루트 브리지,루트 포트,데지그네이티드 포트 결정하는 규칙

1.누가더 작은 Root BID를 가졋는가

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

3.누구의 BID가 더 낮은가

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





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


스패닝 트리 프로토콜을 구현해 나가는 과정에서 모든 스위치나 브리지의 포트들은 언제나 5가지 상태로 변함

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

데이터 전송 X

맥어드레스 학습 X

BPDU 교환 X


Blocking: 스위치를 맨 처음 키거나 Disabled되어 있는 포트를 관리자가 다시 살렸을때 그 포토는 블로킹 상태로 들어간다. 이 상태에서는 데이터 전송은 되지 않고 오직BPDU만 주고 받을수 있다.

데이터 전송 X

맥어드레스 학습 X

BPDU 교환 O


BPDU란?

브리지는  스패닝 트리 정보를 자기들끼리 주고받기 위해서 특수한 프레임을 사용하는데 이를 BPDU(Bridge Protocol Data Unit)라고 한다.

Root BID,Root Path Cost,Sender BID , Port ID 등의 정보가 실려있다.



Listening: 블로킹 상태에 있던 스위치 포트가 루트 포트나 데지그네이티드 포트로 선정되면 포트는 바로 리스닝 상태로 넘어갑니다.

리스닝 상태에 있더라도 네트워크에 새로운 스위치가 접속했거나 브리지나 스위치의 구성값들이 바뀌면 루트 포트나 데지그네이티드 포트도 Non Designated 포트로 상황이 변할수 있으며 이때는 다시 블로킹 상태로 돌아가게 됩니다.

데이터 전송 X

맥어드레스 학습 X

BPUD 교환 O



Learning: 리스닝 상태에 있던 스위치 포트가 포워딩 딜레이 디폴트 시간인 15초 동안 그 상태를 계혹 유지하면 리스닝상태에서 러닝 상태로 넘어갑니다.러닝 상태가 되면 맥어드레스를 배워 맥어드레스 테이블을 만들게 됩니다.

데이터 전송 X

맥어드레스 학습 O

BPUD 교환 O



Forwarding: 스위치 포트가 러닝상태에서 다른 상태로 넘어가지 않고 다시 포워딩 딜레이 디폴트 시간인 15초 동안 그 상태를 유지하면 러닝 상태에서 포워딩 상태로 넘어가게 됩니다. 포워딩 상태가 되어야 스위치 포트는 드디어 데이터 프레임을 주고받을 수 있게 됩니다.

데이터 전송 O

맥어드레스 학습 O

BPUD 교환 O


스패닝 트리 프로토콜의 목적은 한곳에서 다른곳으로 가는 경로가 여러개일때 한개의 경로만을 남겨두고 다 끊었다가 그 경로에 문제가 생겼을 때 경로를 하나하나 살리는 것입니다.




스패닝 트리 재편성


헬로타임(Hello Time)

루트 브리지가 얼마만에 한 번씩 헬로BPDU를 보내는지에 대한 시간

루트 브리지가 자신에게 연결된 브리지들에게 헬로BPDU를 헬로타임마다 한번씩 보내게 되는데, 디폴트 헬로타임은 2초이다.


맥스에이지(Max Age)

브리지들이 루트 브리지로부터 헬로패킷을 받지 못하면 맥스 에이지 시간동안 기다린 다음 스패닝 트리 구조 변경을 시작합니다.

맥스 에이지란 브리지들이 루트 브리지로부터 얼마 동안 헬로패킷을 받지 못했을때 루트 브리지(혹은 루트 브리지로 가는 세그먼트)가 죽었다고 생각하고 새로운 스패팅 트리를 만들기 시작하는가에 대한 시간


포워딩 딜레이(Forwarding Delay)

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

여기서 블로킹 포트에서 리스닝 상태로 넘어간 포트는 포워딩 딜레이 시간동안 기다린 다음 러닝 상태로 넘어가고,러닝 상태에서 다시 포워딩 딜레이 시간동안 기다린 다음 포워딩 상태로 넘어가기 때문에 사실 블로킹에서 포워딩으로 넘어가는데 걸리는 시간은 포워딩 딜레이 시간의 두배가 된다는점을 기억해야한다.






특정 세그먼트나 브리지의 연결이 끊어졌을때 스패닝 트리를 재편성해야한다.

루트 브릿지는 매 2초마다 Hello BPDU를 Non Root Bridge로 전송하고 이 헬로 BPDU를 받은 Non

Root Bridge들은 매 2초마다 들어오는 루트 브리지의 헬로 패킷을 보면서 세그먼트가 살아있음을 알게됩니다.이때 지정한 시간동안 Hello패킷을 받지 못한다면 중간 경로에 문제가 생겻다고 판단하고 스패닝트리를 재편성 하는 모드로 들어가게됩니다.

링크가 끊어져도 헬로패킷을 받지 못하더라도 맥스에이지 시간이 지나지 않으면 아무일도 일어나지 않습니다. 맥스에이지의 디폴트 시간인 20초가 지난뒤에도 헬로패킷을 받지 못했다면 스패닝 트리의 변경을 시작합니다.

이제 루트포트에서 헬로패킷을 받는것을 포기하고 블로킹 상태였던 다른 포트에서 BPDU를 받아 루트 포다시 선정하게됩니다. 이때 루트 포트로 선정되었다고 바로 포워딩 상태로 넘어가는 것은 아니며 디폴트 포워딩 시간인 15초를 먼저 리스닝 상태에서 기다리고 , 다시 한번 러닝 상태에서 15초를 추가로 기다린 다음 데이터 전송이 가능한 포워딩 상태로 넘어가게 됩니다.

즉 하나의 링크가 끊어졌을때 다른 경로를 살리는데 걸리는 시간은 20초(맥스에이지 시간)+15초(디폴트 포워딩 딜레이(리스닝))+15초(디폴트 포워딩 딜레이(러닝)) 총 50초가 걸립니다.

이 시간을 해결하는 알고리즘으로는 대표적으로 RSTP가 있고 그외에도 Port fast,up-link Fast,Backbone Fast 등이 있습니다.

 









반응형

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

포트포워딩(KT공유기)  (0) 2020.12.31
라우팅 프로토콜 종류  (0) 2020.06.04
IP Class/서브넷 마스크  (0) 2020.05.25
네트워크 장비  (0) 2020.05.25
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기