핵심 인사이트 (3줄 요약)
- 본질: 스위치가 똑똑하게 길을 찾아주는 핵심 비결은, 스위치 내부 메모리에 어떤 포트(문)에 어떤 MAC 주소(장비)가 연결되어 있는지를 기록해 둔 **'MAC 주소 테이블(MAC Address Table)'**이라는 지도책 덕분이다.
- CAM 메모리: 수천 개의 MAC 주소를 뒤져서 찾아야 하는 검색 지연을 없애기 위해, 스위치는 주소를 넣으면 주소가 저장된 위치(포트)가 즉시 튀어나오는 **CAM (Content-Addressable Memory)**이라는 극도로 비싼 특수 하드웨어 메모리를 사용한다.
- 보안 취약점 (MAC Flooding): 해커가 가짜 MAC 주소를 초당 수만 개씩 스위치로 쏘아 CAM 테이블의 용량을 가득 채워버리면, 지도가 망가진 스위치는 옛날 '더미 허브'처럼 모든 포트로 데이터를 뿌리게 되는데, 이를 악용한 도청 공격이 MAC Flooding이다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: MAC 주소 테이블은 이더넷 스위치가 포워딩(Forwarding) 결정을 내리기 위해 참조하는 내부 데이터베이스다. 특정 MAC 주소를 가진 장비가 스위치의 몇 번 물리적 인터페이스(Port)에 꽂혀 있는지 맵핑 정보가 저장되어 있다.
-
필요성: 스위치는 "길동이에게 전해줘"라는 편지(프레임)를 받으면, 길동이네 방이 1번인지 24번인지 알아야 한다. 만약 지도가 없다면 스위치는 매번 "길동이 어디 있어?"라며 모든 방 문을 열어 젖혀야(Flooding) 하므로, 옛날 허브와 다를 바 없게 된다. 빠른 처리를 위해 반드시 정확하고 실시간으로 갱신되는 지도가 필요하다.
-
💡 비유: MAC 주소 테이블은 아파트 경비실에 걸려있는 **"호수별 입주자 현황판"**과 같습니다. 경비 아저씨(스위치)는 택배에 적힌 이름(MAC)을 현황판에서 쓱 찾아보고 "아, 302호(Port 3)구나!" 하고 즉시 가져다줍니다.
📢 섹션 요약 비유: MAC 주소 테이블은 수많은 전화선이 꽂힌 옛날 전화 교환국의 **"가입자 전화번호 명부"**입니다. 이 명부가 있어야만 교환수(스위치)가 정확한 플러그(포트)를 연결해 통화를 성사시킬 수 있습니다.
Ⅱ. CAM의 하드웨어 원리와 관리 메커니즘 (Deep Dive)
1. 왜 CAM (Content-Addressable Memory)인가?
일반적인 RAM(Random Access Memory)은 CPU가 "메모리 100번지에 있는 데이터 좀 줘"라고 '주소'를 주면 '내용물(데이터)'을 꺼내준다.
반면 CAM은 정반대다. 스위치가 목적지 MAC 주소(예: 00:1A...)라는 '내용물(Content)'을 던지면, CAM 메모리가 병렬 처리를 통해 이 주소가 맵핑된 '포트 번호(Port 3)'를 O(1)의 속도로 즉각 뱉어낸다. 데이터베이스를 맨 위부터 아래까지 순차 탐색(Search)하는 시간이 제로(0)에 가깝기 때문에 Wire-speed(지연 없는 전송) 스위칭이 가능하다.
┌─────────────────────────────────────────────────────────────┐
│ RAM과 CAM의 검색 방식 차이 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [ RAM (일반 PC 메모리) ] │
│ CPU: "번지수(Address 0x05)에 뭐가 있니?" │
│ RAM: "네, 그 안에는 데이터(Data X)가 있습니다." │
│ │
│ [ CAM (스위치 MAC 테이블 메모리) ] │
│ 스위치 ASIC: "이 MAC 주소(Content)랑 짝지어진 포트 어딨니?" │
│ CAM: (모든 회로가 동시 검색) "네! 3번 포트(Port 3)에 있습니다!" │
│ │
└─────────────────────────────────────────────────────────────┘
2. MAC 테이블의 생명 주기 (Aging)
- 동적 테이블 (Dynamic): 관리자가 수동으로 적는 정적(Static) 테이블도 있지만, 대부분 꽂으면 스위치가 알아서 배우는 동적 테이블이다.
- 노화 (Aging): 만약 노트북을 3번 포트에서 빼서 5번 포트에 꽂으면 어떻게 될까? 스위치 테이블은 무한정 저장하지 않는다. 약 300초(기본값 5분) 동안 해당 MAC에서 아무 패킷도 오지 않으면 "이놈 퇴사했구나" 하고 테이블에서 지워버린다(Aging Time). 새로운 포트에 꽂히면 그때 다시 배운다.
3. MAC Flooding 공격
해커가 툴(예: macof)을 돌려 초당 수만 개의 랜덤한 가짜 출발지 MAC 주소를 생성해 스위치로 쏟아부으면, 스위치의 한정된 CAM 메모리(수천~수만 개 용량)가 가득 차버린다. 메모리가 풀(Full)난 스위치는 더 이상 테이블을 기록하지 못하고, 목적지를 몰라 모든 포트로 데이터를 복사해 뿌리는 **'허브(Hub)' 상태(Fail-open)**로 강등된다. 이때 해커는 옆 포트에서 지나가는 다른 사람들의 비밀번호 패킷을 유유히 엿듣는다(Sniffing).
📢 섹션 요약 비유: CAM 테이블은 스위치의 **"마법의 자동 응답 백과사전"**입니다. 일반 사전처럼 첫 장부터 넘겨가며 찾는 게 아니라, 질문을 던지자마자 책이 스스로 펼쳐져 정답(포트 번호)을 보여주는 최고급 특수 하드웨어입니다.