본문 바로가기

네트워크

[네트워크] 8. VLAN

이 게시물은 후니의 쉽게 쓴 CISCO 네트워킹 4판을 공부한 내용을 바탕으로 작성됨.

 


VLAN (Virtual LAN); 가상 랜

 

VLAN은 현재 스위치의 기능 중에서 가장 많이 사용되고 있는 아주 중요한 개념이다. 스위치의 등장 배경은 바로 Collision domain을 분할해 줄 무언가가 필요했기 때문이었다. 하지만 스위치는 Broadcast domain을 나눠줄 수는 없었고, 이를 해결하기 위해 반드시 Router를 연결해야만 했다.

 

Router를 사용하지 않고도 Broadcast domain을 효율적으로 나누기 위해 VLAN이 개발되었다. VLAN은 Broadcast domain을 물리적이 아닌, 논리적으로 나눈다. 따라서 서로 물리적으로 다른 공간에 있는 device들도 VLAN을 통해 논리적으로 같은 Network에 속할 수 있다.

 

 

 

 

 

 

위 그림은 VLAN의 유용함을 잘 나타낸다. VLAN 기능이 없는 스위치를 사용하면 한 층당 세 개의 스위치를 사용해야 한다. VLAN의 주 기능은 '하나의 스위치로 여러 네트워크를 분리한다' 이다. 한 층에 하나의 스위치만 있는데도 무려 3개의 네트워크를 담당하는 것을 볼 수 있다.

 

또한, 각 층에 있는 VLAN 스위치들은 각각 연결되어 있으므로 서로 다른 층에 존재하는 PC들끼리 물리적으로 떨어져 있는 와중에도 서로 같은 네트워크에 속할 수 있다.

 

위 시나리오에서 VLAN을 사용하면 그렇지 않았을 때보다 스위치 개수를 6개나 감소시킬 수 있으므로 경제적으로 엄청난 이득이다. 그래서 요즘엔 VLAN 기능이 있는 스위치를 당연하게 사용한다.

 

 

 

 

🐜 반드시 기억해야 할 점은 VLAN을 통해 나뉘어진 네트워크들은 명백히 서로 다른 네트워크이므로 라우터가 없으면 통신이 불가능하다는 것이다.

 

802.1Q Encapsulation Explained (networklessons.com)

 

위처럼 VLAN 스위치가 각각 10, 20, 30이라는 네트워크 세 개를 담당하고 있다고 하자. 이때 두 스위치를 Trunk port 하나를 이용하여 연결해주면, 각 network끼리 하나의 경로만을 통해 연결이 가능하다. (서로 다른 network 간 통신은 불가능하다.) 즉 Trunk를 거쳐 왼쪽 스위치의 VLAN 10, 오른쪽 스위치의 VLAN 10 간의 통신이 가능한 것이다.

 

만약 Trunk가 없었다면 왼쪽의 10, 20, 30을 오른쪽의 10, 20, 30 과 각각 연결하기 위해 3개의 링크가 필요했을 것이다. 만약 VLAN 종류가 100개 있었다면 링크도 100개가 필요했을 것.

 

Trunk는 여러개의 VLAN network를 한 번에 전송하는 방식이라고 이해하면 된다.

 

 

 

 

 

 

 

 


트렁킹과 VTP (VLAN Trunking Protocol)

 

 

Trunk는 여러 VLAN에서 발생하는 데이터를 한 경로를 통해 다른 스위치 or 라우터에 있는 VLAN에 전송하기 위해 사용한다. 이때 VLAN a에서 발생한 정보는 반드시 다른 장소의 VLAN a 네트워크에 전달되어야 하므로, VLAN 별로 이름표가 있어야 한다. 이 이름표를 설정하는 방식에 따라 ISL 트렁킹, IEEE 802.1Q 트렁킹으로 분류된다.

 

ISL은 시스코에서 개발된 트렁킹 프로토콜으로, 시스코 장비끼리만 사용한다. IEEE 802.1Q는 트렁킹 표준 프로토콜으로 시스코 상위 기종 스위치는 두 프로토콜 모두 지원한다.

 

IEEE 802.1Q에는 Native VLAN이라는 것이 존재한다. 트렁킹을 수행할 때 모든 VLAN 패킷은 각각의 이름을 달고 전송되어야 한다. 그런데 여기서 이름을 달지 않는 VLAN이 하나 존재하는데, 이것을 Native VLAN이라고 한다. 스위치에 존재하는 VLAN 중 딱 하나만 Native VLAN으로 설정할 수 있으며, 이름이 없는 패킷이 무엇인지 파악하면 어떤 패킷이 Native VLAN인지 쉽게 알 수 있다. 

 

반면 ISL는 Native LAN이라는 개념이 없고 모든 VLAN에서 전송되는 패킷에 이름을 붙인다.

 

 

 


VTP (VLAN Trunking Protocol)

 

VTP(VLAN Trunk Protocol) 이해 - Cisco

 

VTP는 스위치들 간 VLAN 정보를 서로 주고받아 스위치들이 갖고 있는 VLAN 정보를 항상 동기화시켜 주는 프로토콜으로 시스코만의 프로토콜이다.

 

만일 VLAN network를 하나 더 추가해야 하는 상황이 발생했다고 해보자. 위 그림에서 스위치들이 VTP 기능을 지원하지 않는다면 관리자가 직접 6개의 스위치에 전부 VLAN 재설정을 해주어야 한다.

 

