将根据下图整理一下交换机的大部分配置。







一、基本设置

switch A
(config)# hostmane  SA   //配置名字为SA
SA(config)# interface vlan 1
SA(config-if)# ip address  192.168.1.1 255.255.255.0   //配置管理ip
SA(config-if)# no shutdown

SA(config)#enable secrect      //设置密码  

SA(config)#line vty 0 15                          //设置telnet密码
SA(config)# password elitek
SA(config)#login

SA(config)#line console 0                         //设置控制口的密码
SA(config-line)#password elitek
SA(config-line)#login

SA(config)#aaa new-model                         //启用AAA认证
SA(config)# username  khp password honyi         //设置用户名和密码
SA(config)#crypto key generate rsa modulus 2048  //启用ssh会话,产生ssh会话所需要的密钥。此处用rsa类型的密钥,不同的IOS用不同的密钥。  

SA(config)#ip name-server 192.168.1.8            //设置DNS服务器    
SA(config)# ip domain-name  elitek               //设置所属域名
SA(config)# ip domain-lookup                       //启用DNS解析    




二、VLAN的划分

(一)vlan划分要明白几个主要知识点:

1、vlan的作用及vlan种类:

   VLAN的作用:划分广播域,不同VLAN之间不相互广播,不能直接通信。需路由器或三层交换机才能让各VLAN之间通信。
   VLAN的种类: 分为静态VLAN和动态VLAN。
               静态VLAN:手工指定交换机端口属于哪个VLAN。以静态VLAN为主。
               动态VLAN:用终端的MAC地址来划分VLAN。终MAC地址与VALN的对应数据库存于一个VMPS服务器内。
               还可依IP地址和用户名划VLAN,分别属于三层,四层。


2、链路聚集及链路聚集协议

   (1)链路聚集:干道(trunk)能够在单条物理链路中承载多个vlan的流量。即一条交换机到交换机的干线中可以传输多个VLAN。
   (2)链路聚集协议:在干道中用于传输多个VLAN的协议。分为:ISL、802.1Q、DTP

            ISL:    这个协议是CISCO专有的。用在纯CISCO环境下使用。支持1---1005编号的VLAN。
            802.1Q:这个协议是业界标准。支持1--4094编号的VLAN。
            DTP:    也是CISCO专有的点到点协议。并用DTP协议来协商链路聚集的状态。


3、链路聚集模式

   (1)on (trunk):    本端口为开启模式。不管对端邻接接口是什么模式,都永远作为干道中继接口。
   (2)off:           本端口不作为干道中继接口。不管对端邻接接口是什么模式,即使对端中开启(on)模式也不作为中继接口。
   (3)desirable(企望):只要对端邻接接口可以成为中继接口,他就成为中继接口。是主动尝试将链路转换为干道中链路。对端接口模式为:trunk 、 desirable 、auto他都会变为中继接口。
   (4)auto(自动):  与其相连的对端邻接接口让其成为什么就是什么。接口愿意将链路转为干道中继端口。和desirable的区别是,desirable是主动的,auto是被动的。对端接口模式是:trunk、 desirable就会变成中继接口.
   (5)nonegotiate(非协商):此模式也是把端口强行打开为口继接口。与trunk模式一样。区别是:禁止接口产生DTP信息。对端端口一定要为trunk,否则会出错。

4、 VTP  

     VTP能够在整个交换网络中分发和同步VLAN的相关信息,维护VLAN配置的一致性。 每台交换机只支持单个VTP域。

  (1)  VTP的工作模式:

     server(服务器模式):   可创建、修改、删除VLAN;  中继端口向外发送或接收并转发从VTP域中其他交换机接收到的最新信息;  接收到的信息同步自已的VLAN配置中; 将vlan配置存到NVRAM中。

     clinet(客户模式)  :   不能创建、修改、删除VLAN;  中继端口接收并转发从VTP域中其他交换机接收到的最新信息;    接收到的信息同步到自已的vlan配置中; 不能将vlan配置存到NVRAM中。

     transparent(透明模式):只能在本地交换机中创建、修改、删除VLAN;   中继端口接收并转发从VTP域中其他交换机接收到的最新信息;   接收到的信息不能同步到自已的vlan配置中;可将本地配置存于NVRAM中。
                              透明模式的交换机不参与VTP。所以不会通告自已的VLAN配置,也不把接收到的VTP通告与自已的VLAN数据库同步。透明交换机的版本号总为0 (vtp根据版本号来更新自已的数据库,当比自已的版本号大时,就会更新。但透明交换机版本号总为0 ,所以就不会更新)

      off(关闭模式):         只有基于catos操作系统的才支持此模式。与透明模式类似。只是关闭模式不接收从VTP域中其他交换机收到的最新信息,直接丢弃VTP通告。  



 (2)VTP版本     :有vtp1和vtp2。vtp1为默认版本。vtp2支持令牌环,VTP1不支持。 vtp1透明模式时,要检查域名和密码,如果匹配才会转发;但vtp2不检查,直接转发。

 (3)VTP修剪  : 把不必传递的信息不转发。或不接收不属于自已的信息。  干道接口承载VTP管理域内的所有VLAN的流量。很多情况下,VTP域中的所有交换机并不会配置整个VTP域中的所有VLAN。所以全部VLAN都进行转发和接收会占很大的带宽。可以进行修剪,不需要接收或转发的VLAN信息。

 (4)VTP认证:新加入的交换机会自动加入到非安全管理域,所以需设置域名和密码来保证VTP域的安全。确保相同域的所有交换机的域名和密要相同。


   所以trunk有三点:一是封装类型,二是接口模式,三是两端的VTP信息是否匹配。



