예전에 쓴 백본(빽본) 글이 검색으로 조금씩 들어오길래 다음 편 뭘 쓸까 하고 구글 트렌드를 돌려 봤는데요, 네트워크 용어 중에 VLAN이 백본보다 네 배쯤 더 검색되더라고요. 하긴 현업에서 스위치 좀 만지다 보면 제일 먼저 부딪히는 게 VLAN이긴 하죠.
작은 회사 1인 전산 입장에서 VLAN은 딱 이런 느낌이에요. 해 두면 손님 와이파이랑 CCTV랑 업무 PC를 깔끔하게 떼어 놓을 수 있어서 좋은데, 처음 설정할 때는 무섭습니다. 잘못 건드리면 층 하나가 통째로 인터넷이 끊기거든요. 그래서 오늘은 개념부터 access/trunk 차이, 제조사마다 다르게 부르는 용어, 설정 전에 꼭 볼 것까지 한 번에 정리해 볼게요.

VLAN(Virtual LAN)은 스위치 한 대를 설정만으로 여러 개의 네트워크처럼 쪼개 쓰는 기술이에요. 케이블은 그대로 두고, 스위치에서 "1~8번 포트는 VLAN 10, 9~12번은 VLAN 20" 이렇게 정해 주면 같은 스위치에 꽂혀 있어도 서로 다른 네트워크가 돼요.

여기서 꼭 알아야 하는 용어가 브로드캐스트예요. 네트워크 안의 모든 장비에게 한꺼번에 보내는 신호인데, 생각보다 자주 일어나요. 예를 들어 PC가 "192.168.0.1 쓰는 장비 MAC 주소 뭐야?" 하고 물어보는 ARP 요청, 막 켜진 PC가 "IP 좀 주세요" 하는 DHCP 요청이 다 브로드캐스트예요. 이 브로드캐스트가 닿는 범위를 브로드캐스트 도메인이라고 해요.
VLAN을 안 나누면 스위치 한 대(이어 붙인 스위치까지 전부)가 브로드캐스트 도메인 하나예요. 손님 폰이 보낸 ARP 요청도 CCTV 녹화기, 사내 NAS까지 다 받아요. VLAN을 나누면 VLAN 하나가 브로드캐스트 도메인 하나가 돼서, 브로드캐스트가 그 VLAN 안에서만 돌아요. 다른 VLAN 장비랑 통신하려면 라우팅(L3)을 거쳐야 하고요.
숫자 얘기도 잠깐 하면, VLAN 번호(VLAN ID)는 1부터 4094까지 쓸 수 있어요. 0이랑 4095는 예약돼 있고, VLAN 1은 대부분 스위치에서 처음부터 모든 포트가 들어가 있는 기본 VLAN이에요.

여기서 꼭 짚고 넘어갈 게 하나 있는데요, VLAN은 방화벽이 아니에요. VLAN을 나눠 놓고 그 사이 라우팅을 다 열어 두면 결국 서로 다 통해요. "VLAN 나눴으니까 안전하다"는 반만 맞는 말이고, 어떤 VLAN끼리 통신을 허용할지까지 정해야 진짜 분리가 돼요.

VLAN 공부하다가 제일 많이 막히는 데가 여기예요. 포트 종류가 두 가지거든요.
access 포트는 VLAN 딱 하나에만 속한 포트예요. PC, 프린터처럼 끝에 있는 장비를 꽂는 자리고, 프레임에 VLAN 꼬리표를 안 붙이고 보내요. 이걸 untagged라고 해요. 그래서 PC는 자기가 VLAN 10에 있는지도 몰라요. 몰라도 되고요.
trunk 포트는 여러 VLAN을 케이블 한 줄로 같이 보내는 포트예요. 스위치끼리, 또는 스위치랑 라우터·방화벽·무선 AP를 이을 때 써요. 한 줄에 여러 VLAN이 섞여 다니니까 프레임마다 "나 VLAN 20이야" 하는 꼬리표를 붙이는데, 이게 802.1Q 태그고 이렇게 보내는 걸 tagged라고 해요.
문제는 제조사마다 부르는 말이 달라요. 시스코 장비는 access/trunk라고 하고, 넷기어나 TP-Link 같은 데 관리 화면은 tagged/untagged/PVID로 나와요. 처음 보면 다른 개념인 줄 아는데 같은 얘기예요.
| 시스코 식 이름 | 다른 제조사 식 이름 | 뜻 |
| access 포트 | untagged 포트 + PVID | VLAN 하나, 태그 없이 주고받음 |
| trunk 포트 | tagged 포트 (여러 VLAN) | 여러 VLAN을 태그 붙여서 한 줄로 |
| native VLAN | trunk 위의 untagged VLAN | trunk에서 태그 없이 다니는 VLAN 하나 |
PVID는 "태그 없이 들어온 프레임을 어느 VLAN에 넣을까"를 정하는 값이에요. 포트를 VLAN 20 untagged로 바꿔 놓고 PVID를 1로 그냥 두면, 나가는 건 VLAN 20인데 들어오는 건 VLAN 1로 들어가서 IP를 못 받는 이상한 상태가 돼요. 언매니지드 쓰다가 처음 매니지드 스위치 만지면 거의 한 번은 여기서 걸려요.
trunk 양쪽 native VLAN 번호가 다를 때도 비슷하게 이상해져요. 한쪽은 1, 한쪽은 99로 해 두면 태그 없는 프레임이 반대편에서 엉뚱한 VLAN으로 들어가거든요. trunk는 양쪽 설정을 꼭 똑같이 맞춰 주세요.

