📚 네트워크 · 패킷 분석 › 04. 네트워크 장비 실습 — 161편
이전 글: 160. 네트워크 장비 연결 구조 · 다음 글: 162. Switch의 Frame Forwarding

1. 개념

MAC Address Table은 스위치가 "어떤 MAC 주소가 어느 포트 뒤에 있는가"를 기억해 두는 표입니다. 하드웨어 구현에서 CAM(Content Addressable Memory) 테이블이라고도 부르며, Linux bridge에서는 FDB(Forwarding Database)라고 부릅니다.

스위치가 프레임을 어느 포트로 보낼지 결정하는 전체 흐름은 162. Switch의 Frame Forwarding에서 다루고, 이 글은 테이블 자체, 즉 항목이 어떻게 생기고 사라지며 관제에서 어떻게 쓰이는지에 집중합니다.

열의미예
VLAN항목이 속한 VLAN (같은 MAC도 VLAN별로 따로 기록)10
MAC Address학습한 출발지 MAC000c.29aa.bb01 (Cisco 표기)
Type항목 유형DYNAMIC, STATIC
Port그 MAC이 연결된 포트Gi0/1
항목 유형생기는 방법사라지는 조건
Dynamic들어온 프레임의 출발지 MAC을 자동 학습Aging 시간 동안 해당 MAC의 프레임이 없을 때, 링크 다운
Static관리자가 수동 등록관리자가 삭제할 때
Secure포트 보안 기능이 허용 MAC으로 등록설정에 따라 유지 또는 Aging

2. 동작 원리

스위치는 출발지 MAC으로 학습하고, 목적지 MAC으로 조회합니다. 테이블에 관한 핵심 동작은 다음 세 가지입니다.

프레임 수신 (포트 Gi0/1, VLAN 10, src MAC = A)
     ↓
[학습] (VLAN 10, A) 항목이 있는가?
     ├─ 없음           → (VLAN 10, A, Gi0/1) 새로 등록
     ├─ 있음, 같은 포트 → Aging 타이머만 초기화
     └─ 있음, 다른 포트 → 포트를 Gi0/1로 갱신 (MAC 이동)
     ↓
[Aging] 일정 시간(Cisco·Linux bridge 기본 300초) 동안
        A에서 프레임이 없으면 항목 삭제
     ↓
[용량] 테이블이 가득 차면 새 MAC을 학습하지 못함
        → 그 MAC으로 가는 프레임은 "모르는 목적지"로 처리(Flooding)

MAC 이동은 단말이 다른 자리로 옮겼을 때 정상적으로 생기지만, 짧은 시간에 두 포트 사이를 반복해서 오가면 스위치 루프나 MAC 위조를 의심할 수 있습니다(Cisco 계열은 %SW_MATM-4-MACFLAP_NOTIF 로그를 남김).


3. 주요 특징

테이블 용량은 장비마다 정해져 있습니다(소형 스위치 수천 개 ~ 대형 장비 수십만 개). 한 포트에서 짧은 시간에 수많은 가짜 출발지 MAC이 들어오면 테이블이 가득 차서, 스위치가 정상 단말 트래픽까지 여러 포트로 뿌리게 됩니다. 이를 MAC Flooding(CAM 테이블 범람) 이라 하며, 결과적으로 같은 VLAN의 다른 포트에서 남의 트래픽이 보일 수 있습니다.

관제에서 테이블을 볼 때 구분해야 할 포트 종류입니다.

포트 종류학습되는 MAC위치 추적 의미
Access 포트(단말 포트)보통 1~몇 개단말의 물리 위치(자리)
업링크·Trunk 포트다른 스위치 뒤의 수많은 MAC위치 아님 → 다음 스위치로 추적 계속
IP 전화 연결 포트전화 + 뒤쪽 PC (2개)정상
가상화 호스트 연결 포트VM 수만큼 여러 개정상 (예외 관리 필요)

단말 위치 추적은 IP만 알고 있을 때 다음 순서로 합니다.

의심 IP 192.168.10.31
   ↓ 게이트웨이(L3 장비)의 ARP 테이블     → MAC 000c.29aa.bb01
   ↓ Core 스위치 MAC 테이블에서 조회      → 포트 Gi1/0/24 (업링크)
   ↓ LLDP·CDP로 연결된 하위 스위치 확인
   ↓ 하위 Access 스위치 MAC 테이블에서 조회 → 포트 Gi0/7 (단말 포트)
   ↓ 포트 배선 기록·자산 대장 → 위치·사용자

