端口协商参数:
speed - 速率;
duplex - 双工模式
半双工 - 同一时刻,只能收或者发;
全双工 - 同一时刻,可以同时收和发;
建议:
不同类型的设备之间进行互联链路时,需要手动指定速率和双工
========================================================
传统交换网络存在的问题:
单点故障
解决方案:
增加冗余链路
增加冗余设备
搞清楚环路是如何形成?
随之而来的问题:
数据转发环路;
产生环路的数据,会不断的在网络中进行传输,从而消耗
网络中链路资源和设备资源;
解决方案:
在交换机上运行 STP 协议;
-------------------------------------------------------
STP - 生成树协议; (802.1D)
-作用
存在冗余链路的情况下,实现环路的防护;
-实现
BPDU - 桥接协议数据单元
-分类
PVST \ RSTP \ MSTP
工作过程:
1、确定交换机角色
根交换机
非根交换机
原则:比较每个交换机的 BID(桥ID),越小越好;
组成:
优先级+MAC
优先级 - 默认是32768
MAC - 交换机的主板MAC(基MAC)
- 查看命令:show version
2、确定端口角色
根端口 - 每一个非根交换机只有一个距离根交换机最近的口
指定端口 - 每一个“冲突域”中都存在一个距离根交换机最近的口
非指定端口- 其他所有端口,都叫做非指定端口
如何表示“距离” ?
在 STP 中,通过 cost 表示一个路径的距离;
对于某些链路,均有默认的 cost 值:
10M - cost 100 ;
100M - cost 19 ;
1G - cost 4 ;
10G - cost 2 ;
BPDU -
Root-ID //表示根交换机是谁;
Cost //表示发送该BPDU的交换机到达 根交换机 的距离
BID //表示发送该BPDU的交换机的名字;
Port-ID //表示发送方交换机是在哪个端口发送出来的;
-组成:
端口优先级.端口号
-优先级默认值为 128 ;
3、确定端口状态
disable // 相当于shutdown,此时端口不能使用;
listening //侦听,该状态侦听的是BPDU,用于确定端口角色
learning //学习,该状态学习的是MAC,形成MAC地址表;
forwarding // 转发, 即端口的最终转发状态;
(根端口 、指定端口)
block // 阻塞,此时的端口是不可以发送数据的;
(非指定端口)
-------------------------------------------------------
修改交换机的 STP 优先级:
SW2(config)#spanning-tree vlan 1 priority 0
导致的结果,此时网络中的“根交换机”由 SW1 变成了 SW2 ;
注意:
当我们修改交换机的优先级的时候,发现问题:
SW2(config)#spanning-tree vlan 1 priority 1
% Bridge Priority must be in increments of 4096.
% Allowed values are:
0 4096 8192 12288 16384 20480 24576 28672
32768 36864 40960 45056 49152 53248 57344 61440
即:交换机的 STP 优先级必须得是 4096 的倍数;
-----------------------------------------------------------
开启一个 VLAN 的 STP 协议:
默认情况下,交换机为每个 VLAN 打开了 STP ;
想关闭:
no spanning-tree vlan 200
验证:
show spanning-tree
交换机如何区分不同 VLAN 的 BPDU :
我们使用 BID 中的 2 个字节的优先级中的 低12 bit 作为
vlan 号 ;
由此得出:
前面2个字节的优先级字段,真正用来表示优先级的,仅有4
bit ; 所有呢,优先级只能有 16 个 ;
但是,在表示优先级数值的时候,后面的12bit,都必须算上
同时,必须是0;
即,每个交换机的 STP 的优先级,都是 2的12次方的 0-15
倍数,即 4096的倍数;
LAN中存在的一个问题:
单点故障
解决方案:
增加冗余的链路或者设备;
-------------------------------------------------------
STP
- 生成树协议;
- 作用:
网络中存在冗余链路的时候,防止 局域网 环路;
默认情况下,STP 是开启的;
终极目标:
在LAN中,保证任何两个通信终端之间永远只有一个:
最短、无环 的 转发路径;
- 分类:
STP ---> PVST --> RSTP --> MSTP
- 报文:
BPDU - 桥接协议数据单元 fanyi.baidu.com
www.baidu.com
- 工作过程
1、确定交换机角色
根交换机 - 一个VLAN/LAN 有且只有一个根
非根交换机 - 除了根,其他都叫非根交换机
选举原则:
比较BID,越小越好;
BID组成 - 优先级+MAC
优先级 - 默认32768
MAC - 交换机基MAC
show version
2、确定端口角色
根端口 -
非根交换机上,有且只有一个,距离根交换机
最近的,端口
指定端口 -
每一个冲突域中,有且只有一个,距离根交换机
最近的,端口;
非指定端口 - 其他端口,都是非指定端口;
STP中如何表示距离?
答: 通过 cost 表示;
10M - 100 ;
100M - 19 ;
1G - 4 ;
10G - 2 ;
3、确定端口状态:
disable ,
listening
learning
forwarding
block
STP收敛速度优化方案
Port-Fast特性:
可以确保将 access 链路上连接的 终端设备,
直接从disable 状态 变成 转发状态;
端口状态转换时间,从原来的 30s 降低为 0 s ;
配置命令:
interface fas0/1 // 连接的 PC ;
swtichport mode access
swtichport access vlan 1
spanning-tree portfast // 开启port-fast功能;
验证命令:
show spanning-tree interface fas0/1 portfast
----------------------------------------------------------
Uplink Fast 特性:
针对的是交换机之间的 Trunk链路
当交换机发现自己本身的链路出现故障以后,
会快速的将备份链路转换为主链路进行使用,
切换时间,从原来的30s ,降低为 0 s ,实现秒切;
配置命令:
SW(config)# spanning-tree uplinkfast
验证命令:
SW# show spanning-tree summary
注意:
1、仅针对设备发现的直连故障的链路切换;
2、仅在本地设备开启即可,对端设备可以不开启;
3、STP的优先级,必须是默认的 32768;
STP安全性优化方案:
BPDU Guard : BPDU 保护
即开启了该特定的端口,不允许接收BPDU,
如果接收到 BPDU,端口会进入 err-disable 状态。
配置命令:
interface fas0/2
spanning-tree portfast bpdugard //开启BPDU保护;
注意:
该特性一般使用在 access 链路上;
--------------------------------------------------------
Root Guard :根交换机保护
在端口上配置该命令,表示将该端口强制性的指定为指定端口
如果经过正常的 BPDU 比较,无法使得该端口成为指定端口,
在将该端口设置为“非一致”状态,此时的端口不能转发数据;
从而实现了对原根交换机的保护;
配置命令:
interface fas0/24
spanning-tree guard root
验证命令:
show spanning-tree
从而可以看到该端口的角色一致是 "指定端口"
注意:
该特性,不一定非得配置在根交换机;
-------------------------------------------------------------
HSRP组成员路由器身份确定:
HSRP启动以后,通过比较报文中的优先级来确定成员路由器的
主和备的身份。优先级的值越大越好。
默认优先级是100 ;
配置命令:
interface gi0/0
standby 10 priority 210 ;
并且,必须得开启所有成员路由器的“抢占功能” ;
interface gi0/0
standby 10 preempt //开启 该网段在组10中的抢占功能
验证命令:
show standby
------------------------------------------------------------
HSRP 链路跟踪 (模拟器无法实现降低指定数量的优先级)
启用了 HSRP 的网关,可以跟踪连接外网的链路的状态;
如果被跟踪的链路 down,则该网段端口会在对应的 hsrp 组
中降低指定的优先级,从而可以让原网中的备份网关转换为
主网关;
配置命令:
interfce gi0/0 // 进入网关端口;
standby 10 track gi0/1 priority 150 //跟踪链路 gi0/1
注意:
上述命令中的 gi0/1 应该路由器上连接外网的链路;