📚 네트워크 · 패킷 분석 › 04. 네트워크 장비 실습 — 163편
이전 글: 162. Switch의 Frame Forwarding · 다음 글: 164. Access Port
VLAN(Virtual LAN) 은 물리적으로는 같은 스위치(또는 연결된 스위치들)에 꽂혀 있는 장치들을 논리적으로 서로 다른 LAN으로 나누는 기술입니다. 서로 다른 VLAN에 속한 장치는 같은 스위치에 연결되어 있어도 L2에서 직접 통신하지 못하고, 브로드캐스트도 서로 닿지 않습니다.
VLAN이 없으면 스위치에 연결된 모든 장치가 하나의 브로드캐스트 도메인이 됩니다. 부서·용도별로 네트워크를 나누려면 스위치를 따로 사야 했던 문제를, VLAN은 설정만으로 해결합니다.
| 목적 | 설명 |
|---|---|
| 브로드캐스트 범위 축소 | ARP·DHCP 등 브로드캐스트가 VLAN 안에서만 퍼짐 (168. Broadcast Domain) |
| 보안 구역 분리 | 사용자·서버·관리·게스트망을 나누고 VLAN 간 통신을 라우팅 지점에서 통제 |
| 관리 편의 | 자리 이동 없이 포트 설정만 바꿔 소속 네트워크 변경 |
| 트래픽 성격 분리 | 음성(IP 전화) 트래픽을 별도 VLAN으로 두어 품질 관리 |
스위치는 포트마다 "이 포트는 어느 VLAN에 속하는가"를 기억하고, 프레임을 같은 VLAN의 포트로만 전달합니다(162. Switch의 Frame Forwarding).
[ 스위치 1대 ]
┌──────── VLAN 10 (사용자) ────────┐ ┌──── VLAN 20 (서버) ────┐
Gi0/1 Gi0/2 Gi0/3 Gi0/10 Gi0/11
PC-A PC-B PC-C SRV-1 SRV-2
192.168.10.0/24 192.168.20.0/24
PC-A → ff:ff:ff:ff:ff:ff (ARP) → Gi0/2, Gi0/3에만 전달 (Gi0/10·11에는 안 감)
PC-A → SRV-1 → L2로 직접 불가 → 라우터/L3 스위치 경유 필요
스위치 여러 대에 같은 VLAN을 이어 붙이려면, 스위치 사이 링크에서 프레임마다 "이 프레임은 몇 번 VLAN 소속인가" 를 표시해야 합니다. 이 표시가 IEEE 802.1Q 태그이며, 태그를 붙여 여러 VLAN을 실어 나르는 포트가 Trunk 포트입니다(165. Trunk Port, 166. 802.1Q). 단말이 연결되어 한 VLAN에만 속하는 포트는 Access 포트입니다(164. Access Port).
VLAN ID는 802.1Q 태그의 12비트 값이라 0~4095를 표현할 수 있고, 이 중 0과 4095는 예약되어 1~4094를 씁니다.
| 범위 | 의미 |
|---|---|
| 0 | 예약 — VLAN이 아닌 우선순위 정보만 담은 태그(Priority Tag)에 사용 |
| 1 | 대부분 장비의 기본(Default) VLAN — 설정하지 않은 포트가 속함 |
| 2~1001 | 일반 범위 (Cisco 기준 Normal Range) |
| 1002~1005 | Cisco 장비에서 과거 FDDI·Token Ring용으로 예약 |
| 1006~4094 | 확장 범위 (Cisco 기준 Extended Range) |
| 4095 | 예약 |
역할에 따라 부르는 VLAN 이름입니다.
| 종류 | 역할 | 보안 권고 |
|---|---|---|
| 데이터 VLAN | 사용자 단말 트래픽 | 부서·용도별 분리 |
| 음성(Voice) VLAN | IP 전화 트래픽 | 데이터 VLAN과 분리 |
| 관리 VLAN | 스위치·장비 관리 인터페이스 | 사용자 VLAN과 분리, 접근 대역 제한 |
| Native VLAN | Trunk에서 태그 없이 전달되는 VLAN | 사용하지 않는 VLAN으로 지정 (165. Trunk Port) |
| Default VLAN | 초기 설정 VLAN(보통 1) | 실제 업무에 쓰지 않음 |
VLAN과 서브넷은 다른 계층의 개념이지만, 운영에서는 보통 VLAN 1개 = 서브넷 1개로 맞춥니다(예: VLAN 10 = 192.168.10.0/24). 이 대응표가 있으면 로그의 IP만 보고도 어느 VLAN(구역)인지 바로 알 수 있습니다.
실습 예시 — GNS3 등에서 Cisco IOS 계열 스위치로 VLAN을 만들고 확인하는 명령입니다. 출력은 형식 예시(값은 환경마다 다름)입니다.
Switch(config)# vlan 10
Switch(config-vlan)# name USER
Switch(config-vlan)# vlan 20
Switch(config-vlan)# name SERVER
Switch(config-vlan)# end
Switch# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------
1 default active Gi0/4, Gi0/5
10 USER active Gi0/1, Gi0/2, Gi0/3
20 SERVER active Gi0/10, Gi0/11
실습 예시 — Linux bridge도 VLAN 필터링을 켜면 포트별 VLAN을 가질 수 있습니다(Rocky/Ubuntu 공통, 152. Switch란 무엇인가의 br0 기준). 포트 설정 세부는 164·165편에서 이어집니다.
sudo ip link set br0 type bridge vlan_filtering 1
bridge vlan show # 포트별 VLAN 목록 (기본은 모든 포트가 VLAN 1)
📷 [실습 화면 삽입 위치] VLAN 10에 속한 두 VM은 ping이 되고, VLAN 20에 속한 VM과는 같은 브리지에 연결되어 있어도 ping이 되지 않는 화면(각 VM은 VLAN별 대역 IP 사용, 포트 VLAN 설정은 164편 실습 예시 참고)
| 흔적 | 확인할 수 있는 것 |
|---|---|
| VLAN ↔ 서브넷 대응표 | 이벤트 IP가 속한 구역(사용자·서버·관리·게스트) |
| 스위치 설정 변경 로그 | 포트의 VLAN 변경 — 단말이 다른 구역으로 옮겨진 시점 |
| NAC·802.1X 로그 | 인증 결과에 따라 동적으로 배정된 VLAN(격리 VLAN 등) |
| 패킷 캡처 | Trunk 구간이면 802.1Q 태그의 VLAN ID (112. Ethernet 프레임 필드 분석 — eth.src·eth.dst·eth.type로 읽는 2계층 증거) |
관제자가 확인할 질문
오탐 주의: VLAN ↔ 서브넷 대응표가 오래되면 구역 판단이 틀립니다. 한 VLAN에 서브넷을 여러 개 두거나 DHCP 범위가 바뀐 경우도 있으므로, 이상해 보이면 네트워크 담당자와 최신 구성을 확인합니다.