스위치의 MAC 주소 테이블이 작동하는 방식 — 네트워크 장비 입문자가 반드시 이해해야 할 원리
들어가며
네트워크 장비를 처음 배울 때 가장 먼저 부딪히는 개념이 스위치(Switch)다. 많은 사람들이 “스위치는 허브보다 똑똑하다”는 설명을 듣지만, 왜 똑똑한지, 어떻게 똑똑한지를 정확히 이해하는 사람은 드물다.
스위치의 핵심은 MAC 주소 테이블(MAC Address Table)이다. 이 테이블이 어떻게 만들어지고, 어떻게 사용되는지를 이해하면 네트워크 통신의 흐름이 눈에 그려지기 시작한다.
이 글에서는 스위치가 MAC 주소 테이블을 어떻게 학습하고 관리하는지, 그리고 플러딩(Flooding)·포워딩(Forwarding)·필터링(Filtering)이 실제로 어떤 상황에서 발생하는지 단계별로 설명한다.

허브와 스위치의 근본적 차이
허브(Hub)는 들어온 데이터를 연결된 모든 포트로 동시에 내보낸다. 어떤 장비가 어느 포트에 연결됐는지 기억하지 못한다. 이것을 브로드캐스트 도메인 공유라고 한다.
예를 들어 A, B, C, D 4대의 컴퓨터가 허브에 연결됐을 때, A가 B에게 데이터를 보내면 C와 D도 그 데이터를 받는다. 다만 C와 D는 자신에게 온 것이 아님을 확인하고 버린다. 이 과정에서 네트워크 자원이 낭비되고, 충돌(Collision)이 발생할 수 있다.
스위치는 다르다. 스위치는 각 포트에 연결된 장비의 MAC 주소를 기억한다. A가 B에게 데이터를 보내면, 스위치는 B가 어느 포트에 있는지 알기 때문에 B가 연결된 포트로만 데이터를 전송한다. C와 D는 이 통신을 볼 수 없다.
이것이 스위치가 허브보다 보안성도 높고 효율적인 이유다.
MAC 주소 테이블 학습 과정 (Learning)
스위치는 처음 켜졌을 때 MAC 주소 테이블이 비어 있다. 스위치는 데이터를 받을 때마다 자동으로 이 테이블을 채워나간다.
■ 학습 과정 예시
환경: 스위치에 포트 1(PC-A), 포트 2(PC-B), 포트 3(PC-C)가 연결됨
[Step 1] PC-A가 PC-B에게 데이터 전송
- 스위치는 이 프레임의 출발지 MAC 주소(PC-A의 MAC)와 들어온 포트(포트 1)를 기록
- MAC 주소 테이블에 추가: [PC-A MAC → 포트 1]
- 목적지(PC-B의 MAC)는 아직 테이블에 없으므로 → 플러딩(Flooding) 발생
플러딩: 출발지 포트(포트 1) 제외 모든 포트(포트 2, 3)로 전송
[Step 2] PC-B가 PC-A에게 응답 전송
- 스위치는 출발지 MAC(PC-B)와 포트(포트 2)를 기록
- MAC 주소 테이블에 추가: [PC-B MAC → 포트 2]
- 목적지(PC-A MAC)는 이미 테이블에 있으므로 → 포워딩(Forwarding)
포워딩: 포트 1로만 전송, PC-C는 이 데이터를 보지 못함
[Step 3] PC-A가 다시 PC-B에게 전송
- 이제 PC-B의 위치(포트 2)를 알고 있으므로 포워딩 → PC-C는 제외됨
플러딩·포워딩·필터링 3가지 동작 정리
■ 플러딩 (Flooding)
발생 조건: 목적지 MAC 주소가 테이블에 없을 때
동작: 입력 포트를 제외한 모든 포트로 프레임 전송
흔한 오해: 플러딩은 브로드캐스트(방송)와 다르다
– 브로드캐스트: 목적지 MAC이 FF:FF:FF:FF:FF:FF인 경우 (항상 모든 포트로 전송)
– 플러딩: 목적지 주소는 유니캐스트지만 테이블에 없는 경우
■ 포워딩 (Forwarding)
발생 조건: 목적지 MAC 주소가 테이블에 있고, 해당 포트가 출발지 포트와 다를 때
동작: 해당 포트로만 프레임 전송
■ 필터링 (Filtering)
발생 조건: 목적지 MAC 주소가 테이블에 있고, 출발지 포트와 같은 포트에 있을 때
동작: 프레임을 아무 포트로도 전송하지 않고 버림 (드롭)
사례: 같은 허브에 연결된 두 장비가 스위치의 동일 포트를 통해 통신할 때
MAC 주소 테이블의 에이징 타임 (Aging Time)
스위치는 MAC 주소 테이블을 영구적으로 유지하지 않는다. 각 항목에는 에이징 타임(Aging Time)이 있으며, 기본값은 대부분의 스위치에서 300초(5분)이다.
특정 MAC 주소로부터 일정 시간 동안 트래픽이 없으면, 해당 항목은 테이블에서 자동으로 삭제된다. 이후 다시 통신이 시작되면 학습 → 플러딩 과정을 처음부터 반복한다.
■ 에이징 타임이 필요한 이유
- 노트북이나 스마트폰처럼 자주 위치가 바뀌는 장비가 다른 포트로 이동했을 때,
이전 포트 정보가 남아 있으면 잘못된 포트로 전송하게 된다. - 에이징 타임이 지나면 해당 정보가 삭제되고, 재학습이 이루어져 올바른 포트로 전송된다.
■ Cisco 스위치에서 에이징 타임 확인 명령어
show mac address-table aging-time
mac address-table aging-time [초] ← 변경 시
실무에서 자주 발생하는 MAC 주소 테이블 관련 문제
■ MAC Flooding 공격
공격자가 위조된 출발지 MAC 주소를 가진 프레임을 대량으로 스위치에 보내 MAC 주소 테이블을 가득 채운다. 테이블이 꽉 차면 새로운 주소를 학습할 수 없어 스위치가 허브처럼 동작(모든 포트로 플러딩)하게 되어 도청이 가능해진다.
대응: Port Security 기능 활성화 — 포트당 학습 가능한 MAC 주소 수를 제한
■ MAC 주소 테이블 수동 확인
Cisco 장비 기준:
show mac address-table ← 전체 테이블 조회
show mac address-table dynamic ← 동적 학습된 항목만 조회
show mac address-table address [MAC주소] ← 특정 MAC 검색
마무리 — 스위치의 동작을 이해하면 네트워크 장애 원인이 보인다
네트워크 장애가 발생했을 때 “왜 이 PC만 통신이 안 되지?”라고 막막할 때, MAC 주소 테이블의 동작을 이해하고 있으면 문제의 원인을 훨씬 빠르게 좁힐 수 있다.
스위치가 특정 MAC 주소를 엉뚱한 포트에 기록하고 있지는 않은지, MAC 테이블이 비정상적으로 가득 차 있지는 않은지, 에이징 설정이 너무 길거나 짧지는 않은지.
이 관점에서 스위치를 바라보는 순간, 단순한 “박스”가 아니라 데이터를 정밀하게 다루는 지능형 장비로 보이기 시작한다.
