CISCO学习笔记(四)Trunk功能及端口模式

在两个不同的交换机上各有着三个vlan,那么如果要实现交换机A的vlan2和交换机B的vlan2通信。

就要使用到trunk命令了。而trunk又分为两种:1.ISL(思科私有的协议)2.IEEE 802.1Q 公有的协议

而他们是如何实现vlan间在不同的交换机上传输的呢,其实它们是通过在“中继链路(交换机A和交换机B中间相连的那条线)”打标记tag的方式来实现的。

ISL和IEEE 802.1Q的打标记的方式是不一样的。

IEEE802.1Q打标记的方式

在中继链路的数据帧中间源MAC地址后面插入一个4个字节的标记。

目标地址、源地址、类型长度、数据、FCS帧效验序列

也就说会在”SA”的后面插入一个4个字节的Tag

而这个4个字节的Tag,是32位。4*8=32bit

但实际上真正的标记只用到了32位里面的12位用来标记VLANID,通过换算可以得出12bit可以标记的vlan有”4096”个。(212)

那因为valn本来是应该0到4095个,而第0个和第4095个是保留的。

所以可用的vlan实际上就只有1到4094个。如下图所示:

CISCO学习笔记(四)Trunk功能及端口模式_第1张图片

上图里面的VLANID就只有12bit。

那最后的priority是做为QOS里面的优先级使用的。

ISL(思科私有的工作协议)

因为在数据帧里面插入一个Tag从原理上来说实际上是破坏了数据帧的格式,那么在破坏数据帧格式的情况,CRC的帧效验序列按理来说是需要重新写入并效验的。

ISL的打标方式则是:

首先在数据帧的头部封装一个26字节的ISL头,在尾部封装一个4个字节的CRC帧效验序列。一共是30个字节。

因为是30个字节比IEEE 802.1Q的字节数多,那么所以ISL的数据帧里面的数据就少了,这样的话传输起来就比较慢。

但它也有一个优点,那就是不破坏数据帧格式。

那么这30字节(240bit)里面,vlan号占了多少位呢,只占用了15bit,但是实际上确也只用到了10bit。

CISCO学习笔记(四)Trunk功能及端口模式_第2张图片

所以210=1024,如果使用ISL的方式来打标的话,只能对1024个vlan号来进行打标。

ISL802.1Q的异同:

相同点:

都是显示标记,即帧被显示标记了vlan的信息

不同点:

IEEE 802.1Q 是公有的标记方式,ISL是Cisco私有的

ISL采用外部标记的方法,802.1Q采用内部标记的方法

ISL标记的长度为30个字节,802.1Q标记的长度为4个字节

ISL标记vlan号占用了10bit,802.1Q标记vlan号占用了12bit

那么中继链路的也有四种模式:

CISCO学习笔记(四)Trunk功能及端口模式_第3张图片

Switchport mode access打出这个命令就是为了防止PC机和交换机起trunkPC机也可以发送DTP数据的。

所以要关闭trunk,故此才必须要用上这个命令。

看下图:

CISCO学习笔记(四)Trunk功能及端口模式_第4张图片

1.如果一边是ACCESS模式,而另一边无论是什么模式,这条trunk链路都不会起来。

2.而如一边是AUTO模式,而另一边也是AUTO模式,那么这条链路也是起不来trunk的,因为没有发送。

3.其他的任意组合都可以起trunk

4.Nonegotiate 是在两边都起trunk的情况下,因为已经建立了trunk,后面就不用再多发送DTP帧了,这样可增加链路带宽。

S1(config-if)#switchport mode trunk

S1(config-if)#switchport nonegotiate

记得两边都得配置相同的命令

S2(config-if)#switchport mode trunk

S2(config-if)#switchport nonegotiate

Trunk端口不属于任何vlan,所以如果是配置了trunk模式的端口在show vlan 下是看不到这个端口的。

CISCO学习笔记(四)Trunk功能及端口模式_第5张图片

VTP协议

