icon

안동민 개발노트

3장 : 물리 계층과 데이터 링크 계층

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 기반 VLANMAC 주소장치가 포트를 이동해도 VLAN 유지
프로토콜 기반 VLANL3 프로토콜IPv4/IPv6 별도 처리 등
서브넷 기반 VLANIP 서브넷특정 서브넷의 트래픽을 자동 분류

트렁크 포트와 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)L2DHCP 스누핑 테이블로 ARP 검증
정적 ARP 항목L2/L3게이트웨이 MAC 고정
DHCP 스누핑L2신뢰할 수 없는 포트의 DHCP 응답 차단
802.1XL2포트 접속 시 인증 요구
HTTPS/TLSL7ARP 스푸핑 되어도 암호화된 내용은 보호
arp_spoof_detect.sh
# 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.1

DHCP 스누핑

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

공격자가 자신의 DHCP 서버를 가동하면, 클라이언트에게 가짜 게이트웨이 주소를 할당할 수 있습니다. DHCP 스누핑은 신뢰할 수 있는 포트(Trusted)에서만 DHCP 응답을 허용합니다.

포트 유형DHCP 요청DHCP 응답설정 대상
Trusted허용허용실제 DHCP 서버 연결 포트
Untrusted허용차단클라이언트 연결 포트 (기본값)

DHCP 스누핑 바인딩 테이블은 어떤 IP가 어떤 MAC에 할당되었는지를 기록합니다. 이 테이블은 DAI(Dynamic ARP Inspection)의 검증 기준으로도 사용됩니다.

이것으로 물리 계층과 데이터 링크 계층의 핵심 내용을 살펴보았습니다. 다음 장에서는 한 단계 위인 네트워크 계층으로 올라가, 서로 다른 네트워크를 연결하는 IP 주소와 서브넷을 다루겠습니다.

목차