『IT 엔지니어를 위한 네트워크 입문』(4장)

전희준·2026년 9월 9일

Network

목록 보기
5/10

스위치 동작 원리부터 VLAN과 STP까지

네트워크에서 가장 핵심적인 장비 중 하나가 스위치(Switch)입니다.

스위치는 2계층 주소인 MAC 주소를 기반으로 패킷을 필요한 곳에 전달합니다. 별도의 설정이 없어도 기본적인 MAC 주소 학습과 패킷 전달 기능을 수행하며, VLAN이나 STP와 같은 기능을 통해 네트워크를 논리적으로 분리하거나 루프를 방지할 수도 있습니다.

이번 글에서는 스위치의 기본 동작인 플러딩, 어드레스 러닝, 포워딩/필터링부터 VLAN과 STP까지 정리해보겠습니다.


1. 스위치는 어떻게 동작할까?

과거 허브 기반의 이더넷 환경에서는 여러 장비가 동시에 통신하면 충돌이 발생하고, 그만큼 네트워크 성능이 떨어지는 문제가 있었습니다.

스위치는 이러한 문제를 줄이고 여러 장비가 서로 독립적으로 통신할 수 있도록 도와줍니다.

스위치의 핵심은 간단합니다.

어떤 MAC 주소를 가진 장비가 어느 포트에 연결되어 있는지 학습하고, 필요한 포트로만 패킷을 전달합니다.

이를 위해 스위치는 내부에 MAC 주소 테이블(MAC Address Table)을 유지합니다.

예를 들어 다음과 같은 테이블이 있다고 가정해보겠습니다.

MAC 주소포트
AAAAPort 1
BBBBPort 3
CCCCPort 5

목적지 MAC 주소가 BBBB라면 스위치는 Port 3으로만 패킷을 전달합니다.

스위치의 기본 동작은 크게 세 가지로 나눌 수 있습니다.

  1. Flooding
  2. Address Learning
  3. Forwarding / Filtering

1.1 플러딩(Flooding)

스위치가 처음 부팅되면 어떤 MAC 주소가 어느 포트에 연결되어 있는지 알 수 없습니다.

따라서 목적지 MAC 주소가 자신의 MAC 주소 테이블에 없다면 패킷이 들어온 포트를 제외한 모든 포트로 패킷을 전달합니다.

이를 플러딩(Flooding)이라고 합니다.

          Switch
        /   |   \
      PC A PC B PC C
       ↑
    Packet 수신

MAC Table에 목적지 없음
        ↓
나머지 모든 포트로 전달

플러딩 자체는 정상적인 스위치 동작입니다.

하지만 플러딩이 지나치게 많이 발생하면 스위치가 목적지를 선택적으로 전달하지 못해 네트워크 효율이 떨어질 수 있습니다.


1.2 어드레스 러닝(Address Learning)

스위치는 출발지 MAC 주소를 이용해 MAC 주소를 학습합니다.

예를 들어 Port 1으로 들어온 패킷의 Source MAC이 AAAA라면 스위치는 다음과 같이 판단할 수 있습니다.

AAAA → Port 1

즉,

"AAAA라는 MAC 주소를 가진 장비는 Port 1 방향에 있구나."

라고 학습하는 것입니다.

이 과정을 반복하면서 MAC 주소 테이블이 만들어집니다.

Source MAC        Port
-----------------------
AAAA              1
BBBB              3
CCCC              5

중요한 점은 스위치가 Destination MAC이 아니라 Source MAC을 보고 주소를 학습한다는 것입니다.


1.3 포워딩과 필터링

스위치가 목적지 MAC 주소의 위치를 이미 알고 있다면 해당 포트로만 패킷을 전달합니다.

이를 포워딩(Forwarding)이라고 합니다.

반대로 관계없는 다른 포트로 패킷을 보내지 않는 것을 필터링(Filtering)이라고 합니다.

PC A ── Port 1
          │
        Switch
          │
PC B ── Port 2
          │
PC C ── Port 3

PC A가 PC B에게 데이터를 보낼 때 스위치가 PC B의 MAC 주소 위치를 알고 있다면 Port 2로만 전달합니다.

PC C가 연결된 Port 3으로는 패킷을 보내지 않습니다.


1.4 BUM 트래픽

모든 패킷이 포워딩되는 것은 아닙니다.

다음과 같은 트래픽은 일반적으로 플러딩됩니다.

  • Broadcast
  • Unknown Unicast
  • Multicast

