-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Lim
committed
Feb 9, 2024
1 parent
7180dae
commit 0e9dc90
Showing
1 changed file
with
67 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
## 4.3 STP | ||
|
||
- IT 환경에서는 SPoF(Single Point of Failure)로 인한 장애를 피하기 위해 다양한 노력을 함 | ||
- SPoF란 하나의 시스템이나 구성 요소에서 고장이 발생했을 때 전체 시스템의 작동이 멈추는 요소 | ||
- SPoF를 피하기 위해 스위치 두 대로 네트워크를 디자인하지만 두 대 이상의 스위치로 디자인하면 패킷이 네트워크를 따라 계속 전송되므로 네트워크를 마비 | ||
→ 네트워크 루프 | ||
|
||
### 4.3.1 루프란? | ||
|
||
- 말 그대로 네트워크 연결된 모양이 고리처럼 되돌아오는 형태로 구성된 상황을 말함 | ||
- 3가지 큰 이유가 있지만 루프로 문제가 발생했다면 대부분 브로드캐스트 스톰으로 인한 문제 | ||
|
||
#### 4.3.1.1 브로드캐스트 스톰 | ||
|
||
- 루프 구조로 네트워크가 연결된 상태에서 단말에서 브로드캐스트를 발생시키면 스위치는 이 패킷을 패킷이 유입된 포트를 제외한 모든 포트로 플러딩 | ||
- 루프 구조 상태에서는 이 패킷이 계속 돌아가는데 이것을 브로드캐스트 스톰이라고 함 | ||
- 3계층 헤더에는 TTL(Time to Live)이라는 패킷 수명을 갖고 있지만 스위치가 확인하는 2계층 헤더에는 이런 3계층의 TTL과 같은 라이프타임 메커니즘이 없어 루프가 발생하면 패킷이 죽지 않고 계속 살아남아 패킷 하나가 전체 네트워크 대역폭을 차지 | ||
|
||
#### 4.3.1.2 스위치 MAC 러닝 중복 문제 | ||
|
||
- 루프 구조 상태에서는 브로드캐스트뿐만 아니라 유니캐스트도 문제를 일으킴 | ||
- 스위치는 출발지 MAC 주소를 학습하는데 직접 전달되는 패킷과 스위치를 돌아 들어간 패킷 간의 포트가 달라 MAC 주소를 정상적으로 학습할 수 없음 | ||
- 스위치 MAC 주소 테이블에서는 하나의 MAC 주소에 대해 하나의 포트만 학습할 수 있으므로 동일한 MAC 주소가 여러 포트에서 학습되면 MAC 테이블이 반복 갱신되어 정상적으로 동작하지 않음 | ||
- 이 현상을 MAC 어드레스 플래핑이라고 함 | ||
|
||
### 4.3.2 STP란? | ||
|
||
- 스패닝 트리 프로토콜(Spanning Tree Protocol)은 루프를 확인하고 적절히 포트를 사용하지 못하게 만들어 루프를 예방하는 메커니즘 | ||
- 스패팅 프로토콜을 이용해 루프를 예방하려면 전체 스위치가 어떻게 연결되는지 알아야 함 | ||
- 전체적인 스위치 연결 상황을 파악하려면 스위치 간에 정보를 전달하는 방법이 필요 | ||
- 이를 위해 스위치는 BPDU(Bridge Protocol Data Unit)라는 프로토콜을 통해 스위치 간에 정보를 전달하고 이렇게 수집된 정보를 이용해 전체 네트워크 트리를 만들어 루프 구간을 확인 | ||
- BPDU에는 스위치가 갖고 있는 ID와 같은 고유값이 들어가고 이런 정보들이 스위치 간에 서로 교환되면서 루프 파악이 가능해짐 | ||
- 이렇게 확인된 루프 지점을 데이터 트래픽이 통과하지 못하도록 차단해 루프를 예방 | ||
|
||
#### 4.3.2.1 스위치 포트의 상태 및 변경 과정 | ||
|
||
- 스패닝 트리 프로토콜이 동작 중인 스위치에서는 루프를 막기 위해 스위치 포트에 신규 스위치가 연결되면 바로 트래픽이 흐르지 않도록 차단 | ||
- 차단 상태에서 트래팩이 흐를 때까지 스위치 포트의 상태는 다음 4가지로 구분 | ||
- Blocking | ||
- 패킷 데이터를 차단한 상태로 상대방이 보내는 BPDU를 기다림 | ||
- Listening | ||
- 자신의 BPDU 정보를 상대방에게 전송하기 시작 | ||
- Learning | ||
- 해당 포트를 포워딩하기로 결정하고 MAC 주소를 러닝하는 단계 | ||
- Forwarding | ||
- 패킷을 포워딩하는 단계, 정상적인 통신이 가능 | ||
|
||
### 4.3.3 향상된 STP(RSTP, MST) | ||
|
||
- 스패닝 트리 프로토콜 동작 방식에서 본 것처럼 블로킹포트가 포워딩 상태로 변경될 때까지 30~50초가 소요 | ||
- 통신에 가장 많이 쓰이는 TCP 기반 애플리케이션이 네트워크가 끊겼을 때 30초를 기다리지 못하다보니 STP 기반 네트워크에 장애가 생기면 통신이 끊길 수 있음 | ||
|
||
#### 4.3.3.1 RSTP | ||
|
||
- 2~3초로 절체 시간이 짧아 일반적인 TCP 기반 애플리케이션이 세션을 유지할 수 있게 됨 | ||
- 다양한 BPDU 메시지, 대체 포트 개념, 토폴로지 변경 전달 방식의 변화로 일반 STP보다 빠른 시간 내에 토폴로지 변경을 감지, 복구할 수 있음 | ||
|
||
#### 4.3.3.2 MST | ||
|
||
- 일반 스패팅 트리 프로토콜은 CST(Common Spanning Tree)라고 부름 | ||
- CST는 루프가 생기는 토폴로지에서 한 개의 포트와 회선만 활성화 되므로 자원을 효율적으로 활용할 수 없음 | ||
- VLAN마다 최적의 경로가 다를 수 있는데 포트 하나만 사용할 수 있다보니 멀리 돌아 통신해야 할 경우도 생김 | ||
- 이 문제를 해결하기 위해 PVST(Per Vlan Spanning Tree)가 개발되었고 VLAN마다 다른 스패닝 트리 프로세스가 동작하므로 VLAN마다 별도의 경로와 트리를 만들 수 있게 되었음 | ||
- 하지만 스패닝 트리 프로토콜 자체가 스위치에 많은 부담을 주는 프로토콜(2초마다 교환)인데 PVST는 모든 VLAN마다 별도의 스패닝 트리를 유지해야 하므로 더 많은 부담이 되었음 | ||
- 이런 CST와 PVST의 단점을 보완하기 위해 MST(Multiple Spanning Tree)가 개발 | ||
- 여러개의 VLAN을 그룹으로 묶고 그 그룹마다 별도의 스패닝 트리가 동작 | ||
- 이 경우, PVST보다 훨씬 적은 스패닝 트리 프로토콜 프로세스가 돌게 되고 PVST의 장점인 로드 셰어링 기능도 함께 사용할 수 있음 |