配置详情清单:

switch A
(config)# hostmane  SA   //配置名字为SA
SA(config)# interface vlan 1
SA(config-if)# ip address  192.168.1.1 255.255.255.0   //配置管理ip
SA(config-if)# no shutdown

SA(config)#vlan database    //进入vlan配置模式
SA(vlan)#vtp domain zj8s     //设置域名
SA(vlan)#vtp password cisco  //设置域密码
SA(vlan)#vtp  server          //设置交换机VTP工作模式,此处是server模式,可以创建VLAN。不同的交换机此处命令稍有不同。
SA(vlan)#vtp purning           //启用vlan修剪

SA(config)#vlan database        //进入VLAN配置模式
SA(vlan)#vlan 2 name zj29t      //创建VLAN并设置VLAN名
SA(vlan)#vlan 3 name zj30t
SA(vlan)#vlan 4 name zj31t

// fast0/1和fast0/2属于ethernetchannel里的知识,暂不配置。

SA(config)#interface fast0/3                          //进入fast3号端口
SA(config-if)#switchport mode trunk                   //设置端口的中继模式为trunk
SA(config-if)#switchprot trunk encapslation dot1q    //设置端口中继协议为802.1q
SA(config-if)#switchport allowed vlan all             //允许所有VLAN经过此中继传输


SA(config)#interface fast0/4                           //进入fast3号端口
SA(config-if)#switchport mode trunk                    //设置端口的中继模式为trunk
SA(config-if)#switchprot trunk encapslation dot1q    //设置端口中继协议为802.1q
SA(config-if)#switchport allowed vlan 2-3              //只允许VLAN2和vlan3经过此中继传输
SA(config-if)#switchport trunk purning vlan 4          //修剪vlan4的信息。因为这个端口只接有两个VLAN,所以可以修剪vlan4 ,以减少通告带宽。





switch C

config)# hostmane  SC   //配置名字为SA
Sc(config)# interface vlan 1
Sc(config-if)# ip address  192.168.1.3 255.255.255.0   //配置管理ip
Sc(config-if)# no shutdown

Sc(config)#vlan database    //进入vlan配置模式
Sc(vlan)#vtp domain zj8s     //设置域名
Sc(vlan)#vtp password cisco  //设置域密码
Sc(vlan)#vtp mode client          //设置交换机VTP工作模式,此处是client模式,不可以创建VLAN,只转发和同步信息。不同的交换机此处命令稍有不同。



Sc(config)#interface fast0/1                          //进入fast1号端口
SC(config-if)#switchport mode trunk                   //设置端口的中继模式为trunk
SC(config-if)#switchprot trunk encapslation dot1q    //设置端口中继协议为802.1q
SC(config-if)#switchport allowed vlan all             //允许所有VLAN经过此中继传输
Sc(config-if)# no shutdown


SC(config)#interface fast0/2                           //进入fast2号端口
SC(config-if)#switchport mode trunk                    //设置端口的中继模式为trunk
SC(config-if)#switchprot trunk encapslation dot1q    //设置端口中继协议为802.1q
SC(config-if)#switchport allowed vlan 1,2,3,4              //允许vlan 1,2,3,4四个VLAN
Sc(config-if)# no shutdown


SC(config)#interface fast0/3                    //     进入端口3
SC(config-if)#switchport mode access             //接口为access模式,即接入端口
SC(config-if)#switchport access vlan2           //端口加入vlan2
Sc(config-if)# no shutdown

SC(config)#interface fast0/4                      //     进入端口4
SC(config-if)#switchport mode access              //接口为access模式,即接入端口
SC(config-if)#switchport access vlan3            //端口加入vlan3
Sc(config-if)# no shutdown

SC(config)#interface fast0/5                      //进入端口5
SC(config-if)#switchport mode access              //接口为access,即接入端口
SC(config-if)#switchport access vlan4             //端口加入vlan3
Sc(config-if)# no shutdown








(二)pvlan(私有vlan)

  PVLAN分两种类型:主VLAN和辅助VLAN。主VLAN由多个辅助VLAN组成,辅助VLAN和主VLAN属于相同子网。
  辅助VLAN是主VLAN的子代,映射到主VALN。每台设备都连接到辅助VLAN
  辅助VLAN又分为:团体VLAN和隔离VLAN两种。团体VLAN中的端口可以本团体VLAN中的端口和混合端口通信。
                                          隔离VLAN中的端口只能与混 合端口通信。只能有一个隔离VLAN。

 主VLAN就是普通的VLAN。 辅助VALN有两种,团体VLAN和隔离VLAN。

三种VLAN:  主VLAN
                        隔离VLAN和团体VLAN共三种。
1、定义私有VLAN类型

(config)#vlan {pvlan-id}    //定义私有VLAN
 (config)#private-vlan {community | isolated | primary}    //定义vlan的类型, 团体、隔离, 主VLAN

(config)#private-vlan association {pvlan-id | add {vlan-id} |remove {vlan-id} }   //把辅助VLAN和主VLAN相关联
2、把辅助VLAN映射到主VLAN的三层接口
(config)#interface vlan {primary valn-id}   //主VLAN配置

(config-vlan)#private-vlan mapping  {pvlan-id | add {pvlan-id} |remove {pvlan-id} }   //将辅助VLAN映射到主VLAN的三层 vlan接口,从而允许主VLAN接口对辅助VLAN入口流量进行路由
3、配置端口类型
(1)端口配置为主机端口
(config)interface fastethernet 0/1   //进入接口
 (config-if)#swithport mode private-vlan  host //定义接口为主机端口还是混合端口,这里是主机端口

 (config-if)#switchport private-vlan host-association {primary-vlanid} {pvlanid}  //把这个端口绑定到主VLAN和PVLAN中。绑定到PVLAN时,也一定要绑定到主VLAN中。
