본문 바로가기
IT적응기

L2 스위치 동작 원리 (CAM 테이블, MAC Flooding, Port Security)

by IT적응기 2026. 4. 6.

스위치는 그냥 "케이블 여러 개 꽂는 장비" 아닌가요? 저도 처음엔 그렇게 생각했습니다. 허브보다 조금 더 똑똑한 것 정도로 이해했고, 그냥 물리적인 연결 장치라고 여겼습니다. 그러다 소규모 사무실 네트워크를 직접 구성하고 운영하면서, 스위치가 생각보다 훨씬 정교하게 동작한다는 걸 뒤늦게 깨달았습니다. 특히 네트워크가 원인도 모른 채 느려지고, 재부팅해도 해결이 안 됐던 그 경험은 지금도 생생합니다.

CAM 테이블: 스위치가 길을 기억하는 방식

스위치가 프레임을 처리하는 핵심은 CAM 테이블(Content Addressable Memory Table)에 있습니다. 여기서 CAM 테이블이란 각 포트에 어떤 MAC 주소가 연결되어 있는지를 기록해두는 일종의 주소록입니다. 사람으로 치면 "이 자리엔 이 사람이 앉아 있다"를 메모해 두는 것과 같습니다. 그리고 이 메모가 틀리거나 비어 있을 때 스위치는 아무 방향으로나 프레임을 뿌리기 시작합니다.

스위치가 프레임을 받으면 세 단계로 처리합니다. 먼저 Learning, 즉 학습 단계에서 출발지 MAC 주소와 수신 포트를 CAM 테이블에 등록합니다. 이미 등록된 주소라면 에이징 타이머를 초기화하는데, 기본값은 300초입니다. 다음으로 목적지 MAC 주소를 테이블에서 조회해서, 있으면 해당 포트로만 전달하는 Forwarding, 없으면 수신 포트를 제외한 모든 포트로 복사해서 보내는 Flooding을 수행합니다.

제가 직접 구성해보니, 이 세 단계가 이론처럼 단순하게 돌아가지 않는 상황이 꽤 많았습니다. 처음 사무실 네트워크를 만들 때 언매니지드 스위치만 썼는데, 어느 순간 네트워크가 주기적으로 느려졌습니다. 케이블을 바꾸고 스위치를 재부팅해봤지만 반복됐습니다. 나중에 공부를 하면서야 알게 됐는데, 원인은 브로드캐스트 스톰이었습니다. 브로드캐스트 스톰이란 잘못 연결된 루프 구성으로 Flooding이 폭발적으로 증가하면서 네트워크 전체가 마비되는 현상을 말합니다. 루프 하나가 이렇게까지 영향을 줄 줄은 몰랐습니다. 그리고 더 답답했던 건, 언매니지드 스위치라 어디서 루프가 생겼는지 확인할 방법도 없었다는 점입니다.

스위칭 동작의 핵심 3단계를 명확히 정리하면 이렇습니다. Learning은 수신 프레임의 출발지 MAC과 포트를 CAM 테이블에 등록하는 단계로, 기존 항목은 타이머를 리셋합니다. Flooding은 목적지 MAC이 테이블에 없거나 브로드캐스트(FF:FF:FF:FF:FF:FF), 멀티캐스트 주소일 때 전체 포트로 복사해서 전송하는 단계입니다. Forwarding은 목적지 MAC이 테이블에 존재하면 해당 포트로만 전달하는 단계이며, 출발지와 같은 포트이면 Filtering으로 폐기합니다.

이 구조는 단순하고 빠르다는 장점이 있지만, CAM 테이블의 용량은 하드웨어에 의해 고정되어 있다는 한계가 있습니다. 대형 데이터센터 환경처럼 수천 대의 장비가 연결된 환경에서는 테이블 오버플로우가 발생할 수 있고, 그 순간부터 스위치는 모든 프레임을 Flooding하는 상태로 전락합니다. 이 구조를 단순히 "빠른 전달 장치"로만 보는 시각도 있는데, 저는 그 관점이 절반만 맞다고 봅니다. 성능뿐 아니라 보안과 설계 측면에서도 CAM 테이블의 동작 방식을 이해하는 것이 필수입니다.

MAC Flooding과 Port Security: 허브 하나가 드러낸 취약점

