[Daily morning study] VLAN과 802.1Q 태깅 — 가상 네트워크 분리 기술
#daily morning study
VLAN이란
VLAN(Virtual LAN)은 물리적 네트워크 장비 구성을 바꾸지 않고 하나의 스위치를 논리적으로 여러 개의 독립된 네트워크로 분리하는 기술이다.
같은 스위치에 연결된 장치라도 서로 다른 VLAN에 속하면 직접 통신이 불가능하다. 마치 물리적으로 별개의 스위치에 연결된 것처럼 동작한다.
VLAN이 필요한 이유
- 브로드캐스트 도메인 축소: VLAN별로 브로드캐스트가 격리되어 불필요한 트래픽을 줄인다.
- 보안 격리: 부서별 혹은 기능별로 네트워크를 분리해 민감한 데이터 접근을 제한한다.
- 유연한 구성: 물리적 위치와 무관하게 논리적으로 같은 그룹에 묶을 수 있다.
- 비용 절감: 여러 개의 물리 스위치 없이도 네트워크 분리 효과를 낸다.
VLAN의 종류
| 종류 | 설명 |
|---|---|
| 포트 기반 VLAN | 스위치 포트에 VLAN ID를 직접 할당. 가장 보편적 |
| MAC 기반 VLAN | 장치의 MAC 주소로 VLAN 소속 결정 |
| 프로토콜 기반 VLAN | IP, IPX 등 프로토콜 타입으로 분류 |
| 동적 VLAN | 인증 서버(예: RADIUS)가 자동으로 포트를 VLAN에 할당 |
실무에서는 포트 기반 VLAN이 압도적으로 많이 쓰인다.
802.1Q 태깅 메커니즘
802.1Q는 IEEE에서 표준화한 VLAN 태깅 프로토콜이다. 여러 스위치 간에 VLAN 정보를 전달하려면 이더넷 프레임에 VLAN ID를 포함시켜야 한다.
이더넷 프레임 구조 (802.1Q 적용 전후)
기본 이더넷 프레임
| 목적지 MAC (6B) | 출발지 MAC (6B) | EtherType (2B) | 페이로드 | FCS |
802.1Q 태그가 삽입된 프레임
| 목적지 MAC (6B) | 출발지 MAC (6B) | 802.1Q 태그 (4B) | EtherType (2B) | 페이로드 | FCS |
802.1Q 태그 구조 (4바이트)
| TPID (2B: 0x8100) | PCP (3bit) | DEI (1bit) | VID (12bit) |
| 필드 | 크기 | 설명 |
|---|---|---|
| TPID | 16bit | 802.1Q 태그임을 나타내는 식별자. 값은 0x8100 |
| PCP | 3bit | Priority Code Point. QoS 우선순위 (0~7) |
| DEI | 1bit | Drop Eligible Indicator. 혼잡 시 폐기 여부 |
| VID | 12bit | VLAN ID. 0~4095까지 표현 가능. 실제 사용 가능 범위는 1~4094 |
VID가 12비트이므로 이론상 4,096개의 VLAN을 정의할 수 있다. VLAN 0과 4095는 예약값이라 사용하지 않는다.
Access 포트 vs Trunk 포트
스위치 포트는 역할에 따라 두 가지로 나뉜다.
Access 포트
- 단일 VLAN에만 속하는 포트
- 연결된 장치(PC, 서버 등)는 VLAN의 존재를 모른다
- 스위치에서 수신 시: 태그 없는 프레임에 VLAN ID를 추가
- 스위치에서 송신 시: VLAN 태그를 제거하고 일반 이더넷 프레임으로 전달
PC ──(태그 없음)── [Access 포트 VLAN 10] ── 스위치 내부 (태그 있음)
Trunk 포트
- 여러 VLAN의 트래픽을 동시에 전달하는 포트
- 주로 스위치-스위치 혹은 스위치-라우터 간 연결에 사용
- 태그가 붙은 프레임을 그대로 전달하므로 수신 측이 VLAN ID를 식별 가능
스위치A ──(VLAN 10, 20, 30 태그 포함)── [Trunk 포트] ── 스위치B
Native VLAN: Trunk 포트에서 태그 없는 프레임을 처리할 VLAN. 기본값은 VLAN 1이며, 보안상 변경 권장.
Inter-VLAN 라우팅
서로 다른 VLAN에 속한 장치가 통신하려면 Layer 3(라우터 혹은 L3 스위치)를 거쳐야 한다. VLAN은 Layer 2 브로드캐스트 도메인을 나누는 개념이기 때문에, VLAN 간 통신은 반드시 라우팅을 통해야 한다.
Router-on-a-Stick 방식
라우터의 단일 물리 인터페이스에 서브 인터페이스를 여러 개 만들어 각각 VLAN에 대응시키는 방법.
[라우터]
/ \
.10(서브if) .20(서브if)
| |
[Trunk 포트]
|
[스위치]
/ \
[VLAN 10] [VLAN 20]
# 라우터 설정 예시 (Cisco IOS)
interface GigabitEthernet0/0.10
encapsulation dot1Q 10
ip address 192.168.10.1 255.255.255.0
interface GigabitEthernet0/0.20
encapsulation dot1Q 20
ip address 192.168.20.1 255.255.255.0
L3 스위치 방식
라우터 없이 스위치 자체에서 라우팅. 각 VLAN에 대한 SVI(Switch Virtual Interface)를 생성해 게이트웨이로 사용한다. 처리량이 많은 환경에서 선호된다.
# L3 스위치 설정 예시
interface Vlan10
ip address 192.168.10.1 255.255.255.0
interface Vlan20
ip address 192.168.20.1 255.255.255.0
실제 활용 사례
기업 네트워크 분리
| VLAN ID | 용도 | IP 대역 |
|---|---|---|
| 10 | 일반 사무 PC | 192.168.10.0/24 |
| 20 | 개발 서버 | 192.168.20.0/24 |
| 30 | 보안 카메라 | 192.168.30.0/24 |
| 40 | 게스트 Wi-Fi | 192.168.40.0/24 |
게스트 Wi-Fi를 별도 VLAN에 격리하면 외부인이 내부 개발 서버나 사무 PC에 접근하는 것을 차단할 수 있다.
클라우드 환경
AWS VPC 서브넷, Azure VNet 서브넷 등은 개념적으로 VLAN과 유사하다. 물리 환경에서는 VLAN, 클라우드 환경에서는 SDN 기반 네트워크 분리 기술이 같은 역할을 한다.
컨테이너 네트워킹
Kubernetes 클러스터에서 CNI 플러그인(Calico, Cilium 등)은 Pod 간 트래픽을 격리할 때 VLAN 혹은 VXLAN 기반 오버레이 네트워크를 활용한다.
VXLAN과의 비교
기존 802.1Q VLAN은 12비트 VID로 최대 4,094개밖에 정의하지 못하는 한계가 있다. 대규모 클라우드 환경에서는 수천만 개의 테넌트 분리가 필요하므로 VXLAN(Virtual Extensible LAN)이 등장했다.
| 구분 | 802.1Q VLAN | VXLAN |
|---|---|---|
| ID 크기 | 12비트 (최대 4,094) | 24비트 (최대 16,777,215) |
| 동작 계층 | Layer 2 | Layer 3 위에서 오버레이 |
| 사용 환경 | 로컬 네트워크 | 데이터센터, 클라우드 |
| 헤더 오버헤드 | 4바이트 | 50바이트 이상 |
정리
- VLAN은 하나의 물리 스위치를 논리적으로 여러 네트워크로 분리하는 기술
- 802.1Q 태그는 이더넷 프레임에 4바이트를 추가해 VLAN ID를 전달
- Access 포트는 단일 VLAN, Trunk 포트는 여러 VLAN 트래픽을 처리
- VLAN 간 통신은 반드시 L3 라우팅이 필요 (Router-on-a-Stick 또는 L3 스위치)
- 대규모 클라우드 환경에서는 VLAN 대신 VXLAN 같은 오버레이 기술을 활용