백엔드/os 및 일반 지식

스위치 : 2계층 장비 - STP

JerryTheSWEngineer 2023. 2. 5. 18:03
반응형

네트워크에서는 하나의 장비 고장으로 전체 네트워크가 마비되는 것을 막기 위해 (이를 SPoF, Single Point of Failure: 단일 장애점) 이중화, 다중화된 네트워크를 디자인하고 구성한다. 

 

이런 SPoF를 피하기 위해 스위치 여러대로 네트워크를 디자인하지만, 패킷이 네트워크를 따라 계속 전송되는 네트워크 루프가 발생한다.

 

따라서 이 루프가 무엇이고, 스위치에서 루프를 예방하기 위한 프로토콜은 어떻게 동작하는지 알아보겠다. 

 

 

루프란?


브로드 캐스트 스톰 


루프 구조로 네트워크가 연결된 상태에서 단말에서 브로드캐스트를 발생시키면 스위치는 이 패킷을 패킷이 유입된 포트를 제외한 모든 포트로 플러딩합니다. 플러딩된 패킷은 다른 스위치로도 보내지고 이 패킷을 받은 스위치는 패킷이 유입된 포트를 제외한 모든 포트로 다시 플러딩합니다. 루프 구조 상태에서는 이 패킷이 계속 돌아가는데 이것을 브로드 캐스트 스톰이라고 한다. 

이는 네트워크의 전체 대역폭을 차지하고 네트워크에 연결된 모든 단말이 브로드캐스트를 처리하기 위해 시스템 리소스를 사용하면서 스위치와 네트워크에 연결된 단말 간 통신이 거의 불가능한 상태가 된다. 

 

 

스위치 MAC 러닝 중복 문제


루프 구조 상태에서는 브로드캐스트뿐만 아니라 유니캐스트도 문제를 일으키는데, 같은 패킷이 루프를 돌아 도착지 쪽에서 중복 수신되는 혼란을 일으키키도 하지만, 중간에 있는 스위치에서도 MAC 러닝 문제가 발생합니다.  스위치는 출발지 MAC 주소를 학습하는데 직접 전달되는 패킷과 스위치를 돌아 들어간 패킷 간의 포트가 달라 MAC 주소를 정상적으로 학습할 수 없다. 스위치 MAC 주소 테이블에서는 하나의 MAC 주소에 대해 하나의 포트만 학습할 수 있으므로 동일한 MAC 주소가 여러 포트에서 학습되면 MAC 테이블이 반복 갱신되어 정상적으로 동작하지 않는다. 이 현상을 MAC 어드레스 플래핑이라고 부른다. 

 

 

STP란?


스패닝 트리 프로토콜 (Spanning Tree Protocol)은 루프를 확인하고 적절히 포트를 사용하지 못하게 만들어 루프를 예방하는 메커니즘. 

스위치는 BDPU (Bridge Protocol Data Unit) 라는 프로토콜을 통해 스위치 간에 정보를 전달하고 이렇게 수집된 정보를 이용해 전체 네트워크 트리를 이용해 전체 네트워크 트리를 만들어 루프 구간을 확인합니다. 

BDPU에서는 스위치가 갖고 있는 ID 와 같은 고유값이 들어아고 이런 정보들이 스위치 간에 서로 교환되면서 루프 파악이 가능해집니다. 이렇게 확인된 루프 지점을 데이터 트래픽이 통과하지 못하도록 차단해 루프를 예방한다. 

 

 

스위치 포트의 상태 및 변경 과정


스패닝 트리 프로토콜이 동작중인 스위치에서는 루프를 막기 위해 스위치 포트에 신규 스위치가 연결되면 바로 드래픽이 흐르지 않도록 차단합니다. 그리고 해당 포트로 트래픽이 흘러도 되는지 확인하기 위해 BDPU를 기다려 학습하고 구조를 파악한 후 프래픽을 흘리거나 루프 구조인 경우, 차단 상태를 유지합니다. 차단 상태에서 트래픽이 흐를 때까지 스위치 포트의 상태를 다음 4가지로 구분 가능.

Blocking


패킷 데이터를 차단한 상태로 상대방이 보내는 BDPU를 기다린다.

Listening


리스닝 상태는 해당 포트가 전송 상태로 변경되는 것을 결정하고 준비하는 단계.

Learning


러닝 상태는 이미 해당 포트를 포워딩하기로 결정, 실제로 패킷 포워딩이 일어날 때 스위치가 곧바로 동작하도록 MAC 주소를 러닝하는 단계.

 

Forwarding


패킷을 포워딩하는 단계, 정상적인 통신이 가능 . 

 

 

 

 

STP 동작 방식


STP는 루프를 없애기 위해 나무가 뿌리에서 가지로 뻗어나가는 것처럼 토폴로지를 구성. 네트워크 상에서 뿌리가 되는 가장 높은 스위치를 선출, 그 스위치를 통해 BDPU가 교환되도록 하는데, 그 스위치를 루트 스위치라고 한다. 

 

스패닝 트리 프로토콜은 루프를 예방하기 위해 다음과 같이 동작한다.

 

1. 하나의 루트 스위치를 선정

2. 루트가 아닌 스위치 중 하나의 루트 포트를 선정

3. 하나의 세그먼트에 하나의 지정 포트를 선정.

 

향상된 STP (RSTP, MST)


RSTP


스패닝 틀 프로토콜은 이중화된 스위치 경로에 문제가 발생할 경우, 백업 경로를 활성화하는 데 시간이 오래걸리는 문제를 해결하기 위해 개발되었다.

Rapid Spanning Tree Protocol이다. 

기본적인 구성과 동작 방식은 STP와 같지만 BDPU 메시지 형식이 다양해져 여러 가지 상태 메시지를 교환할 수 있다. 

 

MST


일반 스패팅 프로토콜은 CST (Common Spanning Protocol)라고 부른다. VLAN 개수와 상관없이 스패닝 트리 한 개만 동작하게 된다. 따라서 관리 부하가 적다. 하지만 CST는 루프가 생기는 토폴로지에서 1개의 포트와 회선만 활성화되므로 자원을 효율적으로 활용할 수 엇다. 또한 VLAN마다 최적의 경로가 다를 수 있는데 포트 하나만 사용할 수 있다보니 멀리 돌아 통신해야할 경우도 생긴다. 

 

이를 해결하기 위해 PVST : Per Vlan Spanning Tree가 개발되었고 VLAN마다 다른 스패닝 트리 프로세스가 동작하므로 VLAN마다 별도의 경로와 트리를 만들 수 있게 되었다. 

반응형