이를 묶어서 BUM 트래픽이라고 합니다.

Unknown Unicast는 목적지 MAC 주소는 유니캐스트지만 MAC 주소 테이블에 해당 주소가 없는 경우입니다.

Destination MAC = DDDD

MAC Table
AAAA → 1
BBBB → 2
CCCC → 3

DDDD 정보 없음
        ↓
Flooding

2. VLAN

스위치 한 대에 많은 단말을 연결하면 기본적으로 하나의 LAN을 구성하게 됩니다.

하지만 실제 기업 네트워크에서는 부서나 서비스 성격에 따라 네트워크를 분리할 필요가 있습니다.

예를 들어 다음처럼 나눌 수 있습니다.

VLAN 10 → 개발팀
VLAN 20 → 인사팀
VLAN 30 → 서버
VLAN 40 → IP Phone

이처럼 물리적인 스위치를 추가하지 않고 하나의 스위치 안에서 논리적으로 LAN을 분리하는 기술이 VLAN(Virtual LAN)입니다.


2.1 VLAN을 사용하는 이유

VLAN을 사용하는 대표적인 이유는 다음과 같습니다.

  • 네트워크를 논리적으로 분리
  • 브로드캐스트 영역 분리
  • 보안 정책 적용
  • 부서나 서비스별 네트워크 구성

VLAN이 다르면 같은 스위치에 연결되어 있더라도 서로 다른 네트워크에 연결된 것처럼 동작합니다.

        Switch
     ┌───────────┐
     │           │
 VLAN 10       VLAN 20
   │              │
 PC A           PC B

따라서 VLAN 10과 VLAN 20은 직접 통신할 수 없습니다.

서로 다른 VLAN 간 통신이 필요하면 3계층 장비가 필요합니다.


2.2 VLAN의 종류

VLAN을 할당하는 방식은 크게 두 가지가 있습니다.

포트 기반 VLAN

가장 일반적인 VLAN 방식입니다.

스위치 포트 자체에 VLAN을 지정합니다.

Port 1 → VLAN 10
Port 2 → VLAN 10
Port 3 → VLAN 20
Port 4 → VLAN 20

어떤 장비가 연결되더라도 해당 포트에 설정된 VLAN에 속하게 됩니다.


MAC 기반 VLAN

포트가 아닌 단말의 MAC 주소를 기준으로 VLAN을 할당하는 방식입니다.

PC A MAC → VLAN 10
PC B MAC → VLAN 20

따라서 PC A가 어느 포트에 연결되더라도 MAC 주소를 기반으로 VLAN 10을 할당받을 수 있습니다.


3. Access Port와 Trunk Port

VLAN을 사용하는 환경에서는 스위치 간에도 여러 VLAN의 트래픽을 전달해야 합니다.

만약 VLAN이 3개라면 VLAN마다 하나씩 물리 포트를 연결하는 방식도 생각할 수 있습니다.

Switch A             Switch B

VLAN 10 ─────────── VLAN 10
VLAN 20 ─────────── VLAN 20
VLAN 30 ─────────── VLAN 30

하지만 VLAN이 많아질수록 연결해야 하는 포트도 증가합니다.

이를 해결하는 것이 VLAN Tagging입니다.


3.1 Trunk Port

Trunk Port는 하나의 물리적인 링크를 이용해 여러 VLAN을 동시에 전달할 수 있습니다.

Switch A                   Switch B

VLAN 10 ┐                 ┌ VLAN 10
VLAN 20 ├── Trunk ────────┤ VLAN 20
VLAN 30 ┘                 └ VLAN 30

프레임에 VLAN ID를 추가해 어느 VLAN의 데이터인지 구분합니다.


3.2 Access Port

일반적인 PC나 서버처럼 하나의 VLAN만 사용하는 단말은 주로 Access Port에 연결됩니다.

포트특징
Access Port하나의 VLAN 전달
Trunk Port여러 VLAN 전달

일반적으로 다음처럼 사용합니다.

PC ── Access Port ── Switch

Switch ── Trunk Port ── Switch

다만 VMware ESXi와 같은 가상화 서버는 하나의 물리 인터페이스를 통해 여러 VLAN을 사용해야 할 수 있습니다.

이 경우 서버와 연결된 포트라도 Trunk 방식을 사용할 수 있습니다.


4. 네트워크 루프

