VLAN(Virtual LAN)은 같은 스위치에 연결된 장치들을 물리적 배선이 아니라 소프트웨어 설정으로 논리적으로 분리해 별개의 네트워크로 나누는 기술이다. IEEE 802.1Q 표준은 이런 VLAN을 지원하는 브리지가 프레임을 어떻게 취급해야 하는지를 규정한다[1].
분류 방식
| 방식 | 판단 기준 |
|---|---|
| 포트 기반 | 프레임이 수신된 스위치 포트 번호 |
| 태그 기반(IEEE 802.1Q) | 프레임 안에 실린 VLAN 태그 값 |
포트 기반 방식은 설정이 단순하지만, 장치를 다른 포트로 옮기면 소속 VLAN도 함께 바뀐다는 한계가 있다. 태그 기반 방식은 프레임 자체에 VLAN 정보를 실어 스위치 사이를 오갈 때도 소속이 그대로 유지되며[1], 오늘날 널리 쓰이는 방식도 이쪽이다 — 이 페이지의 나머지 절도 이 방식을 다룬다.
IEEE 802.1Q 태그 구조
802.1Q 태그는 4바이트로, 프레임의 Source MAC 주소와 EtherType/Length 필드 사이에 삽입된다. 앞의 2바이트는 태그가 존재함을 알리는 TPID(Tag Protocol Identifier)로 고정값 0x8100을 쓰고, 뒤의 2바이트는 TCI(Tag Control Information)로 우선순위 3비트(PCP)·형식 지시자 1비트(CFI)·VLAN 식별자 12비트(VID)로 나뉜다[1].
VID는 12비트이므로 이론상 4096개 값을 표현할 수 있지만, 0은 VLAN을 지정하지 않고 우선순위만 표시하는 프레임에 예약되고 4095(0xFFF)는 표준이 예약해, 실제로 구분할 수 있는 VLAN은 4094개다[1].
액세스 포트와 트렁크 포트
스위치 포트는 태그를 다루는 방식에 따라 흔히 액세스(access) 포트와 트렁크(trunk) 포트로 나뉜다. 액세스 포트는 하나의 VLAN에만 속해, 이 포트로 들어온 태그 없는 프레임에 소속 VLAN 태그를 붙이고 내보낼 때는 태그를 다시 벗겨 일반 이더넷 장치가 그대로 받을 수 있게 한다. 프레임의 VLAN 태그가 목적 포트의 소속 VLAN과 다르면 그 포트로는 전달되지 않는다[1].
트렁크 포트는 여러 VLAN의 프레임을 태그를 유지한 채로 함께 실어 날라, 스위치 사이를 잇는 링크 하나로 여러 VLAN을 동시에 통과시킨다[1].
우선순위 태깅(IEEE 802.1p)
TCI의 PCP 3비트는 VLAN 소속과 별개로 프레임의 우선순위(Class of Service)도 표시한다. 이 3비트는 0(최저)부터 7(최고)까지 8단계의 트래픽 등급을 구분하며, 원래 별도 표준이던 IEEE 802.1p가 정의한 이 우선순위 체계는 이후 802.1Q 표준에 통합됐다[1]. 음성·영상처럼 지연에 민감한 트래픽에 높은 등급을 매기면 스위치가 혼잡한 상황에서도 그 트래픽을 출력 큐에서 먼저 내보낼 수 있다 — 스위치 큐잉이 이더넷 프레임 지연의 원인이 되는 배경은 CAN vs Ethernet에서 다룬다.