L2 스위치 03. 스패닝트리 프로토콜

2021. 4. 4. 20:48Computer(인강)/네트워크

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

오늘은 스패닝트리 프로토콜에 대해 배워보도록 할거에요

바로 시작하겠습니다

 

 

 


Looping 이란?(broadcast storm브로드캐스트 스톰)

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

 

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

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

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

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

 

 

Looping의 구조

1. PC1은 Switch 1에게 브로드캐스팅(ARP Request를 보내요. ARP는 당연히 브로드캐스팅이겠죠) 전송
2. Switch1은 모든 포트에 브로드캐스팅 전송

3. 전달받은 브로드캐스팅 프레임을 Switch2,3도 모든 포트에 전송

4. Swich1은 Switch2, 3에게 다시 전달받은 브로드캐스팅을 다시 모든 포트에 전송

 

이러한 Looping구조를 해결해보겠다고 나온것이 바로, STP입니다

 


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

 

 

자동으로 루핑을 막아주는 알고리즘 -> 스패닝 트리 알고리즘

스패닝 트리 알고리즘에 사용되는 프로토콜 -> STP

IEEE 802.1d에 명시되어있다

 

STP는 2가지 개념을 가지고 있다

 

1. Bridge ID

스위치의 우선순위로 0~65535로 설정, 낮을수록 우선순위가 높다

 

2. Path Cost

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

그런데 1Gbps속도가 나오면서 계산법이 적합하지 않아 IEEE에서 각 대역폭 별 숫자 정의

 

10Mbps = 100,

100Mbps = 19,

1Gbps = 4

 

 

 

STP(Spanning Tree Protocol)의 요소

1. Root Bridge : 네트워크당 1개 선출

2. Root Port : Root Bridge가 아닌 스위치들은 1개 포트 선출

3. Designated Port : 각 세그먼트별 1개 포트 지정

 

 

각각의 스위치들끼리 통신할 수 있는 수단이 필요해지겠죠? 그래서 나온것이 바로 BPDU입니다.

 

 

BPDU(Bridge Protocol Data Unit)

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

 

1. Configuration BPDU : 구성관련

Root BID - 루트 브리지로 선출될 스위치 정보

Path Cost - 루트 브리지까지의 경로 비용

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

 

2. TCN(Topology Change Notification) BPDU

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

 

우선순위 - 낮은 숫자가 더 높은 Priority우선순위를 가진다

 

- 누가 더 작은 Root BID?

- 루트 브리지까지 더 낮은 Path Cost?

- 연결된 스위치중 누가 더 낮은 BID?

- 연결된 포트중 누가 더 낮은 Port ID?

 

 


Step 1) Root Bridge 선출

 

각각의 스위치들은 Root Bridge ID를 가지고 있는데요 Switch아래 표기된것들이 Root Bridge ID입니다

BridgeID뒤에 MAC Adress가 있네요(ex 0000.0000.2222)

1. 각 스위치는 고유의 BID를 가진다 2바이트(우선순위) + 6바이트 MAC주소

 

2. 서로 BPDU를 교환하고 가장 낮은 숫자가 루트 브리지가 된다

여기 스위치 중에선 뭐가 루트브리지가 될까요? 당연히 Switch1이겠죠.

(끝에 숫자가 1111로 되어있잖아요! (2222,3333보다 작은, 가장 낮은 숫자죠)

만약에 만약에 Switch2의Root Bridge ID 앞쪽을 3276으로 바꾸게 된다면 Switch2가 루트브리지가 될거에요

어쨌든 무조건 루트브리지로 설정하고 싶다면 가장 낮은 숫자로 세팅하면 된다는 겁니다

 

3. 우선순위 숫자는 명령어로 설정 가능하다

 

 

 

Step 2) Root Port 선출

 

1. Switch1이 루트브리지로 선정된 상태이고 나머지 스위치들은 루트 브리지와 가장 빠르게 연결되는 루트 포트를 선출한다

2. 루트포트는 가장 낮은 Root Path Cost값을 가진다

3. Switch2는 P1 = 4 + 19(거리상으론 두단계이지만 속도를 더 빠르기 때문에), Switch3은 P0 = 19

아 근데 왜 저길 P0루트포트라고 하는거지?아놩..

 

 

 

 

Step 3) Designated Port 선출

1. 각 세그먼트별 루트 브리지와 가장 빠르게 연결되는 포트를 Designated 포트로 선출

2. 우선순위는 루트 브리지 ID > Path Cost > 브리지ID > 포트ID

루트브리지에 연결되는 포트는 무조건 Designated Port가 된다

3. Switch 1 P0&P1, 그리고 그다음으로 그나마 제일 빠른 1Gbps 라인에서는 Switch3 P1이 Designated Port

 

 


STP의 상태  변화

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

 

1. Disabled

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

 

2. Blocking

부팅하거나 Disabled 상태를 Up했을 때 첫번째 거치는 단계, BPDU만 송수신

 

3. Listening - 15초

Blocking 포트가 루트 또는 데지그네이티드 포트로 선정되는 단계, BPDU만 송수신

 

4. Learning - 15초

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

 

5. Forwarding

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

 

 

위의 부분을 예제를 들어서 아래에서 설명해보겠습니다

 

 


 

예제 - Looping 상태

 

1. SW1 -> SW2 경로는 2개

 

2. SW2 -> SW3 경로는 2개

 

3. SW3 -> SW1 경로는 2개

 

요것이 바로 위에서 말씀드렸던 BroadCasting Storm브로드캐스팅 스톰, 루핑Looping 상태입니다

이 상태에서 우리가 STP를 설정을 했기 때문에 BPDU를 설정해야합니다

 

 


예제 - BPDU 교환

 

1. Switch1 루트 브리지 선출

 

 

 

2. 각 세그먼트별 루트 & 데지그네이티드 포트 선정

Root Port를 R이라고 표시

Designated Port를 D라고 표시

그리고 나머지 선정이 안된 포트를 None DesignatedPort라고 해서 ND라고 표시 


 

예제 - 상태변화

 

1. 루트 & 데지그네이티드 포트는 포워딩 상태, Non-데지그네이티드 포트는 블로킹 상태

2. 논리적으로 고립된 구성으로 Looping 문제 해결

길이 하나씩밖에 없기 때문에 이제는 루핑이 발생 안하게됩니다

 


 

 

RSTP(Rapid Spanning Tree Protocol)

 

1. IEEE 802.1w에 명시되어 있음

 

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

 

3. Learning & Listening 단계가 없음

 


 

MST(Multiple Spanning Tree)

 

1. IEEE 802.1s에 명시되어 있음

 

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

 

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

 


Wrap up

 

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

2. STP(Spanning Tree Protocol)는 루핑 방지를 자동으로 하기 위한 프로토콜이다

3. 구성 요소로는 Root Bridge, Root Port, Designated Port, Path Cost가 있다

4. 상태 변화는 아래와 같다

Disabled - Blocking - Listening - Learning - Forwarding

5. 그 외 컨버전스 타임을 개선한 RSTP, 부하를 줄이고 효율적 관리를 위한 MST가 있다

 

728x90
반응형