Cisco VTP

VTP(VLAN Trunking Protocol,VLAN中繼傳輸協定)
思科專屬第2層訊息傳送傳輸協定
使用時機:使用vlan和有多部switch時

用途:
在trunk上散佈vlan資訊給vtp domain中所有交換器
主要控制網路範圍內VLANs的增加,移除和更名 
可避免到處組態相同的VLAN 
ex:在多台switch上的其中一台新增一個vlan10,則所有switch都會自動增加一個vlan10
ps:
訊息等交流只作用在具有相同vtp domain之switch
每個switch只能有一個vtp domain
所有vtp資訊在任何模式下,都會被保留在NVRAM中,在下次開機後也會存在


VTP三種模式: 
transparent:轉送訊息,可手動建立修改刪除vlan,存在nvram 
 transparent模式的資料只有本機的意義,因此若收到更新訊息則不會修改自己的資料 
 transparent模式只是為了讓遠端switch從其他server switch,透過不同vlan的switch接收vlan資料庫
server:轉送訊息,同步(可自動學習),可手動建立修改刪除vlan,存在nvram,散播本機vlan資訊 
 預設是server模式,且在switch群裡至少要有一個是server模式才可分享vlan資訊
 若要將交換器變成server,可先設成client模式先學習,之後在轉成server模式
client:轉送訊息,同步(可自動學習)
 只有client模式執行vlan database無法進入
ps:
Keeping switches in transparent mode can eliminate the chance for duplicate,overlapping VLANs in a large network with many network administrators.
ex:
two administrators might configure VLANs on switches in their respective areas but use the same VLAN identification or VLAN number.
Even though the two VLANs have different meanings and purposes, they could overlap if both administrators advertised them using VTP servers.

VTP configuration revision number
用來追蹤最後一個network topology change的資訊,以決定是否要更新組態  
較高的revision switch不會被較低的revision switch的更新資訊改變
revision都是從0開始,每變動一次會加1,最多可以增加到2147483648
若使用earse starup-config只能清除nvram內資料,但無法將revision歸0
revision number初始化為0只有以下兩方法
 Change the switch’s VTP mode to transparent and then change the mode back to server.
 Change the switch’s VTP domain to a a nonexistent VTP domain,and then change the VTP domain back to the original name.
TRANSPARENT的revision一定是0,因為他不會跟任何人同步
ps:
在任何模式下VTP configuration revision number也會被保留在switch中 

VTP synchronization problem:
若新加入的switch有較高的revision,則會送出新的vtp資訊給所有switch改變原本的vtp設定
這會導致原本該domain下的設定全都被清除或被新加入switch未預期的覆寫 

VTP運作方式 
1,vtp advertisement是由multicast的frame傳送出去 
2,server跟client會跟最新revision的vlan組態做同步,每次有更新版本時,revision就會自動加1 
3,假設你的架構都沒有任何異動的話,他每五分鐘會做一次同步,如果有任何異動他會馬上做同步 

VTP pruning 
可限制VTP Trunk上的廣播流量
效果類似將switchport trunk allowed vlan的功能由switch自行決定
當pruning啟動時:
 各switch會公告目前使用中的vlan,並將switch中pruning-eligible vlan關閉
 ps:因vlan1是管理用途,所以為pruning-ineligible,因此不會被此功能影響
 其他vlan的broadcast流量不會流到未使用該vlan的switch,僅會在通往目的裝置必需的Trunk中流動 
 此模式下,vtp不會傳送vlan資訊到非vlan的port 
不受此限制:
 stp:若要限制stp運作則必須使用switchport trunk allowed vlan明確指定可通過的vlan
 每台switch仍會學習其他vlan的mac 

成功執行vtp四要素
一定要是cisco設備
要在相同的vtp管理domain
要有vlan跟trunk enable起來
vtp mode是client或是server才能做起來 

VTP無法同步的可能原因
switch誤設在transparent mode,導致switch本身不被更新
該domain沒有server mode switch,導致client mode switch無法被更新
swtich沒有設定trunk介面
要同步的switch在vtp domain沒設一樣
在vtp domain下的vtp version不一致或vtp password設錯
vlan1問題,因switch之native vlan未一致導致更新資訊無法傳給其他switch 

……………………………………………….

vtp advertisement message
有以下3種類型最常見
1.Summary advertisements(摘要通告):每5分鐘傳送一次
2.Subset advertisements(部分通告):含vlan詳細資訊,當vlan變動時會送出
3.Advertisement requests(通告請求):若收到的revision比自己高則送出,以取得新的vlan資訊
ps:被封裝在isl或802.1q訊框內,header會依message的型態變化 

Summary advertisements
當vlan database發生變化或每5分鐘,vtp domain servers會傳送summary advertisements
傳送資訊依封包格式決定
格式如下 
 version:1byte,including VTP version
 type:1byte,summary adv
 number of subset advertisements to follow:1byte
 domain name length:1byte,
 management domain name:32byte,zero-padded
 configuration revision number:4byte
 update time stamp:12byte
 md5 digest hash code:16byte
ps:
For VLAN configuration changes, summary advertisements are followed by one or more subset advertisements with more specific VLAN configuration data

Subset advertisements
當vlan configuration變化時,vtp domain servers會傳送subset advertisements
subset advertisements會傳送己經被改變的資訊
ex:
creating or deleting a VLAN
suspending or activating a VLAN
changing the name of a VLAN
changing a VLAN’s MTU
傳送資訊依封包格式決定 
格式如下
 version:1byte
 type:1byte,summary adv
 subset sequence number:1byte
 domain name length:1byte 
 management domain name:32byte,zero-padded
 configuration revision number:4byte
 vlan info field 1-n

