Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

얼빛네

스패닝 트리 프로토콜(Spanning Tree Protocol) (1) 본문

Network

스패닝 트리 프로토콜(Spanning Tree Protocol) (1)

얼빛 2020. 8. 5. 18:28

 저번 시간에 루핑에 대해 말씀드리면서 이번 시간에는 스패닝 트리 알고리즘에 대하여 알아본다고 했었는데 그러면 스패닝 트리 알고리즘에 대하여 알아보도록 하겠습니다.
 저번 시간에 언급한것처럼 이더넷 환경에서 스위치 사이의 경로가 2개 이상인 경우 한쪽에 브로드캐스트가 발생하면 필연적으로 루핑이 발생한다고 했었습니다.
 하지만 스패닝 트리 알고리즘을 사용한다고 해도 두 개의 경로를 모두 사용할 수는 없고 하나의 경로만을 사용해야 합니다.
 그렇다면 어차피 하나쓸거 굳이 스패닝 트리 알고리즘을 사용하는 이유가 있나 라고 물을 수도 있는데 스패닝 트리 알고리즘의 장점은 기존의 경로에 문제가 생겼을 경우 다른 경로를 자동적으로 사용할 수 있다는 점입니다.

 자 그럼 본격적으로 스패닝 트리 프로토콜 즉 STP에 관하여 알아보기에 앞서 그전에 반드시 알아야 할 몇 가지들을 먼저 알아보도록 하겠습니다.

 STP에 들어가기에 앞서 먼저 브리지 ID와 Path Cost라는 개념을 이해해야 합니다.
 브리지 ID라는 것은 이름만 들어도 알 수 있듯이 브리지 혹은 스위치들이 서로를 확인할 수 있는 수단 정도로 생각하시면 됩니다.
 브리지 ID는 64bit로 16bit의 Bridge Priority와 48bit의 MAC Address로 구성되어 있습니다.
 Bridge Priority 즉 브리지 우선순위의 경우는 16bit이기 때문에 0~65535까지의 범위의 숫자를 사용할 수 있고 이 중 중간 값인 32768을 디폴트 값으로 사용하며 필요에 의해 바꿀 수 있습니다.
 MAC Address는 알다시피 하드웨어에 부여한 주소값으로 우리가 임의로 바꿀 수 없습니다.

 다음으로는 Path Cost에 대하여 알아보겠습니다.
 Path Cost는 경로에 대한 비용 정도로 해석하시면 될 것 같습니다.
 Path란 네트워크에서 장비와 장비가 연결되어 있는 링크를 말하며 Cost란 Path에 대한 값을 나타냅니다.
 예전에는 Path Cost 값이 1000Mbps를 두 장비 사이의 링크 대역폭으로 나눈 값을 사용했었습니다.
 예를 들어 두 스위치가 10Mbps로 연결되어 있다면 1000/10인 100이 Path Cost가 됩니다.
 하지만 기가비트가 나옴으로써 그동안 사용해 오던 계산법을 사용하면 소수점이 나오는 문제로 인하여 계산이 아닌 각 속도별 Path Cost값을 정해놨습니다.
 Path Cost값은 아래와 같습니다.
 4Mbps : 250      10Mbps : 100      16Mbps : 62
 45Mbps : 39      100Mbps : 19      155Mbps : 14
 622Mbps : 6      1Gbps : 4           10Gbps : 2
 
 이 두가지 개념을 알고 있어야 STP를 배울 때 어려움이 없습니다.

 STP를 배울 때는 이해하는 것도 중요하지만 STP를 접하기에 앞서 먼저 외워야 될 부분들이 많습니다.
 마치 수학공부를 할 때 수학공식을 일단 외운 후 나중에 이해하는 것과 비슷한데 어쨌든 암기해야 할 부분은 다음과 같습니다.

 1. 네트워크는 하나의 루트 브리지(Root Bridge)가 존재한다
 2. 루트 브리지가 아닌 나머지 모든 브리지(Non Root Bridge)는 무조건 하나의 루트 포트(Root Port)를 갖는다
 3. 세그먼트(Segment)당 하나의 데지그네이티드 포트(Designated Port)를 갖는다

 이 3가지인데 지금 보면 무슨말인지 모르겠으나 하나하나 보면 꽤나 쉬운 개념입니다.
 브리지라는 장비가 스위치보다 먼저나와 브리지 테이블, 루트 브리지 등 단어에 브리지가 계속 언급이 되나 계속하여 말씀드린 것처럼 브리지뿐만 아니라 브리지, 스위치 전부 해당되는 내용입니다.

 먼저 스위치 A, B, C가 있다고 가정하겠습니다.
 일단 1번의 경우는 간단합니다. 하나의 네트워크 안에 스위치 A,B,C가 있는데 이 중 하나의 스위치만이 루트 브리지가 됩니다. 일종의 리더 혹은 대장 스위치 정도로 생각해주시면 되는데 여기서는 스위치 A가 루트 브리지라고 가정하겠습니다.
 다음은 2번인데 루트 브리지가 아닌 모든 브리지는 무조건 하나의 루트 포트를 갖는다고 합니다. 즉 루트 브리지인 스위치 A를 제외한 나머지 스위치 B,C의 경우 루트 포트를 갖는다는 말인데 여기서 루트 포트라는 것은 스위치의 포트 중 루트 브리지에 더 빨리 갈 수 있는 포트를 말합니다.
 마지막으로 3번인데 세그먼트라는 것은 스위치간 연결된 링크를 말하는데 그러므로 세그먼트에는 반드시 2개의 포트가 연결되었을 것이고 이 2개 포트 중 하나의 포트가 데지그네이티드 포트라는 말입니다.
 
 사실 보자마자 이해하는 것보다는 그냥 흐름대로 외워는게 편할 겁니다.
 이 과정에서 보면 루트 브리지를 선정하는 기준은 무엇이고 데지그네이티드 포트를 선정하는 기준은 무엇인지 알 수가 없는데 그 선정 기준을 이제 배울 텐데 그 부분 역시 암기를 해야 합니다.
 지금 배운 부분과 선정기준까지 암기한다면 STP 과정은 생각보다 어렵지 않습니다. 

 이번에는 선정 기준에 대하여 알아볼텐데 즉 무엇을 구하여야 할 때의 기준을 말합니다.
 앞으로 STP를 하면서 도대체 둘중에 뭐가 루트 브리지이지 혹은 둘 중의 뭐가 데지그네이티드 포트지 처럼 정해야 할 상황이 올 때 사용하는 방법입니다.

 1단계 : 누구의 Root BID가 더 낮은가
 2단계 : 루트 브리지까지의 Path Cost 값은 누가 더 작은가
 3단계 : 누구의 Sender BID가 더 낮은가
 4단계 : 누구의 포트 ID가 더 낮은가

 이 4단계인데 순위도 1순위가 좋고 숫자가 높아질수록 안좋은것처럼 STP 역시 일단 작고 낮은 게 우선권을 가집니다.
 앞에서 배운 3가지와 지금배운 4단계만 알고 있으면  STP는 문제없이 할 수 있습니다.

 본격적으로 STP를 배우기 앞서 마지막으로 BTDU라는 개념만 배우고 넘어가겠습니다.
 BPDU(Bridge Protocol Data Uni)는 스위치끼리 스패닝 트리 정보를 서로 주고받기 위해 사용하는 특수한 프레임을 말합니다.
 이 BPDU는 위에서 본 Root BID, Root Path Cost, Sender BID, Port ID 등의 정보들이 실려 다닙니다.
 스위치가 부팅을 하면 이들은 각각의 포트로 2초마대 BPDU를 내보내며 스패닝 트리 정보를 주고받게 되는데, 이 정보를 주고받으면서 서로의 값을 비교하며 누가 루트 브리지가 되는지 등을 정하게 됩니다.

 여기까지만 숙지하신다면 STP를 하는데 문제는 없습니다.
 암기 하지 못했다 하더라도 어디 한쪽에 적어두기만 하더라도 굉장히 수월하게 할 수 있습니다.
 
 이번 시간에 STP를 배우기 위한 선행 준비를 끝냈으니 다음 시간에는 본격적으로 STP를 알아보도록 하겠습니다.