4. 예시

실습 예시 — GNS3 등에서 Cisco IOS 계열 스위치 이미지를 쓸 때의 확인 명령입니다. 출력은 형식 예시(값은 환경마다 다름)이며, 명령은 제조사·OS 버전에 따라 다릅니다.

Switch# show mac address-table dynamic vlan 10
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
  10    000c.29aa.bb01    DYNAMIC     Gi0/1
  10    000c.29aa.bb02    DYNAMIC     Gi0/2

Switch# show mac address-table address 000c.29aa.bb01
Switch# show mac address-table count
Switch# show mac address-table aging-time

실습 예시 — Linux bridge에서는 FDB로 같은 정보를 봅니다(Rocky/Ubuntu 공통, 152. Switch란 무엇인가의 br0 실습망 기준).

# 학습된 항목 (permanent는 브리지 자신의 로컬 주소)
bridge fdb show br br0 | grep -v permanent

# Aging 시간 확인 — ip 명령은 1/100초 단위로 표시 (30000 = 300초)
ip -d link show br0 | grep -o 'ageing_time [0-9]*'

# 정적 항목 등록·삭제 예시
sudo bridge fdb add 00:0c:29:aa:bb:03 dev ens38 master static
sudo bridge fdb del 00:0c:29:aa:bb:03 dev ens38 master

📷 [실습 화면 삽입 위치] 한 VM에서 ping을 멈춘 뒤 약 5분이 지나 bridge fdb show br br0 결과에서 해당 MAC 항목이 사라진 전후 비교 화면


5. 보안 관점

  • MAC Flooding은 테이블 용량을 소진시켜 스위치를 허브처럼 동작하게 만드는 공격 형태입니다. 대표 방어는 포트당 학습 MAC 수를 제한하는 포트 보안(Port Security) 입니다.
  • MAC 위조: 다른 단말의 MAC을 흉내 내면 테이블의 포트가 공격자 쪽으로 바뀌어 트래픽이 가로채질 수 있습니다. MAC 이동·Flapping 로그가 단서가 됩니다.
  • MAC 주소는 쉽게 바꿀 수 있어 MAC 기반 허용 목록만으로는 강한 인증이 되지 않습니다. 802.1X 같은 포트 인증과 함께 쓰는 것이 일반적입니다.
  • 사용하지 않는 포트를 비활성화하면 미인가 장비가 테이블에 등록될 기회 자체가 줄어듭니다.

6. SOC 관점

흔적확인할 수 있는 것
MAC 테이블 조회 결과의심 단말의 스위치·포트(물리 위치)
MAC 이동·Flapping 로그루프, 위조, 이중 연결 가능성
포트 보안 위반 로그한 포트의 MAC 수 초과, 미허용 MAC
포트별 MAC 수 추이단말 포트에 갑자기 많은 MAC → 범람 또는 비인가 스위치 연결

관제자가 확인할 질문

  • 의심 IP의 MAC이 학습된 포트는 단말 포트인가, 업링크 포트인가?
  • 사건 시각에 그 MAC이 학습되어 있던 포트와 지금의 포트가 같은가(Aging으로 사라졌을 수 있음)?
  • 단말 포트 하나에 평소보다 많은 MAC이 학습되어 있지 않은가?

오탐 주의: MAC 테이블은 현재 상태만 보여 주고 이력을 남기지 않습니다. 사건 후 시간이 지나면 항목이 Aging으로 사라지므로, 필요한 경우 즉시 조회해 기록하고, 이력이 필요하면 NAC·스위치 로그 수집을 활용합니다.


7. 핵심 정리

  • MAC Address Table은 (VLAN, MAC, 포트, 유형)으로 구성되며, 출발지 MAC으로 학습하고 목적지 MAC으로 조회합니다.
  • Dynamic 항목은 Aging(Cisco·Linux bridge 기본 300초)으로 사라지고, Static·Secure 항목은 설정으로 관리됩니다.
  • 테이블이 가득 차면 새 MAC을 학습하지 못해 Flooding이 늘어나며, 이를 노린 것이 MAC Flooding입니다.
  • 단말 위치 추적은 ARP(IP→MAC) → MAC 테이블(MAC→포트) → 업링크면 다음 스위치 순서로 합니다.
  • 실습 예시로 Cisco show mac address-table, Linux bridge fdb show로 같은 정보를 확인할 수 있습니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글