안동민 개발노트

본문 시작

VLAN과 2계층 보안

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

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

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

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


VLAN의 개념과 목적

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

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

VLAN의 L2 경계와 VLAN 사이의 정책 지점

두 VLAN은 서로 다른 브로드캐스트 도메인입니다. VLAN 사이의 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독립된 브로드캐스트 범위L3 게이트웨이ACL · 방화벽 정책VLAN 20독립된 브로드캐스트 범위L3 처리정책 허용 시
VLAN 효과설명
브로드캐스트 도메인 축소ARP, DHCP 같은 브로드캐스트 범위를 VLAN 안으로 제한
2계층 분리VLAN 간 직접 L2 전달은 차단하고 L3 정책 지점을 만듦
유연한 그룹핑물리적 위치와 무관하게 부서, 서비스, 보안 구역 구성
정책 적용VLAN 단위로 QoS, ACL, DHCP 스누핑 같은 정책 적용

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

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

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


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에 할당되었는지를 기록합니다.

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

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

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