본문 바로가기

VLAN과 2계층 보안

VLAN과 802.1Q로 브로드캐스트 영역을 분리하고 Inter-VLAN 라우팅 및 ARP·MAC·DHCP 공격 방어를 익힙니다.

스위치가 MAC 주소를 기반으로 프레임을 정확한 포트에 전달한다는 것을 배웠습니다.

하지만 현실의 네트워크에서는 단순히 프레임을 전달하는 것만으로는 부족합니다.

부서별로 네트워크를 논리적으로 분리해야 하고, 데이터 링크 계층에서 발생할 수 있는 보안 위협에도 대비해야 합니다.


VLAN의 개념과 목적

VLAN(Virtual LAN)은 하나의 물리적 스위치 인프라를 여러 개의 논리적 2계층 네트워크로 분리하는 기술입니다.

같은 스위치에 연결되어 있어도 VLAN이 다르면 브로드캐스트 도메인이 분리됩니다.

VLAN BOUNDARY · L2 SEPARATION / L3 POLICY

브로드캐스트 분리와 VLAN 사이 접근 정책은 다른 역할이다

VLAN 10과 20은 독립된 L2 범위입니다. 사이의 IP 통신은 L3 게이트웨이를 거치며, 관리자가 적용한 ACL·방화벽 정책이 허용한 트래픽을 전달하도록 구성합니다.

VLAN의 L2 경계와 VLAN 사이의 정책 지점두 VLAN은 서로 다른 브로드캐스트 도메인입니다. VLAN 사이의 IP 통신은 L3 게이트웨이를 거치며 ACL 또는 방화벽 정책이 허용한 트래픽만 전달하도록 구성합니다.VLAN 10독립된 L2 범위L3 게이트웨이ACL · 방화벽 정책VLAN 20독립된 L2 범위L3 처리정책 허용 시
VLAN의 L2 경계와 VLAN 사이의 정책 지점두 VLAN은 서로 다른 브로드캐스트 도메인입니다. VLAN 사이의 IP 통신은 L3 게이트웨이를 거치며 ACL 또는 방화벽 정책이 허용한 트래픽만 전달하도록 구성합니다.VLAN 10독립된 L2브로드캐스트 범위L3 게이트웨이ACL · 방화벽 정책VLAN 20독립된 L2브로드캐스트 범위L3 처리정책 허용 시

VLAN만 나누어서는 접근 금지 정책이 완성되지 않는다

VLAN: ARP·DHCP 등 브로드캐스트를 같은 VLAN 안에 제한

L3 정책: 개발팀→재무팀 서버 같은 접근의 허용·차단을 결정

트렁크는 같은 VLAN을 여러 스위치로 확장할 수 있습니다. VLAN 간 L3 라우팅과 접근 정책은 별도로 설정합니다.

VLAN 효과설명
브로드캐스트 도메인 축소ARP, DHCP 같은 브로드캐스트 범위를 VLAN 안으로 제한
2계층 분리VLAN 간 직접 L2 전달은 차단하고 L3 정책 지점을 만듦
유연한 그룹화물리적 위치와 무관하게 부서, 서비스, 보안 구역 구성
정책 적용VLAN 단위로 QoS, ACL, DHCP 스누핑 같은 정책 적용

VLAN은 방화벽 자체는 아닙니다.

VLAN 간 통신이 필요하면 L3 게이트웨이를 통해 라우팅하고, 이 지점에서 ACL이나 방화벽 정책을 적용해야 합니다.

예를 들어 개발팀은 재무팀 서버에 접근할 수 없다는 규칙은 VLAN 분리만으로 끝나는 것이 아니라 L3 정책으로 완성됩니다.


분리와 허용을 따로 판단하기: 개발 PC A는 VLAN 10, 재무 서버 B는 VLAN 20에 있고 각각 다른 IPv4 서브넷에 속합니다. 두 VLAN의 게이트웨이에는 정상 경로가 있지만 관리자가 A→B의 TCP 443만 허용하고 TCP 22는 차단하도록 정책을 적용했다고 합시다. A의 ARP 브로드캐스트가 VLAN 20으로 그대로 넘어가는 것은 아닙니다. A는 자신의 VLAN 안에서 게이트웨이의 MAC을 구하고, 게이트웨이는 라우팅할 패킷의 정책을 판단합니다. 이 조건에서 443은 전달 대상이고 22는 차단 대상이지만, 443 허용만으로 B의 HTTPS 서비스나 인증까지 성공했다고 할 수는 없습니다.