(2)端口配置为混合端口

(config-if)#switchport mode private-vlan promisscolous   //定义接口为主机端口还是混合端口,这里是混合端口

(cofnig-if)switchport private-vlan mapping {primary-vlanid} {pvlan-id}  [add {pvlan-id}] [remove {pvlan-id}] //这是混合端口与主VLAN相关联。


例:

(config)#vlan 100
(config-vlan)#private-vlan primary

(config)#vlan 200
(config-vlan)#private-vlan community
(config)#vlan 300
(config-vlan)#private-vlan  isolated     //以上是定义私有VLAN的类型,100为主VLAN

(config)#vlan 100
(config-vlan)#private-vlan association 200,300  //把辅助VLAN和主VLAN相关联。

(config)#interface vlan 100
(config-vlan)#private-vlan private-vlan mapping 200,300   //把辅助VLAN映射到主vlan第三层vlan接口

(config)#interface fast0/1
(config-if)#switchport mode private-vlan host
(config-if)#switchport mode private-valn host-association 100 200  //把端口1定义到辅助VLAN200中,且绑定到主VLAN

(config)#interface fast0/2
(config-if)#switchport mode private-vlan promisscolous   //混合端口
(config-if)# switchport private-vlan mapping 100 300


校验命令
show interfaces private_vlan mapping 查看私有vlan的配置信息
show vlan private-vlan type 显示私有vlan的配置信息



三、 生成树协议 (stp)


(一)生成树协议基础

1、生成树协议的作用:生成树协议是为了避免冗余网络中造成环路。
2、生存树协议的几个基本概念:

   (1)网桥标识符:(网桥ID)生成树为每个网桥或交换机分配唯一的标识符。也叫网桥ID。
                    网桥ID=2字节优先级值+6字节的MAC地址 。mac地址值是唯一的,所以网桥ID也是唯一的。 网桥优级值越小,优先级越高。默认是32768,范围是0~65535。


   (2)生存树路径开销:生成树路径开销是以路径中所有链路开销累加起来的总路径开销。是以链路的带完为基础的。 10Gbit/s默认路径开销为2   ;1Gbit/s为4  ;   100Mbit/s为19   ;10Mbit/s为100

   (3)桥接协议数据单元(bpdu)的作用:选举根网桥;确定冗余路径的位置;通告网络拓扑变更; 监控网络生成树状态;阻塞特定端口避免环路。
                                    分为:配置BPDU和TCN BPDU(拓扑通告变更BPDU)。

3、生成树协议的操作过程:

   (1)根据网桥ID选举一个根网桥。网桥ID值最小的成为根网桥。因为网桥ID是优先级+mac地址表示,所以优先级值最小的成为根网桥;优先级相同时,mac值最小的成为根网桥。

   (2)选择所有非根网桥的根端口。与根网桥最近的端口或路径开销最小的端口成为一个网桥的根端口。每个网桥只选一个根端口。与根网桥直连的端口一定是根端口。
                                   根端口的选举方法:到达根网桥路径开销最小的作为根端口-->路径开销相同时,端口优先级值低(即端口优先级高)的作为根端口-->端口优级相同时,MAC地址值小的作为根端口。

    (3)选择所有网段的指定端口。从每个网段找出一个指定端口,到达根网桥路径开销小的端口为网段的指定端口,当开销相同时,网桥ID小的为指定端口。根网桥的所有端口都是指定端口。

    (4)阻塞其他端口

(二)802.1D 协议  (stp)

 对整个网络生成一个无环网络。

1、stp(802.1d)端口的状态:
   阻塞(不转发帧,但监听BPDU包,不能学习接收帧的MAC地址)
   监听
   学习(不转发帧,但能学习接收帧的MAC地址)
   转发(转发帧,也能学习接收帧的MAC地址)
   禁用(不参与生成树,不转发数据帧)
端口从阻塞状态变成转发状态,要经过先变成监听,再变成学习,最后变成转发的过程。

2、计时

  (1)hello时间,根网桥发送BPDU包的时间间隔,默认为2秒

  (2)转发延迟:从阻塞状态变为转发状态所需的时间,默认25秒

  (3)最大寿命:控制网桥端口保存配置bpdu的最大时间。默认20秒。可配为 6---40秒.







3、802.1D stp的配置:

   需配置的几个点:优先级,端口开销,端口优先级。   还可以配置hello时间,转发延迟,和最大寿命。

SWITCH A:

SA(config)#spanning-tree priority 4096   //把A交换机设为根交换机。设置优先级为4096,而默认是32678,所以优先级最高,成为根网桥。
或SA(config)#spanning-tree root primary    //也把交换机A设置根交换机。

SWITCH B:
SB(config)#spanning-tree priority  5000    //配置优先级值比A交换机大一点,比默认值小,配置成备用根交换机。
或SB(config)#spanning-tree root secondary    //也可以配为备用根交换机。

SWITCH C:

SC(config)#interface fast0/1
SC(config-if)#spanning-tree cost 10             //设置端口开销。默认fast开销为19,这里为10,将会被选举为根端口。(100M)
SC(config-if)#spanning-tree port-priority 4096   //设置端口优先级(不是网桥优先级),当开销相同时,优先级高的为根端口。
//以上配置可以把SC中的fast0/1设为根端口。端口2和


SWITCH D:

