본문 바로가기

IT인생_스크랩/Network

STP (Spanning Tree Protocol)

출처 : http://blog.naver.com/twers/50117812574



STP (Spanning Tree Protocol)
 란,

 

 STP 는 스위치나 브리지에서 발생하는 루핑(Looping)을 막아주기 위한 프로토콜 이다.

 스위치나 브리지 구성에서 출발지부터 목적지까지의 경로가 두 개 이상 존재할 때 한개의 경로만을 남겨 두고 나머지는 모두 끊어 두었다가 사용하던 경로에 문제가 발생하면 그때 끊어 두었던 경로를 하나씩 살린다.

 

루핑(Looping)

 - 스위치나 브리지는 2개 이상의 경로가 만들어 질 경우 위의 그림같이 루핑(Looping)이 발생한다.

 - 서버에서 브로드캐스트를 날리게되면 Switch B에서 브로드캐스트를 날리고 Switch A에서 다시 브로드캐스트를 날리고 그것을 다시

   Switch B가 브로드캐스트를 날리는 것을 계속 반복한다. 이것을 루핑이라고 한다.

 - 루핑이 계속 발생하면 이더넷의 특성상 네트워크가 프레임 전송이 없어야 보낼 수 있기 때문에 다른 전송이 불가능 하기에 치명적이다.

 

STP (Spanning Tree Protocol)

 - 스위치나 브리지에서 발생할 수 있는 루핑을 미리 막기 위해 두 개 이상의 경로가 발생하면 하나를 자동으로 막아두었다가 기존 경로에

   문제가 생기면 막아놓은 경로를 풀어서 데이터를 전송하는 알고리즘

 - 스패닝 트리가 세팅되어 있으면 스패닝 트리는 자동으로 ㅍ루핑을 검색해서 이런 루핑이 발생할 수 있는 상황을 막아준다.

 - 스위치 간의 두 개의 링크 중 하나를 끊어 놓는 것으로서, 위 그림과 같이 실제 링크는 2개이지만 데이터는 한쪽으로만 다니게 하는 것.

 - 위와 같은 경우 STP가 설정되어 있기 때문에 Switch1에서 위쪽 포트 한쪽을 끊어놓아 루프를 방지한다.

 - 실제 끊어진 것은 아니고 대기중인 링크이며, 사용중인 링크가 끊어지게 되면, 그때 살아나서 데이터 전송을 맡아준다.

 

STP를 이해하기 위한 기본 개념 (Bridge ID / Path Cost)

- Bridge ID

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

   = 브리지 ID는 브리지 우선순위(Bridge Priority)와 브리지 맥 주소(Bridge MAC Address)로 구성

   = 우선순위의 경우 16비트로 만들어지기 때문에 0부터 2의 16제곱 -1 ( 0~65535 )까지 만들어진다. 기본 값은 32768이다.

   = 우선 순위 값은 낮은 값일수록 우선 순위가 높다.

   = 맥 주소는 스위치에 고정되어 있는 값으로서 고유의 번호이다. (이더넷 카드의 맥 주소를 생각하면 된다.)

 - Path Cost

   = Path = 길, Cost = 비용. 즉, 길을 가는데 드는 비용

   = 네트워크 분야에서 '길'이란 바로 장비와 장비가 연결되어 있는 링크를 말한다. 즉, Path Cost란 브리지가 얼마나 가까이, 그리고

     빠른 링크로 연결되어 있는지를 알아내기 위한 값이다.

   = 스패닝 트리 프로토콜을 정의하고 있는 IEEE 802.1D에서 이 값을 계산할 때 1000Mbps를 두 장비 사이의 링크 대역폭으로 나눈

     값을 사용한다.

   = 따라서 두 스위치가 10Mbps로 연결되었다고 가정할 때, Path Cost값은 1000/10 = 100이 된다.

   = 링크의 속도(대역폭)이 빠를수록 더 작은 값이 되며 10Gbps가 나오게 되면 0.1이 되는데 기계는 소수를 계산하는데 오래 걸리므로

     개정했다.

 

 - Path Cost 계산

 1000/10Mbps = 100

 1000/10000(10Gbps) = 0.1


 

 - 최신 Path Cost

 Band Width(대역폭)

 STP Cost(Path Cost) 

 4 Mbps

 10 Mbps

 16 Mbps

 45 Mbps

 100 Mbps

 155 Mbps

 622 Mbps

 1 Gbps

 10 Gbps

 250

 100

 62

 39

 19

 14

 6

 4

 2

 

 - 스위치 장비의 개수 및 회선의 대역폭에 따른 Path Cost

 

STP(Spanning Tree Protocol) 기본 용어

 루트 브리지 (Root Bridge)

 BID가 가장 낮은 브릿지 

 비 루트 브리지 (Non Root Bridge)

 루트 브릿지가 아닌 모든 브릿지

 루트 포트 (Root Port)

 비 루트 브릿지중 루트 브릿지에서 가장 가까운 포트

 데지그네이티드 포트 (Designated Port)

 BPDU 송신

 비 데지그네이티드 포트 (Non Designated Port)

 BPDU 수신, Block 되는 포트

 

 