VLAN을 나눴으면 이제 VLAN끼리 이어 주는 길도 있어야겠죠. VLAN 10에 있는 PC가 VLAN 20에 있는 서버랑 통신하려면 중간에서 누군가 라우팅을 해 줘야 해요. 방법은 크게 두 가지예요.
방법 1. L3 스위치의 SVI
L3 스위치에 VLAN마다 가상 인터페이스(SVI, 시스코에선 interface vlan 10)를 만들고 IP를 주면, 그 IP가 그 VLAN의 게이트웨이가 돼요. 스위치가 직접 VLAN 사이를 이어 주니까 빠르고, 그래서 회사 네트워크 한가운데, 백본(코어) 자리에 이 방식을 많이 써요.
방법 2. 라우터 온 어 스틱(router on a stick)
L2 스위치에서 라우터나 방화벽 쪽으로 trunk 한 줄을 올리고, 라우터가 VLAN 사이를 이어 주는 방식이에요. 케이블 한 줄로 왔다 갔다 하니까 L3 스위치보다는 느리지만, 방화벽에서 "손님 VLAN은 인터넷만, 사내 VLAN 접근 금지" 같은 정책을 걸기 편해서 작은 회사에선 오히려 이 구성이 흔해요.
그리고 이거 하나는 진짜 기억해 두세요. DHCP 서버가 다른 VLAN에 있으면 새로 만든 VLAN에서는 IP가 안 받아져요. DHCP 요청이 브로드캐스트라서 다른 VLAN(다른 브로드캐스트 도메인)으로 못 넘어가거든요. 게이트웨이 쪽에 DHCP 릴레이(시스코는 ip helper-address)를 설정해 줘야 해요. "VLAN 만들었는데 IP가 169.254로 잡혀요"는 열에 아홉이 이거예요.
요즘 "private vlan" 검색이 꽤 오르던데, 간단히만 짚을게요. private VLAN은 VLAN 하나 안을 또 쪼개는 것이에요. 같은 VLAN, 같은 IP 대역에 있어도 서로는 못 보고 게이트웨이랑만 통신하게 만들 수 있어요.
호텔 객실 네트워크나 손님 와이파이, 외부에 공개하는 서버들을 한 대역에 몰아 두면서 서로는 못 건드리게 할 때 써요. 다만 이 기능은 주로 기업용 매니지드 스위치에 있어서, 작은 회사에서 쓰는 저가형 스위치엔 없는 경우가 많아요. 그런 장비에선 비슷한 기능이 "포트 격리(port isolation)" 같은 이름으로 들어 있기도 하니까 관리 화면 메뉴를 한번 찾아보세요.

Q. 언매니지드 스위치에서도 VLAN 되나요?
안 돼요. 설정 화면이 없는 스위치는 VLAN을 못 나눠요. 다만 VLAN 태그가 붙은 프레임을 그냥 통과시키는 경우는 있어서, 중간에 끼어 있으면 예상과 다르게 동작할 수 있어요. VLAN 쓸 구간엔 매니지드(최소 스마트) 스위치를 두는 게 맞아요.
Q. VLAN 1은 그냥 써도 되나요?
써도 동작은 해요. 그런데 모든 포트가 처음부터 VLAN 1에 들어가 있어서, 업무용으로 VLAN 1을 그대로 쓰면 아무 데나 꽂은 장비도 업무망에 바로 붙어요. 그래서 보통 업무용은 다른 번호로 만들고, 안 쓰는 포트는 빈 VLAN에 넣어 두라고들 해요.
Q. 무선 와이파이도 VLAN으로 나눌 수 있나요?
돼요. 기업용 AP는 SSID마다 VLAN을 지정할 수 있어요. "업무용 SSID는 VLAN 10, 손님 SSID는 VLAN 20" 이런 식으로요. 이때 AP가 꽂힌 스위치 포트는 trunk(tagged)로 맞춰 줘야 해요.
VLAN은 개념은 단순한데 용어가 제조사마다 달라서 처음에 헷갈리는 거라, access/trunk랑 tagged/untagged가 같은 얘기라는 것만 잡아도 반은 끝난 거예요. 다음 편은 이 글에서 나온 DHCP를 조금 더 파 볼까 생각 중이에요. 그럼 오늘도 장애 없는 하루 되세요.
| 시놀로지 PHP 취약점(PHP2Shell) 공식 공지 SA-26:14 정리, 패키지별 패치 버전과 DSM 6.2 대응 (0) | 2026.10.27 |
|---|---|
| Node.js 취약점(Node2Shell) 긴급 보안 업데이트, 내 nodejs 버전 확인법과 패치 버전 | CVE-2026-111497 (0) | 2026.10.26 |
| 힉스필드 Kling 4.0 가격 비교, 영상 모델 12개 초당 크레딧과 무료로 되는 것·할인 기간 (0) | 2026.10.24 |
| 시놀로지 DSM 6.2 PHP 7.4 → 8.4 업데이트, 도커로 올리고 AH00141 오류 해결까지 (0) | 2026.10.23 |
| PHP 취약점(PHP2Shell) 긴급 보안 업데이트, 내 PHP 버전 확인법과 대안 | CVE-2026-109618 (0) | 2026.10.22 |