VTP (VLAN Trunking Protocol)
- 연결된 스위치들끼리 VLAN 정보를 주고 받아 자동으로 동기화하게 해주는 프로토콜
- VTP 기능이 지원되지 않는 스위치 구성에 새로운 VLAN 하나를 추가해야할 필요가 생기면 스위치 모두에 VLAN 구성을 변경해 주어야 함. 또, VLAN 하나를 지우면 각 스위치 구성에 들어가 VLAN을 지워주어야함. 하지만 VTP 기능이 지원되는 스위치의 구성이라면 스위치의 VTP 기능을 enable되도록 구성하면 VTP 서버에서 한번만 VLAN 정보를 설정해도 VTP 서버는 다른 스위치와의 트렁크 링크를 통해서 VLAN정보를 자동으로 업데이트 함. 따라서 나머지 모든 스위치에 일일이 VLAN 정보를 업데이트할 필요가 없다.
- 관리해야 되는 스위치가 많은 경우에 유용하게 사용될 수 있지만, 보안상의 이유로 거의 사용되지 않음
- Cisco 만의 프로토콜
- VTP에서의 VLAN 정보는 스위치 간 트렁크 링크를 통해서만 전달된다. 이때 두 스위치 간의 트렁킹 방식이 IEEE 802.1Q 이든, ISL이든 상관없이 전달 가능.
- VTP 간에 주고 받는 메시지는 다음 3가지 형식이 있음.
VTP message
Summary Advertisement
VTP server가 자신과 연결된 스위치에게 5분 주기로 전달하는 메시지, 자신의 관리하는 VTP domain에 대한 Revision number를 전송한다. 각 스위치들은 이러한 Revision number를 보고 자신의 VLAN 정보가 최신인지 아닌지를 구분한다. 또한 VLAN 구성에 변화가 발생시에도 전송되는 이 경우는 5분 주기가 이날 변화 즉시 전송을 한다.
Subset Advertisement
VLAN 구성이 변경되었을 경우나 VTP client로부터 Advertisement Request를 수신했을때 전송한다. 실제 VLAN 정보를 담고 있는 메시지이다.
Advertisement
VTP client가 VTP server에게 Summary Advertisement 혹은 Subset Advertisement를 용청하는 경우 사용하는 메시지이다. Client가 자신이 가지고 있는 Revision number 보다 높은 Revision number를 가지고 있는 Summary Advertisement를 수신하거나 VTP domain 변경, 스위치 리셋 등 여러 변화가 생겼을 경우 이 메시지를 VTP server에 전송한다.
VTP의 3가지 모드
1. VTP Server mode
VTP Server mode에서는 VLAN 생성, 삭제, VLAN의 이름을 변경할 수 있으며 VTP 도메인 안에 있는 나머지 스위치들에게 VTP 도메인 이름과 VLAN 구성, Configuration Revision 넘버를 전달해 줄 수 있다. VTP 서버는 VTP 도메인의 모든 VLAN에 대한 정보를 NVRAM에서 관리하며, 스위치가 꺼졌다 다시 켜지더라도 VLAN 정보를 모두 가지고 있다. (NVRAM: 비휘발성 RAM으로 전원이 꺼져도 저장된 정보를 잃지 않도록 설계된 내부 메모리)
2. VTP Client mode
VTP Client mode에서는 VLAN 생성, 삭제, VLAN이름 변경 불가능. VTP Client는 VTP Server가 전달해준 VLAN 정보를 받고, 또 받은 정보를 자기와 연결된 다른 쪽 스위치에 전달하는 것만 가능. 또한 VTP Client는 이 정보를 NVRAM에 저장하지 않기 때문에 만약 스위치가 리부팅하면 모든 VLAN 정보를 잃게 되어 VTP Server로 부터 다시 받아와야 한다. Server에 비해 몇 가지 제약이 있지만 VTP 정보를 자신의 메모리에 따로 보관하지 않기 때문에 메모리가 적은 스위치는 이 방식이 유리하다.
3. VTP Transparent mode
VTP Transparent mode는 VTP 도메인 영역 안에 있지만, Server로 부터 메시지를 전달받아 자신의 VLAN을 업데이트하거나 자신의 VLAN을 업데이한 정보를 다른 스위치에 전달하지 않는다. VTP domain 안에 있지만 독립적인 방식. 따라서 직접 VLAN을 생성, 삭제할 수 있으며 독립적인 존재이기때문에 다른 스위치에 알리지 않는다. 다만 VTP Transparent mode는 server로 부터 들어온 메시지를 자기를 통해 연결된 다른 스위치 쪽으로 전달해 주거나 자기와 연결된 다른 스위치쪽에서 서버쪽으로 가는 VTP 메시지를 전달해 주는 역할만 한다. Transparent mode는 한 스위치에서 만든 VLAN을 그 스위치에서만 쓰기 때문에 외부 스위치가 이를 알 필요가 없을 경우, 즉 로컬 스위치에서만 사용할 VLAN을 가진 스위치에 주로 사용된다.
VTP의 동작
VTP Server에서 VTP domain name은 VLAN을 새로 만들거나 변경하기 전에 먼저 설정해야 한다.
- SW1, SW2, SW3이 있을경우 SW1이 VTP mode를 Server로 하고 VTP domain name을 설정한다음 VLAN을 생성한다.
- SW2의 VTP mode를 Client로, SW3의 VTP mode를 Transparent로 설정(각 스위치는 trunk port로 연결돼 있어야만 서로 VTP message를 교환할 수 있다.)
- VTP mode가 server인 SW1은 SW2와 SW3에게 Summary Advertisement(VTP domain name과 Revision number)를 전달한다.
- Summary Advertisement를 수신한 SW2는 자신의 domain name을 server와 동일하게 변경, 그 후 수신한 Revison number(Config Revision 값은 VLAN이 새로 만들어지거나 지워질 경우 1씩 추가된다.)를 비교해보고 자신의 Revision number보다 더 높을 경우 VLAN 정보를 업데이트 해야하기 때문에 server인 SW1에게 Advertisement Request를 전송해서 상세한 VLAN 정보를 요청한다.
- Advertisement Request를 수신한 SW1은 정보를 요청한 SW2에게 Summary Advertisement와 Subset Advertisement(VLAN 상세 정보)를 전송한다. SW2는 메시지를 수신하고 server와 동일하게 VLAN정보를 일치화(Syncronization)시킨다. 즉, VTP client는 VTP server와 항상 정보를 일치시킨다. (Configuration Revision number를 보고 업데이트 여부를 결정)
- SW3도 server인 SW1에게 Summary Adevertisement를 수신한다. 하지만 SW3는 transparent mode이기 때문에 server의 메시지를 자신의 VLAN정보에 반영하지 않고 원상태를 유지한다. SW3가 새로운 VLAN을 생성하거나 삭제 혹은 수정을 해도 변경된 VLAN정보를 어디에도 전송하지 않는다. 하지만 VTP가 동작하는 스위치에서 전달받은 VLAN 정보를 다른 스위치로 중계해주는 역할을 한다. 즉, VTP message의 정보를 사용하지는 않고 중간에서 전달은 해준다.
VTP 유의사항
- 확장 VLAN인 1006~4094번은 VTP 버전 1, 2 모두 지원하지 않기 때문에 Transparent 모드에서만 만들 수 있다.
- 스위치의 기본설정으로 Server로 되어 있으며 Domain은 비어있다. 이 경우 공격자가 하나의 스위치에서 Domain을 설정하면 모든 스위치가 하나의 VTP로 묶이게 되어 마음대로 설정이 가능해진다.
- VTP를 사용하고 싶지 않을 때에는 따로 끄는 기능이 없어 Transparent 모드로 변경해주어야 한다.
- 설정 순서로 인한 문제가 발생할 수도 있기 때문에 <패스워드→도메인이름→모드변경> 순으로 해줘야 한다. 단, 12.2버전에서는 도메인이름 부터 설정해야 패스워드 설정이 되며, 12.3 이상부터는 패스워드설정부터 가능하다.
- 새 장비 또는 수리하여 사용하던 장비를 네트워크에 시키려고 할 경우, Revision number를 초기화 시킨 후 추가 해야 다른 장비의 VLAN정보에 영향을 미치지 않는다.