2.1-VLAN/TRUNK/VTP
注意:配置VLAN时要退出VLAN配置模式才会执行
如果VLAN被删除或者shutdown,那么属于这个vlan的接口将被阻塞(灯一直是橙色,变不了绿色)。
排错的时候如果发现端口一直变不到绿色,可以用sh vlan brief查看该端口是否划到了一个被
shutdown或者删除的vlan中。
接口类型:
1.Access(访问端口)
一个Access Port,只能属于一个Access Vlan
int fa 0/1
switchport mode access
switchport access vlan 10
除了一种情况例外:(还可以加入一个Voice Vlan)
vlan 200
name voice
switchport voice vlan 200
1.Trunk(中继端口)
1.ISL (cisco 私有,重封装)
Destination MAC |Source MAC | Type | Data |CRC
isl(26bytes)|Destination MAC |Source MAC | Type | Data |CRC|vlan CRC
2.802.1q(业界标准,打标记)
Destination MAC |Source MAC |tag| Type | Data |dot1q CRC
access-port:
可以接受的帧:
802.3
Ethernet II
当vlan id和pvid相同,也可以接dot1q帧,如果vlan id和pvid不一样则drop。
可以发送的帧:
802.3
Ethernet II
Trunk port:
接受 802.1q、ISL、(native vlan 802.3和ethernet II)
发送 802.1q、ISL、(native vlan 802.3和ethernet II)
Native Vlan 不是vlan(只是巧合默认序号是1),是一个Trunk链路上的一个特性,
Trunk针对该vlan的流量不用Trunk封装,其他vlan用Trunk封装。
switch(config-if)#switchport trunk native vlan
DTP:Dynamic Trunking protocol
Switchport mode:
Access 手工指定访问端口,不发DTP(dynamic trunking protocol)
Trunk 手工指定中继端口,发送DTP
Dynamic 动态协商
auto 被动协商,不主动发DTP,收到DTP可回应。
desirable 主动协商,主动发DTP
Trunk 手工指定中继端口
step1:
sw1(config-if)#switchport trunk encapsulation dot1q(如果交换机只支持一种协议,那么这条命令可以不写)
step2:
sw1(config-if)#switchport mode trunk
Dynamic 动态协商:auto
sw1(config-if)#switchport mode dynamic auto
Dynamic 动态协商:desirable
sw1(config-if)#switchport mode dynamic desirable
关闭DTP的情况:
sw1(config-if)#switchport nonegotiate(关闭DTP,此命令必须mode trunk后才可用)
3种:对方非cisco交换机
带trunk接口能力网卡的 服务器
单臂路由器
sh int trunk
switch(config)#int fa 5/8
switch(config)#shutdown 配置前先关掉是良好习惯
switch(config)#switchport trunk encapsulation dot1q
switch(config)#switchport trunk allowed vlan 1,5,11,1002-1005
switch(config)#switchport mode trunk
switch(config)#switchport trunk native vlan 99
switch(config)#switchport nonegotiate
switch(config)#no shut
VTP三种模式:
Server 可以增加、修改、和删除vlan信息,vlan信息存在flash中的vlan.dat文件中
client 不可以增加、修改和删除vlan信息,vlan信息存在flash中的vlan.dat文件中
Transparent 可以增加、修改和删除vlan信息,vlan信息存在配置当中,默认不发送VTP
sh vtp status:
交换机默认是server模式,域名为null,可以接受任何的vtp,并且可以学习到域名(学习到一个域名后就不可以学习到别的域名的信息)。
如果已有域名,只能接受到该域名信息,如果想更改域名,只能删除vlan.dat。
sw1#show flash:
sw1#delete flash:vlan.dat
reload
configuration revision很重要,所以新加一个交换机之前必须把模式变为transperent模式(configuration revision自动清零)。
vtp version 1和2的区别,1为默认,2可以透传vtp信息:domain 1 ->domain 2 ->domain 1
server上启用即可
switch(config)#vtp version 2
生成树:
802.1D STP -->PVST(只支持ISL)、PVST+(同时支持ISL、DOT1Q)
802.1W Rapid-STP -->Rapid-PVST
802.1s MSTP -->MSTP (可以成批把VLAN放到一个实例)
CST(commond spanning tree)独立生成树(只有一个实例)
BPDU网桥协议数据单元
修改cost值计算类型。
sw1(congig)#spanning-tree pathcost method long
查看详细BPDU信息
sh spanning-tree vlan 1 interface fa0/1 detail
根桥收到TCN的时候会flood BPDU给所有SWITCH,然后所有交换机把MAC地址MAX AGE由300秒改为15秒,加速MAC地址表收敛。
在PVST、PVST+中VLAN ID就是VLAN实例ID(extend system id),如优先级别root id为4096的vlan 1则bridge id priority是4097
不推荐:
switch(config)#spanning-tree vlan 1 priority primary(优先级在学到根桥BPDU基础上减两级:一个级别为4096)
secondary(自动降一个级别)
这个命令只有一次作用,选定根桥后就无效了,如果后来又加新的进来,优先级不能影响,所以最好手动指优先级为0或者较低优先级。
敲完命令后会自动产生一个priority,如果想要再敲一次这个命令,则需要先no掉原来产生的priority。
推荐:
switch(config)#spanning-tree vlan 1 priority 0
PortFast模式(接口模式下配):
swich(config)#int fa 0/47
swich(config-if)#spanning-tree vlan 1 portfast
swich(config-if)#keepalive 1(默认是10,这个时间过后端口才会变绿,但省了端口listen和learning的30秒)
UplinkFast(全局模式下blocking交换机配)--只对直连链路有用(当fwd端口坏了的时候,blocked端口切换的时间接近为0,而跳过block->listen->learning状态)swich(config)#spanning-tree uplink-fast
BackbonFast(全局模式下所有交换机配)--对非直连链路有用(可以缩短20秒blocking老化时间):
MST:区域需要三个参数同时匹配:
area name
revision number
VLAN association table 映射表需要一致
如
SWA inst 1 1-500vlan
inst 2 501-1000vlan
SWB inst 1 501-1000
inst 2 1-500
则以上两个交换机不在同一个域
extended system id与实例id一致,而在pvst中与vlan id一致。
配置方式
sw1/2(config)#vlan 10/20/30/40
sw1/2(config-vlan)#name ccna/ccnp/ccie/wolf
inst 1 ->vlan 10/30
inst 2 ->vlan 20/40
每个实例分配两个VLAN,SW1作为INST 1的根,SW2作为INST 2的根
step1:
sw1(config)#spanning-tree mode mst
step2:
sw1(config)#spanning-tree mst configuration进入MST配置模式
step3:三个参数一致:
sw1(config-mst)#name ccnp
sw1(config-mst)#revision 11
sw1(config-mst)#instance 1 vlan 10,30
sw1(config-mst)#instance 2 vlan 20,40
step4:
sw2把sw1的配置重复一遍就完成了
sw2(config)#spanning-tree mode mst
sw2(config)#spanning-tree mst configuration
sw2(config-mst)#name ccnp
sw2(config-mst)#revision 11
sw2(config-mst)#instance 1 vlan 10,30
sw2(config-mst)#instance 2 vlan 20,40
step5:
让sw1成为实例1的根,sw2成为实例1的根。
sw1(config)#spanning-tree mst 1 priority 0
sw2(config)#spanning-tree mst 2 priority 0
step6:检查
sh spanning-tree {1/2}
因为先进,COST都改为长字节型。
EtherChannel
配置一(不好的配置方法,有缺陷):如果遇到配置不错但是起不来那么只好删除重做。
sw1/2(config)#int port-channel 1
sw1/2(config-if)#exit
sw1/2(config)#int fa 0/10
sw1/2(config-if)#channel-group 1 mode on
sw1/2(config)#int fa 0/11
sw1/2(config-if)#channel-group 1 mode on
配置二:
step1:
default int fa 0/10
default int fa 0/11
sw1/2(config)#int range fa0/10 ,f0/11
sw1/2(config-if-range)#shutdown
step2:
sw1/2(config)#channel-group 1 mode on(cisco建议两边用desirable)
自动创建interface port-channel 1
step3:
sw1/2(config)#no shut(两台同时要尽快,经验!)
检验:
sh int port-channel 1
mode on 是不启用动态协商协议;所以不能和任何别的mode协商
mode auto 被动的pagp协商
desirable 主动的pagp协商
passive 被动的lacp协商
active 主动的lacp协商
虚拟局域网VLAN的核心目的:
划分vlan的目的:低成本的将一个大的网络划分为小的网络,也称为网络分片/分段(Segementation);
划分vlan的原因:隔离广播域(广播有ARP、DHCP);
广播流量不能穿越VLAN的边界:A vlan:a broadcast domain ;
为了实现VLAN之间的数据通信需要实现VLAN间路由:A logical network (subnet);
一个VLAN对应着一个广播域,最好对应一个网络子网(为VLAN间的路由作准备);VLAN限制了广播域的范围,VLAN间路由又允许了VLAN间的数据包通信。
HUB: 所有端口都在一个冲突域和一个广播域中;
Switch:一个端口对应一个冲突域,所有端口都在一个广播域中;
Router:一个端口对应一个冲突域,一个端口对应一个广播域。
VLAN的分类:
静态VLAN(Static VLAN):由MAC表建立的VLAN→匹配信息存储在MAC表;
动态VLAN(Dynamic VLAN):由服务器VMPS建立的VLAN→匹配信息存储在VMPS。
CDP(Connect Discover Protocol):
CDP是CISCO私有的协议,只可以发现直链的设备!
交换环境中的2种连接类型:
Access Links:指的是只属于一个VLAN且仅向该VLAN转发数据帧的端口,也叫做native VLAN;交换机把帧发送到Access-link设备会进行信息帧的鉴别(Frame Tagging):当帧到达每个交换机,会首先检查VLAN ID然后决定如何对帧进行处理,当VLAN ID和Access link匹配的时候会移去VLAN标识符;Access-link设备不能与VLAN外通信除非建立了Vlan间路由;
Trunk Links:Trunk指的是能够转发多个不同VLAN的通信的端口,可以在一条网络介质Segement(网线/光纤)上同时传输多个vlan的信息(1次最多可以携带1005个VLAN的信息),必须使用100Mbps以上的端口来进行点对点连接,Trunk使你的单独的1个端口同时成为数个VLAN的端口,这样可以不需要L3设备;如果在Switch之间使用了Trunk,那么多个VLAN间的信息将从这个连接上通过;如果没有使用Trunk而使用一般的连接,那么将只有VLAN1的信息能通过这个连接传递:VLAN1默认作为管理VLAN。
VLAN标识符(VLAN Identification Method)的种类:
VLAN标识符:在交换机的trunk link上,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN.附加VLAN信息的方法,最具有代表性的有:
ISL(Inter-Switch Link):Cisco私有,只能在快速和千兆以太网连接中使用;ISL路由可以用在Switch端口、Router接口和服务器接口卡之上;
dot1Q(IEEE 802.1Q):由IEEE创建属于业界标准,在有非Cisco设备的连接上不能使用ISL时就必须使用802.1Q;802.1Q识别信息tag位于数据帧的源MAC地址与类型字段之间,大小为4Byte(其中包含12bits的VLAN-ID);IEEE 802.1Q附加的VLAN信息就像在传递物品时附加的标签:当交换机检测到数据包的目标地址不在本交换机而应当发到某条trunk链路时,先进行trunk封装就是添加上tag并重新计算其FCS校验,完成封装后就可以从trunk链路上发给对方交换机了。
VTP协议(Vlan Trunk Protocol):
VTP也是Cisco创建的但是现在已经不为Cisco所私有,是用来自动协商、通告和同步Trunk信息的协议,必须依靠Trunk来传播;
VTP采用触发更新,周期为5min;
VTP有三种模式:客户模式(Client)→不能操作VLAN信息但是会转发变动通告/会同步VLAN信息/VLAN信息不会保存在NVRAM里;服务器模式(Server)→可以对VLAN进行建立、删除和修改等操作并发出变动通告/会同步VLAN信息/配置好的VLAN信息会保存在NVRAM里;透明模式(Transparent)→自己可以创建VLAN/可以转发信息/不能同步信息/配置好的VLAN信息会保存在NVRAM中;
注意:VTP不能完成将端口放入VLAN的工作!这需要在每一个交换机上配置。
Only "global" VLAN information regarding VLAN number,name,and description is exchanged.
Informaton on how ports are assigned to VLANs on a given switch is kept local to switch
and is not part of a VTP advertisement.
Vlans deleted on one switch may be deleted on all switches in the VTP domain, and thus
all ports removed from that VLAN.Delete VLANs with caution on a switch that is participating in a VTP domain with other switches.
VTP的工作过程:
交换机启动后如果VTP名字为空,就会在网络上查找VTP信息并且把自己的名字改为查找到的VTP名字,和对方是客户端还是服务器是没有关系的。
VTP的修正号(Configuration Revision)和版本(Version):
用#sh vtp status查看VTP信息(保存vlan.dat文件中),注意#sh ru是看不到VTP信息的!
在运行同一VTP的VLAN中每进行一次配置或修改则会在修正号的基础上加1→客户端的不能导致修正号的变化;VLAN信息是由高版本号向低版本号的覆盖而不管是Client端还是Server端;
VTP的Ve1和Ve2是不兼容的:在一个server上改成版本2那么所有的交换机都会同步到版本2→Transparent例外。
VTP修剪(VTP pruning):
目的是减少广播、组播、单播、保留带宽;打开VTP pruning后只在Trunk link上发送广播;默认情况VTP pruning只能在VLAN2-1005使用,VLAN1是作为管理VLAN存在的!用(v)#vtp pruning打开VTP修剪。
----------------------------------------------------------------------------
LAB1:VLAN的创建,修改,删除和接口操作:
STEP1:VLAN的创建:
方法1(新方法,主流设备):(c)#vlan 10 →exit ;
方法2(老式机用法):(c)#vlan database →vlan 20 →apply (应用,即保存了所做的配置)→exit ;
(注意:在使用老方法创建,修改vlan时,如果不使用apply,而直接使用ctrl+z推出,则所有配置都不保存)
完成后可以用#sh vl br查看vlan的摘要信息;
STEP2:VLAN的修改:
方法1:(c)#vlan 10 →name ENG →exit ;
方法2:(c)#vlan database →vlan 20 name DRAGON →apply →exit(可以在建立时name);
STEP3:VLAN的删除:
方法1:(c)#no vlan 10 →exit ;
方法2:(c)#vlan database →no vlan 20 →apply →exit ;
STEP4:将端口划分入VLAN:
(c-i)#switchport access vlan x ;
可以使用Range一次定义多个接口:in range fastethernet 0/1 - 5 ,0/9(注意空格!);
----------------------------------------------------------------------------
LAB2:跨交换机的同一VLAN通讯:
STEP1:构建Trunk:
Trunk有两种→有自动协商:
802.1Q的Trunk:(c-i)#switchport trunk encapsulation dot1q →switchport mode trunk ;
ISL的Trunk:(c-i)#switchport trunk encapsulation isl →switchport mode trunk ;
两个交换机要配置相同的Trunk;
STEP2:察看Trunk链路的连接状态:
#sh int tru 。
----------------------------------------------------------------------------
LAB3:VTP的配置:
STEP1:确认Trunk已经建立:
∵VTP必须依靠Trunk来传播∴要确认Trunk已经建立→用#sh in tr确认;
STEP2:确定一个VTP域名并确认Server/Client:
一般以网络中用最高端/中心的交换机做Server,考虑到冗余性可以建立两个Server;
在交换机上(c)#vtp domain CCNP →vtp mode server/client(服务器/客户端);
然后用#sh vtp status查看VTP信息,注意sh ru是看不到VTP信息的!(VTP信息保存vlan.dat文件中)
STEP3:查看版本号的变化:
通过在Server端增加/修改/删除vlan来观察Client上VLAN信息的同步和VTP修订版本号的变化;
STEP4:VTP的认证:
使用(c)#vtp password 123来加密VTP区域;可以用#sh vtp password来查看密码;
STEP5:VTP的修剪(在Server端做):
(c)#vtp pruning 。