네트워크 장비에서 Broadcast 작업을 수행하면 브로드 캐스트를 진행하면 연결된 모든 네트워크 장비들에게 request 요청이 가게 됩니다.
여기서 브로드캐스트란 연결된 모든 네트워크에게 동시에 메시지를 전송하는 방법입니다. 그리고 이 요청에 알맞는 네트워크에게 요청이 들어가면 응답을 받죠.
여기서 하나 생각해보아야할 때 네트워킹 장비가 늘어나면 늘어날 수록 브로드캐스트의 양도 많아지게 됩니다. 그럼 네트워크 대역폭은 브로드캐스트로 가득 차게 될 것이고, 데이터 전달 속도는 당연히 눈에 띄게 느려질 것이며 시도 때도 없이 날아오는 브로드캐스트를 처리하는 컴퓨터는 다른 작업을 처리할 수 없겠죠
또한 서브넷 마스크가 다른 여러 개의 IP 대역을 사용하고 싶다면 어떻게 해야 할까요? 각각의 IP 대역을 사용하는 라우터를 사용해야 할까요? 그러면 비용이 너무 많이 들게됩니다.
이러한 문제들을 종합적으로 해결하기 위해 나타난 기능이 바로 VLAN(Virtual LAN)입니다.
VLAN
VLAN은 브로드캐스트 도메인을 만들기 위해 (쉽게 말해 영역을 분리하기 위해) 도와주는 기능입니다.
VLAN을 지원하는 네트워크 장비(스위치)는 VLAN을 여러개 생성할 수 있습니다.
이 VLAN을 통해서 브로드캐스트 도메인을 나눌 수 있습니다. VLAN은 1 ~ 4096까지의 번호를 사용하여 구분지을 수 있으며 이를 VLAN ID라고 부릅니다.
쉽게 말해 VLAN은 브로드캐스트가 서로 미치지 않는 여러 개의 논리적인 LAN을 만드는 것이라고 정의할 수 있는 것이죠
예시
브로드캐스트를 사용하는 대표적인 프로토콜은 ARP라고 볼 수 있습니다.
10.10.10.x/24, 10.10.20.x/24에 VLAN 10, VLAN 20을 할당하였다고 가정합시다.(물리적인 인터페이스가 아닌 VLAN에 가상 인터페이스를 생성하고 IP를 할당하여 L2 통신을 하기 때문에 논리적인 인터페이스, Switched Virtual Interface(SVI)가 사용됩니다.)
10.10.10.x/24에서 ARP Request를 LAN 전역으로 보낸다면(브로드캐스트를 보낸다면) 같은 VLAN에 연결된 VLAN 10 PC에게만 브로드캐스트가 전달이 됩니다.
스위치는 포트에 설정된 각각의 VLAN을 보고 트래픽 전달 여부를 판단합니다. 예를 들어 PC1이 연결된 스위치에 e2의 포트는 VLAN이 10이므로 동일한 VLAN 10이 설정된 포트로만 브로드캐스트를 전달할 수 있습니다.
VLAN의 기본 목적인 브로드캐스트 도메인 분할에 부합하죠
근데 여기서 문제가 하나 생길 수 있습니다.
만약 엄청나게 많은 VLAN을 사용한다면 어떻게 될까요? 라우터와 스위치 사이에서 VLAN 10, 20, 30 .... 100까지 총 10개의 VLAN이 있었다고 가정합시다. 그런데 이렇게 많은 VLAN들ㅇ르 사용한다면 라우터와 스위치 사이에서의 VLAN 설정은 어떻게 해야 할까요? 라우터와 스위치 사이에 VLAN이 추가로 필요할 때마다 라우터와 스위치 사이에 포트를 하나 추가하고 VLAN을 추가해야할까요? 라우터가 그만큼 포트 여유가 있는지부터 알아봐야겠네요..
VLAN이 추가될 때마다 포트를 하나 추가하고 VLAN을 할당한다는 것은 매우 비효율적이며 VLAN ID는 1 ~ 4096번까지 있으니 이론상으로는 4096개의 포트가 필요합니다.
스위치에는 그만큼의 포트가 없을 뿐더러 별도의 포트를 부여하는 것은 매우 비효율적입니다.
이러한 문제점을 해결해주는 친구가 있는데 바로 Trunk(Tagging)입니다.
Trunk(Tagging)
트렁크(Trunk)는 스위치와 스위치의 프레임 전달 시에 하나의 포트에 다수의 VLAN이 지나갈 수 있도록 기능하는 링크입니다.
이 트렁크 설정이 적용된 양쪽 스위치의 포트는 Trunk Port라고 부릅니다. (Tagged Port라고도 불러요)
여담으로 아래에 또 다뤄볼건데 Trunk가 적용되지 않는 일반 포트, VLAN만이 설정되어 있는 포트를 Access Port라고 부릅니다.
VLAN 이동 순서
스위치 1에 VLAN 1과 VLAN 2 스위치 2에 VLAN 1, 2 모두 Trunk가 설정된 Trunk Port를 통해 통신이 가능합니다.
이렇게 하나의 포트에서 다수의 VLAN이 통과할 수 있도록 하여 포트를 절약할 수 있게 되는 것 입니다. 이동순서는 다음과 같아요
VLAN 1 단말 -> 스위치 1의 엑세스 포트 -> 스위치 1의 트렁크 포트 -> 스위치 2의 트렁크 포트 -> 스위치 2의 엑세스 포트 -> VLAN 1 단말
VLAN 2 단말 -> 스위치 1의 엑세스 포트 -> 스위치 1의 트렁크 포트 -> 스위치 2의 트렁크 포트 -> 스위치 2의 엑세스 포트 -> VLAN 2 단말
이제 VLAN들은 트렁크 포트를 통해서 라우터와 통신할 수 있으며 라우터를 경유해 VLAN들끼리 통신이 가능하게 됩니다.
Inter-VLAN Routing이라고 합니다.
IEEE 802.1Q
IEEE 802.1Q는 VLAN을 지원하는 네트워크 표준으로 트렁킹 프로토콜중 하나입니다.
스위치와 스위치 사이의 트렁크 포트에서 VLAN ID 정보를 전달하기 위한 방법이지요. 트렁크로 설정된 포트로 이더넷 프레임이 진입할 때 이 프레임의 VLAN ID에 기록된 태그를 이더넷 프레임 내부에 끼워 넣습니다. 이더넷 프레임을 확장하는 방식이죠.
그리하여 건너편 스위치에서 이프레임을 받을 때 이더넷 프레임에 기록된 태그를 보고 VLAN ID를 확인할 수 있는 것 입니다.
Access Port의 진실
Access Port는 VLAN Tag(VLAN ID)와 전혀 관련이 없습니다. 트렁크 포트를 통해 나가는 이더넷 프레임일 경우 VLAN Tag(VLAN ID)가 적용되는 것이죠
이를 다시 말하면 엑세스 포트는 자신에게 나가거나 들어오는 프레임이 소속된 VLAN인지 구별할 수 없습니다. 엑세스 모드가 적용된 포트의 VLAN 판단 기준은 포트에 바로 자신에게 설정된 VLAN입니다.
이더넷 프레임의 VLAN ID를 구별하지 못하고 그저 포트에 설정된 VLAN ID에 속하는 이더넷 프레임이라고 생각하는 것이죠
'Computer Science.' 카테고리의 다른 글
[MySQL] 전문 검색 인덱스 (2) | 2024.04.14 |
---|---|
TEXT vs VARCHAR [ MySQL ] (24) | 2024.01.08 |
TCP 3-way / 4-way Handshake (4) | 2023.10.13 |
gRPC, RPC, 작동원리, HTTP API 비교 (0) | 2023.10.06 |
✍️ 자바 가상머신 JVM 한번에 정복하기 🔥 (0) | 2023.01.19 |