NW 6

NETWORK 2019. 12. 10. 19:02

1. 스패닝 트리 프로토콜 (spanning tree protocol)


목적

스위치, 브리지에서 발생하는 루핑을 막아주는 프로토콜 (STP)


작동원리

스위치와 브리지 구성시 출발지부터 목적지까지 경로가 2개 이상일 때

하나만 제외하고 끊었다가 문제 발생 시 다시 살린다.


스패닝 트리 프로토콜은 2가지 개념이 있다

브리지 ID와 Path cost.


2. 브리지ID는 브리지나 스위치들이 통신시 서로를 확인하는 번호

구성은 [bridge priority] 2바이트 + [mac address(고정값)] 6바이트 가 한 쌍이다.

브리지 우선순위 + 스위치 맥주소로 구성됨!

브리지 우선순위는 보통 10진수 32768 = 16진수 8000을 사용함


3. path cost

한 스위치에서 다른 스위치로 가는데 드는 비용(노력)

링크속도(대역폭)이 빠를수록 더 작은 값이 된다.

링크속도가 빠르면 빨리 도착하므로 path cost는 적게 든다.


IEEE 802.1D에서는 cost 값 계산할때 1000Mbps를 두 장비 사이 링크 대역폭으로 나눈 값이다.

예로 두 스위치가 10Mbps로 연결되어 있다면

1000/10 = 100이라 path cost는 100이 된다.

기가비트(1000Mbps)가 나오면서 1000/1000이 되어 path cost가 1이 된다.

그래서 IEEE에서 대역폭별로 STP cost를 정해놓았다.

path cost는 계산할 필요가 없어졌다.. 그냥 대역폭별 stp cost를 외우자.


대역폭(bandwidth) - STP cost 

4Mbps - 250

10Mbps - 100

100Mbps - 19

1Gbps - 4

10Gbps - 2


스위치1 - 스위치2 - 스위치3

스위치123이 연결됐을때 스위치가 각각 100Mbps로 연결되어있다면

path cost는 19이다. 그러므로 스위치1에서 스위치3은 19+19 = 38이 든다.



4. 스패닝 트리 구조


1. 네트워크 당 1개의 루트 브리지 가짐

라우터로 나눠진 하나의 브로드캐스트 도메인 = 네트워크.

브로드캐스트 도메인에 1개의 루트 브리지가 있다는 뜻.

루트 브리지는 대장 브리지로 스패닝 프로토콜 실행 시에 기준이 되는 스위치, 브리지임.


2. 루트 브리지가 아닌 모든 브리지는 1개의 루트 포트를 가짐

루트포트는 루트 브리지에 가장 빨리 갈 수 있는 포트로

루트 브리지가 아닌 나머지 브리지는 루트포트를 1개씩 지정해줘야함


3. 세그먼트 당 하나의 데지그네이티드 포트 가짐

세그먼트는 브리지나 스위치 간에 연결된 링크를 말함.

서로 연결되어 있는 세그먼트의 두 개의 스위치 중 1개 포트는 데지그네이티드 포트로 선출해야함


위에 3가지 규칙을 통해 스패닝 트리 프로콜은 2개 링크 중에 1개를 끊을지 결정함.

루트 포트나 데지그네이티드 포트가 아닌 모든 포트는 막아버림.

두 포트를 뽑는 목적이 어떤 포트를 살릴지 결정하기 위한 것.



5. BPDU(bridge protocol data unit)

스패닝 트리 정보를 주고받기 위해 특수한 프레임을 BPDU라고함.


1 루트 브리지의 BID - root bid

2 루트 브리지까지 경로값 - root path cost

3 보내는 브리지의 BID - sender BID

4 어떤 포트에서 보냈는지 알게해주는 - port ID 가 실려있다.


브리지나 스위치가 부팅하면 각각 포트로 BPDU를 2초마다 보내면서 서로 스패닝 트리

정보를 주고받음. 루프포트나 데지그네이티드 포트가 되는지 결정함



6. STP의 결정


스패닝트리 결정 시, 누가 루트 브리지, 루트 포트나 데지그네이티드 포트가 될 지?

아래 4단계를 통해 결정함.


