Profile picture

[네트워크] VLAN 이해하기 #1

JaehyoJJAng2023년 05월 10일

Hub

군대에서 네트워크병으로 복무를 하면서 아래 사진과 같은 허브를 자주 만졌었다. 이더넷 허브라고도 부르는데 이 허브는 이더넷 네트워크인 LAN 환경에서 다수의 컴퓨터를 연결해주는 장비이다. 가정에서도 흔히 사용하는 장비 중 하나이다.
image

Ethernet Hub는 이더넷 네트워크에서 여러 대의 컴퓨터, 네트워크 장비를 연결하는 장치. 같은 허브에 연결된 컴퓨터와 네트워크는 모두 상호 간에 통신을 할 수 있다.


많은 포트를 가진 허브에 PC를 연결함으로써 허브를 기점으로 하나의 네트워크로 구성할 수 있게된다. 아래 그림처럼 말이다.
하나의 라우터(혹은 공유기)에 연결된 허브에서 다수의 컴퓨터가 연결된 것이 보이는가? 가정에서 사용하는 공유기 역시 허브의 역할을 겸임하여 여러 개의 포트를 가지고 있다.
image
<허브로 구성한 네트워크>

하지만 허브도 단점이 있다. 허브는 자신의 인터페이스에 연결된 컴퓨터의 MAC Address를 저장/관리하지 않기 때문에 패킷의 출발지와 목적지에 대한 정보를 갖지 않는다, 즉 ARP Table을 생성하지 않는다는 뜻이다. 목적지에 대한 정보가 없는 상태에서 패킷을 전달하려면 모든 포트에 패킷을 전달하는 수밖에 없다.

허브의 경우 ARP Table이 존재하지 않기 때문에 패킷이 들어온 포트를 제외한 모든 포트로 패킷을 Flooding 시킨다. 이렇게 되면 문제점이 뭘까?

예를 들어 아래 사진처럼 수 많은 PC(단말)이 허브에 연결되어 있다고 가정해보자. PC0에서 PC4에 패킷을 던질때마다 PC0을 제외한 모든 PC들에 패킷이 전송되게 된다.
image 한 컴퓨터가 주고받는 데이터가 연결된 모든 컴퓨터가 받게 되고 연결된 컴퓨터가 많아지면 많아질수록 네트워크 속도는 느려지고 충돌이 발생하게 된다. 또한 이러한 충돌 감지를 위해 반이중 방식(Half-duplex) 방식을 채택하였기에 비효울적일 수밖에 없다.
(물론 요즘 이러한 이더넷 허브는 보기 힘들고 대신 MAC Address를 저장하는 스위칭 허브가 사용된다.)

위와 같은 허브의 단점을 보완하기 위해 탄생한 네트워크 장비가 바로 **스위치(Switch)**이다.


Switch

image
<Cisco Catalyst 9500 스위치>

다수의 컴퓨터를 하나의 네트워크로 묶어주는 역할을 하는 것은 스위치, 허브 모두 동일하다. 하지만 스위치는 자신의 포트에 연결된 MAC Address를 저장/관리하기 때문에 패킷의 출발지와 목적지 정보에 대해 파악할 수 있다. 한 컴퓨터에서 전송된 데이터를 모든 포트에 연결된 컴퓨터에 뿌리지 않고 목적지 포트에만 forwarding 한다.
image
뿐만 아니라 스위치는 전이중 방식(Full-duplex)을 지원한다. 그렇기에 충돌이 발생하지 않고 더 빠른 속도를 보장한다.
무엇보다 가장 큰 차이점은 스위치에는 VLAN(Virtual LAN) 기능이 있다는 점이다.


VLAN이 필요한 이유

VLAN의 정의에 대해 이해하기 전에 간단하게 VLAN이 왜 필요한지에 대해 이해해보도록 하자. 그전에 LAN와 Broadcast에 대해 짚고 넘어가야 한다.

LAN이란 집과 같은 소규모 네트워크에서부터 사무실,회사와 같은 중규모 이상의 네트워크에 이르기까지 동일한 IP 대역과 동일한 Subnet Mask를 사용하며 Address Resolution Protocl(ARP)가 닿는 범위를 뜻한다.

브로드캐스트(broadcast)란 컴퓨터 네트워킹, 정보 통신 및 방송등 모든 수신자에게 동시에 메시지를 전송하는 방법이다. 브로드캐스팅은 프로그램에서 높은 수준의 다양한 응용 용도로 활용될 수 있다.

ARP는 각 컴퓨터가 갖는 IP Address에 매칭되는 MAC Address를 알아내기 위한 Protocol이다. 또한 ARP Request는 연결된 네트워크 장비와 컴퓨터에 모두 전달된다. 이렇듯 송신자가 전달하는 메시지를 연결된 모든 컴퓨터가 전달받는 방식을 브로드캐스트(Broadcast) 방식이라고 한다. ARP가 Broadcast를 사용하는 대표적인 프로토콜인거다. 그리고 브로드캐스트를 전달할 때에는 목적지 IP의 끝자리를 .255로 설정한다.(192.168.121.0/24의 경우 192.168.121.255가 된다.)