*정리*
<반드시 암기해야 할 것들>
1. 네트워크는 하나의 루트 브리지(Root Bridge)가 존재한다
2. 루트 브리지가 아닌 나머지 모든 브리지(Non Root Bridge)는 무조건 하나의 루트 포트(Root Port)를 갖는다
3. 세그먼트(Segment)당 하나의 데지그네이티드 포트(Designated Port)를 갖는다
 
1단계 : 누구의 Root BID가 더 낮은가
2단계 : 루트 브리지까지의 Path Cost 값은 누가 더 작은가
3단계 : 누구의 Sender BID가 더 낮은가
4단계 : 누구의 포트 ID가 더 낮은가

BPDU : 스위치끼리 스패닝 트리 정보를 서로 주고받기 위해 사용하는 특수한 프레임으로 이 정보를 주고받으면서 서로의 값을 비교하며 누가 루트 브리지가 되는지 등을 정한다

'Network' 카테고리의 다른 글

스패닝 트리 프로토콜(Spanning Tree Protocol) (3)  (0) 2020.08.06
스패닝 트리 프로토콜(Spanning Tree Protocol) (2)  (0) 2020.08.06
루핑(Looping)  (0) 2020.08.05
스위치와 브리지  (0) 2020.08.05
허브(Hub)  (0) 2020.08.05
Comments