앞서 스위치의 역할중 flooding 부분을 살펴보면서
스위치를 2개로 트래픽을 분산하고자 하는 경우 브로드캐스트가 발생하면
브로드캐스트 트래픽이 무한히 맴도는 루핑 (Looping) 이 일어날 수 있다고 하였다.
그리고 이를 해결하기 위해 스피닝트리 알고리즘 기능을
스위치 상에서 켜 놓으면 해당 문제가 사라진다고 하였다.
그렇다면 Tree 란 무엇인가? 이는 모든 노드에서 다른 노드로 접근하는 모든 Path 는 존재하지만
루프는 형성되지 않는 자료구조로 항상 Root 가 존재하는 자료구조이며
결국 스피닝 트리 알고리즘은 기존 스위치의 그래프 구조를 트리 구조로 바꾸는 것이다.
브리지 ID
브리지 ID 는 브리지나 스위치들이 통신 할 때 서로를 확인하기 위해서 하나씩 가지고 있는 번호로
16비트의 브리지 우선 순위(Bridge Priority)와 48비트의 맥 어드레스 로 만들어진다.
Path Cost
네트워크에서 말하는 Path 란 장비와 장비가 연결되어 있는 링크를 말하며
Path Cost 란 브리지가 얼마나 가까이 그리고 빠른 링크로 연결되어 있는지 알아내기 위한 값이다.
두 스위치가 10Mbps로 연결되어 있다고 가정하였을 때,
Path Cost는 1000Mbps 를 둘 사이의 링크 대역폭 으로 나눈 값이며 링크 대역폭이 10Mbps 라면
Path Cost 는 100 (1000/10) 이 되며 링크 대역폭이 100Mbps 인 경우 Path Cost 는 10 (1000/100) 이 된다.
즉 링크 대역폭이 클수록 Path Cost 는 적게 든다.
Spanning Tree Algorithm
1. Bridge ID 를 비교해 Root Bridge 를 선정한다.
2. Root 이외의 Bridge 에서는 무조건 하나씩의 Root Port (Root Bridge 쪽에 가장 가까운 Port ) 를 가지며
Root Bridge 로 갈 수 있는 최단거리의 Port 를 Root Port 로 선정한다.
3. Root Port 가 아닌 포트 중, 하단의 Bridge 와 Root Bridge 간의
최단경로 상에 존재하는 포트들이 Designation Port 로 선정된다.
4. Root Port 와 Designated Port 는 Forwarding State 로 나머지 포트들은 Blocking State 로 지정되며
Blocking State 로는 트래픽이 전송되지 않아 루핑이 발생하지 않는다.
Root Path Cost
Bridge 의 Root 로 부터의 최단거리로 Root Bridge 의 Root path cost 는 0 이며
Root 가 아닌 경우 Bridge 로부터 Root 까지의 최단거리 상에 놓은 포트들의 Path cost 총합
Root Port
Root 로부터 최단거리에 연결되어 있는 Bridge Port.
Root bridge 의 Root Port 는 없으며
Root 까지의 최단거리가 같은 포트가 둘 이상일 때는 PortID 가 가장 작은 것이 우선순위를 가진다.
Degignated Bridge
Segment 란 스위치간 연결된 LAN 링크를 말한다.
그리고 LAN Segment 에 연결되어 있는 Bridge 중 Root Path Cost 값을
그 LAN Segment 의 Root Path Cost 라고 하며 그 브리지를 Designated Bridge 라고 한다.
Designated Port
브리기가 Port X 로 LAN Segment 와 연결되어 있고
이 브리지가 Designated Bridge 라면 Port X 를 Designated Port 라고 한다.
Port State
STP 알고리즘 상에서 각 포트는 active 혹은 inactive 상태에 놓이는데 이러한 포트의 상태가 Port State 이다.
State
|
Comment
|
Disabled
|
관리자의 설정에 의해 사용이 중지되었거나 물리적으로 Link down 인 상태
|
Blocking
|
Bridge Port 간의 프레임 전달 기능을 하지 않도록 비활성화 된 상태
|
Forwarding |
프레임 전달 기능이 활성화된 상태 및 MAC learning 이 이뤄지는 상태
|
Listening
|
Blocking 에서 Learning 단계로 전이해가는 중간 단계
|
Learning
|
프레임 전달 기능은 활성화 되지 않고 MAC learning 이 이뤄지는 상태
|
Forwarding Delay
Port State 가 Blocking -> Listening -> Learning -> Forwarding 으로 전환까지 기다려야 하는 시간 (Default 15ch) 로
스위치간 active topology 정보를 일치 시키기 위해 사용
Spanning Tree 정보 전달
BPDU (Bridge Protocol Data Unit) 을 브리지의 각 포트에서 주고 받는데 Config BPDU 와 TCN BPDU 가 있다.
Config BPDU 를 통해 브리지들은 서로 Bridge ID, PortID, Cost 등을 비교해 Root Bridge 를 선정하며
Root Path Cost 와 Designated Port, Root Port를 결정한다.
TCN (Topology Change Notification) BPDU 의 경우 Root Bridge 가 아닌 Bridge 에서 Topology 에 변화 (포트가 Forwarding state 로 변경) 생길시
상위의 Root Bridge 를 향해 전송되는 데이터를 말한다.
Config BPDU
Config BPDU 의 구성은 아래와 같고
이중 Protocol ID 는 STP 를 가리키는 0x000 이며
BPDU Type 은 Config BPDU 를 가리키는 0 이 설정된다.
Flag 에는 아래와 같은 정보가 들어 있으며
Root Identifier 는 BPDU 를 발생시킨 브리지가 Root 로 여기고 있는 Bridge ID 이며
Root path cost 는 BPDU 를 발생시킨 브리지로부터 Root 까지의 총 Path Cost 값 이고
Bridge identifier 는 BPDU 를 발생시킨 브리지의 ID 이며
Port identifier 는 BPDU 를 전송한 포트의 ID 이다.
TCN BPDU
Topology 초기화
Booting 직후 Bridge Protocol Entity 는 자신을 Root Bridge 로 인식하고 모든 포트를 designated port 로 여긴다.
그래서 모든 포트를 통해 Config BPDU 를 전송한다.
그러면 이와 연결된 브리지에서는 자신이 알고 있는 Root 정보와 Config BPDU 에 수록된 Root 정보를 비교하고
먼저 Root 선정 작업을 한다.
그리고 나서 Root port 를 선정하며 LAN segment 의 Designated Bridge 를 선정한다.
그 결과 아래와 같이 Tre 구조가 완성된다.
Node Failure
이때 Node B 가 망가졌다면 Tree 를 재구성해야 한다.
이는 아래 그림을 참조하자.
Adding New Node
이 역시 그림을 참조하자.
'Network > Basic' 카테고리의 다른 글
10. End 장비 (0) | 2020.01.23 |
---|---|
09. Switch 장비 (0) | 2020.01.23 |
08. Router 장비 (0) | 2020.01.23 |
07. 간단한 Network 구성 (2) (0) | 2020.01.23 |
02. Packet Tracer 인터페이스 (0) | 2020.01.22 |