VTP
VLAN Trunking Protocol
Cisco 전용 프로토콜로, 트렁크로 연결된 스위치 간에 VLAN 정보를 자동으로 동기화해주는 역할을 한다. VLAN을 추가하거나 삭제할 때 모든 스위치에 들어가서 똑같이 설정할 필요 없이, VTP는 한 대에서만 변경하면 trunk 링크를 통해 같은 도메인의 다른 스위치로 전파되므로 운영 부담을 줄여준다.
VTP 사용 조건
- VTP 도메인이 동일한 스위치 간에 VLAN 정보를 공유한다.
- VTP 패스워드가 동일한 스위치 간에 VLAN 정보를 공유한다.
- 트렁크 포트를 통해서만 VLAN 정보를 공유한다.
만약, VTP를 이용하여 VLAN 정보가 공유되지 않는다면, 위 세 가지 사항을 점검해야 한다.
Domain
VTP는 같은 도메인 이름을 공유하는 스위치들끼리만 정보를 주고받는다. 다른 도메인 이름을 가진 스위치는 같은 trunk로 연결되어 있어도 광고를 무시한다.
도메인 이름이 비어 있는 스위치는 trunk로 처음 받은 VTP 광고에서 도메인 이름을 자동으로 학습한다. 이 동작 때문에 운영 환경에서는 의도치 않은 도메인 합류가 일어날 수 있어 주의가 필요하다.
Configuration Revision Number
VTP에서 가장 중요하면서도 위험한 개념이 Configuration Revision이다.
- 도메인의 VLAN 정보가 변경될 때마다 1씩 증가한다.
- 같은 도메인의 스위치는 자신의 리비전보다 더 높은 리비전을 가진 광고를 받으면 그 내용으로 자신의 VLAN 데이터베이스를 덮어쓴다.
이 동작 때문에 운영 현장에서 다음과 같은 사고가 자주 발생한다.
실험실이나 다른 현장에서 VLAN 작업에 쓰던 스위치를 운영 네트워크에 trunk로 연결했더니, 기존 VLAN 정보가 모두 사라졌다.
새로 연결한 스위치의 리비전 번호가 더 높았기 때문에 운영 중이던 도메인 정보를 덮어써 버린 결과이다. 이를 방지하려면 새 스위치를 도메인에 합류시키기 전에 반드시 리비전을 0으로 초기화해야 한다. 보통 다음 두 가지 방법을 사용한다.
- VTP 모드를 Transparent로 바꿨다가 다시 Server/Client로 되돌리기
- 도메인 이름을 다른 값으로 바꿨다가 원래 이름으로 되돌리기
Mode
VTP 모드는 스위치가 도메인 안에서 어떤 역할을 할지 결정한다.
| 모드 | VLAN 생성/수정 | 광고 전송 | 광고 수신/반영 | 저장 위치 |
|---|---|---|---|---|
| Server | 가능 | 한다 | 한다 | vlan.dat |
| Client | 불가 | 중계만 한다 | 한다 | vlan.dat |
| Transparent | 가능 (자기 자신만) | 중계만 한다 | 안 한다 | running-config |
| Off (V3) | 가능 (자기 자신만) | 안 한다 | 안 한다 | running-config |
기본 모드는 Server이다. Client 모드는 서버로부터 VLAN 정보를 공유 받기만 하며, 자체적으로 VLAN을 만들 수 없다. Transparent 모드는 VTP 동기화에 참여하지 않고, 자체 VLAN은 자유롭게 만들 수 있으며, 다른 스위치의 광고는 반영하지 않고 그대로 중계만 한다. VLAN 정보가 변경되어도 VTP Configuration Revision 값이 항상 0으로 고정되기 때문에, 이 리비전 값을 초기화할때에도 사용된다. Off 모드는 VTP v3에서 추가된 모드인데, 광고를 보내지도 받지도 중계하지도 않으므로 스위치에서 VTP 기능을 해지한 것과 동일하며 도메인 차단 용도로 사용한다. 저장 위치 차이는 Network Device Memory 문서를 참고한다.
Advertisement
VTP는 세 가지 광고(advertisement) 메시지를 사용한다.
- Summary Advertisement: VTP 도메인 이름, 현재 Configuration Revision Number, MD5 해시 등을 담는다. 5분마다 또는 변경 발생 시 전송된다.
- Subset Advertisement: 실제 VLAN 정보(ID, 이름, 타입 등)를 담는다. Summary가 변경 사실을 알리면 그 뒤에 이어 보내진다.
- Advertisement Request: 클라이언트가 자신의 정보가 오래되었다고 판단할 때 서버에 최신 정보를 요청하는 메시지이다.
VTP Pruning
VTP Pruning은 trunk 링크에서 불필요한 VLAN 트래픽이 흐르지 않도록 가지치기해주는 기능이다.
기본적으로 trunk는 모든 VLAN 트래픽을 전달하지만, 반대편 스위치에 해당 VLAN의 포트가 하나도 없다면 그 VLAN의 브로드캐스트, 멀티캐스트, unknown 유니캐스트가 흘러갈 이유가 없다. Pruning이 켜져 있으면 VTP가 이런 상황을 감지해 해당 VLAN을 trunk에서 자동으로 차단한다. VTP 모드가 서버인 스위치에서 VTP Pruning을 설정하면, 자동으로 모든 스위치에 VTP Pruning이 적용된다.
Version
| 버전 | 특징 |
|---|---|
| V1 | 기본형. Token Ring과 Extended Range VLAN 미지원 |
| V2 | Token Ring 지원, Transparent 모드의 광고 중계 동작 개선 |
| V3 | Extended Range(1006~4094) 지원, Primary Server 개념 도입, MST와 Private VLAN 정보 광고 가능 |
기본적으로 V1로 동작한다. V2는 Transparent 모드에서 VTP 도메인과 버전이 서로 다른 스위치에게도 VLAN 정보를 전달한다. V3는 Extended VLAN 정보와 Private VLAN 정보를 공유하며, MST 관련 설정도 공유되기 때문에 MSTP 설정시 유용하다. V3는 리비전 덮어쓰기 위험을 줄이기 위해 Primary Server라는 개념을 도입했다. 명시적으로 Primary로 승격된 서버에서만 VLAN을 변경할 수 있어, 단순히 리비전이 높다고 해서 자동으로 반영되지 않는다. 일반적으로 VTP 버전 변경은 VTP 모드가 서버인 스위치에서만 실시한다.
운영 환경에서의 선택
VTP의 자동 전파는 편리하지만 한 곳의 실수가 도메인 전체로 번질 수 있어 위험성이 크다. 그래서 많은 운영 환경에서는 다음 중 하나를 선택한다.
- Transparent 모드: VTP에 참여하지 않고 스위치마다 직접 VLAN을 관리한다. 가장 보수적이지만 안전하다.
- VTP V3 + Primary Server: 리비전 덮어쓰기 위험을 피하면서 자동 동기화의 이점을 누린다.
- VTP Off (V3): 광고 자체를 송수신하지 않는다. 도메인 단위 동기화가 전혀 필요하지 않을 때 사용한다.
특히 데이터센터처럼 변경 영향 범위가 큰 환경에서는 Transparent나 Off 모드가 사실상 표준이다.