Network/시스코 네트워킹 요약
Part 6-1. 스패닝 트리
jgpaper
2017. 10. 11. 14:56
- 스위치와 브리지
- 브리지는 거의 사용 안하고 라우터 역할까지도 스위치가 넘나들고 있다.
- 스패닝 트리
- 스패닝 트리 알고리즘 : 스위치나 브리지에서 발생하는 루핑를 막아주기 위한 프로토콜 입니다.(Spaning Tree Protocol : STP)
- 출발지부터 목적지까지의 경로가 두 개 이상 존재할 때 한 개의 경로만을 남겨 두고 나머지는 모두 끊어 두었다가 사용하던 경로에 문제가 발생하면 그때 끊어 두었던 경로를 활성화 한다.
- 두 가지 개념의 이해가 필요하다.
- 브리지 ID(Bridge ID)
- Path Cost
- 브리지 ID(Bridge ID)
- 브리지나 스위치들이 통신 할 때 서로를 확인하기 위해 하나씩 가지고 있는 번호
- 8Byte(64bit)로 16비트의 브리지 우선 순위(Bridge Priority)와 48비트의 맥어드레스로 만들어 집니다.
- Bridge Priority는 0 ~ 2^16-1(0 ~ 65535) 범위를 가지고 디폴트로 그 중간 값인 32768을 사용합니다.
Bridge Priority |
Mac Address |
2byte(16bit) |
6byte(48bit) |
- Path Cost
- Path=길, Cost=비용 길을 가는데 드는 비용
- 길이란 장비와 장비가 연결되어 있는 링크를 말합니다.
- 브리지가 얼마나 가까이, 그리고 빠른 링크로 연결되어 있는지를 알아내기 위한 값입니다.
- Cost 값을 계산할 때 1000Mbps를 두 장비 사이의 링크대역폭으로 나눈 값을 사용했습니다.
- 두 스위치가 10Mbps로 연결 된 경우 Path Cost는 1000/10 = 100 이 됩니다.
- Path Cost 값이 작을 수록 속도가 빠릅니다.
- 그런데 ATM(10Gbps) 및 OC-48(2.4Gbps) 등은 위의 계산으로 하면 소수점 이하가 발생합니다.
- 그래서 아래와 같은 표를 새롭게 Path cost 값을 정의 하였습니다.
Bandwidth(대역폭) |
STP Cost(Path Cost) |
4 Mbps |
250 |
10 Mbps |
100 |
16 Mbps |
62 |
45 Mbps |
39 |
100 Mbps |
19 |
155 Mbps |
14 |
622 Mbps |
6 |
1 Gbps |
4 |
10 Gbps |
2 |
- 스패닝 트리 - 세가지 기본 동작
- 세가지 기본 동작
- 네트워크당 하나의 루트 브리지(Root Bridge) 를 갖는다.
- 루트 브리지가 아닌 나머지 모든 브리지(Non Root Bridge)는 무조건 하나씩 루트 포트(Root Port)를 갖는다.
- 세그먼트(Segment)당 하나씩의 데지그네이티드 포트(Designated Port)를 갖는다.
- 네트워크당 하나의 루트 브리지를 갖는다.
- 하나의 브로드캐스트 도메인에 하나씩 루트 브리지가 있습니다.
- 대장 브리지 입니다. 즉, 스패닝 트리 프로토콜을 수행할 때 기준이 되는 브리지(스위치)입니다.
- 루트 브리지가 아닌 나머지 모든 브리지를 Non Root Bridge라 하고 Non Root Bridge 당 하나씩의 루트 포트(Root Port) 가져야 합니다.
- 루트 포트란 루트 브리지에 가장 빨리 갈 수 있는 포트를 말합니다.
- 브리지들은 루트 브리지쪽으로 가장 가까이 있는 루트 포트를 하나씩 지정해 주어야 합니다.
- 세그먼트당 하나씩의 Designated Port(지정 포트)를 갖습니다.
- 브리지나 스위치가 연결되어 있을 때 이 세그먼트에서 반드시 한 포트는 Designated Port로 선출되어야 한다는 겁니다.
- 세그먼트란 브리지나 스위치 간에 서로 연결된 링크입니다.
- 스패닝 트리 프로토콜은 앞의 세가지 규칙을 적용해서 어느 쪽 링크를 살려 두고 어느 쪽 링크를 끊을지 결정하는 과정입니다.
- 스패닝 트리 프로토콜에서 루트 포트나 데지그네이트 포트가 아닌 나머지 모든 포트는 다 막아버립니다. 즉, 루트 포트와 데지그네이티드 포트를 뽑는 목적은 어떤 포트를 살릴지 결정하기 위한 것입니다.
- 스패닝 트리 - 세가지 기본 동작을 정하는 방법
- 다음 네 가지 단계를 통해서 장합니다.
- 누가 더 작은 Root BID를 가졌는가?
- 루트 브리지까지의 Path Cost 값은 누가 더 작은가?
- 누구의 BID(Sender BID)가 더 낮은가?
- 누구의 포트 ID가 더 낮은가?
- 스패닝 트리 정보를 자기들끼리 주고받기 위해서 특수한 프레임을 사용하는데 이fmf BPDU(bridge Protocol Data Unit)라고 합니다.
- BPDU는 Root ID, Root Path Cost, Sender BID, Port ID 등을 가지고 있습니다.
- 브리지나 스위치가 부팅을 하면 이들은 각각의 포트로 BPDU를 매 2초 마다 내보내면서 서로의 스패닝 트리 정보를 주고 받게 됩니다. BPDU를 서로 주고 받으면서 누가 루트 브리지이고 어떤 포트가 루트 포트가 될지, 그리고 어떤 포트가 데지그네이티드 포트가 될지를 결정하게 됩니다.
- Root Bridge 뽑기
- 대장 브리지를 뽑는 조건은 무조건 낮은 BID를 갖는 스위치 입니다.
- 선정 방법
- 스위치가 처음 부팅 했을 때는 BPDU에 자기 자신의 BID를 Root bridge BID로 설정하여 전달 합니다.
- 각각의 스위치들은 BPDU 에 있는 Root Bridge ID 를 비교 하여 가장 낮은 값을 Root Bridge 로 선정 합니다.
- 네트워크 관리자가 스위치의 BID 값을 수동으로 변경 할 수 있습니다. Bridge Priority 필드 값 변경을 통하여 원하는 스위치를 Root Bridge 로 만 들 수 있습니다.
- Non Root Bridge 에서 Root Port 뽑기
- 모든 Non Root Bridge는 반드시 한 개의 루트 포트(Root Port)를 가져야 합니다.
- 루트 포트는 루트 브리지에 가장 가까이 있는 포트를 말합니다.
- Root Path Cost를 확인해서 Root Port를 뽑습니다.
- 스위치 A가 Root Bridge이고 스위치들 간의 100Mbps로 연결되어 있다고 가정합니다. 그렇다면 Path Cost 표에 따라 아래 그림과 같이 Path Cost 값을 가지게 됩니다.
따라서 루트 브리지를 제외한 Non Root Bridge에서 Path Cost가 작은 스위치 B에서는 E0이 스위치 C에서는 E0이 Root Port가 됩니다.
- 각 스위치에서 Root Path Cost 가 낮은 포트를 Root Port로 선정합니다.
- Designated Port 뽑기
- 어떤 포트를 풀어주고 어떤 포트를 막을지 결정하기 때문에 가장 중요한 단계입니다.
- 스위치 간에 연결된 세그먼트당 각각 한 개의 데지그네이티드 포트를 뽑아야 합니다.
- 루트 브리지까지의 Path Cost, 즉 세그먼트 상에서 Root Path Cost를 서로 비교해서 더 작은 Root Path Cost를 가진 포트가 데지그네이티드 포트로 선출 됩니다.
- Root Bridge 의 모든 포트는 언제나 데지그네이티드 포트로 선정됩니다.
- Root Path Cost 값이 같은 경우는 다음 네 가지 단계를 기준으로 결정 합니다. 나머지는 Non Designated Port가 됩니다.
- 누가 더 작은 Root BID를 가졌는가?
- 루트 브리지까지의 Path Cost 값은 누가 더 작은가?
- 누구의 BID(Sender BID)가 더 낮은가?
- 누구의 포트 ID가 더 낮은가?
- 스패닝 트리 프로토콜의 5가지 상태 변화
- 스패닝 트리 구성 예제
- 스패닝 트리에 변화가 생기면
- 특정 스위치 E0 포트가 루트 브리지로부터 헬로 패킷을 받지 못하고 Max age 시간(20초)이 지나도록 아무 연락이 없으면 스패닝 트리의 변경을 시작합니다.
- 문제가 발생 한 특정 포트 E0은 Blocking 상태로 변경되고 Blocking 상태였던 E1 포트를 Listening -> Learning -> Forwarding 상태로 해서 새로운 Root Port 로 세팅합니다.
- 링크에 문제가 생겨서 새롭게 스패닝 트리 프로토콜을 이용해 경로를 새로 설정 하는데 약 50초 정도 소요 됩니다.
- 용어 정의
- Hello Time(헬로 타임) : 루트 브리지가 얼마 만에 항 번씩 헬로 BPDU를 보내는지에 대한 시간입니다. 디폴트 헬로 타임은 2초 입니다.
- Max Age(맥스 에이지) : 브리지들이 루트 브리지로부터 헬로 패킷을 받지 못하면 맥스 에이지 시간 동안 기다린 다음 스패닝 트리 구조 변경을 시작 합니다. 디폴트 시간은 20초 입니다.
- Forwarding Delay(포워딩 딜레이) : 브리지 포트가 블로킹 상태에서 포워딩 상태로 넘어갈 때까지 걸리는 시간입니다. 30초 가 걸립니다.
- 새로운 경로 변경 시간을 단축 하기 위해 Port Fast, Uplink Fast, Backbone Fast 등 의 기능이 있습니다.
- STP 보다 빠르면서도 표준으로 모든 스위치가 브리지에서 사용 할 수 있는 기능으로 Rapid Spanning Tree protocol(바른 스패닝 트리)인데 표준으로 IEEE 802.1w 가 있습니다..
- PoE :Power over Ethernet는 이더넷 케이블 위에 데이터만 본내는게 아니고 전원까지 같이 실어 보내는 것 입이다.
- RPS : Redundant Power Supply는 무정전 전원 공급기를 의미 합니다.