독립 판단: 게이트웨이의 이 L3 정책만 제거하고 VLAN 10·20 및 정상 경로는 유지했습니다. “VLAN이 다르니 A→B의 IP 통신도 반드시 차단된다”는 결론이 맞을까요? 같은 VLAN 안의 위조 ARP를 위 정책 하나로 차단할 수 있는지도 구분하세요.

경계와 정책 지점 확인

VLAN의 L2 브로드캐스트 분리는 유지되지만, 정상 라우팅이 있고 이를 막는 다른 정책이 없다는 조건에서는 VLAN 간 IP 패킷이 전달될 수 있습니다. 접근 차단은 적용한 정책의 효과입니다. 같은 VLAN에서 교환하는 ARP는 보통 그 L3 정책 지점을 거치지 않으므로 ARP 자체의 검증에는 아래의 DAI 등 해당 L2 기능과 올바른 바인딩 조건을 따로 확인해야 합니다.

VLAN 종류

VLAN 분류 기준구성과 사용 조건
포트액세스 포트에 VLAN ID 할당 · 가장 흔한 방식
MAC지원 장비에서 단말 MAC으로 배정 · 운영 복잡도 고려
프로토콜IPv4/IPv6 등 프로토콜별 분류가 필요한 특수 환경
서브넷IP 대역 기준으로 분류하는 정책형 구성

트렁크 포트와 802.1Q

여러 스위치에 걸쳐 같은 VLAN을 운영하려면 트렁크 포트(Trunk Port)가 필요합니다.

액세스 포트는 보통 단말에게 태그 없는 프레임을 보내고, 트렁크 포트는 여러 VLAN의 프레임을 802.1Q 태그로 구분해 운반합니다.

802.1Q 태그 구조

트렁크의 native VLAN 프레임을 태그 없이 보낼지는 장비 설정에 따라 달라지며, 모든 VLAN에 태그를 붙이는 구성도 있습니다.

802.1Q 태그는 원래 이더넷 프레임의 출발지 MAC 뒤에 4바이트를 삽입합니다.

일반적인 C-태그의 TPID는 0x8100이며, TCI 안에는 PCP 3비트, DEI 1비트, VLAN ID 12비트가 들어갑니다.

VLAN ID 필드는 12비트라서 0~4095 값을 표현할 수 있지만, VLAN ID 0은 VLAN 소속 대신 우선순위를 표시하는 태그에 쓰이고 4095는 예약되어 일반 VLAN으로 쓰지 않습니다.

실무에서 사용할 수 있는 VLAN ID는 보통 1~4094이며, 많은 장비에서 VLAN 1이 기본 VLAN 또는 기본 native VLAN으로 설정되어 있지만 운영망에서는 native VLAN을 의도적으로 바꾸고 미사용 VLAN으로 두는 경우가 많습니다.


Inter-VLAN 라우팅

VLAN 간 통신에는 L3 라우팅 기능이 필요합니다.

구현 방식은 장비 규모와 트래픽량에 따라 달라집니다.

라우팅 방식구성과 장단점
VLAN별 물리 포트라우터 인터페이스를 1:1로 연결 · 단순하지만 포트 소모 큼
Router-on-a-Stick트렁크 하나와 서브인터페이스 · 경제적이나 트렁크가 병목 가능
L3 스위치SVI로 내부 라우팅 · 캠퍼스망에서 흔하며 성능은 장비에 의존

MAC 플러딩 공격

MAC 플러딩(MAC Flooding)은 스위치의 MAC 주소 테이블을 고의로 압박하는 공격입니다.

공격자가 대량의 가짜 출발지 MAC 주소를 보내면 스위치는 계속 학습을 시도하고, 장비 동작에 따라 일부 unknown unicast 프레임이 여러 포트로 플러딩될 수 있습니다.

방어 방법: 포트 보안(Port Security)

# Cisco 스위치 포트 보안 설정 예시
interface GigabitEthernet0/1
 switchport mode access
 switchport port-security
 switchport port-security maximum 5        # 최대 5개 MAC
 switchport port-security violation shutdown # 위반 시 포트 차단
 switchport port-security aging time 60     # 60분 에이징
위반 동작설명
shutdown포트를 err-disable 상태로 내려 가장 엄격하게 차단
restrict위반 프레임 폐기 + 로그/SNMP 알림
protect위반 프레임 폐기, 알림은 제한적

