일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- HeadFirstDesignPatterns
- 생애첫계약
- 취업사실신고
- 모여봐요동물의숲
- 후니의쉽게쓴시스코라우팅
- 사회초년생
- leetcode
- 전화영어
- 동적계획법
- 자취준비
- 프로그래머스
- 순열
- 네트워크
- C++
- 코딩테스트
- 후니의쉽게쓴시스코네트워킹
- 정보처리기사개정
- 막대기자르기
- 튜터링
- IT기초
- 정보
- 실업인정인터넷신청
- 청년내일채움공제
- 자료구조
- array
- 캡쳐링
- 알고리즘
- 회사폐업
- 실업급여
- 부분합알고리즘
- Today
- Total
따봉도치야 고마워
[네트워크 공부] 후니의 쉽게 쓴 네트워킹 5일차 - Part06 본문
*STP (Spanning Tree Protocol)
- 스위치/브리지에서 발생하는 루핑을 막아주기 위한 프로토콜
- 출발지부터 목적지까지 경로가 2개 이상이면 1개만 남겨두고 전부 끊었다가, 문제 발생 시 사용
Bridge ID
- 브리지/스위치들이 통신할 때 서로를 확인하기 위해 가지고 있는 번호
- 총 8바이트 : 브리지 우선순위 (Bridge Priority) + 맥 어드레스
- 브리지 우선순위는 16비트로 이루어지고, 기본값은 32768(2^16-1의 중앙값)
- 낮은 값이 더 높은 우선순위
Path Cost
- 브리지가 얼마나 가까이, 빠른 링크로 연결되어 있는지 알아내기 위한 값
- 기존엔 1000 Mbps / 두 장비 사이 대역폭으로 계산했으나, 다양한 속도가 나오면서 소수점 값이 나와버려
- 지금은 아예 정수 값으로 지정해둠
- 비용이 작을수록 빠르다는 것
Bandwidth(대역폭) | Path Cost |
4Mbps | 250 |
10Mbps | 100 |
16Mbps | 62 |
45Mbps | 39 |
100Mbps | 19 |
155Mbps | 14 |
622Mbps | 6 |
1Gbps | 4 |
10Gbps | 2 |
스패닝 트리 프로토콜 기본 동작 3가지
1) 네트워크 당 하나의 루트 브리지를 선정
- STP를 수행할 때 기준이 되는 스위치/브리지
2) Non Root Bridge당 하나의 루트 포트를 선정
- 루트 포트 : 루트에 가장 가까운/빨리 갈 수 있는 포트
3) 세그먼트 당 하나의 데지그네이티드 포트 선정
- 세그먼트 = 링크
- 브리지/스위치가 연결되어있는 링크에서 한 포트는 지정 포트로 선출되어야 함.
- 루트 포트나, 데지그네이티드 포트가 아닌 나머지 포트는 다 막아버림.
스패닝 트리 프로토콜 순서 정하는 법
1) 누가 더 작은 Root BID를 가졌는가
2) 루트 브리지까지 PathCost는 누가 더 작은가
3) 누구의 Sender BID가 더 낮은가
4) 누구의 포트 ID가 더 낮은가
- 브리지/스위치는 스패닝 트리 정보를 주고받기 위해 특수한 프레임 사용 "BPDU(Bridge Protocol Data Unit)"
- BPDU : 루트 BID, 루트 PathCost, Sender BID, Port ID 등 포함
- 이 BPDU를 주고받으면서 루트브리지/포트, 데지그네이티드 포트를 결정하게 됨.
루트 브리지 선정 기준
- 낮은 BID를 가진 브리지가 루트 브리지가 됨
- 처음 통신할 땐 Root BID에 자기 BID 넣어서 통신하고, BPDU 주고 받으면서 비교해 낮은 값으로 변경
- 만약 특정 스위치를 루트 브리지로 설정하고 싶다면 Bridge Priority를 기본값보다 낮게 설정
논 루트 브리지의 루트 포트 선정 기준
- 루트 브리지까지 Path Cost가 가장 적게 드는 포트
데지그네이티드 포트 선정 기준
- 루트 브리지까지 Path Cost, 세그먼트 상에서 Root Path Cost를 비교해 작은 포트가 데지그네이티드 포트로 선출
- 즉 루트 브리지 상의 모든 포트는 늘 데지그네이티드 포트로 선정됨
- Path Cost가 같다면 앞의 순서 4단계를 거침
스패닝 트리 프로토콜의 5가지 상태 변화
- STP를 구현하는 과정에서 스위치/브리지는 아래의 5가지 상태로 변함
1) Disabled
- 포트가 고장나서 사용불가거나 네트워크 관리자가 포트를 일부러 ShutDown 시킨 상태
- 데이터 전송x, 맥 어드레스 배울 수 x, BPDU 통신 x
2) Blocking
- 스위치를 맨 처음 키거나 Disabled 포트를 다시 살렸을때, 블로킹 상태가 됨
- 이 상태에서 루트 브리지, 루트 포트, 데지그네이티드/ND 포트 뽑기
- 데이터 전송x, 맥 어드레스 배울 수 x, BPDU 통신 o
3) Listening
- 블로킹 상태의 스위치 포트가 루트/데지그네이티드 포트로 선정 시 리스닝 상태로 넘어감
- 물론 리스닝 상태의 포트도 새로운 스위치 접속/구성값 변경 시 ND포트(Non-Designed) 로 변경돼 블로킹 될 수 있음
- 데이터 전송x, 맥 어드레스 배울 수 x, BPDU 통신 o
4) Learning
- 리스닝 상태에 있던 포트가 포워딩 딜레이 디폴트 시간인 15초동안 상태를 유지하면 러닝 상태로 넘어감
- 맥 어드레스를 배워 맥 어드레스 테이블을 만들게 됨
- 데이터 전송x, 맥 어드레스 배울 수 o, BPDU 통신 o
5) Forwarding
- 스위치 포트가 러닝에서 다른 상태로 넘어가지 않고 다시 포워딩 딜레이(Forwarding delay) 디폴트 시간인 15초가 지나면 포워딩 상태로 넘어감
- 드디어 데이터 프레임 주고 받을 수 있음
- 즉 블로킹 상태에서 포워딩 상태가 되려면 15초 * 2 소요
- 데이터 전송o, 맥 어드레스 배울 수 o, BPDU 통신 o
스패닝 트리에 변화가 생길 때
1) 루트 브리지는 매 2초마다(디폴트 헬로타임) 헬로 BPDU를 Non Root Bridge로 전송
2) Non Root Bridge들은 이것을 자신의 데지그네이티드 포트로 다시 전달
3) Non Root Bridge들이 패킷을 받지 못한 뒤 맥스에이지 만큼의 시간이 또 지나면 스패닝 트리 재편성
4) 다른 스위치의 데지그네이티드 포트로 온 패킷을 받고 해당 포트를 루트포트로 변경
*Hello Time : 루트 브리지가 얼마 만에 한 번씩 헬로 BPDU를 보내는지에 대한 시간, 기본 2초
*Max Age : 헬로패킷을 받지 못하면 맥스 에이지 시간동안 기다린 후 스패닝 트리 구조 변경 시작, 기본 20초
*Forwarding Delay : 블로킹->포워드 상태로 넘어갈때 까지 걸리는 시간. (실제 시간은 *2)
- 한 링크가 끊어졌을 때 STP를 이용해 복구하는데 대략 50초 걸림 (20 + 15 + 15)
- 이런 점을 보완하기 위한 여러가지 기법이 있음. ex) RSTP, Port Fast, Up-link Fast, Backbone Fast ..
'프로그래밍 > 공부' 카테고리의 다른 글
[네트워크 공부] 후니의 쉽게 쓴 네트워킹 7일차 - Part07 (0) | 2020.03.30 |
---|---|
[네트워크 공부] 후니의 쉽게 쓴 네트워킹 6일차 - Part06 (0) | 2020.03.25 |
[네트워크 공부] 후니의 쉽게 쓴 네트워킹 4일차 - Part05 (0) | 2020.03.18 |
[네트워크 공부] 후니의 쉽게 쓴 네트워킹 3일차 - Part04 (0) | 2020.03.16 |
[네트워크 공부] 후니의 쉽게 쓴 네트워킹 2일차 - Part03 (0) | 2020.03.12 |