VLAN과 2계층 보안
스위치가 MAC 주소를 기반으로 프레임을 정확한 포트에 전달한다는 것을 배웠습니다. 하지만 현실의 네트워크에서는 단순히 프레임을 전달하는 것만으로는 부족합니다. 부서별로 네트워크를 논리적으로 분리해야 하고, 데이터 링크 계층에서 발생할 수 있는 보안 위협에도 대비해야 합니다.
VLAN의 개념과 목적
VLAN(Virtual LAN)은 하나의 물리적 스위치를 여러 개의 논리적 네트워크로 분리하는 기술입니다.
VLAN 없이 (하나의 브로드캐스트 도메인)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┌──────────────────────────────────────────────┐
│ [ SWITCH ] │
│ P1 P2 P3 P4 P5 P6 P7 P8 │
└──┬────┬────┬────┬────┬────┬────┬─────┬───────┘
│ │ │ │ │ │ │ │
개발 개발 인사 인사 재무 재무 개발 재무
→ 브로드캐스트가 전체 전파 → 보안/성능 문제
VLAN 적용 후 (브로드캐스트 도메인 분리)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┌──────────────────────────────────────────────┐
│ [ SWITCH ] │
│ P1 P2 P3 P4 P5 P6 P7 P8 │
│ ┌V10─V10┐ ┌V20─V20┐ ┌V30─V30┐ ┌V10 V30┐ │
└──┬────┬────┬────┬────┬────┬────┬────┬────────┘
│ │ │ │ │ │ │ │
개발 개발 인사 인사 재무 재무 개발 재무
VLAN 10 VLAN 20 VLAN 30
→ 각 VLAN 내에서만 브로드캐스트 전파| VLAN 효과 | 설명 |
|---|---|
| 브로드캐스트 도메인 축소 | 불필요한 트래픽 감소 |
| 보안 격리 | VLAN 간 직접 통신 불가 |
| 유연한 그룹핑 | 물리적 위치와 무관하게 논리적 그룹 구성 |
| 정책 적용 | VLAN 단위로 QoS, ACL 적용 가능 |
VLAN 간에 통신이 필요하면 라우터(L3)를 통해야 합니다. 라우터에서 접근 제어 정책을 적용할 수 있어, 개발팀은 재무팀 서버에 접근할 수 없다는 규칙을 설정할 수 있습니다.
VLAN 종류
| 종류 | 기준 | 설명 |
|---|---|---|
| 포트 기반 VLAN | 스위치 포트 | 가장 일반적, 포트에 VLAN ID 할당 |
| MAC 기반 VLAN | MAC 주소 | 장치가 포트를 이동해도 VLAN 유지 |
| 프로토콜 기반 VLAN | L3 프로토콜 | IPv4/IPv6 별도 처리 등 |
| 서브넷 기반 VLAN | IP 서브넷 | 특정 서브넷의 트래픽을 자동 분류 |
트렁크 포트와 802.1Q
여러 스위치에 걸쳐 VLAN을 운영해야 할 때 트렁크 포트(Trunk Port)가 필요합니다.
트렁크 링크
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[ Switch A ] [ Switch B ]
P1 P2 P3 TRUNK ════════ TRUNK P1 P2 P3
V10 V20 V10 ↑ ↑ V10 V20 V20
│ │
모든 VLAN 트래픽 통과
(802.1Q 태그 포함)
액세스 포트: 하나의 VLAN만, 태그 없이 전달
트렁크 포트: 여러 VLAN, 802.1Q 태그 추가하여 전달802.1Q 태그 구조
표준 이더넷 프레임
┌─────┬─────┬──────┬──────────┬─────┐
│ DST │ SRC │ Type │ Payload │ FCS │
│ MAC │ MAC │ 2B │ │ 4B │
└─────┴─────┴──────┴──────────┴─────┘
802.1Q 태그가 추가된 프레임
┌─────┬─────┬──────────┬──────┬──────────┬─────┐
│ DST │ SRC │ 802.1Q │ Type │ Payload │ FCS │
│ MAC │ MAC │ Tag (4B) │ 2B │ │ 4B │
└─────┴─────┴──────────┴──────┴──────────┴─────┘
802.1Q 태그 상세
┌──────────┬─────┬───────────┬────────────┐
│ TPID │ PCP │ DEI │ CFI │ VLAN ID │
│ 0x8100 │ 3b │ 1b │ │ 12 bits │
│ (2 bytes)│ │ │ │ (0~4095) │
└──────────┴─────┴───────────┴────────────┘VLAN ID는 12비트이므로 최대 4096개(0~4095)의 VLAN을 사용할 수 있습니다. 실무에서 VLAN 0과 4095는 예약되어 있고, VLAN 1은 기본 VLAN (native VLAN)입니다.
Inter-VLAN 라우팅
VLAN 간 통신에는 라우터가 필요합니다. 세 가지 방식이 있습니다.
| 방식 | 구성 | 장단점 |
|---|---|---|
| 라우터 + 각 VLAN별 물리 포트 | 물리 인터페이스 1:1 | 단순하지만 포트 소모 |
| Router-on-a-Stick | 하나의 트렁크 링크 + 서브인터페이스 | 경제적, 대역폭 병목 가능 |
| L3 스위치 | 스위치 내부에서 라우팅 | 와이어 스피드, 가장 일반적 |
Router-on-a-Stick 구성
━━━━━━━━━━━━━━━━━━━━━━
[ Router ]
eth0
eth0.10 (192.168.10.1/24) ← 서브인터페이스
eth0.20 (192.168.20.1/24)
║ (트렁크)
[ Switch ]
P1(V10) P2(V10) P3(V20) P4(V20)MAC 플러딩 공격
MAC 플러딩(MAC Flooding)은 스위치의 MAC 주소 테이블을 고의로 가득 채우는 공격입니다.
공격 과정
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 공격자가 랜덤 출발지 MAC으로 대량 프레임 전송
MAC 테이블
┌──────────────────┬──────┐
│ 가짜 MAC #1 │ P3 │
│ 가짜 MAC #2 │ P3 │
│ ... │ P3 │
│ 가짜 MAC #50000 │ P3 │ ← 테이블 가득 참!
└──────────────────┴──────┘
2. 테이블 오버플로우 → 정상 프레임도 플러딩
3. 공격자가 모든 포트의 트래픽을 수신 → 도청 가능방어 방법: 포트 보안(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 | 포트 비활성화 (가장 엄격) |
| restrict | 위반 프레임 폐기 + SNMP 알림 |
| protect | 위반 프레임 폐기 (로그 없음) |
ARP 스푸핑 공격과 방어
ARP 스푸핑(ARP Spoofing)은 거짓 ARP 응답을 보내 중간자 공격(MITM)을 수행합니다.
ARP 스푸핑 공격 과정
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
정상 상태
PC-A ←→ Gateway (192.168.1.1)
공격 시작
공격자 M → PC-A: "192.168.1.1의 MAC은 (M의 MAC)"
공격자 M → GW: "192.168.1.100의 MAC은 (M의 MAC)"
결과
PC-A → [공격자 M] → Gateway → Internet
↑
트래픽 도청/변조 가능방어 방법
| 방어 기술 | 계층 | 설명 |
|---|---|---|
| DAI (Dynamic ARP Inspection) | L2 | DHCP 스누핑 테이블로 ARP 검증 |
| 정적 ARP 항목 | L2/L3 | 게이트웨이 MAC 고정 |
| DHCP 스누핑 | L2 | 신뢰할 수 없는 포트의 DHCP 응답 차단 |
| 802.1X | L2 | 포트 접속 시 인증 요구 |
| HTTPS/TLS | L7 | ARP 스푸핑 되어도 암호화된 내용은 보호 |
# ARP 테이블에서 중복 MAC 감지
# 같은 MAC이 여러 IP에 매핑되면 스푸핑 의심
arp -a | awk '{print $4}' | sort | uniq -d
# arpwatch로 ARP 변화 모니터링
sudo arpwatch -i eth0
# arping으로 IP 충돌/스푸핑 감지
sudo arping -D -c 3 192.168.1.1DHCP 스누핑
DHCP 스누핑은 스위치가 DHCP 트래픽을 검사하여 악성 DHCP 서버를 차단하는 보안 기능입니다.
공격자가 자신의 DHCP 서버를 가동하면, 클라이언트에게 가짜 게이트웨이 주소를 할당할 수 있습니다. DHCP 스누핑은 신뢰할 수 있는 포트(Trusted)에서만 DHCP 응답을 허용합니다.
| 포트 유형 | DHCP 요청 | DHCP 응답 | 설정 대상 |
|---|---|---|---|
| Trusted | 허용 | 허용 | 실제 DHCP 서버 연결 포트 |
| Untrusted | 허용 | 차단 | 클라이언트 연결 포트 (기본값) |
DHCP 스누핑 바인딩 테이블은 어떤 IP가 어떤 MAC에 할당되었는지를 기록합니다. 이 테이블은 DAI(Dynamic ARP Inspection)의 검증 기준으로도 사용됩니다.
이것으로 물리 계층과 데이터 링크 계층의 핵심 내용을 살펴보았습니다. 다음 장에서는 한 단계 위인 네트워크 계층으로 올라가, 서로 다른 네트워크를 연결하는 IP 주소와 서브넷을 다루겠습니다.