SD(config)#interface fast0/1
SD(config-if)#spanning-tree cost 10             //设置端口开销。默认fast开销为19,这里为10,将会被选举为根端口。(100M)
SD(config-if)#spanning-tree port-priority 4096   //设置端口优先级(不是网桥优先级),当开销相同时,优先级高的为根端口。
SD(config)#interface fast0/2
SD(config-if)#spanning-tree cost 19              //即fast2端口的开销为19,也是默认的。  



(三) pvst +增强的按VLAN的生成树 (802.1d的增强版,也属于802.1d,为了条理清晰才当作一大点)

  pvst+的特点: pvst + 为每个VLAN维护一个单独的生成树。而stp是为整个网络维护一个生成树。通过pvst+可以配置负载均衡。

配置:  

SWITCH A:
SA(config)#spanning-tree vlan 2,4                    //设置VLAN2和vlan4
SA(config)#spanning-tree vlan 2,4  priority 4096   //把A交换机设为vlan2和vlan4的根交换机。设置优先级为4096,而默认是32678,所以优先级最高,成为根网桥。
或SA(config)#spanning-tree vlan 2,4 root primary    //也把交换机A设置为vlan2和vlan4r的根交换机。

SA(config)#spanning-tree vlan 3                     //设置vlan3
SA(config)#spanning-tree vlan 3  priority 9152     //设置此交换机为vlan3的备用根交换机
或 SA(config)#spanning-tree vlan 3  root secondary     //设置此交换机为vlan3的备用根交换机


SWITCH B:
SB(config)#spanning-tree vlan 3
SB(config)#spanning-tree vlan 3 priority  4096    
SB(config)#spanning-tree vlan 3 root primary    

SB(config)#spanning-tree vlan 2,4  priority 9152
SB(config)#spanning-tree vlan 2,4  root secondary


SWITCH C:

SD(config)#spanning-tree mode pvst                     //设置生成树的协议
SC(config)#interface fast0/1
SC(config-if)#spanning-tree vlan 2,4  cost 10             //设置端口开销。默认fast开销为19,这里为10,将会被选举为vlna2和vlan4的根端口。(100M)
SC(config-if)#spanning-tree vlan 2,4  port-priority 4096   //设置端口优先级(不是网桥优先级),当开销相同时,优先级高的为根端口。
SC(config-if)#spanning-tree vlan 3 cost 19


SC(config)#interface fast0/2
SC(config-if)#spanning-tree vlan 3  cost 10             //设置端口开销。默认fast开销为19,这里为10,此端口将被选举为 vlan3的根端口。(100M)
或SC(config-if)#spanning-tree vlan 3  port-priority 4096   //设置端口优先级(不是网桥优先级),当开销相同时,优先级高的为根端口。
SC(config-if)#spanning-tree vlan 2,4 cost 19

//以上配置可以把SC中的fast0/1设为根端口。端口2和


SWITCH D:
SD(config)#spanning-tree mode pvst                     //设置生成树的协议
SD(config)#interface fast0/1
SD(config-if)#spanning-tree vlan 2,4 cost 10             //设置端口开销。默认fast开销为19,这里为10,将会被选举为根端口。(100M)
SD(config-if)#spanning-tree vlan 2,4 port-priority 4096   //设置端口优先级(不是网桥优先级),当开销相同时,优先级高的为根端口。
SD(config)#interface fast0/2
SD(config-if)#spanning-tree vlan 3 cost 10           //把fast2端口设为valn3 的根端口
SD(config-if)#spanning-tree vlan 2,4 cost 19


(四)802.1W 协议   (快速生成树协议RSTP)  RSTP和STP都是单生成树,不支持VLAN

rstp是快速生成树协议,从阻塞到转发的转换速度要比STP要快。配置方法和STP几乎一样。且和stp相兼容。


SD(config)#spanning-tree mode rstp                     //设置生成树的协议



(五)802.1S   (MSTP)  多生成树协议


1、目的:mst的目的是降低与网络的物理拓扑相匹配的生成树实例的总数。即把多个VLAN映射到一个MST实例中,从而减少生成树实例。
        pvst+要为每个VLAN维护一个STP实例,可能需要很多不同STP拓扑的物理拓扑。

2、几个重要的概念:
  (1)cst:公共生成树。一个大的局域网中生成一个cst(公共生存树),以保证这个整体的局域网无环路。

(2)mst域:一个大网络中,可以把一些局部区域划分为mst域。一个大的整体网络中可以有一个或多个mst域。

          一个mst域有三个属性:区域名,版本号,valn到生成树实例的映射关系。这三点相同的交换机才属于一个MST域。
          当收到的bpdu中包含的三点属性值与自已的有任何一点不同,则接收BPDU的端口就是区域边界。

(3)ist内部生成树:一个MST区域内必须有且只有一个IST内部生存树实例。编号为0。IST的作用是与本区域外的其他区域和整体网络相沟通的。即与CST整体生成树是相互沟通的。

(4)mst实例(msti):即mst区域内的实例。一个mst区域内部可以有多个MST实例(msti)。编号从1开始,即msti1开始。ist内部生存树实例可以称为msti0,只是一个殊的MST实例。

个人整体的理解:

一个大的网络中,形成一个cst(公共生存树)。在这个大的网络中,这个cst可以使总体无环。
在这个大网络的局部,可以生成一个或多个mst区域。每个mst区域生成一个ist,且只能有一个ist。这个ist是与stp,rstp兼容的。这个ist是能被区域外的大网络中的其他网络所理解的。即ist是与大网络相交流的。
同时,一个mst区域可以生成一个或多个msti。每个msti依据信息独立计算自已的拓扑。每个msti与其他msti无关。每个msti再与区域内的vlan相关联。可以多个vlan关联到一个msti上。


