VLAN의 정의
VLAN은 “Virtual Local Area Network”의 약자로, 가상의 하위 네트워킹 그룹을 형성하는 기술입니다. Layer 2 계층의 스위치에는 자신이 가진 포트 중에서 일부를 가상의 브로드캐스트 도메인으로 형성하는 기능이 있습니다.
실제로 네트워크 장치들은 같은 건물, 같은 층, 같은 네트워크에 속하지만, 이들을 내부적으로 새롭게 그룹핑지어 별개의 네트워크 망을 구축할 수 있다는 의미입니다.
위 이미지처럼 ACADEMIC
에 관련된 컴퓨팅 노드들은 VLAN 1
으로, ADMIN
에 관련된 노드들은 VLAN 2
로 분리해 놓을 수 있습니다. 각각의 VLAN 망은 독립된 IP 주소 대역(일종의 서브넷처럼요)을 활용합니다.
VLAN 1
과 VLAN 2
는 서로 격리된 상태이므로, 한 쪽 가상 망에 있는 컴퓨터가 다른 쪽에 있는 컴퓨터에게 패킷을 직접 보낼 수 없습니다. 라우터나 다른 Layer 3 계층의 장비가 중재를 해줘야 하죠.
그래서 VLAN 기반으로 서브넷팅(Subnetting)하는 동작을 “Logical Network Segmentation”으로 표현하기도 합니다. Logical Network Segmentation은 망을 관리자의 의도대로 분리할 수 있어 보안 측면에서도 유리하고, 네트워크 트래픽 관리가 수월해지는 장점이 있습니다.
VLAN을 구성하는 방법: Access mode vs Trunk mode
네트워크 스위치는 여러 개의 포트를 가지고 있습니다. VLAN을 구성하게 되면, VLAN에 속한 네트워크 디바이스가 연결된 포트는 위 설명대로, 일반 포트와는 다른 방식으로 운용됩니다.
VLAN 운용을 위해 할당된 스위치 포트는 크게 2가지 타입이 존재합니다. 이들은 각각 Access port와 Trunk port 불리며, 특징을 짧게 요약하면 다음과 같습니다.
- Access port: VLAN에 속하는 단말(PC, 프린터 등)과 직접 연결된 포트
- Trunk port: VLAN을 구성한 다른 네트워크 스위치와 연결된 포트
Access port
기본 VLAN 포트이며, VLAN 호스트와 직접적으로 연결되는 통로입니다. 오로지 하나의 VLAN만 해당 포트로 네트워크 프레임을 주고 받을 수 있습니다.
Trunk port
대개 스위치 하나에 연결된 장비들로만 VLAN을 구성할 수도 있지만, 큰 회사/기관처럼 물리적으로 망 자체 규모가 상당할 때는 옆 건물이나 위아래 층에 배치된 네트워크 장비끼리 VLAN 망으로 묶어줄 수 있습니다 (위 이미지의 VLAN3, VLAN4
와 같이).
이런 경우, VLAN에 속한 단말과 단말 사이 경로에 하나 이상의 스위치가 끼어있게 되겠죠. Trunk port는 이 때, 스위치 간 VLAN 프레임을 전송하기 위해 설계된 포트입니다.
Access port의 경우는 스위치 내부적으로 프레임을 목적지로 포워딩할 수 있지만, Trunk port는 스위치 바깥으로 패킷이 나가고 들어오기 때문에, 이동 경로에 속한 네트워크 스위치들은 해당 패킷이 어떤 VLAN에 속해있는지 식별할 수 있어야 합니다.
따라서, Trunk mode(또는, IEEE 802.1q)를 사용하는 VLAN은 ‘VLAN ID’라는 고유한 식별자를 부여 받습니다.
스위치 외부에 있는 VLAN 네트워크로 패킷을 전송할 때, 이더넷(Ethernet) 프레임에 해당 VLAN ID를 태그로 달아 주는데요. 패킷 경로에 걸쳐 있는 스위치는 이더넷 프레임에 기재된 태그를 식별하여 어떤 VLAN 망으로 패킷이 전달되어야 하는지 결정합니다.
Trunk mode를 지원하는 프로토콜은 대표적으로 ‘802.1q' 표준과 Cisco 스위치 장비에서 사용되는 DTP(Dynamic Trunking Protocol)이 존재합니다.