네트워크 장비에 최소 10대의 컴퓨터가 연결되어 있다면 각각의 컴퓨터가 다른 컴퓨터의 MAC Address를 알기 위해 ARP Request를 날리게 될 것이고 이는 최소 10번의 ARP Request가 발생함을 의미한다. 컴퓨터가 1000대라면,10000대라면? 어떨까?

ARP Request를 최소 1번씩만 날려도 최소 1000번,10000번의 ARP Request가 발생하는 셈이다. 연결된 컴퓨터가 그보다 많아지면 발생하는 브로드캐스트의 양이 많아질거고,

그럼 해당 네트워크망의 네트워크 대역폭은 모드 브로드캐스트로 가득차게 될 것이다. 통신 속도가 느려짐이 눈에 보일 것이고 장애 또한 발생할 수 있으며 수많은 브로드캐스트로 인해 스위치 및 PC의 CPU 사용률도 올라가게된다.
image
<연결된 PC가 점점 많아질 경우>


또한 Subnet Mask가 다른 여러 개의 IP 대역을 운용하고 싶다면 어떻게 해야할까? 아래 그림처럼 각각의 IP 대역을 사용하는 라우터(공유기)를 각각 설치해줘야 한다. 당연히 비용이 발생하고 관리할 포인트가 늘어나고 번거롭기 짝이 없을 것이다.
image
<다양한 Subnet Mask의 IP 대역이 필요한 경우>

이러한 문제를 해결할 수 있는 기능이 바로 VLAN이다.


VLAN 이란?

컴퓨터 네트워크에서 여러 개의 구별되는 브로드캐스트 도메인(Broadcast Domain)을 만들기 위해 단일 2계층 네트워크를 분할할 수 있는데
이렇게 분리되면 하나 이상의 라우터들 사이에서만 이동할 수 있다. 이러한 도메인을 가상 랜(Virtual LAN)으로 부르며, 가상 근거리 통신망, 가상 LAN, 또는 간단히 VLAN으로도 표기한다.

위의 정의를 쉽게 정리하면 다음과 같다. VLAN을 지원하는 네트워크 장비는 VLAN을 다수 생성할 수 있고 이 VLAN을 통해 브로드캐스트 도메인을 나눌 수 있게된다.

이렇게 나누어진 브로드캐스트 도메인은 VLAN이 설정된 포트에 연결된 단말의 IP 대역만이 통신이 가능하고 다른 VLAN과 통신하기 위해서는 Layer 3 이상의 스위치 혹은 라우터 장비를 통해서만 가능하다. 또한 VLAN은 1 ~ 4096번 까지의 번호를 사용하여 VLAN을 구분지을 수 있다. 이를 VLAN ID라고 한다.

즉 VLAN이란 브로드캐스트가 서로 미치지 않는 여러 개의 논리적인 LAN을 만드는 것이라고 정의한다는 것이다.


네트워크 장비의 포트 각각에 원하는 VLAN을 설정할 수 있다. 하나의 물리적인 스위치를 VLAN을 사용하여 다수의 (논리적인) LAN을 쓸 수 있도록 하는 것이다.

VLAN 10과 VLAN 20을 각각 10.11.0.0/24, 10.21.0.0/24에 할당하여 표현하면 다음과 같다.(물리적인 인터페이스가 아닌 VLAN에 가상의 인터페이스를 생성하고 IP를 할당하여 L2와 통신하기 때문에 논리적인 인터페이스 **Switched Virtual Interface(SVI)**가 사용된다.)
image
<인터페이스에 VLAN 설정이 적용된 스위치>

스위치는 포트에 설정된 각각의 VLAN을 보고 트래픽 전달 여부를 판단한다.

예를 들어 PC0이 연결된 스위치의 eth0 포트는 VLAN이 10이므로 동일한 VLAN 10이 설정된 포트로만 브로드캐스트를 전달할 수 있다. 위의 그림에서는 스위치의 eth1 포트로만 브로드캐스트가 전달된다.

이를 다시 말하면 PC0이나 라우터의 fastEthernet0/0에서 전달되는 브로드캐스트는 VLAN 10이 설정된 포트로만 전달됨을 의미한다. PC1는 라우터의 fastEthernet0/1 포트로 브로드캐스트를 전달할 수 있다. 당연히 PC0과 PC1은 서로 직접적으로 통신이 불가능하다. 두 PC는 서로 다른 브로드캐스트 도메인이 속하기 때문이다.

그렇다면 PC0과(10.11.0.0/24)와 PC1(10.21.0.0/24)가 통신을 하려면 어떻게 해야할까? Layer 3 이상의 장비인 라우터 혹은 L3 스위치를 통해 이동해야 한다. 이들은 VLAN 간의 통신을 가능하게 하는 기능을 가지고 있고 이를 Inter-VLAN Routing이라고 한다.


다음 편에서는 **VLAN과 Trunking(Tagging)**에 대해 다뤄보도록 하자.


Loading script...