3、两个注意点:

  (1)当mst区域中的某交换机为整个cst的根交换机时,则mst区域中的ist的根交换机为这个交换机。、
  (2) 一个mst区域内的ist生成树实例的根交换机不一定是该区域中网桥ID最小的那台交换机。而是区域内到达整个CST根交换机开销最小的那始交换机。
    如果cst的根交换机不是mst区域内的交换机时,则mst区域内的根交换机必须是区域中的边界交换机。且是到cst根交换机开销最小的边界交换机。
        mst实例的根交换机就没有这些规定,与普通生成树的选举方法一样。

4、配置清单:


SWITCH A:

SA(config)#spanning-tree mode mst              //选择mst生成树模式
SA(config)#spanning-tree mst configuration     //进入mst配置子模式
SA(config-mst)#name tky                        //配置mst域名
SA(config-mst)#revision   1                    //配置版本号为1
SA(config-mst)#instance 2 vlan 2,4             //把VLAN映射到MST实例
SA(config-mst)instance 3  vlan 3               //把VLAN映射到MST实例


SA(config)# spanning-tree mst 2   priority 4096   //配置MST实例的优先级。 把mst 2实例的根交换机配置本交换机



SWITCH B:

SB(config)#spanning-tree mode mst              //选择mst生成树模式
SB(config)#spanning-tree mst configuration     //进入mst配置子模式
SB(config-mst)#name tky                        //配置mst域名
SB(config-mst)#revision   1                    //配置版本号为1
SB(config-mst)#instance 2 vlan 2,4             //把VLAN映射到MST实例
SB(config-mst)instance 3  vlan 3               //把VLAN映射到MST实例

SB(config)# spanning-tree mst 3   priority 4096   //配置MST实例的优先级。 把mst 3实例的根交换机配置本交换机



SWITCH C:

SC(config)#spanning-tree mode mst              //选择mst生成树模式
SC(config)#spanning-tree mst configuration     //进入mst配置子模式
SC(config-mst)#name tky                        //配置mst域名
SC(config-mst)#revision   1                    //配置版本号为1
SC(config-mst)#instance 2 vlan 2,4             //把VLAN映射到MST实例
SC(config-mst)instance 3  vlan 3               //把VLAN映射到MST实例


SC(config)#interface fast0/1                   //进入端口
SC(config-if)# spanning-tree mst 2  cost 10    //配置MST2实例的开销。此接口作为mst2中的根端口
SC(config-if)#spanning-tree mst 2 prot-priority  4096    //配置实例的端口优先级

SC(config)#interface fast0/2                   //进入端口
SC(config-if)# spanning-tree mst 3 cost 10    //配置MST2实例的开销。此接口作为mst3中的根端口
SC(config-if)#spanning-tree mst 3 prot-priority  4096    //配置实例的端口优先级



SWITCH D:

SD(config)#spanning-tree mode mst              //选择mst生成树模式
SD(config)#spanning-tree mst configuration     //进入mst配置子模式
SD(config-mst)#name tky                        //配置mst域名
SD(config-mst)#revision   1                    //配置版本号为1
SD(config-mst)#instance 2 vlan 2,4             //把VLAN映射到MST实例
SD(config-mst)instance 3  vlan 3               //把VLAN映射到MST实例


SD(config)#interface fast0/1                   //进入端口
SD(config-if)# spanning-tree mst 3 cost 10    //配置MST2实例的开销。此接口作为mst3中的根端口
SD(config-if)#spanning-tree mst 3 prot-priority  4096    //配置实例的端口优先级

SD(config)#interface fast0/2                   //进入端口
SD(config-if)# spanning-tree mst 2 cost 10    //配置MST2实例的开销。此接口作为mst2中的根端口
SD(config-if)#spanning-tree mst 2 prot-priority  4096    //配置实例的端口优先级


总的来说,STP/RSTP是基于端口的,PVST/PVST+是基于VLAN的,MST 是基于实例的


四、增强的生存树协议


 (一)portfast

1、作用:让阻塞端口直接过渡到转发状态。终端连到此端口后,直接立即连接到网络中,不必等待生成树进行收敛。
2、注意事项:此特性只用于接入层交换机的接入端口,即边缘端口。不能在中继端口上启用此端口,否则会有产生环路的风险。可全局配置,也可端口配置。

3、配置:

SWITCH C:

SC(config)#interface fast 0/3-8     //配置端口3-8
SC(config-if)# spanning-tree portfast      //3-8号端口启用portfast特性。因为1和2端口是中继端口,所以不启用。
SC(config)#spanning-tree portfast default   //整个交换机启用portfast特性。最好不要全局启用,以避免环路。

no spanning-tree portfast     //此命令关闭portfast特性

SWITCH D:

SD(config)#interface fast 0/3-8     //配置端口3-8
SD(config-if)# spanning-tree portfast      //3-8号端口启用portfast特性。
SD(config)#spanning-tree portfast default   //整个交换机启用portfast特性。最好不要全局启用,以避免环路。



(二)bpdu防护

1、作用:不接收任何bpdu包,即不参与STP,能防止交换机设备意外的连接到启用了portfast特性的端口,而造成环路。
2、注意:当收到bpdu包后将报错并关闭端口。需手工 no shutdown命令才会再开启。可全局或端口配置。

3、配置:因为只在接入层才启用portfast,所以只用配置 C\D交换机

SWITCH C:

SC(config)#interface fast 0/3-8     //配置端口3-8
SC(config-if)# spanning-tree portfast      //3-8号端口启用portfast特性。因为1和2端口是中继端口,所以不启用。
SC(config-if)# anning-tree bpduguard enable    //3-8号端口启用bpdu 防护
//SC(config-if)#spanning-tree bpduguard disable   //关闭bpdu防护

