VTP(VLAN Trunking Protocol)
20개의 스위치와 50개의 VLAN이 있는 네트워크를 생각해 보겠습니다. 보통은 각 스위치에 개별적으로 VLAN을 생성해야 하지만, VTP(VLAN Trunking Protocol) 를 사용하면 하나의 스위치에서 VLAN을 생성하면 다른 모든 스위치가 자동으로 동기화됩니다.
핵심 요약
- VTP Server: VLAN을 생성/수정/삭제할 수 있으며, 변경사항을 다른 스위치에 전파
- VTP Client: 서버로부터 VLAN 정보를 동기화하며, 직접 VLAN을 생성할 수 없음
- VTP Transparent: VLAN 정보를 동기화하지 않지만, 광고를 전달하며 로컬에서 VLAN 생성 가능
- 모든 스위치의 VTP 도메인 이름이 동일해야 동기화가 동작
- VTP는 리비전 번호(Revision Number) 가 높은 쪽의 정보로 동기화하므로 보안 위험이 있음
- VTP Pruning을 활성화하면 불필요한 VLAN 트래픽이 트렁크에서 제거됨
VTP 동작 원리
VTP 서버에서 VLAN을 생성/수정/삭제하면 다음과 같이 동작합니다:
- VTP 서버에서 VLAN을 추가/수정/삭제
- 변경할 때마다 리비전 번호가 증가
- 최신 광고(Advertisement)가 모든 VTP 클라이언트로 전송
- VTP 클라이언트가 최신 정보로 동기화
VTP 모드 비교
| 기능 | VTP Server | VTP Client | VTP Transparent |
|---|---|---|---|
| VLAN 생성/수정/삭제 | 가능 | 불가 | 로컬만 가능 |
| 자체 동기화 | 예 | 예 | 아니오 |
| 광고 전달 | 예 | 예 | 예 |
| VLAN 저장 위치 | vlan.dat | vlan.dat | running-config |
VTP Transparent 모드
VTP Transparent 스위치는 자체적으로 동기화하지 않지만, VTP 광고를 다른 스위치로 전달합니다. 로컬에서 VLAN을 생성할 수 있으며, 이 VLAN은 다른 스위치에 전파되지 않습니다.
VTP의 보안 위험
VTP의 가장 큰 문제는 VTP 서버도 VTP 클라이언트처럼 동작한다는 것입니다. 리비전 번호가 높은 스위치의 정보가 항상 우선합니다.
위험 시나리오:
- 운영 네트워크에서 VTP 클라이언트 스위치를 분리하여 랩 환경에 놓음
- VTP 서버로 변경하고 VLAN을 여러 번 생성/삭제하여 리비전 번호가 높아짐
- 다시 VTP 클라이언트로 변경하고 운영 네트워크에 연결
- 리비전 번호가 높기 때문에 이 스위치의 (빈) VLAN 정보가 전체 네트워크에 동기화
- 모든 VLAN이 삭제됨!
VTP 클라이언트가 VTP 서버를 덮어쓸 수 있습니다. 리비전 번호가 더 높으면 VTP 서버도 이를 수용합니다. VLAN이 삭제되면 인터페이스는 VLAN 1로 돌아가지 않고 존재하지 않는 VLAN에 남게 됩니다.
VTP Pruning
VLAN 10, 20, 30의 컴퓨터가 있고 스위치 간에 트렁크가 연결된 환경에서, 중간 스위치에 VLAN 10 컴퓨터가 없는데도 VLAN 10 브로드캐스트가 전달됩니다. VTP Pruning을 활성화하면 특정 VLAN에 해당하는 장치가 없는 트렁크에서 불필요한 VLAN 트래픽을 제거하여 대역폭을 절약합니다.
VTP 설정
토폴로지
3대의 스위치(SW1: VTP Server, SW2: VTP Client, SW3: VTP Server)를 사용합니다. 모든 스위치 간에 트렁크가 설정되어 있습니다.
기본 상태 확인
SW1#show vtp status
VTP Version : running VTP1 (VTP2 capable)
Configuration Revision : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs : 5
VTP Operating Mode : Server
VTP Domain Name :
VTP Pruning Mode : Disabled기본값 확인사항:
- Configuration Revision: 0 — VLAN을 추가/삭제할 때마다 증가
- VTP Operating Mode: Server — 기본 모드
- VTP Pruning Mode: Disabled
- VTP Domain Name: 비어있음 — 도메인 이름을 설정해야 VTP가 동작
VTP 도메인 설정 및 VLAN 동기화
SW1(config)#vtp domain NETWORKLESSONS
Changing VTP domain name from NULL to NETWORKLESSONS도메인 이름이 비어있는(NULL) 스위치는 VTP 광고를 수신하면 자동으로 해당 도메인 이름을 채택합니다:
SW2#
VTP LOG RUNTIME: Summary packet received in NULL domain state
VTP LOG RUNTIME: Transitioning from NULL to NETWORKLESSONS domain
VTP LOG RUNTIME: Summary packet rev 1 greater than domain NETWORKLESSONS rev 0VLAN 생성 및 동기화 확인
SW1(config)#vlan 10
SW1(config-vlan)#name Printers모든 스위치에서 VLAN 10이 동기화됩니다:
SW2#show vlan
VLAN Name Status Ports
---- -------------------------------- --------- ----------------------------
10 Printers activeVTP 서버가 여러 대인 경우, 어떤 서버에서든 VLAN을 생성할 수 있고 모두 동기화됩니다.
VTP 모드 변경
SW2(config)#vtp mode client
Setting device to VTP CLIENT mode.VTP 클라이언트에서는 VLAN을 생성할 수 없습니다:
SW2(config)#vlan 50
%VTP VLAN configuration not allowed when device is in CLIENT mode.VTP Transparent 모드
SW2(config)#vtp mode transparent
Setting device to VTP TRANSPARENT mode.Transparent 모드에서는 로컬 VLAN을 생성할 수 있지만, 다른 스위치에 전파되지 않습니다. 단, 다른 스위치의 VTP 광고는 **전달(Forward)**합니다.
VTP Transparent 모드는 VLAN 정보를 running-config에 저장하지만, VTP Server/Client 모드는 vlan.dat 파일(플래시 메모리)에 저장합니다.
VTP 버전 3
VTP 버전 3의 주요 목표는 여전히 VLAN 동기화이지만, 버전 1/2에 비해 여러 가지 개선 사항이 추가되었습니다.
VTPv3 새로운 기능
- VTP Primary Server: 프라이머리 서버만 VLAN을 생성/수정/삭제할 수 있어, 실수로 전체 VLAN이 삭제되는 사고를 방지
- 확장 VLAN: 확장 범위 VLAN(1006~4094)도 동기화 가능
- Private VLAN / RSPAN VLAN: 동기화 지원
- MST 지원: MST(Multiple Spanning Tree) 설정을 별도 기능(Feature)으로 동기화
- 인증 개선:
hidden옵션으로 비밀번호를 평문으로 노출하지 않음 - VTP Off 모드: Transparent 모드와 달리 VTP를 완전히 비활성화 가능
- 호환성: VTP 버전 2와 호환되지만, 버전 1과는 호환되지 않음
토폴로지
SW1, SW2, SW3이 트렁크로 연결되어 있습니다.
기본 설정
VTPv3를 활성화하려면 도메인 이름이 필수입니다:
SW1(config)#vtp domain NWL
Changing VTP domain name from NULL to NWL
SW1(config)#vtp version 3프라이머리 서버 설정
VTPv3에서는 모든 스위치가 기본적으로 서버 모드이지만, VLAN을 변경하려면 프라이머리 서버로 지정해야 합니다:
SW1(config)#vlan 100
VTP VLAN configuration not allowed when device is not the primary server for vlan database.프라이머리 서버로 지정:
SW1#vtp primary
This system is becoming primary server for feature vlan
No conflicting VTP3 devices found.
Do you want to continue? [confirm]
%SW_VLAN-4-VTP_PRIMARY_SERVER_CHG: 0019.569d.5700 has become the primary server for the VLAN VTP feature확인:
SW1#show vtp status | include Primary
VTP Operating Mode : Primary Server
Primary ID : 0019.569d.5700
show vtp devices명령으로 같은 VTP 도메인의 모든 스위치를 확인할 수 있습니다.
확장 VLAN 동기화
VTPv3에서는 확장 범위 VLAN(1006~4094)도 동기화할 수 있습니다:
SW1(config)#vlan 1234
SW1(config-vlan)#exit
SW1, SW2 & SW3#show vlan | include VLAN1234
1234 VLAN1234 activeMST 동기화
VTPv3는 MST 설정을 별도의 “Feature”로 관리합니다. MST용 프라이머리 서버를 별도로 지정할 수 있습니다:
SW2(config)#vtp mode server mst
SW2#vtp primary mstMST 설정을 생성하면 모든 스위치에 동기화됩니다:
SW2(config)#spanning-tree mst configuration
SW2(config-mst)#name MST
SW2(config-mst)#revision 1
SW2(config-mst)#instance 1 vlan 10,20,30
SW2(config-mst)#instance 2 vlan 40,50,60
SW2(config-mst)#exit인증
VTPv3에서는 hidden 옵션으로 비밀번호를 암호화하여 저장할 수 있습니다:
SW1, SW2 & SW3
(config)#vtp password NWL hidden
Setting device VTP passwordSW1#show vtp password
VTP Password: 2AA31883CB1D0E65FE199ADF177F433AVTP Off 모드
VTPv3에서는 VTP를 완전히 비활성화할 수 있습니다. Transparent 모드와 달리 VTP 광고를 전달하지도 않습니다:
SW3(config)#vtp mode off vlan인터페이스 레벨에서도 비활성화 가능합니다:
SW3(config)#interface FastEthernet 1/0/21
SW3(config-if)#no vtpVTPv3 기능 요약
| 기능 | VTP v1/v2 | VTP v3 |
|---|---|---|
| VLAN 동기화 | 1~1005 | 1~4094 (확장 범위 포함) |
| Primary Server | 없음 (모든 서버가 변경 가능) | 프라이머리 서버만 변경 가능 |
| Private VLAN | 미지원 | 동기화 지원 |
| RSPAN VLAN | 미지원 | 동기화 지원 |
| MST 동기화 | 미지원 | 별도 Feature로 지원 |
| 인증 | 평문 비밀번호 | Hidden/Secret 지원 |
| Off 모드 | 미지원 (Transparent만 가능) | 글로벌/인터페이스별 Off 지원 |
| 호환성 | v1 ↔ v2 | v2와 호환, v1과 비호환 |