스위치는 학습되지 않은 MAC 의 통신을 받을 때는 기본적으로 전체에게 넘기는
Flooding 을 하게됩니다.
두 개의 스위치가 서로연결되어있을 때 서로 Flooding 을 주고받게 되면 결국 돌고도는 Looping 이 발생하게됩니다.
이러한 상황을 방지하기 위해서 Switch에는 STP(Spanning Tree Protocol 이라는 기술이 적용되어있습니다.
STP (Spanning Tree Protocol)
STP 는 복수로 연결되어있는 스위치 사이에서 중복되는 연결을 비활성화시키고 있다가 장애가 발생하면 비활성화 되어있던 연결을 부활시키는 방식으로 Switch 간의 연결을 제어하는 프로토콜입니다.
STP 의 간단한 원리
먼저 Switch 의 통신이 기준이 될 Root Switch 를 선정하고 나머지 Switch 들은
Non Root Switch 가 됩니다.
Non Root Switch 는 Root Switch 와 연결되어있는 Root Port 와 해당 포트를 제외한 Deginated Port 를 선정하게 됩니다.
이외의 포트는 Looping 을 방지하기 위해서 막아버립니다.
BPDU ( Bridge Protocol Data Unit)
Switch 가 서로 소통하며 Spanning Tree 를 구성할 때 사용하는 Ethernet Packet 입니다.
BPDU 에는 BridgeID 라는 것이 포함되어있는데, Bridge ID 는 priority 와 해당 Switch 의 MAC Address 로 이루어져있습니다.
| 2 Byte | 6 Byte |
|---|---|
| Priority | MAC Address |
Switch 들은 서로 BPDU 를 주고받으면서 서열을 결정하게됩니다.
STP 의 동작원리 1 :: Root Bridge 선출
규칙 1 : 가장 낮은 Bridge ID 를 가진 Switch가 Root Bridge 로 선출된다.
처음 전원이 켜진 Switch 들은 다른 Switch에 대한 정보가 없기 때문에 자기 자신을 Root Bridge 라고 생각합니다. 각각의 Switch들은 서로에게 자신이 RootBridge 라고 주장하기 위해서 자신의 Bridge ID 를 BPDU 에 담아서 보내게 됩니다.
서로 BPDU 를 교환하고 그중에 Bridge ID 가 제일 낮은 Switch가 Root Bridge 로 선출되게 됩니다. Root Bridge 로 선출되지않은 Switch들은 자연스럽게 Non Root Bridge가 됩니다.
STP 의 동작원리 2 :: Root Port 선정
규칙 2: Non Root Bridge에서 가장 낮은 Path Cost를 가진 포트가 Root Port가 된다.
쉽게 말해서 Non Root Bridge에서 Root Bridge로 가는 비용이 가장 적게 드는 포트가 선정되는 것입니다.
STP 의 동작원리 3 :: Degignated Port 선정
규칙 3: 한 Segment에서 Path Cost가 가장 낮은 포트가 Degignated Port로 선정됩니다.
Switch끼리 연결되어있는 부분을 Segment라고 하는데 한 Segment 영역에는
서로다른 Switch의 포트가 각각 1개씩 존재합니다.
STP 의 상태변화
| 상태 | BPDU | MAC 학습 | 데이터 전송 | |
|---|---|---|---|---|
| Disabled | X | X | X | |
| Blocking | O | X | X | |
| Listening | O | X | X | |
| Learning | O | O | X | |
| Forwarding | O | O | O |
-
Disabled 상태에서는 포트가 고장나서
Shutdown시켜둔 상태입니다. 이때에는 어떠한 통신도 불가능합니다. -
Blocking 상태는 맨 처음 스위치를 켰을 때 머무르는 상태입니다.
Root Bridge,Root Port,Degignated Port를 이때 선정합니다. -
Listening 상태는
Degignated Port까지 선정이 완료되면 넘어가는 상태입니다. 이 상태에서 새로운Switch의 연결이 감지되면 다시Blocking상태로 넘어가게 됩니다. -
Learning 은
Listening State에서Forwarding Delay (15s)만큼을 대기하면 넘어가는 상태입니다. 이때부터Switch는MAC Address를 학습하게 됩니다. -
Forwarding 은
Learning상태에서Forwarding Delay (15s)를 한번 더 기다리게되면 해당 상태로 넘어가게 됩니다.Forwarding State로 넘어와야만 데이터 전송이 가능해지면서 비로소 통신이 가능하게 됩니다.
댓글