Computer Science/네트워크

데이터 링크 계층(Looping, STP)

RoarinGom 2021. 10. 20. 15:43

Looping

-정의

: 같은 네트워크 대역 대에서 스위치에 연결된 경로가 2개 이상인 경우에 발생

PC가 브로드캐스팅 패킷을 스위치들에게 전달하고 전달 받은 스위치들은 Flooding을 한다

스위치들끼리 Flooding된 프레임이 서로 계속 전달되어 네트워크에 문제를 일으킨다.

 

-원인

: 회선 및 스위치 이중화 또는 증축 등에 의해 발생

: 물리적인 포트 연결의 실수 또는 잘못된 이중화 구성으로 L2에서 빈번하게 발생하는 이슈

 

-구조

 

Looping을 해결하기 위하여 STP(Spanning Tree Protocol) : IEEE 802.1d

스패닝 트리 프로토콜 (자동으로 루핑을 막아주는 스패닝 트리 알고리즘)

-개념 2가지 (Bridge ID,  Path Cost)

1. Bridge ID : 스위치의 우선순위 (0~65535로 설정)

2. Path Cost : 스위치간 경로가 누가 더 빠른지에 대한 우선순위

(링크의 속도(대역폭), 1000/링크 속도로 계산 작을 수록 우선순위 높음)

IEEE에서 기준을 정항 : 10Mbps=100, 100Mbps=19, 1Gbps=4

 

-요소(Root Bridge, Root Port, Designated Port)

1. Root Bridge 선출
: 각각의 스위치 1,2,3는 Root Bridge ID을 가진다. (2byte BID+6byte MAC 주소) 32768 default값
: BPDU를 서로 교환하고 가장 낮은 Switch1이 루트 브리지가 된다. 
2. Root Port 선출
: 나머지 스위치들 중에 루트 브리지와 가장 빠르게 연결되는 루트 포트로 선출
: Root Path Cost값이 가장 낮은 Switch 1은 P1, Switch 3은 P0를 Root Port가 된다.
 

 
3. Designated Port 선출

: 세그먼트별 루트 브리지와 가장 빠르게 연결되는 포트를 Designated 포트로 선출
(우선 순위 : 루트브리지ID > Path Cost > 브리지 ID > 포트 ID)
Switch 1 P0 & P1, 1Gbps 라인에서는 Switch 3 P1이 Designated Port로 선출

STP(Spanning Tree Protocol)

-BPDU(Bridge Protocol Data Unit) : 스위치들간 통신할 수 있는 수단(프로토콜)

: 스패닝 트리 프로토콜에 의해 스위치간 서로 주고받는 제어 프레임

1. Configuration BPDU (구성관련 부분을 업데이트 해주는 BPDU)

: Root BID (루트브리지 스위치 정보)

: Path Cost (루트 브리지까지 경로 비용)

: Bridge ID, Port ID (나머지 스위치와 포트의 우선 순위)

2. TCN(Topology Change Notification) BPDU

: 네트워크 내 구성 변경 시 통보

 

-상태변화 (스위치의 포트는 스패닝 트리 프로토콜 안에서 5가지 상태로 표현된다.)

1. Disabled (죽어있다)

포트가 Shut Down인 상태로 데이터 전송 불가, MAC 학습 불가, BPDU 송수신 불가

2. Blocking

: 스위치를 부팅하거나 Disabled 상태를 명령을 통해 Up(살려냈을)했을 때 첫번째 거치는 단계, BPDU만 송수신

(동일하게 다른 단계는 다 안되지만 각 스위치들간 우선순위 확인을 위하여 BPDU 송수신)

3. Listening(15초)

Blocking 포트가 루트 또는 Designated port로 선정되는 단계, BPDU만 송수신

(BPDU를 통해서 Root port, Designated port 선정)

4. Learning(15초)

리스닝 상태에서 특정 시간이 흐른 후 learning 상태가 됨, MAC 학습 시작, BPDU만 송수신

(준비가 되어 통신하기 위해 MAC address를 저장하기위해 학습 시작, 그 와중에도 변화될 수 있는 port확인을 위해 BPDU 송수신)

5. Forwarding

Learning 상태에서 특정 시간이 흐른 후 포워딩 상태가 됨, 데이터 전송 시작, BPDU만 송수신

(프레임을 전달할 수 있는 단계)

 

예제

Looping 상태

1. Switch 1 -> Switch 2 경로 2개, Switch 2 -> Switch 3 경로 2개, Switch 3 -> Switch 1 경로 2개 로 루핑 상태 확인
BPDU 교환
(R : 루트포트 선정, D : Designated port 선정)
나머지 ND: Non-Designated port

2. BPDU를 서로 교환하여 Switch 1 루트 브리지 선출하고 각 세그먼트 별 Root Port(R), Designated Port(D) 선정하고 나머지는 ND(Non-Designated port 지정)
상태변화
(길이 하나만 생기므로 Looping이 발생하지않는다)

3. Root Port와 Designated Port는 Forwarding 상태(F), Non-Designated port는 블로킹 상태(Blocking)로 하여 논리적으로 고립된 구성으로 Looping 문제를 해결한다.

 

RSTP(Rapid Spanning Tree Protocol) : IEEE 802.1w

: STP를 적용하면 포워딩 상태까지 30~50초 걸리는데 컨버전스 타임을 1-2초 내외로 단축

(Learning & Listening 단계가 없음)

 

MST(Multiple Spanning Tree) : IEEE 802.1s

: 네트워크 그룹이 많아지면 STP or RSTP BPDU 프레임이 많아지고 스위치 부하가 발생

여러 개의 STP 그룹들을 묶어서 효율적으로 관리