VTP学习相关
Vlan的简单回顾:
Vlan工作在OSI的第二层,不同Vlan间通讯必须通过路由器或三层交换机,2个Vlan必须使用不同的网段,如果是同一网段,路由器会认为在同一个子网中。
当删除一个已分配端口的vlan后,分配的端口还在该vlan中,在sw#show vlan-switch中将看不到该端口,这时需要重新分配到其他存在的Vlan中或者执行Sw(config)#default interface f0/1进行初始化。
创建vlan
sw(vlan)#vlan 2 name XXX
Trunk链路必须使用100Mb以上的端口,可以携带最多1005个Vlan信息。
Sw(config-if)#switchport trunk encapsulation {dot1q|ISL}
Sw(config-if)#switchport mode trunk
dot1Q和ISL的区别
ISL:cisco专有协议,在原有以太网帧加上头、尾部信息(外部标记),不改变原始帧;(30byte)
dot1Q:IEEE标准,在原有以太网帧上插入vlan的tag(内部标记),改变了原始帧,所以FCS也是新的。(4byte)
VTP——Vlan Trunk protocol (cisco专有vlan中继协议)
一个能宣告vlan配置信息的系统,统一管理网络中交换机的vlan配置信息;通过一个共有的管理域,维持vlan配置信息的一致性。
VTP域中必须用Trunk来传递VTP信息。
通告告的类型:
VTP通告通过多播地址:01-00-0c-cc-cc-cc从trunk端口发送
请求通告(client发起):当客户端加入到一个vtp域的时候会发起通告请求,或者switch启动的时候
汇总通告(Server产生,client学习/转发):默认300's发送一次,在topology发生变化,Vlan信息发生变化时触发发送。包含vtp域的基本信息,如域名、修订版本号、VTP版本、Vlan统计信息等等,汇总通告还有个功能就是类似Hello包的让邻居知道自己是alive的
子集通告(Server,client学习/转发):包含每个Vlan的相关信息,貌似只有在Server端的Vlan信息发生改变(增加、删除)时才会发送,后面的抓包可以看出来
VTP的版本:有version 1和version 2两个版本,默认的是version 1。
2个版本的区别:
在V2模式下,Transparent模式的switch可以转发和自己不同域名、不同vtp密码的vtp通告。
通过实验,在version 1模式下,Transparent模式的switch不转发不同域名的vtp信息,并且如果域名一样但vtp password不同也不能转发;要启用Version 2,网络中所有的交换机都需要启用v2-mode。单独在Transparent上启用vtp,同样不能转发,在Server端也要启用v2-mode,貌似客户机上不需要启用,因为Server发出来的汇总通告里面有vtp的版本信息,client一同步vtp信息自动就成v2 mode了。
V2和V1最大的区别就是V2支持令牌环网络。
vtp的3种模式:
Server:可以创建、修改、删除vlan,发送/转发信息通告、同步,储存于NVRAM
Client:发送/转发信息宣告,同步,不会储存于NVRAM中
Transparent:创建、修改、删除Vlan,转发信息通告,不同步,储存于NVRAM,修订版本号永远是0。
VTP的配置:(IOS:3640)
sw#vlan database
sw(vlan)#vtp domain test
sw(vlan)#vtp password cisco #同一域中的交换机的vtp密码必须一致
sw(vlan)#vtp {server|client|Transparent}
sw(vlan)#vtp v2-mode
sw(vlan)#vtp pruning #启用vtp修剪(最后解释一下)
基本就这些配置
实验Topology
丑是丑了点,知道意思就行了,sw1的f0/1桥接到真机vmnet1的网卡上以便抓包(弄了半天发现vtp没有可用的debug,只能抓包来看了)
先将基本配置copy进来
en
conf t
no ip domain lookup
line con 0
no exec-timeout
logging synchronous
exit
hostname
把端口镜像做好先,等了半天没vtp的包,结果发现没做端口镜像
sw1(config)#monitor session 1 source int f0/14
sw1(config)#monitor session 1 destination int f0/1
现在sw1和sw2的vtp域一样,Trunk端口也做好了,在sw1上做了vtp domain test,apply后就会发VTP的包,向外发送一个汇总通告和一个子集通告
在802.3的以太网帧里面也能看到destination为前面说的组播地址:01-00-0c-cc-cc-cc
汇总包格式
版本
(1字节) |
编码
(1字节) |
后续通告数
(1字节) |
管理域名长度
(1字节) |
管理域名(32字节) |
配置修改编号(4字节) |
更新者标识(4字节) |
更新时间戳(12字节) |
MD5摘要(16字节) |
对应抓的包对应起来看:
版本0x01 #版本1
编码summary-advert(0x01) #说明是汇总通告,0x02是子集通告
后续通告数1 #后面还有一个子集通告包
管理域名长度4(位)
管理域名test
配置修改编号0
更新者标示0.0.0.0 #由于实验没有配switch的管理IP(即vlan 1的IP),所以是4个0
更新时间戳 #什么时候更新的vtp信息
子集包格式
code位0x02
sequence number 1 #对于汇总的后续通告数来说
vlan information #就是每个vlan的具体信息了,这里就默认的5个vlan信息
版本
(1字节) |
编码
(1字节) |
序号
(1字节) |
管理域名长度
(1字节) |
管理域名(32字节) |
配置修改编号(4字节) |
VLAN信息字段1 |
…… |
VLAN信息字段2 |
这里可以看出vtp的宣告间隔是大概300's左右,而且没有vlan变化的时候是不会发送子集通告的。
现在配置sw2为vtp域test的客户端,apply后马上server就会有一个汇总和子集通告出去,这是因为client加入后会自动发送一个请求通告。
这里看到并没到300's的时间就同时发送了汇总和子集通告,就是因为我sw2上以客户端的身份加入了vtp的test域,如果sw2上是server模式加入的貌似不会有请求通告,就等到server互相发送通告后比较修订版本号,谁大就听谁的。
还有种情况就是sw2的模式是Transparent的时候,不开v2-mode不会转发通告,这里就不写过程了,截图太麻烦了。
还有一个vtp的pruning,这个东西直接vtp pruning启用就可以了。意思就是sw1是server,比如里面建立了vlan 2 和vlan 3,sw2和sw3都是client,sw2上只有vlan2的主机,而sw3上有vlan2和vlan3的主机,sw1上的vlan3的主机发送一个组播或者广播的时候,sw2也要接受这个广播,但是sw2上并没有vlan3的主机,但是sw2也要处理这个广播,而最后也时丢弃,白白浪费了带宽;vtp prunking就是自动检测有没有该vlan的接入端口,如果没有则启用vtp prunking修剪该端口
直接在vtp域的server上启动vtp prunking就可以了
其他好像就没什么了,肚子饿了,吃饭去了。
阅读(2322) | 评论(0) | 转发(0) |