线路冗余->交换机成环
交换机成环导致:
1 广播风暴
2 mac地址表震荡
一个mac在一台交换机上只能对应一个接口,但一个接口可以对应多个mac
3 重复帧拷贝
生成树协议:
802.1D、PVST、PVST+、802.1s、802.1w
生成树协议用于实现二层线路冗余,在网络中逻辑的阻塞部分接口来实现从源到目的仅有一条唯一路径;
最佳路径故障时,阻塞端口自动工作来实现备份的作用;
所谓生成树,就是在二层网络中构建一个树形结构,形成唯一、最短、星型拓扑;
802.1D
公有
PDU:协议数据单元
应用层 报文
传输层 数据段
网络层 数据包
数据链路层 数据帧
物理层 比特流
BPDU:桥协议数据单元,跨层封装到二层;
配置BPDU:最初未选出根桥时所有交换机均会发出,选出根桥后仅根桥可以发出
次优BPDU:TCN,拓扑变更消息
Hello time 2s,Hold time 20s
选举四个角色:
根网桥:一棵树仅有一个,负责整棵树的管理、维护
比较桥ID,桥ID最小的成为根;
桥ID=网桥优先级(默认32768,取值范围0-65535)+mac
根端口:所有非根设备上存在且仅有一个,负责接收根桥的BPDU和转发用户流量
1 基于cost值,比较入向cost(选举根端口是为了接收BPDU),小则为根端口
Cost值:
10M=100
100M=19
1000M=4
10000M=2
>10000M=1
2 入向cost值相同,比较两个接口对端交换机的桥ID,最佳对应接口为根端口
3 两个接口对端桥ID相同,比较对端接口的PID=优先级(默认128)+接口编号(小优)
4 两个接口对应对端的桥ID、PID和到根的cost值均相同,比较本地接口PID,小优
指定端口:一条链路一个,转发根桥BPDU和用户流量,根桥的端口全是指定端口
1 比较出向cost值,小优
2 出向cost值相同,比较链路两端设备的本地BID,小优,即未来谁当老大谁为指定端口
3 本地BID相同,比较本地PID,即优先级和接口编号,小优
4 本地PID相同,即一根网线两头接同一接口;由于无法控制HUB的接口,为了破环,交换机将直接阻塞自己本身的接口
非指定端口:以上角色选举完后剩余未被分配的端口,会被阻塞,对控制层面流量只接收不转发,对数据层面流量不转发也不接收
mac地址本身用于管理vlan,二层交换机仅一个mac,三层交换机有多个mac;
参选时三层交换机会用自己最小的mac地址;
对生成树协议的干涉,至少要关注根网桥位置,最合适的地点为汇聚层设备
接口状态:
1 down
最初交换机刚插上网线,接口处于down状态,接口信号灯不显示;
此时开始通电,信号灯变为橘红色,开始发BPDU并进入2状态;
2 侦听(listening):固定15s
该阶段为选举阶段,该阶段四种角色全部判定完毕;
判定完毕后,根端口和指定端口进入状态3
非指定端口进入状态4
3 学习(learning):固定15s
该状态的接口需要记录所有接口收发的mac地址;生成mac地址表;
4 阻塞
非指定端口也非根端口则进入该状态,指示灯显示橙色;
5 转发(forwarding)
指定和根端口进入学习完成后进入该状态,此时收敛完成;
收敛慢:以前网络设备运算速度慢
链路利用率低:端口被阻塞
直连检测
当交换机连接根桥的唯一一根网线断开时触发直连检测,再过30s阻塞的接口进入转发状态(成为根)
链路断开,交换机从两个接口均无法收到根的BPDU,于是向阻塞端口发送次优BPDU(即交换机自己的BPDU),另一台交换机从阻塞端口收到该BPDU后会等待20s的保活时间,然后才进入30s的侦听、学习阶段,总共耗时50s
PVST
私有,基于vlan的生成树协议
算法与802.1D一致;
仅支持ISL,不支持802.1q;
基于vlan,每个vlan独立一棵树,可实现分流、备份,提高链路利用率;
基于vlan发出BPDU,分别选举不同vlan下的根桥、根端口,指定、阻塞端口,具体选举规则与802.1D一样;
为了基于不同vlan,在vlan2下发出的BPDU优先级为32770,32770-32768=2,则此时进行的是基于vlan2的选举;
若不干涉选举,最终会使一个mac最小的交换机成为多个vlan的根,所以需要手工干预选举,调整优先级使不同交换机成为不同vlan的根;
修改优先级时必须以32768的倍数修改,否则会使一个vlan的BPDU混入其他vlan中;
该协议可以分流;
选举速度慢;
仅支持ISL;
生成树多(一个vlan一个);
PVST+
私有,PVST升级版,目前思科交换机默认运行该算法
实现部分加速;
支持802.1q和ISL;
树多问题未处理;
拥有一个vlan的树的条件:
设备上创建了vlan 2;
设备连接有vlan 2的用户或有trunk干道;
PVST和PVST+干涉选举:
1 网桥优先级:影响根桥位置
2 接口优先级或cost值:影响根端口和指定、阻塞端口位置
修改基于vlan2的设备优先级干涉根桥选举:
修改SW1为vlan1的主根桥(优先级下调2倍的4096);
修改SW1为vlan2的备份根桥(优先级下调一个4096);
修改某个接口在某个vlan的接口优先级(以16的倍数修改,范围0-240);
修改某个接口的开销值;
PVST+部分加速
1 端口加速
将0/1-22调整为portfast接口,调整后接口不参与STP选举直接进入转发状态(指定端口);
Switchport host会将选中的接口全部调整为access模式再做portfast;
一般连接终端的接口使用,trunk干道一般不使用;
不进入接口的情况下将所有access模式的接口调整为portfast;
不对trunk干道生效;
2 上行链路加速
当接口存在直连检测的情况下,可以以毫秒为单位快速打开另一个被阻塞的接口,不需要30s侦听和学习;
运行uplinkfast的交换机桥优先级和接口cost值变大,优先级大则交换机不会抢占根桥,cost值大则交换机上存在阻塞端口可能性变大,存在阻塞端口方便直连检测;
该命令只能在接入层交换机使用;
3 骨干加速
所有设备均可配置
针对上面的50s的情况,交换机一个接口对端是根桥的指定端口,另一个接口对端是一个阻塞端口,此时若连接根桥的链路故障,则该交换机无法从任何端口收到根的最优BPDU,此时交换机将发出自己的次优BPDU,假设交换机开启了骨干加速,则可以省掉维持稳定性的20s,直接进入30s(侦听+学习),然后原先的阻塞端口进入转发状态;
PVST+的优点:
1 基于vlan分流
2 部分加速
3 兼容802.1q
PVST+的缺点:
1 初次收敛30s
2 无直连检测则仍需30s
3 生成树多
RPVST/RSTP(cisco)和802.1W(公有)
快速生成树(1-2s内收敛完成)
不计时,主动切换状态:直接侦听决定端口身份,决定好不再等待后直接学习,学习完成后不再等待直接进入相应状态开始工作
RSTP/RPVST基于vlan,一个vlan一棵树;
802.1W不基于vlan,多个vlan一棵树;
调整使用的生成树协议为RSTP
不是所有接口都支持RSTP:
点到点接口:快速接口即全双工接口,可以支持
共享接口(share):慢速即半双工接口,不支持
可以修改接口类型,使其支持RSTP
cisco私有特点:
优点:快速、分流(基于vlan)、兼容(支持802.1q、ISL)
缺点:树多
公有特点:
优点:快速
缺点:仅一棵树(不分流,链路利用率低)
MSTP/802.1S
多生成树/组生成树
快速生成树;
基于组,一个组一棵树,将多个vlan加入该组,如vlan1/2/3在组1,vlan4/5/6在组2,总共形成两棵生成树;
借鉴PVST,组1的优先级为32769=32768+1,组2的优先级为32770=32768+2,靠优先级区分不同的组,一旦决定运行MSTP,则网络中所有设备都必须统一运行MSTP;
此时交换机上有3棵树,0号组树、1号组树、2号组树
0号组包含的vlan
1号组包含的vlan
2号组包含的vlan
此时网络中所有其他交换机的组vlan信息必须与此交换机保持一致,否则可能出环;
指定交换机的主根
指定交换机的备份根
其余命令基本都是将原来敲vlan的部分修改为mst 组号;
多生成树协议,会基于不同vlan或不同的组实现多生成树,此时要求:
本地存在这些vlan且本地有这些vlan的活动用户或存在活动的trunk干道,否则交换机上不会出现该vlan的树;
CDP:思科设备发现协议
可以帮助远程了解网络拓扑;
默认开启且每60s为周期向所有邻居告知本地信息;
从左到右:
Device ID:显示连接的对端设备
Local intrfce:本地接口编号
Holdtime
Capability:对端是什么设备,此处R S表示对端为三层交换机(R=routing,S=switching)
Platform:对端设备型号
Port ID:对端接口编号
可以看到完整的CDP信息(可以提供的信息包括设备名称、设备的SVI管理地址、操作系统版本、VTP域名、native vlan等信息)
在设备上全局关闭CDP
关闭某个接口的CDP
一般安全起见需要关闭所有连接终端的接口的CDP
SSH
相当于加密版的telnet;
只要1.99以上的版本均称为版本2;
Linux系统默认开启SSH登录服务;
SSH使用非对称算法(RSA),使用该算法安全性极高,网银、支付宝均使用该算法;
可以被SSH的设备必定有K,表示设备支持安全加密(SSH)
开启telnet:
开启密文登录认证(开启SSH):
指定密码库名称,库名称为r1.haojian.com(r1.域名)
开启加密算法,默认生成密钥长度512
修改密钥长度为1024
使用SSH从一台设备登入另一台设备:
用用户ccna登录
指定仅允许ssh:
原文地址:http://blog.51cto.com/12216458/2130212