1. 누가 작은 root bid 가졌나

2. 루트 브리지까지 path cost 누가 낮은가?

3. 누구의 bid가 더 낮은가?

4. 누구의 포트 id가 더 낮은가?


7. 스위치에서 루트 브리지 결정 (대장 브리지)


누가 작은 root bid 가졌나?

BPDU에는 root bid를 포함하고 있다. 스위치 부팅시에 자신이 가장 작은 bid라고 생각하고

다른 스위치들에 BPDU를 뿌린다. 서로 비교해보니 가장 작은 것을 선출하여

루트 브리지를 결정하여 스위치들은 같은 root bid값을 가지게 된다.


8. 스위치에서 루트 브리지가 아닌 것들의 루트 포트 결정


루트 브리지까지 path cost 누가 낮은가?

루트 브리지 선출 후에 루트 포트 선출을함.

루트 브리지와 루트 브리지가 아닌 브리지들 사이에 path cost를 더해서 루트 포트를 결정함.


스위치에 포트는 여러개다.

루트포트는 루트 브리지에 가까운 포트를 말함. 즉.. path cost가 적은 포트가 된다.

루트 브리지가 아닌 브리지들은 반드시 하나의 루트 포트를 갖게 된다.


9. 데지그네이티드 포트 결정

데지그네이티드 포트를 결정해야 어떤 포트를 막고 열지 알 수 있다.

세그먼트 당 하나의 데지그네이티드 포트를 갖는다.


root path cost를 비교하여 데지그네이티드 포트를 찾음.

보통 루트 브리지는 root path cost가 0이므로.. 루트 브리지에 붙어 있는 포트가

데지그네이티드 포트가 됨.

루트 브리지가 아닌 브리지들 간에 데지그네이티드는?

1. 누가 작은 root bid 가졌나 -> 루트 브리지의 bid는 같다.

2. 루트 브리지까지 path cost 누가 낮은가? -> 루트 브리지까지 동일한 연결이면 같다.

3. 누구의 bid가 더 낮은가? -> 자신의 bid값을 말하니 여기서 보통 결정됨.

4. 누구의 포트 id가 더 낮은가?


10. 스패닝 트리의 상태

disable -> blocking -> listening -> 15초 -> learning -> 15초 -> forwarding


디스에이블로 한번에 이동 가능

blocking -> disable

listening -> disable

learning -> disable

forwarding -> disable


블로킹으로 한번에 이동 가능

listening -> blocking

learning -> blocking

forwarding -> blocking


루트포트와 데지그네이티드는 포워딩으로 만들고

ND포트는 블로킹하면된다.

즉.. 루트포트와 데지그네이티드는 서로 마주보고 있는 가장 가까운

루트 브리지 - 루트 브리지가 아닌 브리지 간 연결이고

나머지 브리지 간 연결은 전부 차단시킨다는 뜻.


11. 스패닝 트리의 변화

루트 브리지는 자신의 브리지들에게 헬로패킷을 2초마다 보낸다.

만약 다른 스위치들이 헬로패킷 받지 못해도 20초까지 괜찮다.

맥스 에이지는 디폴트 20초기 때문이다.

맥스 에이지는 헬로패킷을 기다리는 시간이다. 그 시간이 지나면 루트 브리지가 죽었다고 판단한다.

루트 브리지와 연결이 죽은 스위치로 다른 스위치에서 BPDU를 통해 헬로패킷을 보낸다.

그럼 그 스위치를 통해 받은 포트를 루트 포트로 새로 설정함.

고장난 루트 브리지와 연결된 곳은 블로킹 상태가 된다.


즉.. 스패닝 프로토콜로 링크 하나 살리려면

맥스에이지 20초 + listening에서 15초 learning에서 15초 그 후 forwarding

즉.. 50초가 걸림.

'NETWORK' 카테고리의 다른 글

NW 8  (0) 2019.12.10
NW 7  (0) 2019.12.10
NW 5  (0) 2019.12.10
NW 4  (0) 2019.12.10
NW 3  (0) 2019.12.10
블로그 이미지

ryancha9

https://blog.naver.com/7246lsy

,