핵심 인사이트 (3줄 요약)
- 본질: MAC 주소 호핑(또는 MAC Flapping)은 스위치가 동일한 장비(동일 MAC 주소)가 초당 수십~수천 번씩 이 포트 저 포트로 계속 위치를 바꾸는 것처럼 착각하여, MAC 테이블을 미친 듯이 지웠다 다시 쓰기를 반복하는 치명적 에러 상태다.
- 발생 원인: 네트워크에 물리적인 루프(Looping)가 발생하여 똑같은 프레임이 여러 방향에서 돌고 돌아 스위치의 양쪽 포트로 번갈아 들어올 때 발생하며, 때로는 해커의 스푸핑 공격(ARP Spoofing)에 의해서도 유발된다.
- 네트워크 붕괴: 스위치가 이 MAC 주소가 진짜 어디 있는지 확신하지 못해 포워딩을 실패하게 되며, 지속적인 테이블 업데이트(인터럽트)로 인해 스위치 CPU 사용률이 100%를 찍고 죽어버리는 스위치 셧다운의 직접적인 원인이 된다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 스위치의 MAC Address Table에서 특정 MAC 주소의 포트 매핑 정보(예:
Port 1 -> Port 3 -> Port 1)가 쉴 새 없이 변경되며 팔랑거리는(Flapping) 현상이다. -
필요성: 스위치의 '학습(Learning)' 기능은 새로운 출발지 MAC을 보면 즉각 지도를 갱신하는 훌륭한 기능이지만, 맹점이 있다. "과연 정말로 노트북을 들고 1초 만에 저쪽 방으로 뛰어간 것일까?"라는 논리적 의심을 스위치는 하지 못한다. 관리자는 스위치 로그에 "MAC Flapping" 에러가 뜨는 것을 보고 "아! 선이 어디선가 루프(동그랗게)로 꼬였구나!"라는 장애 상황을 즉각 인지해야 한다.
-
💡 비유: 길동이라는 학생 한 명이 있는데, 교문 경비 아저씨(스위치)가 보기에 "길동이가 정문으로 들어왔다가 0.1초 만에 후문으로 또 들어오고, 다시 0.1초 만에 정문으로 또 들어오는" 분신술 현상입니다. 경비 아저씨는 출입 명부를 찢었다 고쳤다 하다가 결국 정신을 잃고 쓰러집니다.
📢 섹션 요약 비유: MAC 플래핑은 나침반의 자침이 북쪽을 가리키지 못하고 강력한 자기장(루프)에 휘말려 **"빙글빙글 미친 듯이 회전하여 길을 잃어버린 상태"**입니다.
Ⅱ. MAC Flapping의 발생 메커니즘과 증상 (Deep Dive)
1. 루핑(Loop)에 의한 핑퐁(Ping-Pong) 현상
가장 흔한 원인은 L2 스위치 간 링(Ring) 토폴로지 구성 후 STP(스패닝 트리)가 제대로 돌지 않았을 때다.
- PC A가 포트 1번을 통해 브로드캐스트 패킷을 스위치 A로 보낸다. (스위치 A는
MAC A = Port 1로 학습 완료) - 스위치 A가 이걸 포트 2번을 통해 스위치 B로 보낸다.
- 스위치 B는 이 방송을 다시 포트 3번을 통해 스위치 A의 포트 3번으로 되돌려 보낸다(루핑).
- 스위치 A는 포트 3번으로 들어온 패킷을 뜯어보니 출발지가 또 PC A다! 스위치는 기존 지도를 지우고
MAC A = Port 3이라고 수정(Flapping)해 버린다. - 이 핑퐁이 빛의 속도로 일어난다.
┌─────────────────────────────────────────────────────────────┐
│ MAC Flapping (호핑) 발생 알고리즘 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [ PC A (MAC A) ] ────▶ (Port 1) │
│ │ (학습: MAC A는 1번에 있네) │
│ [ 스위치 A ] │
│ │ ◀─ (Port 3) │
│ (Port 2) ───┐ │ ┌─── │
│ * 선이 둥글게 꼬임 ▼ │ │ │
│ [ 스위치 B ] │
│ (패킷이 2번 포트로 나갔다가 3번 포트로 다시 돌아옴) │
│ │
│ * 스위치 A의 멘탈 붕괴 (CAM Table 갱신 릴레이) │
│ 0.000초: [ MAC A : Port 1 ] │
│ 0.001초: [ MAC A : Port 3 ] (어? 3번으로 이사했나?) │
│ 0.002초: [ MAC A : Port 1 ] (어? 다시 1번으로 왔나?) │
│ 0.003초: [ MAC A : Port 3 ] (무한 반복) │
│ │
└─────────────────────────────────────────────────────────────┘
2. 치명적인 증상 (스위치 CPU 부하)
CAM 테이블(하드웨어 메모리)을 업데이트하는 작업 자체는 스위치의 통제 두뇌인 CPU의 개입(인터럽트)을 필요로 한다. 초당 수만 번씩 "어? 테이블 갱신해!"라는 인터럽트가 걸리면 스위치 CPU는 100%로 치솟고, 관리자가 원격(SSH/Telnet)으로 접속해서 원인을 고치려 해도 명령어가 먹히지 않아 결국 전원 케이블을 물리적으로 뽑아야만 고칠 수 있게 된다.
3. 보안 측면의 원인 (ARP Spoofing)
해커가 공격 목적으로 MAC Flapping을 유도하기도 한다. 해커가 자신의 노트북을 꽂고 "내가 게이트웨이 라우터(MAC R)다!"라고 가짜 패킷을 마구 뿌리면, 스위치는 진짜 라우터 포트와 해커 포트 사이에서 갈팡질팡(Flapping)하게 되고, 결국 해커 쪽으로 모든 중요 데이터가 흘러 들어가게 된다.
📢 섹션 요약 비유: MAC 호핑 현상은 우체국 직원이 전산망에 **"홍길동의 주소가 서울, 부산, 서울, 부산으로 1초마다 바뀌어 찍히는 바이러스"**에 걸린 것과 같습니다. 직원은 도대체 편지를 서울로 보내야 할지 부산으로 보내야 할지 몰라 그 자리에 얼어붙고 맙니다.