STP(Spanning Tree Protocol) 기본 동작

 ① 네트워크당 하나의 루트 브리지(Root Bridge)를 갖는다.

     = 여기서 네트워크는 스위치나 브리지로 구성된 하나의 네트워크이다. 따라서 라우터에 의해 나누어지는 브로드캐스트 도메인이

       하나의 네트워크라고 생각하면 된다.

     = 루트 브리지(Root Bridge)란 대장 브리지 라고 생각하면 된다. 즉, 스패닝 트리 프로토콜을 수행할 때 기준이 되는 브리지(스위치)를

       말한다.

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

     = 루트 포트란, 루트 브리지에 가장 빨리 갈 수 있는 포트를 말한다. 즉, 포트 브리지쪽에 가장 가까운 포트라고 보면 된다.

     = 네트워크당 하나의 루트 브리지가 있으므로 루트 브리지를 제외한 나머지 모든 브리지는 자동으로 Non Root Bridge가 된다. 따라서

       브리지들은 루트 브리지쪽으로 가장 가까이 있는 루트 포트를 하나씩 지정해 주어야 한다.

 ③ 세그먼트(Segment)당 하나씩의 데지그네이티드 포트(Designated Port)를 갖는다.

     = 데지그네이티드 포트(Designated Port : 지정 포트)

     = 세그먼트(Segment)란, 브리지 또는 스위치 간에 서로 연결된 링크를 말한다. 즉 브리지나 스위치가 서로 연결되어 있을 때 이

       세그먼트에서 반드시 한 포트는 데지그네이티드 포트(Designated Port)를 지정해 주어야 한다.

 

 

STP(Spanning Tree Protocol) 우선 순위

 누가 루트 브리지가 될지를 정하고, 누가 루트 포트나 데지그네이티드 포트가 될지를 정하기 위한 선정 기준

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

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

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

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

 

 브리지(스위치)는 스패닝 트리 정보를 자기들 끼리 주고받기 위해서 특수한 프레임을 사용하는데 이를 BPDU(Bridge Protocol Data Unit)라고 한다. BPDU는 루트 브리지의 BID인 Root BID, 루트 브리지까지 가는 경로 값인 Root Path Cost, 보내는 브리지의 BID인 Sender BID, 그리고 어떤 포트에서 보냈는지를 알게 해주는 Port ID 정보 등이 실려있다.

 

 브리지나 스위치가 부팅을 하면 이들은 각각의 포트로 BPDU를 매 2초마다 내보내면서 서로의 스패닝 트리 정보를 주고 받게 된다. 즉 브리지는 이 BPDU를 서로 주고 받으면서 누가 루트 브리지이고, 어떤 포트가 루트 포트가 될지, 그리고 어떤 포트가 데지그네이티드 포트가 될지를 결정하게 된다. BPDU는 STP(Spanning Tree Protocol)에서 우체부와 같으며, 아주 중요한 역할을 한다.





STP (Spanning Tree Protocol) 다섯 가지 상태의 변화.

 

 STP를 구현해 나가는 과정에서 모든 스위치나 브리지는 언제나 5가지로 상태가 변화한다.

 

 

 

Disabled

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

    = 데이터 전송 : X

    = 맥 어드레스를 배울 수 있는 여부 : X

    = BPDU를 주고 받을 수 있는 여부 : X

 

Blocking

 - 스위치를 맨 처음 켜거나 Disabled되어 있는 포트를 관리자가 다시 살렸을 때 그 포트는 블로킹 상태로 들어간다.

   이 상태에서는 데이터 전송은 되지 않고 오직 BPDU만 주고 받을 수 있다.

   (맨 처음 스위치가 켜지면 서로 BPDU를 주고 받으면서 Root Bridge를 선정하고, Root Port를 선정하고, Designated Port를 선정하고,

    Non Designated Port를 선정하는 과정이 스위치의 블로킹 상태에서 일어난다.

    = 데이터 전송 : X

    = 맥 어드레스를 배울 수 있는 여부 : X

    = BPDU를 주고 받을 수 있는 여부 : O

 

Listening

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

   물론 리스닝 상태에 있던 포트도 네트워크에 새로운 스위치가 접속했거나 브리지나 스위치의 구성값들이 바뀌면 루트 포트나

   데지그네이티드 포트에서 Non Designated 포트로 상황이 변할 수도 있다.

    = 데이터 전송 : X

    = 맥 어드레스를 배울 수 있는 여부 : X

    = BPDU를 주고 받을 수 있는 여부 : O

 

Learning

 - 리스닝 상태에 있던 스위치 포트가 포워딩 딜레이(Fowarding Dealy) 디폴트 시간인 15초 동안 그 상태를 계속 유지하면, 리스닝

   상태에서 러닝 상태로 넘어간다.

   러닝 상태에서야 비로소 맥 어드레스를 배워 맥 어드레스 테이블을 만들게 된다.

    = 데이터 전송 : X

    = 맥 어드레스를 배울 수 있는 여부 : O

    = BPDU를 주고 받을 수 있는 여부 : O

 

Forwarding

 - 스위치 포트가 러닝 상태에서 다른 상태로 넘어가지 않고, (루트 포트나 데지그네이티드 포트에서 Non Designated 포트로 바뀌지

   않았다는 뜻이다.) 다시 포워딩 딜레이(Forwarding Dealy) 디폴트 시간인 15초 동안 그 상태를 계속 유지하면 러닝 상태에서 포워딩

   상태로 넘어가게 된다.

   즉, 블로킹 상태에 있던 포트가 리스닝과 러닝을 거쳐 포워딩 상태로 오려면 디폴트 딜레이인 15초가 두번 지난 30초가 소요된다.

    = 데이터 전송 : O

    = 맥 어드레스를 배울 수 있는 여부 : O

    = BPDU를 주고 받을 수 있는 여부 : O

 

'IT인생_스크랩 > Network' 카테고리의 다른 글

[스크랩] Trunk 개념 및 설정  (0) 2012.03.16
[퍼온글] VLAN 개념 정리  (0) 2012.03.16
Alteon L4 기본 설정법  (0) 2010.12.27
시스코 이더채널(EtherChannel)  (0) 2010.06.24
show 명령어 정리 - CISCO  (0) 2010.06.24