VTP가 설정돼있다면 (VTP enable 설정) VTP server에만 변경된 VLAN 정보를 설정해주면 나머지 스위치는 자동으로 그 정보를 반영한다. 직접 전부 설정해줘야 하는 번거로움이 없다는 장점!

 

또한 VTP를 이용하여 VLAN 정보를 전달하는 것은 스위치 간 Trunk를 통해서만 이루어진다. Trunking 방식이 ISL든, IEEE 802.1Q든 상관없다. 트렁크를 통해서만 전달.

 

 

 

 


VTP Message

 

 

Summary Advertisement : VTP server가 자신에 연결돼있는 스위치들에게 5분마다 전송하는 메시지. 자신이 관리하는 VTP 도메인 구성에 대한 Revision number를 전송하고, 스위치들은 이것을 확인한 후 자신의 VLAN 정보가 최신인지 아닌지를 판단한다. 또한, VLAN에 변화가 생기면 5분을 기다리지 않고 Summary Advertisement를 바로 전송한다.

 

Subset Advertisement : VLAN의 구성이 변경되거나 VTP 클라이언트로부터 Advertisement Request 메시지를 받았을 때 Server로부터 Client에게 전송되는 메시지. 실제 VLAN 정보는 이것에 담겨 전송된다.

 

Advertisement Request : VTP client가 VTP server에 Summary Advertisement와 Subset Advertisement를 요청하는 용도로 사용된다. Client는 자신의 Revision number보다 더 높은 (최신의) Revision number에 해당하는 Summary Advertisement를 수신하거나, VTP domain이 바뀌거나, Subset advertisement를 분실하거나 등의 VLAN 정보가 변경된 상황에 처하면 Advertisement Request 메시지를 VTP server에 전송한다.

 

 

 

 

 

 

 

VTP 3가지 모드

 

CCNA Explorer 3 VTP - Teknologisk videncenter (tekkom.dk)

 

위 그림에서는 이미 절차가 진행돼서 설정값이 바뀐것이고, 디폴트 값은 아래와 같다. 스위치를 구매해서 처음 키면 아래와 같은 설정으로 구성된다.

 

  • VTP Domain Name = Null
  • VTP Mode = Server  → 초기 상태에서는 모든 스위치가 server mode이다.
  • Config Revision = 0  → 아직 한 번도 VLAN 업데이트가 발생하지 않았다.
  • VLAN = 1

 

 

 

 

VTP Server mode - VLAN을 생성, 삭제, 이름변경을 할 수 있으며 VTP domain 내의 다른 switch들에게 VTP domain name, VLAN 구성, Config Revision number를 전달할 수 있다. NVRAM이라는 내부 메모리에 정보를 저장하는데, 이는 비휘발성 RAM으로 전원이 꺼져도 정보를 잃지 않게 되어있으며, NVRAM에서 VTP domain에 존재하는 모든 VLAN을 관리한다. → 스위치가 재부팅되어도 VLAN 정보를 전부 가진다.

 

 

VTP Client mode - VLAN을 생성, 삭제 이름변경이 불가능! VTP client는 VTP server에서 전달해준 VLAN을 받고, 그것을 자기와 연결된 다른 스위치에 전달하는 기능만 갖고있다. 또한 정보를 NVRAM에 저장할 수 없기 때문에 스위치가 재부팅되면 모든 VLAN 정보를 잃는다. 따라서 재부팅 때마다 VTP server로부터 VLAN 정보를 다시 받아와야 한다. VTP 정보를 따로 저장하고 있지 않기 때문에 domain 내에서 메모리가 적은 스위치는 client로 설정하는 것이 유리하다.

 

 

VTP Transparent (투명) mode - VTP domain 내에 존재하지만 Server로부터 메시지를 받아서 자신의 VLAN을 업데이트 한다거나, 자신의 VLAN을 업데이트 한 정보를 다른 스위치에 전달하지 않는다. VTP domain에 있긴 하지만 자기 혼자 따로 행동한다. 직접 VLAN을 생성하고 삭제할 수 있으며 이 정보를 다른 스위치에 전달하지 않고 자기만 알고 있는다.

Server로부터 VTP메시지(세 가지 Advertisement)가 들어왔을 때 그것을 자기와 연결된 스위치들에 전달해주는 역할은 수행한다. → 한 스위치에서 만든 VLAN을 그 스위치만 사용하는 경우에 사용한다.

 

 

 

 

 

 

이제 위 그림을 다시 보면서 간단한 시나리오 예시를 들어보자.

 

CCNA Explorer 3 VTP - Teknologisk videncenter (tekkom.dk)

 

  1. Server S1은 Domain Name을 cisco1으로 설정, VLAN 1,2,3를 추가하고 Revision number를 2로 설정하였다.
  2. Client S2는 이 정보를 받은 후 Domain Name을 변경, VLAN 또한 Server와 일치시킨다. (같은 VTP domain에 있는 스위치들 끼리는 같은 VLAN 정보를 가져야 한다.) 그 후 server의 Revision num=2를 그대로 받아온다. 업데이트 완.
  3. Transparent S3은 Domain Name은 설정하지만 Revision number는 바꾸지 않는다. VLAN도 자기 하고싶은 만큼 설정한다.
  4. 다음 절차로 Transparent가 Client S4에게 VTP message를 전달해주면 S4도 S2처럼 똑같이 update된다.