네트워크 장비 하나에 장애가 발생했을 때 전체 서비스가 중단되는 구조를 SPoF(Single Point of Failure)라고 합니다.

이를 방지하기 위해 네트워크에서는 보통 장비와 링크를 이중화합니다.

       Switch A
      /        \
    PC        Switch C
      \        /
       Switch B

하지만 스위치를 여러 경로로 연결하면 새로운 문제가 발생합니다.

바로 네트워크 루프(Loop)입니다.


4.1 브로드캐스트 스톰

루프가 존재하는 상태에서 브로드캐스트 패킷이 발생하면 스위치는 해당 패킷을 계속 플러딩합니다.

Switch A
   ↓
Switch B
   ↓
Switch C
   ↓
Switch A
   ↓
...

2계층에서는 이러한 프레임의 수명을 제한하는 방식이 없기 때문에 패킷이 계속 네트워크를 순환할 수 있습니다.

결국 브로드캐스트 패킷이 급격하게 증가하는 브로드캐스트 스톰(Broadcast Storm)이 발생합니다.

브로드캐스트 스톰이 발생하면 다음과 같은 문제가 나타날 수 있습니다.

  • 네트워크 속도 급격히 저하
  • 단말 CPU 사용량 증가
  • 정상적인 통신이 어려워짐
  • 스위치 포트 LED가 빠르게 점멸

4.2 MAC Address Flapping

루프는 MAC 주소 학습에도 문제를 일으킵니다.

스위치는 Source MAC을 기준으로 MAC 주소 테이블을 학습합니다.

그런데 루프가 있다면 같은 MAC 주소의 패킷이 서로 다른 포트에서 계속 들어올 수 있습니다.

AAAA → Port 1

잠시 후

AAAA → Port 2

다시

AAAA → Port 1

이처럼 하나의 MAC 주소가 여러 포트에서 반복적으로 학습되는 현상을 MAC Address Flapping이라고 합니다.

MAC 주소 테이블이 계속 변경되므로 스위치는 정상적인 포워딩을 수행하기 어려워집니다.


5. STP

스위치를 이중화하면서도 루프를 방지하기 위해 사용하는 기술이 STP(Spanning Tree Protocol)입니다.

STP의 핵심 아이디어는 간단합니다.

루프가 발생할 수 있는 경로 중 일부를 논리적으로 차단하고, 필요한 경우 다시 활성화합니다.

       Switch A
      /        \
     /          \
Switch B ───── Switch C
              ↑
          일부 경로 차단

이렇게 하면 물리적으로는 이중화된 구조를 유지하면서 논리적으로는 루프가 없는 트리 구조를 만들 수 있습니다.


5.1 BPDU

STP가 전체 스위치 구조를 파악하려면 스위치끼리 정보를 교환해야 합니다.

이때 사용하는 것이 BPDU(Bridge Protocol Data Unit)입니다.

스위치들은 BPDU를 서로 교환하면서 다음과 같은 정보를 파악합니다.

  • 어떤 스위치가 연결되어 있는지
  • 네트워크의 전체 구조
  • 어떤 스위치를 기준으로 트리를 구성할지
  • 어떤 경로를 차단할지


6. STP의 기본 동작

STP는 크게 세 단계를 통해 루프가 없는 구조를 만듭니다.

① Root Switch 선정

전체 네트워크에서 기준이 되는 Root Switch를 하나 선정합니다.

스위치들은 BPDU를 교환하고 Bridge ID를 비교해 Root Switch를 결정합니다.


② Root Port 선정

Root Switch가 아닌 스위치들은 Root Switch로 가는 가장 좋은 경로의 포트를 하나 선택합니다.

이를 Root Port라고 합니다.


③ Designated Port 선정

각 네트워크 구간마다 데이터를 전달할 Designated Port를 선정합니다.

루프가 발생할 수 있는 나머지 경로는 차단됩니다.

        Root Switch
         /       \
        /         \
 Root Port      Root Port
      |             |
  Switch A ───── Switch B
          X
      Blocking

결과적으로 물리적인 링크는 여러 개 존재하지만 실제 트래픽은 루프가 없는 경로로만 전달됩니다.


7. STP 포트 상태

기본 STP에서 포트는 바로 통신 가능한 상태가 되는 것이 아니라 여러 상태를 거칩니다.

Blocking
   ↓
Listening
   ↓
Learning
   ↓
Forwarding

Blocking