포트 보안 명령과 위반 모드는 벤더별 구현이 다릅니다.

위 블록의 #와 뒤쪽 설명은 교재용 주석입니다. 그대로 Cisco CLI에 붙여 넣는 명령이 아니며, 해당 장비 문법에 맞게 설명을 제외해야 합니다.


ARP 스푸핑 공격과 방어

ARP 스푸핑(ARP Spoofing)은 위조 ARP 메시지로 IP-MAC 매핑을 오염시켜 중간자 공격(MITM)이나 트래픽 우회를 시도하는 공격입니다.

방어 방법

방어 기술검증 대상과 경계
DAIL2 · DHCP 스누핑 바인딩 또는 정적 항목으로 ARP 검증
정적 ARPL2/L3 · 중요한 IP–MAC 매핑 고정
DHCP 스누핑L2 · 신뢰하지 않는 포트의 서버성 DHCP 메시지 차단
802.1XL2 · 포트 접속 시 단말 인증
HTTPS/TLS애플리케이션 데이터 암호화·상대 인증; ARP 메시지 자체를 차단하지는 않음
arp_spoof_detect.sh
# ARP 테이블에서 중복 MAC 단서 확인
# 같은 MAC이 여러 IP에 매핑되면 조사 대상이지만, 가상화/프록시 ARP 환경에서는 정상일 수도 있음
arp -a | awk '{print $4}' | sort | uniq -d

# arpwatch로 ARP 변화 모니터링
sudo arpwatch -i eth0

# arping으로 중복 주소 응답 단서 확인
sudo arping -D -c 3 192.168.1.1

arping -D 응답은 중복 주소 사용을 조사할 단서입니다. 이 결과만으로 ARP 스푸핑을 확정할 수는 없습니다.

DHCP 스누핑

DHCP 스누핑은 스위치가 DHCP 트래픽을 검사하여 악성 DHCP 서버나 비정상 DHCP 메시지를 차단하는 보안 기능입니다.

공격자가 자신의 DHCP 서버를 가동하면 클라이언트에게 가짜 게이트웨이, DNS, IP 대역을 배포할 수 있습니다.

DHCP 스누핑은 신뢰할 수 있는 포트(Trusted)에서 들어온 서버성 DHCP 메시지만 허용하고, 클라이언트 포트는 기본적으로 Untrusted로 두는 방식으로 방어합니다.

포트DHCP 스누핑의 처리
Trusted요청과 서버 응답 허용 · 서버 연결 포트 또는 신뢰하는 서버 방향 업링크
Untrusted클라이언트 요청 허용, 서버성 응답 차단 · 일반 클라이언트 연결 포트

DHCP 스누핑 바인딩 테이블은 어떤 IP가 어떤 MAC에 할당되었는지를 기록합니다.

설정 조건을 읽는 연습: 클라이언트 쪽 포트가 Untrusted인 것은 정상입니다. 위 표의 조건에서 정상 DHCP 서버의 응답이 들어오는 업링크까지 Untrusted로 잘못 두었다면, 클라이언트 요청을 받았어도 서버성 응답이 차단되어 주소 할당을 마치지 못할 수 있습니다. “DHCP가 안 된다”는 관측만으로 서버 장애를 확정하지 말고 서버 응답이 어느 포트로 들어오며 그 포트에 어떤 정책을 적용했는지부터 대조합니다. 모든 포트를 Trusted로 바꾸는 것은 방어 경계도 없애므로 같은 해결이 아닙니다.

DAI가 DHCP 스누핑 바인딩을 검증 기준으로 사용하는 구성에서 정적 IP 서버의 ARP까지 허용해야 한다면, DHCP로 얻은 항목이 없는 이유와 지원 장비의 정적 검증 항목·정책을 별도로 확인해야 합니다. HTTPS/TLS는 데이터와 상대 인증을 다루므로 ARP 매핑 검증 자체를 대신하지 않습니다. 이 연습은 표에 제시한 정책 조건의 판단이며 특정 장비의 명령을 실행하거나 현행 제품 설정을 검증한 결과가 아닙니다.

이 테이블은 DAI(Dynamic ARP Inspection)의 검증 기준으로도 사용됩니다.

이것으로 물리 계층과 데이터 링크 계층의 핵심 내용을 살펴보았습니다.

다음 장에서는 한 단계 위인 네트워크 계층으로 올라가, 서로 다른 네트워크를 연결하는 IP 주소와 서브넷을 다루겠습니다.