본문 바로가기
Network Infra 쉽게 이해하기/L2 Network 쉽게 이해하기

VLAN 쉽게 이해하기 #2

by 네트워크 엔지니어 환영 2020. 12. 1.
반응형

지난번에 이어 계속해서 VLAN에 대해 이야기해보겠습니다. VLAN 쉽게 이해하기 #1에서는 VLAN을 사용하는 이유에 대해 집중적으로 다루었습니다. 이번엔 좀 다른 이야기를 해보려고 하는데요. 아래 그림을 통해 설명을 시작해보겠습니다.

아래 그림은 VLAN 쉽게 이해하기 #1에서 보았던 그림과 약간 다릅니다. 이번엔 라우터와 스위치 사이에 VLAN 10,20,30,40, ... , 100까지 총 10개의 VLAN이 있네요. 그런데 말입니다. 만약 아래의 경우처럼 많은 VLAN을 사용한다면 라우터와 스위치 사이의 VLAN 설정은 어떻게 해야 할까요? 라우터와 스위치 사이에 VLAN이 추가로 필요할 때마다 라우터와 스위치 사이에 포트를 하나 추가하고 VLAN을 부여해야 할까요? 라우터가 그만큼 포트에 여유가 있는지 모르겠네요.

<10개의 VLAN이 존재하는 네트워크>

VLAN이 추가될 때마다 포트 하나를 추가하고 거기에 VLAN을 할당한다는 것은 매우 비효율적입니다. VLAN ID는 1번부터 4096번까지 있으니 이론상으로 4096개의 포트가 필요하겠군요. 스위치에는 그만한 포트도 없을뿐더러 VLAN마다 별도의 포트를 부여해주는 것은 매우 비효율적입니다. 이에 다수의 VLAN이 하나의 포트를 사용할 수 있도록 만든 기능이 있으니 바로 Trunk(Tagging)입니다. 

 

Trunk(Tagging)

스위치 간 프레임 전달에 하나의 물리적 연결(포트)을 공유, VLAN 트렁킹된 스위치들 간에 여러 VLAN에서 나온 프레임들을 이 트렁크를 통해 전달함.

- 출처 : 정보통신기술용어해설 -

위의 설명처럼 트렁크(Trunk)는 스위치와 스위치의 프레임(Frame, 2계층에서 사용되는 데이터 단위인 이더넷 프레임) 전달 시에 하나의 포트에 다수의 VLAN이 지나갈 수 있도록 기능하는 링크입니다. 이 트렁크 설정이 적용된 양쪽 스위치의 포트를 Trunk Port(트렁크 포트)라고 부릅니다. Cisco에서는 보통 트렁크 포트라고 부르지만 기타 벤더에서는 Tagged Port(태그드 포트)라고 부르지요. 여담으로 Trunk가 적용되지 않은 일반 포트, 그러니까 하나의 VLAN만이 설정되어 있는 포트를 Access Port(액세스 포트)라고 부릅니다.

<트렁크가 적용된 포트로 VLAN 1,VLAN 2가 지나가는 모습(출처 : 상동)>

위의 그림에서 볼 수 있듯이 스위치 1의 VLAN 1과 VLAN 2 모두 Trunk가 설정된 Trunk Port를 통해 서로 통신이 가능합니다. 이렇게 하나의 포트에서 다수의 VLAN이 통과할 수 있도록 하여 포트를 절약할 수 있게 되는 것이죠. VLAN 1과 VLAN 2의 이동 순서는 다음과 같습니다.

VLAN 1 단말 -> 스위치 1의 액세스 포트 -> 스위치 1의 트렁크 포트 -> 스위치 2의 트렁크 포트 -> 스위치 2의 액세스 포트 -> VLAN 1 단말

VLAN 2 단말 -> 스위치 1의 액세스 포트 -> 스위치 1의 트렁크 포트 -> 스위치 2의 트렁크 포트 -> 스위치 2의 액세스 포트 - > VLAN 2 단말

가장 먼저 보았던 그림(<10개의 VLAN이 존재하는 네트워크>)에 Trunk를 적용하면 아래와 같은 그림이 나오지요. 이제 VLAN 10과 VLAN 20은 하나의 트렁크 포트를 통해서 라우터와 통신할 수 있으며, VLAN 10은 라우터에 경유하여 VLAN 20과 통신할 수 있습니다. 앞서 설명했던 Inter-VLAN Routing이죠.