MAC Flooding 공격은 CAM 테이블의 구조적 취약점을 정면으로 겨냥합니다. 공격자가 위조된 MAC 주소를 수없이 보내 CAM 테이블을 가득 채우면, 스위치는 새로운 주소를 학습하지 못하고 모든 프레임을 Flooding 상태로 처리하게 됩니다. 여기서 MAC Flooding이란 스위치를 허브처럼 만들어버리는 공격으로, 공격자가 같은 세그먼트에 있는 모든 통신을 도청할 수 있게 되는 것이 핵심 위협입니다.

이 취약점에 대응하는 기능이 Port Security입니다. Port Security란 스위치 포트별로 학습 가능한 MAC 주소의 수를 제한하고, 초과 시 포트를 자동으로 차단하거나 경고를 발생시키는 기능입니다. 제가 매니지드 스위치를 도입하고 나서 처음 이 기능을 설정했을 때 꽤 인상적인 경험을 했습니다. 특정 포트에 MAC 주소 2개까지만 허용하도록 구성해뒀는데, 어느 날 직원 한 명이 자리에 허브를 몰래 연결해서 노트북, 개인 태블릿, 공유기를 한꺼번에 붙인 겁니다. 그러자 포트가 자동으로 차단됐습니다. 이론으로만 알던 Learning-Flooding-Forwarding이 실제로 어떻게 작동하는지를 현장에서 눈으로 확인한 순간이었습니다.

다만 이 경험을 통해 동시에 깨달은 것도 있습니다. Port Security가 발동되면 해당 포트가 차단되고, 그 직원은 네트워크를 쓸 수 없게 됩니다. 업무를 하다가 갑자기 연결이 끊긴 직원 입장에서는 당연히 혼란스럽습니다. 보안 기능이 사용자 경험과 충돌하는 전형적인 사례입니다. 그래서 Port Security를 설정할 때는 차단(shutdown) 모드로만 할 것인지, 경고(restrict) 모드도 병행할 것인지, 그리고 위반 발생 시 어떻게 사용자에게 안내할 것인지까지 미리 정해두는 게 중요합니다.

MAC Flooding 방어를 Port Security 하나로 완결하려는 시각도 있는데, 솔직히 이건 예상 밖이었습니다. Port Security만으로는 충분하지 않습니다. 보안 전문가들 사이에서도 DHCP Snooping, Dynamic ARP Inspection과 함께 다층적으로 적용해야 실질적인 L2 보안이 된다는 의견이 지배적입니다. DHCP Snooping이란 비정상적인 DHCP 서버가 네트워크에 침투하는 것을 막는 기능이고, Dynamic ARP Inspection이란 ARP 스푸핑 공격을 차단하는 기능입니다. 이 세 가지를 묶어서 적용하지 않으면, 공격자가 우회 경로를 찾을 가능성이 있습니다. 그리고 제 경험상 이건 설계 초반부터 함께 고려하지 않으면, 나중에 하나씩 얹는 방식으로는 허점이 생기기 쉽습니다.

L2 계층을 단순한 물리적 연결 수단으로만 여기는 분들도 있는데, 제가 직접 써봤을 때 그 시각은 위험합니다. 스위치가 처리하는 프레임 하나하나는 CAM 테이블이라는 작은 데이터베이스를 기반으로 움직이고, 그 테이블의 구조가 성능과 보안 모두에 직결됩니다. 언매니지드 스위치 시절에 원인도 모른 채 케이블만 바꾸던 저처럼, 이 구조를 이해하지 못하면 장애가 생겼을 때 엉뚱한 곳만 건드리게 됩니다.

L2 스위치의 동작 원리를 제대로 이해하는 것은 네트워크 설계의 출발점입니다. CAM 테이블이 어떻게 채워지고 비워지는지, Flooding이 어떤 조건에서 발생하는지를 먼저 파악한 뒤에 Port Security와 DHCP Snooping, Dynamic ARP Inspection을 설계 단계부터 고려하는 것이 현실적인 접근입니다. 작은 사무실 네트워크라도 매니지드 스위치를 쓴다면, 포트별 MAC 수 제한부터 시작해보시길 권합니다. 그 설정 하나가 나중에 얼마나 큰 차이를 만드는지, 직접 경험해보면 바로 체감하실 수 있을 겁니다.


참고:
Cisco: How Switches Work - CAM Table (https://www.cisco.com/c/en/us/support/docs/lan-switching/ethernet/10613-15.html)
CompTIA Network+ Study Guide (https://www.comptia.org/certifications/network)
Radia Perlman, Interconnections: Bridges, Routers, Switches, Protocols (Addison-Wesley)


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 깜짝,황금이 아빠 IT적응기

서치어드바이저