VLAN
▶아키텍처 다이어그램
점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
사무실이나 데이터센터에서 장비가 하나의 스위치에 모두 연결돼 있으면, 한 장비가 보내는 브로드캐스트 패킷이 같은 스위치의 모든 장비에 전달됩니다. 장비가 수십 대일 때는 큰 문제가 아니지만, 수백 대로 늘어나면 브로드캐스트만으로도 네트워크 대역폭이 낭비됩니다. 더 심각한 것은 보안입니다. 개발 서버와 인사 시스템이 같은 네트워크에 있으면, 개발 환경에서 발생한 실수나 공격이 인사 데이터에까지 영향을 줄 수 있습니다. 이 문제를 물리적으로 풀려면 부서마다 스위치를 따로 사고 케이블을 따로 깔아야 합니다. 하지만 부서가 재편될 때마다, 서버가 이동할 때마다 장비를 다시 배치하는 건 비용과 시간 모두 비현실적입니다. VLAN은 물리적 배선을 바꾸지 않고 소프트웨어 설정만으로 네트워크를 논리적으로 나눠, 이 격리 문제를 해결합니다.
네트워크 초기에는 물리적 배선이 곧 네트워크 구조였습니다. 부서를 분리하려면 스위치를 따로 두고 케이블을 따로 깔았습니다. 장비 수가 적고 조직이 안정적일 때는 이것으로 충분했지만, 조직이 바뀌거나 서버가 이동하거나 새로운 환경이 필요해질 때마다 물리 배선을 다시 해야 했습니다. 네트워크 규모가 커지면서 브로드캐스트 폭풍도 실질적인 문제가 됐습니다. 수백 대의 장비가 하나의 브로드캐스트 도메인에 있으면 ARP 요청 하나가 모든 장비에 전달되고, 이것이 쌓이면 유의미한 대역폭 손실이 발생합니다. VLAN은 이 두 가지 압력, 즉 물리 변경 없는 논리적 재구성의 필요와 브로드캐스트 범위 축소의 필요에 대한 응답으로 등장했습니다. 오늘날 데이터센터에서 VLAN이 기본 설계 요소로 쓰이는 이유는 편의가 아니라, 물리 인프라의 유연성 한계를 소프트웨어로 넘어서기 위해서입니다.
VLAN은 스위치의 각 포트에 VLAN ID라는 번호를 부여해, 같은 번호를 가진 포트끼리만 2계층에서 직접 통신할 수 있게 합니다. 서로 다른 VLAN ID에 속한 장비는 같은 물리 스위치에 꽂혀 있어도 마치 별개의 스위치에 있는 것처럼 격리됩니다. 여러 스위치에 걸쳐 같은 VLAN을 확장해야 할 때는 트렁크 포트를 사용합니다. 트렁크 포트는 IEEE 802.1Q라는 규격에 따라 이더넷 프레임에 4바이트의 VLAN 태그를 삽입해, 이 프레임이 어느 VLAN에 속하는지를 식별합니다. 받는 쪽 스위치는 태그를 읽고 해당 VLAN의 포트로만 프레임을 전달합니다. VLAN은 2계층 격리이므로, 서로 다른 VLAN에 있는 장비가 통신하려면 3계층 라우터를 거쳐야 합니다. 이를 Inter-VLAN 라우팅이라 부르며, L3 스위치나 별도 라우터가 VLAN 사이를 연결합니다. 이 지점에서 접근 제어 목록(ACL)을 걸면, 어떤 VLAN에서 어떤 VLAN으로의 통신을 허용하거나 차단할 수 있습니다.
VLAN과 서브넷은 둘 다 네트워크를 논리적으로 분리한다는 점에서 비슷해 보입니다. 차이는 동작하는 계층에 있습니다. VLAN은 2계층(Data Link)에서 스위치 포트와 이더넷 프레임 태그를 기준으로 브로드캐스트 도메인을 나누고, 서브넷은 3계층(Network)에서 IP 주소 범위를 기준으로 라우팅 경계를 만듭니다. 실무에서는 VLAN과 서브넷을 1:1로 매핑하는 것이 가장 흔합니다. VLAN 10에 10.0.10.0/24 서브넷을 할당하면, 2계층 격리와 3계층 주소 분리가 동시에 이루어집니다. 클라우드 환경에서는 물리 스위치를 직접 다루지 않으므로 VLAN을 설정할 일이 거의 없고, 서브넷이 격리의 기본 단위가 됩니다. 반면 온프레미스 데이터센터나 하이브리드 환경에서는 VLAN 없이 서브넷만으로는 같은 스위치 안의 브로드캐스트 트래픽을 나눌 수 없어, 둘을 함께 써야 합니다.
VLAN은 온프레미스 데이터센터, 사무실 네트워크, 하이브리드 클라우드 연결에서 가장 자주 등장합니다. 서버팜에서 웹 서버 그룹, DB 서버 그룹, 관리망을 각각 다른 VLAN으로 분리하면 하나의 물리 스위치 인프라 위에서 보안 경계를 만들 수 있습니다. 부서 재편이나 서버 이전이 일어나도 스위치 포트의 VLAN 할당만 바꾸면 되므로, 케이블을 다시 깔 필요가 없습니다. 다만 VLAN 수가 수십 개를 넘어가면 관리 복잡도가 급격히 올라갑니다. 스위치마다 일관된 VLAN 설정을 유지해야 하고, 트렁크 포트 구성 실수는 트래픽 누출로 이어질 수 있습니다. 또한 VLAN은 같은 물리 네트워크 안의 2계층 기술이므로, 지리적으로 떨어진 사이트를 VLAN으로 연결하려면 추가적인 터널링이나 오버레이 기술이 필요합니다. 순수 클라우드 환경에서는 VLAN을 직접 설정하는 경우가 드물고, 클라우드 제공자의 서브넷과 보안 그룹이 유사한 역할을 대신합니다.