当局域网内的交换机数量越来越多的情况下,而每一台交换机都有数十个vlan的情况下,如果手动一台一台的去配置,那就肯定不可能,那么就需要用到VTP的协议。

而VTP协议是CISCO私有的协议,只有思科的设备才有这个功能。

Vlan Trunk Protocol

目的是从一个控制点,维护整个企业网上vlan的添加、删除和重命名的工作。

一:vtp域:

相同域名,通过trunk相互连接的,一组交换机。

域名:随便起一个名字就可以了不用后面跟.com

创建VTP域:switch(config)#vtpdomain domain_name

Vtp有三种模式:

配置交换机的vtp模式:switch(config)#vtp mode server/client/transparent

服务器模式(server)

-提供vtp消息,包括vlanID的名字信息

-学习相同域名的vtp消息

-转发相同域名的vtp消息

-可以添加、删除和更改vlan

域名不相同是不能学,不能发,也不能转的。

客户机模式(client)

-请求vtp消息

        1.交换机重启的时候会有请求

        2.加入一个新的域的时候会有请求

          3.当发现server那边有新的vlan的时候会发请求(是根据“配置版本修订号”来发现server是否有新的vlan产生的。)

-学习相同域名的vtp消息

-转发相同域名的vtp消息

-不可以添加、删除和更改vlan

透明模式(Transparent)

-不提供vtp消息

-不学习vtp消息

-转发vtp消息

可以添加、删除和更改vlan,只在本地有效。

Vtp通告:

    【使用组播发送,地址为01-00-0c-cc-cc-cc

    只通过中继端口传递,也就是说只能通过trunk端口来传送。

    Vtp消息通过Vlan1 传送】

vtp消息分为两类:

一类是客户机的消息请求-获取vlan信息

1.       交换机重启后

2.       Vtp域名变更后

3.       交换机接收到了配置修订号大的汇总消息

二类是服务器的通告响应-发送vlan信息

1.       汇总消息

-用于通知邻接的Catalyst交换机目前的vtp域名和配置修订编号(Configuration Revision);每隔300秒一次,或配置改变的时候发送消息。

2.       子集消息

-包含vlan的详细信息。

配置修订编号(Configuration Revision):只要改动一次交换机配置,它都会在原来的数值上加1

配置版本修订号可是使用命令来查看:

Switch#show vtpstatus 查看vtp的配置

Switch#show vlan brief

不管对端是什么模式,只要它的版本号比我大,我就会来同步vlan信息。

如果client端的配置版本修订号比server端的大,那么server也是会向client端来学习vlan信息的。

但是如果是在同样的配置修订版本号情况下,vlan的名称不一样,比如server端是12345vlanclient端是12346vlan

它们是不会同步的。

但是最后当client端再次和server端同步的时候,之前client端上面的vlan6就会消失,而变的和server端一样,是12345的vlan。

CISCO学习笔记(四)Trunk功能及端口模式_第6张图片

Vtp的加密:

switch(config)#vtp password ilync

那如果在server端配置了vtp的密码,那么在client端也要配上相同的密码,client端才可以继续学习到server端的vlan信息,否则的话client端是学习不到server端的配置信息的。

For example:在server端配置了一个密码,然后又建立了一个vlan,那么client端在show vlan命令下是看不到的,也就是没有学习到,而如果client端也配置了这个相同的密码,再用show vlan去看,就可以看到,而client端就可以继续学了。

所以这个vtp的加密,就是为了防止非法的交换机来学习server端的vlan信息的。

 

Vtp的修剪:

Vtp的修剪是为了减少中继链路上的不必要的广播信息。

Switch(config)#vtp pruning

CISCO学习笔记(四)Trunk功能及端口模式_第7张图片

如果配置上了vtp的修剪,那么上图中的“vtp pruning Mode”后面就回事Enable

那最后还有一个条命令就是修改vtp的版本。

Switch(config)#vtp version 2


你可能感兴趣的:(Cisco)