SC(config)#spanning-tree portfast bpduguard default   // 全局启用bpdu防护


SWITCH D:

SD(config)#interface fast 0/3-8     //配置端口3-8
SD(config-if)# spanning-tree portfast      //3-8号端口启用portfast特性。
SD(config-if)#spanning-tree bpduguard enable    //3-8号端口启用bpdu 防护
//SD(config-if)#spanning-tree bpduguard disable   //关闭bpdu防护

SD(config)#spanning-tree portfast bpduguard default   // 全局启用bpdu防护



(三)bpdu过滤

1、作用:能够防止交换机在启用portfast特性的接口上发送BPDU。
2、汪意事项:(1) 在端口上配置了BPDU过滤的,那么端口不发送任何BPDU,将收到的BPDU丢弃。
            (2)在交换机全局性配置了BPDU过滤,交换机的端口在各自收到任何BPDU时,将参与STP中。变为STP中的链路端口。 BPDU过滤特性和PORTFAST特性将失效。

BPDU过虑在全局上配置和端口上配置是有区别的:

当端口上配置时,所有的BPDU包都不接受
当在全局上配置时,一个接口收到BPDU包时,将丢弃portfast特性和bpdu过滤特性,而参与到stp中,转为trunk(口继)端口。
bpdu过滤特性优先于bpdu防护。同时配置时,bpdu过滤特性生效。


3、配置

SWITCH C:

SC(config)#interface fast 0/3-8     //配置端口3-8
SC(config-if)# spanning-tree portfast      //3-8号端口启用portfast特性。因为1和2端口是中继端口,所以不启用。
SC(config-if)# anning-tree bpdufilter enable    //3-8号端口启用bpdu 防护
//SC(config-if)#spanning-tree bpdufilter disable   //关闭bpdu防护

SC(config)#spanning-tree portfast bpdufilter default   // 全局启用bpdu防护


SWITCH D:

SD(config)#interface fast 0/3-8     //配置端口3-8
SD(config-if)# spanning-tree portfast      //3-8号端口启用portfast特性。
SD(config-if)#spanning-tree bpdufilter enable    //3-8号端口启用bpdu 防护
//SD(config-if)#spanning-tree bpdufilter disable   //关闭bpdu防护

SD(config)#spanning-tree portfast bpdufilter default   // 全局启用bpdu防护


(四)uplinkfast   //上行链路加速

1、作用:主要用在接入层交换机。当接入层交换机有多条冗余链路连接到分布层时,多条冗余链路可以组成一个上行链路组。
        只开通一条上行链路处于转发状态,其他的他部处于阻塞状态。当转发的链路发生故障后,
        处于阻塞状态的其他冗余链路中的一条将快速过渡过到转发状态,无需经历监听和学习状态。
        5秒内完成。
2、注意:启用uplinkfast将影响所有VLAN,不支持以VLAN为基础的uplinkfast
        启用uplinkfast特性的交换机,须将交换机的优先级改回默认值,否则会失败。
       因为启用此特性,会将把优先级自动改为49152,端口开销改为3000,以使交换机不能成为根交换机。如手工更改过优先级,将会失败。


3、配置

SWITCH C:

SC(config)#spanning-tree uplinkfast   //全局启用uplinkfast特性
SC(config)#spanning-tree uplinkfast max-update-rate 200    //表示每秒发送的多播数据包数目,此处设为200,默认是150个。

SWITCH D:

SD(config)#spanning-tree uplinkfast   //全局启用uplinkfast特性



(五)backbonefast    // 骨干加速

1、作用:是对uplinkfast的一种补充。uplinkfst只是用于接入层。而backbonefast用于主干到主干之间的故障快速响应。
2、注意:想启用此特性,需要在所有交换机都启用backbonefast特性;

3、配置:
SWITCH A\B\C\D上都加上一条全局命令:

(CONFIG)#spanning-tree backbonefast  

no  spanning-tree backbonefast    //此全局命令取消backbonefast特性


 (六)根防护

1、作用:根防护特性能强制让端口成为指定端口。进而能防止周围交换机成为根交换机。指定端口连接的交换机肯定不能成为根交换机。
        可以用在根交换机的指定端口,接入层的所有端口上。配置此特性的端口所连接的交换机不能成为根交换机。
switch A:

SA(config)#interface range fast0/3-4
SA(config-if)#spanning-tree guard root    //把A交换机的3和4端口配置根防护特性


switch B:

SB(config)#interface range fast0/3-4
SB(config-if)#spanning-tree guard root    //把B交换机的3和4端口配置根防护特性


switch C:

SC(config)#interface range fast0/3-8
SC(config-if)#spanning-tree guard root    //把C交换机的3和8端口配置根防护特性


switch D:

SD(config)#interface range fast0/3-8
SD(config-if)#spanning-tree guard root    //把C交换机的3和8端口配置根防护特性



五、交换机的稳定性和高级特性

 (一)etherchannel

1、作用:多端口绑定成一个端口,以增加交换机之间的流量和稳定性。最多支持8个端口。支持二层和三层端口绑定。