vlan info field格式如下
 info length:1byte
 vlan status:1byte,status of the VLAN
 vlan type:1byte,such as Ethernet or Token Ring)
 vlan name length:1byte,length of the VLAN name 
 vlan id:2byte,VLAN number
 mtu size:2byte
 802.10said:4byte,security association identifier (SAID) value
 vlan name:4byte:multiple of 4byte zero-padded 

Advertisement requests from clients
client switch欲得所缺乏的資料時會傳送此類型Advertisement
client switch提出此advertisement的情況可能有以下
 it might be reset and have its VLAN database cleared,
 its VTP domain membership might be changed,
 it might hear a VTP summary advertisement with a higher revision number than it currently has.
當client switch提出該advertisement後,vtp domain servers會傳回summary和subset advertisements以更新client switch

VTP Advertisement Request格式如下
 version:1byte
 type:1byte,adv request
 reserved:1byte
 domain name length:1byte
 management domain name,zero-padded to 32byte
 starting advertisement to request

……………………………………………………………………………………..

vtp版本:
VTPv1 
預設使用
ps:不支持token ring VLANs

VTPv2
特色如下
Version-dependent transparent mode
 在轉送資訊只檢查vtp domain
 ps:vtp1會檢查vtp domain和vtp version
Consistency checks
 v2會檢查從CLI及SNMP來的參數,從鄰居及nvram來的參數不檢查
Token Ring support
 v2支援Token Ring switching和Token Ring VLANs.
Unrecognized Type-Length-Value(TLV) support
 v2看到不懂的type也會轉送,並保留一份在nvram中

VTPv3
解決一些traditional shortcomings.
supports extended VLAN numbers(1-4095) that are compatible with the IEEE 802.1Q trunking standard. 
不能直接處理VLANs事務,它只負責Administrative Domain(管理域)內不透明資料庫的分配工作 
 支持增強VLANs
 支持專用VLANs的新增和廣告。
 提供伺服器認證效能。
 避免「錯誤」資料庫進入VTP域。
 與VTP v1 和 VTP v2 交互作用。
 支持On a Per-Port Basis(每連接阜)組態
 支持傳播VLAN資料庫和其它資料庫檔案類型

……………………………………………………………………………….

 設定vtp domain 
(config)#vtp domain < domain name>
name長度為1到32字元,大小寫有差 
在未指定domain之前,switch預設都是null domain 
ps:domain要相同才可以分享vlan資訊
ps:等於
(vlan)#vtp domain < domain name> 

設定vtp模式
(config)#vtp mode < client|server|transparent>
預設都是server mode
ps:等於
#vlan database 
(vlan)#vtp < client|server|transparent>
ex:設定成client模式
#vlan database
(vlan)#vtp client

設定vtp domain的password
(config)#vtp password < password>
密碼長度為8到64字元
可預防未授權vlan資訊同步我們
預設未使用密碼
只適用於server mode和client mode
ps:等於
(vlan)#vtp password < password>

設定vtp版本
(config)#vtp version < 1 | 2>
預設為v1
vtp版本要相同才可以互相作業 
在server mode啟用v2,會要求同domain內之switch也啟用vtp v2,因此這些switch要有支援vtp v2之能力 

啟用pruning
(config)#vtp pruning 
預設是關閉
在server mode下啟用,會同步該domain的switch而啟用

調整pruning
(config)# interface type mod/num
(config-if)# switchport trunk pruning vlan << < add | except | remove>vlan-list> | none>
vlan-list可設範圍為2-1001

ps:
2950(vlan)#vtp ?
client                  Set the device to client mode.
transparent             Set the device to transparent mode.
server                  Set the device to server mode.
domain                  Set the name of the VTP administrative domain.
password                Set the password for the VTP administrative domain.

2950(config)#vtp ?
version                 Set the adminstrative domain to VTP version
password                Set the password for the VTP administrative domain.
mode                    Configure VTP device mode
domain                  Set the name of the VTP administrative domain.

ps:
1900(config)#vtp ?
transparent             VTP transparent
client                  VTP client
server                  VTP server
trap                    VTP trap
pruning                 VTP pruning     
password                Set VTP password
domain                  Set VTP domain name
………………..

顯示vtp狀態
#show vtp status
畫面大致如下:
VTP Version                     : 2
Configuration Revision          : 2  
Maximum VLANs supported locally : 64  //最大vlan數量
Number of existing VLANs        : 5
VTP Operating Mode              : Server      //預設vtp mode是server
VTP Domain Name                 : bigdomain   //預設domain叫bigdomain
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled      
VTP Traps Generation            : Disabled
MD5 digest                      : 0xEE 0xB3 0xDC 0x9F 0xE2 0xE0 0x25 0xDF
Configuration last modified by 0.0.0.0 at 3-1-93 04:55:57   //每5分鐘廣播一次
Local updater ID is 0.0.0.0 (no valid interface found)
ps:1900為show vtp [statistics]

 

show vtp counters
# show vtp counters
Reveals VTP Message and Error Counters
畫面大致如下
VTP statistics:
Summary advertisements received : 1
Subset advertisements received : 2
Request advertisements received : 1
Summary advertisements transmitted : 1630
Subset advertisements transmitted : 0
Request advertisements transmitted : 4
Number of config revision errors : 0
Number of config digest errors : 0
Number of V1 summary errors : 0
VTP pruning statistics:
Trunk, Join Transmitted, Join Received,Summary advts received from non-pruning-capable device
—— ——————— ——————– ——————————-
Gi0/1,82352,            82931,               0

 

Displays VTP pruning state
#show interface < interface> pruning