일반 데이터를 전달하지 않고 BPDU를 통해 네트워크 상태를 확인합니다.

Listening

포트를 실제 전달 경로로 사용할지 판단합니다.

Learning

패킷을 전달하기 전 MAC 주소를 학습합니다.

Forwarding

정상적으로 패킷을 전달합니다.

기본 STP에서는 이러한 상태 전환 때문에 새로운 경로가 활성화되기까지 시간이 걸릴 수 있습니다.


8. RSTP

기존 STP는 장애가 발생했을 때 백업 경로를 활성화하는 시간이 비교적 길다는 문제가 있습니다.

이를 개선한 것이 RSTP(Rapid Spanning Tree Protocol)입니다.

RSTP는 기존 STP와 기본적인 목적은 동일하지만, 토폴로지 변화를 더욱 빠르게 감지하고 새로운 경로로 전환할 수 있도록 개선되었습니다.

STP
장애 발생
   ↓
상태 계산
   ↓
백업 경로 활성화

RSTP
장애 발생
   ↓
빠르게 토폴로지 변경 전달
   ↓
백업 경로 활성화

따라서 네트워크 장애 발생 시 복구 시간을 줄이는 데 도움이 됩니다.


9. MST

VLAN이 많아지면 STP 역시 VLAN 환경을 어떻게 처리할 것인지 고려해야 합니다.

하나의 STP만 사용하는 방식은 관리 부담은 적지만 모든 VLAN이 동일한 경로를 사용하기 때문에 네트워크 자원을 효율적으로 사용하기 어렵습니다.

반대로 VLAN별로 별도의 STP를 운영하면 경로를 세밀하게 구성할 수 있지만 관리해야 하는 STP 프로세스가 많아집니다.

이를 보완한 것이 MST(Multiple Spanning Tree)입니다.

MST는 여러 VLAN을 하나의 그룹으로 묶고 그룹 단위로 STP를 동작시킵니다.

VLAN 10~50
    ↓
MST Instance 1

VLAN 100~150
    ↓
MST Instance 2

이를 통해 STP의 관리 부담을 줄이면서 여러 경로를 보다 효율적으로 활용할 수 있습니다.


10. 전체 흐름 정리

이번 내용을 하나의 흐름으로 정리하면 다음과 같습니다.

Switch
  │
  ├─ MAC Address Learning
  │      ↓
  │   MAC Table
  │      ↓
  │   Forwarding
  │
  ├─ VLAN
  │      ↓
  │   논리적인 네트워크 분리
  │      ↓
  │ Access / Trunk
  │
  └─ 이중화
         ↓
       Loop 발생 가능
         ↓
        STP
         ↓
   루프 경로 차단

스위치를 이해할 때 가장 중요한 것은 기능을 따로 외우는 것이 아니라 서로 연결해서 이해하는 것입니다.


마무리

이번 장의 핵심을 정리하면 다음과 같습니다.

  • 스위치는 MAC 주소를 기반으로 패킷을 전달하는 2계층 장비입니다.
  • 스위치는 Source MAC을 이용해 MAC 주소와 포트 정보를 학습합니다.
  • 목적지를 알고 있으면 해당 포트로만 포워딩하고, 모르는 목적지라면 플러딩합니다.
  • VLAN을 이용하면 하나의 물리적인 스위치를 여러 개의 논리적인 네트워크로 분리할 수 있습니다.
  • Access Port는 하나의 VLAN, Trunk Port는 여러 VLAN을 전달할 때 사용합니다.
  • VLAN이 서로 다르면 직접 통신할 수 없으며 3계층 장비를 통한 통신이 필요합니다.
  • 스위치를 이중화하면 루프가 발생할 수 있으며, 브로드캐스트 스톰과 MAC Address Flapping 문제가 발생할 수 있습니다.
  • STP는 루프가 발생하는 경로를 차단해 안정적인 2계층 네트워크를 구성합니다.
  • RSTP는 기존 STP보다 빠른 경로 전환을 목표로 하며, MST는 여러 VLAN 환경에서 STP를 효율적으로 운영하기 위한 방식입니다.

결국 스위치의 핵심은 다음 한 문장으로 정리할 수 있습니다.

스위치는 MAC 주소를 학습해 필요한 곳으로만 프레임을 전달하고, VLAN으로 네트워크를 분리하며, STP를 통해 이중화된 환경에서 발생할 수 있는 루프를 방지합니다.

0개의 댓글