2、支持的etherchannel协议:

  (1)pagp协议,端口汇聚协议,cisco专有协议。

     pagp协义的模式:

         on(开启):强制端口形成etherchannel。要求本交换机的etherchannel通道的链路伙伴都是on模式,且对端交换机的端口也要为on模式时才能开启etherchannel。
                    on只与on模式形成etherchannel,与其他任何模式都不形成etherchannel。并且伙伴端口和对端端口都需要为on模式才能给成etherchannel通道.

         off(关闭):不允许端口形成etherchannel

         auto(自动):被动协商状态,也是默认的模式。即对端让他做什么他就做什么。从对端收到形成etherchannel的意愿,就可以组成etherchannel通道。对端为desirable模式才能组成etherchannel.

         desirable(企望):主动协商状态。即期望成为etherchannel端口。只要对方不拒绝即可形成etherchannel。对端是auto和desirable模式就形成etherchannel。

 注意:pagp要求所有channel中的端口处理同一个VLAN或都配置成为trunk端口。      
       处于一个channel中的某一个端口配置进行修改时,该channel中的所有端口都需要作相同的修改。
       pagp不能在不同速度或不同双工模式的端口之间工作。


 (2)LACP协议,链路汇聚控制协议。业界的标准802.3ad。

    lacp模式:

        on(开启):   强制端口形成etherchannel。用两端同时都为on模式时才能开通etherchannel。

        off(关闭):  阻止形成etherchannel.

       passive(被动):默认模式。和pagp的auto模式相似。即对端让他做什么他就做什么。从对端收到LACP数据包后,即从对端收到形成etherchannel的意愿,就可以组成etherchannel通道。对端为active模式才能组成etherchannel.

       active(主动):即主动协商。即期望成为etherchannel端口。只要对方不拒绝即可形成etherchannel。对端是passive和active模式就形成etherchannel。

LACP的配置参数:

      系统优先级:交换机用mac 地址和系统优先级作为 系统ID。并用 系统ID 与其他系统协商。LACP要求每个链路伙伴都有 系统ID。可手工指定系统ID,也可以交换机自动分配。

      端口优先级:端口优先级和端口号生成端口ID。要求每个端口都有端口优先级,可手工指定和自动生成。

      管理密钥:LACP要求通道内每个端口都有一个密钥值,可手工指定也可自动确定。管理密钥定义了端口与其他端口进行汇聚的能力。


3、etherchannel负载均衡    

 (1)stp将etherchannel当单个逻辑接口,因此把流量分布到etherchannel中的所有端口。
 (2)并且可采用mac,ip,端口号(不是指交换机的端口,而是指TCP或UDP之类的第四层端口号)的方法实现负载均衡。

     目的MAC或ip地址负载法:当有多条线路组成一个通道时,把目的地为某mac或ip地址的数据包经通道中一条线路传输。另一目的地为某mac或ip地址的数据包经通道中的另一条线路传输。

     源MAC或ip地址负载法:  即某源mac或IP地址的经一条线路,另一mac地址或ip地址的经另一条线路。

     第四层tcp或udp端口作为负载法:即以源和目标会话时的端口号作为均衡。如PC1,PC2到服务器2时的80端口用线路1,25端口用线路2

port-channel  load-balance {src-mac|dst-mac|src-dst-mac|src-ip|dst-ip|src-dst-ip|dst-port|src-dst-port}
port-channel load-balance{dst-mac|src-mac}
4、配置

switch A:

SA(config)#interface gigabitethernet 0/1
SA(config-if)#switchport mode trunk
SA(config-if)#  switchport trunk encapslation dot1q
SA(config-if)#  channel-protocol  lacp                   //协议为lacp,没有指定协议时,默认为pagp
SA(config-if)#  channel-group 1 mode on                  //模式为on,且把此端口加入到通道组1
//  SA(config-if)#  no channel-group //这个命令将一个接口从通道组中删除
SA(config-if)#  duplex full
SA(config-if)#  speed 1000
SA(config-if)#  no shutdown

SA(config)#interface gigabitethernet 0/2
SA(config-if)#switchport mode trunk
SA(config-if)#  switchport trunk encapslation dot1q
SA(config-if)#  channel-protocol  lacp                     //   协议为lacp,没有指定协议时,默认为pagp
SA(config-if)#  channel-group 1 mode on                     //模式为on,且把此端口加入到通道组1
SA(config-if)#  duplex full
SA(config-if)#  speed 1000
SA(config-if)#  no shutdown

switch B:

SB(config)#interface gigabitethernet 0/1
SB(config-if)#switchport mode trunk                       //都为trunk口
SB(config-if)#  switchport trunk encapslation dot1q      
SB(config-if)#  channel-protocol  lacp                   //协议为lacp,没有指定协议时,默认为pagp
SB(config-if)#  channel-group 1 mode on                  //模式为on,且把此端口加入到通道组1
SB(config-if)#  duplex full
SB(config-if)#  speed 1000
SB(config-if)#  no shutdown

SB(config)#interface gigabitethernet 0/2
SB(config-if)#switchport mode trunk
SB(config-if)#  switchport trunk encapslation dot1q
SB(config-if)#  channel-protocol  lacp                     //   协议为lacp,没有指定协议时,默认为pagp
SB(config-if)#  channel-group 1 mode on                     //模式为on,且把此端口加入到通道组1
SB(config-if)#  duplex full
SB(config-if)#  speed 1000
SB(config-if)#  no shutdown


4、三层接口的ethernetchannel配置:


switch A:

SA(config)#interface gigabitethernet 0/1
SA(config-if)#no switchport                            //端口改为三层接口
SA(config-if)#  channel-protocol  lacp  
SA(config-if)#  channel-group 1 mode on                  //模式为on,且把此端口加入到通道组1
SA(config-if)#  duplex full
SA(config-if)#  speed 1000
SA(config-if)#  no shutdown


SA(config)#interface gigabitethernet 0/2
SA(config-if)#no switchport                               //端口改为三层接口
SA(config-if)#  channel-protocol  lacp  
SA(config-if)#  channel-group 1 mode on                  //模式为on,且把此端口加入到通道组1
SA(config-if)#  duplex full
SA(config-if)#  speed 1000
SA(config-if)#  no shutdown