<라우터와 스위치에 Trunk가 적용된 모습>

여기서 드는 의문점이 한 가지가 있습니다. 하나의 포트에 여러 VLAN에 소속된 프레임이 지나간다면 프레임이 포트를 들어갔다가 나올 때 어떻게 구별할 수 있을까요? 어떤 프레임이 VLAN 10인지 VLAN 20인지 말입니다. IP를 보면 알 수야 있겠지만 Layer 2 계층의 데이터인 이더넷 프레임이기에 IP 헤더까진 보지 못 합니다. 그리하여 이더넷 프레임에 태그를 삽입하여 트렁크 포트를 지나는 이더넷 프레임의 VLAN ID(VLAN 번호)를 구별할 수 있도록 하기 위한 방안이 있으니 바로 IEEE 802.1Q입니다.

반응형

IEEE 802.1Q

IEEE 802.1Q는 하나의 이더넷 네트워크에서 가상 랜(VLAN)을 지원하는 네트워크 표준이다.

- 출처 : 위키백과 - 

IEEE 802.1Q는 VLAN을 지원하는 네트워크 표준으로 트렁킹 프로토콜 중 하나입니다. 스위치와 스위치 사이의 트렁크 포트에서 VLAN ID(VLAN 번호) 정보를 전달하기 위한 방법이지요. 트렁크로 설정된 포트로 이더넷 프레임이 진입할 때 이 프레임의 VLAN ID이 기록된 태그를 이더넷 프레임의 내부에 끼워넣습니다. 이더넷 프레임을 확장하는 방식입니다. 그리하여 건너편 스위치에서 이 프레임을 받을 때 이더넷 프레임에 기록된 태그를 보고 VLAN ID를 확인할 수 있는 것입니다.

<이더넷 프레임 헤더(출처 : 위키백과(https://ko.wikipedia.org/wiki/IEEE_802.1Q)>

 위의 그림을 보시면 802.1Q Header가 삽입된 것을 확인하실 수 있습니다. 802.1Q Header를 자세히 보시면 VLAN ID에 해당하는 VID가 존재하네요. 스위치는 트렁크 포트를 통해 건너온 이더넷프레임을 확인할 때 VID 부분을 보고 이 이더넷 프레임이 소속된 VLAN을 알 수 있게 됩니다. 그리고 다시 한 번 말씀드리지만 이더넷 프레임을 '확장'하는 방식을 쓰고 있습니다.

<Trunk 802.1Q가 적용된 트렁크 포트(출처 : https://networklessons.com/)>

802.1Q를 사용하여 통신하는 각각의 VLAN과 스위치를 그림으로 표현하면 위와 같습니다. 스위치와 스위치 간의 이더넷 프레임 전달 시 VID를 헤더에 끼워넣고 전달하여 VLAN 10, VLAN 20, VLAN 30을 구별할 수 있도록 도와줍니다. 즉 IEEE 802.1Q는 하나의 링크를 통해 다수의 VLAN이 통신할 때 사용되는 일종의 깃발임을 알 수 있습니다.

여담으로 IEEE 802.1Q 말고도 트렁크 방식 중의 하나로 Cisco 社의 ISL라는 방식 또한 존재합니다. Cisco 의 고유 방식으로 IEEE 802.1Q와 달리 이더넷 프레임을 캡슐화하는 특징을 지닙니다. 하지만 현재 운용 중인 Cisco 스위치는 IEEE 802.1Q 표준을 따르고 있는 것이 대부분입니다. Cisco 의 스위치를 다루다 보면 연식이 좀 오래된 스위치의 경우, 포트의 Trunk 설정 시 'Switch mode trunk'를 입력하면 입력이 되지 않고 Encapsulation(캡슐화) 방식을 먼저 입력하라고 뜨는 경우가 종종 있습니다. 802.1Q를 쓸 건지 ISL을 쓸 건지 먼저 고르라는 뜻입니다. 과거에는 Cisco 社의 스위치에서 802.1Q이 표준이 아니었기 때문입니다. 최근에 나오는 스위치는 IEEE 802.1Q 표준을 따르기에 Encapsulation(캡슐화) 방식을 먼저 입력할 필요 없이 자동으로 802.1Q로 적용됩니다. 

Trunk에 대한 이야기는 여기까지 입니다! 다음 문서에서는 IEEE 802.1Q와 액세스 포트에 관한 이야기를 하고자 합니다. 감사합니다.

댓글