SA(config)#interface port-channel 1
SA(config-if)#ip address 192.168.9.1 255.255.255.0
SA(config-if)#no shutdown


switch B:

SB(config)#interface gigabitethernet 0/1
SB(config-if)#no switchport                            //端口改为三层接口
SB(config-if)#  channel-protocol  lacp                   //协议为lacp
SB(config-if)#  channel-group 1 mode on                  //模式为on,且把此端口加入到通道组1
SB(config-if)#  duplex full
SB(config-if)#  speed 1000
SB(config-if)#  no shutdown


SB(config)#interface gigabitethernet 0/2
SB(config-if)#no switchport                               //端口改为三层接口
SB(config-if)#  channel-protocol  lacp                    //协议为lacp
SB(config-if)#  channel-group 1 mode on                  //模式为on,且把此端口加入到通道组1
SB(config-if)#  duplex full
SB(config-if)#  speed 1000
SB(config-if)#  no shutdown

SB(config)#interface port-channel 1
SB(config-if)#ip address 192.168.9.2 255.255.255.0    //设置IP地址
SB(config-if)#no shutdown



六、vlan间路由

 (一)基本知识:

     1、vlan与vlan之间无法直接通信,需要第三层路由,建议在分布层和接入层进行VLAN间路由
     2、执行三层路由的方法:任意三层交换机; 支持链路聚集的外部路由器(单臂路由器);在每个VLAN中都有独立接口的任意外部路由器(即有多个接口的路由器)

  (二)三层交换机连接VLAN

     1、三层交换机的接口的类型:

       (1) 二层接口: 不具备三层交换功能。普通二层交换机接口功能。一般三层交换机用  switchport命令可将三层交换机具有三层接口配置为二层接口。

       (2)路由接口:类似于cisco   ios路由器上的路由器端口,纯第三层接口,不与特定VLAN相关联。可以看着一个普通的路由器接口。一般三层交换机端口默认是二层接口,要转为三层接口,用  no switchport接口命令可转成三层接口。

      (3)交换机虚拟接口(svi):主要功能就是用于完成VLAN间路由器选择。SVI是一种与VLAN-ID相关联的虚拟VLAN接口。目的是为了启用该VLAN的路由选择能力。

      (4)网桥虚拟接口(BVI):是一种三层虚拟接口,与SVI类似。能跨越桥接或路由域来路由数据包。不常用。

      (5)总结:物理上讲三层交换机只有二层接口和三层接口两种。从功能上讲三层接口又分了:纯路由接口、SVI、BVI三种接口。

  2、路由接口详解:

     路由端口类似于cisco  ios路由器上的路由器的纯第三层接口,不与特定VLAN相关联。
     普通路由器的路由端口主要用于点到点链路,用于连接WAN路由器和安全设备。
     多层交换机的路由端口主要用于主干层中的交换机相连;主干和分布层交换机相连,前提是分布层也布署了三层交换机的路由端口。    


 3、SVI详解:也是重点要讲的。

   svi是用于VLAN间路由的。必须为每个SVI接口配置IP地址和掩码,并要和VLAN属于一个子网。

  SVI的步骤:

      (config)#ip routing    //启用路由器上的IP路由选择能力
      (config)# router 路由协议      //配置路由协议
       (config)# interface vlan vlan-id    //为每个VLAN配置一个SVI接口,并为接口配置。

配置:


Switch A:

SA(config)#intrface vlan 2
SA(config-if)#ip address 192.168.2.2 255.255.255.0          //设置VLAN2的IP地址。想静态配置的话,就在此处定义IP地址,然后手工把客户端地址设为此子网内的IP地址,然后把网关设为此地址即可。想动态分配客户端地址的话,就让DHCP服务器自动分配。如DHCP不在本VLAN中,就要如下配置中继代理。
SA(config-if)#no shutdown

SA(config)#intrface vlan 3
SA(config-if)#ip address 192.168.3.2 255.255.255.0          //设置VLAN3的  SVI  IP地址。
SA(config-if)#no ip directed-broadcast                       //动态配置IP地址
SA(config-if)#ip helper-address 192.168.2.10                //DHCP中继代理的配置。动态为客户端分配IP地址,后面的IP是DHCP服务器的地址。因为DHCP要广播地址,而三层接口不传送广播信息,所以此处是配置一个DHCP中继代理。
SA(config-if)#no shutdown

SA(config)#intrface vlan 4
SA(config-if)#ip address 192.168.4.2 255.255.255.0
SA(config-if)#no ip directed-broadcast
SA(config-if)#ip helper-address 192.168.2.10
SA(config-if)#no shutdown


 (三)外部路由(单臂路由)

routeA(config)#interface fastethernet 0/0
routeA(config-if)#no shutdown
routeA(config-if)#interfacefastet 0/0.1
routeA(config-subif)#encapsulation [dot1q | isl] {vlan-id} {native}   //给对应子接口分配VLAN,并定义链路聚集协议
//routeA(config-subif)#encapsulation dot1q  1   //子接口0.1协议为dot1q,且分配给 vlan1
routeA(config-subif)#ip address 192.168.3.1 255.255.255.0

routeA(config-if)#interfacefastet 0/0.2
routeA(config-subif)#encapsulation dot1q  2   //子接口0.1协议为dot1q,且分配给 vlan2
routeA(config-subif)#ip address 192.168.4.1 255.255.255.0  //分配IP地址
routeA(config-subif)#ip helper-address 192.168.2.10

注意:与单臂路由相连的交换机端口也要是相同的链路聚集协议,并且,需要配为trunk模式。