1.交换机工作在二层,看见广播包会怎么样? 泛洪
(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
2.为了保证冗余性,通常要双上联,这就引入了交换环路
交换环路会引发广播风暴和Mac地址表震荡,网络中的主机会收到重复数据帧
STP 802.1d 标准生成树
RSTP 802.1w 快速生成树 P/A机制
MSTP 802.1s 多生成树
STP:disabled——》blocking——》listening——》learning——》Forwarding
RSTP:discarding——》learning——》Forwading
STP的主要作用:
消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。
STP 从初始状态到完全收敛至少需经过 30s:
STP 选路规则:
STP 有 3 个常用的计时器
Hello Time 定时器:2s
Max Age 定时器:20s
Forwarding Delay 定时器:15s
STP的端口状态
disable:是生成树的关闭状态
block:AP端口的最终状态一定是block
listening:从侦听到学习需要15s
learning:从学习到转发需要15s
forwarding:DP端口和RP端口的最终状态一定是forwarding
STP 没有边缘端口的说法。
STP不做 过多展开。
STP协议虽然能够解决环路问题,但是由于网络拓扑收敛较慢(30~50s),影响了用户通信质量,而且如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁终端,这也是用户无法忍受的。(比如不参与生成树的用户终端也要等30秒,因为标准STP是没有边缘端口。 总结:标准STP,效率低下,就是一个字“等”)
RSTP 定义了两种新的端口角色:备份端口(Backup Port)和预备端口(Alternate Port)
AP 是 RP 的备份
BP 是 DP 的备份
RSTP通过三种常见端口角色来决定转发状态
RSTP 端口状态共有 3 种,即 discarding ,learning 和 forwarding
选举根交换机-选举非根交换机上的根端口-选举指定端口-选举预备端口和备份端口
①根:BID(桥ID)=优先级(默认32768)+MAC地址 越小越优
②根端口RP:根路径开销cost最小的,对端的BID,对端的PID,本端的PID
(到达根桥最近的端口)
③指定端口DP:端口的cost,本端的BID,本端的PID
(到达根桥cost最小)
④阻塞端口AP
RSTP 在选举的过程中加入了“发起请求-回复同意”(P/A 机制)这种确认机制,由于每个步骤有确认就不需要依赖计时器来保证网络拓扑无环才去转发,只需要考虑 BPDU 发送报文并计算无环拓扑的时间(一般都是秒级)。
快速收敛机制(自己要能表达清楚)
P/A:Proposal 和 Agreement
P/A协商之前,任意一个新的RSTP交换机,都认为自己是根桥。它会把所有的端口全部设为DP端口,并全部阻塞。只有这种被阻塞的DP端口才会向外发送协商Proposal消息
判断拓扑变化唯一标准:当一个交换机的一个非边缘端口迁移到Forwarding状态,表示拓扑变更
网络发生拓扑变化时,变更点交换机直接向全网发送TC置位的BPDU报文,而不是先通知到根桥,然后由根桥向全网发送TC报文,这样在一定程度上节省了收敛时间。
(重新计算生成树,所有端口立马阻塞,变为DP端口,回到P/A协商阶段1)
拓扑改变通知工具 TC
TC的作用就是 冲刷,然后通知邻居,重新学习。 TC消息最终传递到Root,完全全网拓扑变更
一句话概括:交换机收到TC消息后,立即冲刷了除了接收TC的接口和edge port以外的接口的MAC转发表,然后继续向邻居发送TC消息,触动全网
边缘端口
在 RSTP 或 MSTP 交换网络中,为了防止恶意或临时环路的产生,可配置保护
功能来增强网络的健壮性和安全性。
BPDU 保护
根保护
环路保护
防止 TC-BPDU 攻击
在交换设备上,通常将直接与用户终端或文件服务器等非交换设备相连的端口配置为边缘端口,边缘端口一般不会收到BPDU。如果有人伪造BPDU恶意攻击交换机,边缘端口接收到BPDU后,交换机会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。交换机上启动了BPDU保护功能后,如果边缘端口收到了BPDU,那么边缘端口将被关闭,但是边缘端口属性不变,同时通知网管系统。被关闭的边缘端口只能由网络管理员手动恢复,如果需要被关闭的边缘端口自动恢复,可以配置端口自动恢复功能,并设置延迟时间
(交换机的DP端口,接口配置)
由于维护人员的错误配置或网络中的恶意攻击,网络中的合法根交换机有可能会收到优先级更高的BPDU,使得合法根交换机失去根交换机的地位,从而引起网络拓扑结构的错误变动。这种不合法的拓扑变化,可能会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。对于启用了根保护功 能的端口,其端口角色不能成为根端口,一旦启用根保护功能的指定端口收到 了优先级更高的BPDU时,端口将进入Discarding状态,不再转发报文。在经过一段时间(通常为 2 倍的 Forward Delya, 30s)后,如果端口一直没有
再收到优先级更高的BPDU,端口会自动恢复到正常的Forwarding状态
根桥是全网核心,如果有比根桥更优先的交换机接入网络该怎么办?
合法的根交换机 收到更优RST BPDU,重新进行生成树计算,并失去根的地位,引起网络拓扑结构的错误变动
解决:防止用户私接交换机,抢占根桥。 需要配置根保护
对于启用了根保护功能的端口,其端口角色不能成为根端口,一旦启用根保护功能的指定端口收到了优先级更高的BPDU时,端口将进入Discarding状态,不再转发报文。在经过一段时间(通常为2倍的Forward Delya,30s)后,如果端口一直没有再收到优先级更高的BPDU,端口会自动恢复到正常的Forwarding状态
int g0/0/3
stp root-protection
还有stp root primary
secondary
(阻塞端口的交换机,端口配置)
在运行RSTP或MSTP的协议网络中,根端口和其他阻塞端口的状态是依靠上游
交换机为断发来的BPDU进行维持的。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换机的BPDU时,交换机就会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换机中可能产生环路。在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游的BPDU,则会向网络管理员发送通知信息,如果是根端口则进入Discarding状态,阻塞端口则会一直保持在阻塞状态,不转发报文,从而不会在网络中形成环路。直到根端口或Alternate端口收到BPDU后,端口状态才恢复到Forwarding状态
人为过滤掉 bpdu报文 达到这些端口收不到来自上游交换机的BPDU
[SW2]int g0/0/2
stp bpdu-filter enable
配置:要在有阻塞端口的交换机配置 环路保护
[SW4]int g0/0/1
stp loop-protection
[SW4]int g0/0/2
stp loop-protection
再人为过滤,然后在SW4 dis stp brief 查看是否都在Forwarding
(所有交换机,全局配置)
TC(topology change)也会被黑客利用,来攻击网络
交换机在接收到TC BPDU后,会执行MAC地址表项和ARP表项的删除操作。如果有人在边缘端口接入一台计算机不断伪造TC BPDU报文恶意攻击交换机,交换机在短时间内会收到很多TC BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定性带来很大隐患。启用防TC BPDU报文攻击功能后,可以配置交换机在单位时间内处理TC BPDU报文的次数。 如果在单位时间内,交换机收到的TC BPDU报文数量大于配置的阈值,交换机只会处理阈值指定的次数。对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁地删 除MAC地址表项和ARP表项,从而达到保护设备的目的。
TC-Protection机制默认打开,单位时间内 处理指定的次数
解决:[ ]stp tc-protection
stp tc-protection threshold 2 默认阈值数是1
基础配置
[SW1]stp mode rstp
[SW1]stp root secondary 为了模拟让更高优先级来抢占 -4096
[SW2]stp mode rstp
[SW3]stp mode rstp
[SW4]stp mode rstp
dis stp可以看到交换机的mac地址
[SW3]int e0/0/1
stp edged-port enable
[SW4]int e0/0/1
stp edged-port enable
BPDU 报文
在有边缘端口的交换机上配置,全局开启
自动恢复(会一直来回开关,当边缘端口收不到BPDU报文或者不设置为边缘端口时,就会正常)#error-down auto-recovery cause bpdu-protection interval 30
一般情况下,启动了BPDU保护功能,如果边缘端口收到了BPDU,那么边缘端口将被关闭,但是边缘端口属性不变,同时通知网管系统。被关闭的边缘端口只能由网络管理员手动恢复,如果需要被关闭的边缘端口自动恢复,可以配置端口自动恢复功能,并设置延迟时间。
根保护
因为基础配置SW1是4096,目前都是认SW1为根桥
现在在SW4的旁路上接上SW5
[SW5]stp prriority 0
在SW3查看 发觉被抢占了
根桥是全网核心,如果有比根桥更优先的交换机接入网络该怎么办?
合法的根交换机 收到更优RST BPDU,重新进行生成树计算,并失去根的地位,引起网络拓扑结构的错误变动
解决:防止用户私接交换机,抢占根桥。 需要配置根保护
int e0/0/2
stp root-protection
对于启用了根保护功能的端口,其端口角色不能成为根端口,一旦启用根保护功能的指定端口收到了优先级更高的BPDU时,端口将进入Discarding状态,不再转发报文。在经过一段时间(通常为2倍的Forward Delya,30s)后,如果端口一直没有再收到优先级更高的BPDU,端口会自动恢复到正常的Forwarding状态
环回保护
在有阻塞端口的交换机上配置,边缘端口是配置不了的
[SW1]stp root primary
[SW2]stp root secondary
这样SW4的 g0/0/1 是阻塞接口
人为过滤掉 bpdu报文
[SW2]int g0/0/2
stp bpdu-filter enable
然后SW4的g0/0/1会成为根端口
g0/0/2会变为learning状态,然后学习15秒会成为forwarding状态。 网络中没有阻塞端口,一直处于转发状态
配置了基础配置后,原本SW3的g0/0/2就是根端口 forwading。 都在转发状态会形成环路
因此要在有阻塞端口的交换机配置 环路保护
[SW4]int g0/0/1
stp loop-protection
[SW4]int g0/0/2
stp loop-protection
再人为过滤验证
[SW2]int g0/0/2
stp bpdu-filter enable
然后在SW4 dis stp brief 查看端口是否都在Forwarding 。
TC-BPDU泛洪保护
[SW]stp tc-protection
stp tc-protection threshold 2 默认阈值数是1
交换机在接收到TC BPDU后,会执行MAC地址表项和ARP表项的删除操作。如果有人在边缘端口接入一台计算机不断伪造TC BPDU报文恶意攻击交换机,交换机在短时间内会收到很多TC BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定性带来很大隐患。启用防TC BPDU报文攻击功能后,可以配置交换机在单位时间内处理TC BPDU报文的次数。 如果在单位时间内,交换机收到的TC BPDU报文数量大于配置的阈值,交换机只会处理阈值指定的次数。对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁地删 除MAC地址表项和ARP表项,从而达到保护设备的目的。
核心层做堆叠,全网不需要启动STP
核心层不做堆叠,核心——接入使用MSTP
RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但是由于局域网内所有的VLAN共享一棵生成树,因此被阻塞后链路将不承载任何流量,无法再VLAN间内实现数据流量的负载均衡,从而造成带宽浪费。
MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡
MST 域是多生成树域(Multiple Spanning Tree Region),由交换网络中的多台交换设备以及它们之间的网段所构成。
MSTP 同域的三要素就是域名、实例和 vlan 映射、修订级别
缺省情况下,MSTP域的MSTP修订级别为0,目前修订级别目前没有什么实际作用,算是个保留参数
部分VLAN路径不通:左边接口只允许VLAN2,假设右边被阻塞了。
有次优路径
解决方案:多生成树交叉阻塞
第一步:配置域,然后创建实例,激活域
第二步:配置优先级,开销值,边缘端口
MSTP同域的三要素就是域名、实例和vlan映射、修订级别
1.创建vlan和划分端口
[SW1]vlan 10
[SW1-vlan10]int e0/0/3
[SW1-Ethernet0/0/3]port link-type access
[SW1-Ethernet0/0/3]port de vlan 10
[SW1-Ethernet0/0/3]int e0/0/1
[SW1-Ethernet0/0/1]port link-type trunk
[SW1-Ethernet0/0/1]port trunk allow vlan all
[SW1-Ethernet0/0/1]int e0/0/2
port link-type trunk
port trunk allow vlan all
[SW2]vlan 20
int e0/0/3
port link acc
port de vlan 20
int e0/0/2
port link trunk
port trunk allow vlan all
int e0/0/1
port link trunk
port trunk allow vlan all
[SW3]vlan batch 10 20
int e0/0/3
port link acc
port de vlan 10
int e0/0/4
port link acc
port de vlan 20
int e0/0/1
port link tr
port tr all vlan all
int e0/0/2
port link tr
port trunk allow vlan all
2.配置MSTP模式
[SW1]stp enable
[SW1]stp mode rstp
[SW1]stp region-configuration
[SW1-mst-region]region-name huawei.com
[SW1-mst-region]revision-level 1 修订号为1
[SW1-mst-region]instance 1 vlan 10 映射
[SW1-mst-region]instance 2 vlan 20
[SW1-mst-region]active region-configuration
这一块和SW2一样配置
作为实例1的根,如果前面没有实例,默认的是实例0
[SW1]stp instance 1 root primary
[SW1]stp instance 2 root secondary
[SW2]stp instance 1 root secondary
[SW2]stp instance 2 root primary
SW3既不做主根,也不做辅根。 阻塞
[SW3]stp region-configuration
region-name huawei.com
revision-level 1
instance 1 vlan 10
instance 2 vlan 20
active region-configuration
[SW3]dis stp brief
要是有低版本模式为STP的SW4交换机接在SW2旁路e0/04的接口上,SW2会从MSTP会转换为STP。 如果低版本交换机断掉了,不会手动检查切换。
因此要主动的去检查,如果没有低版本,就和高版本保持一致。
兼容性回迁
int e0/0/4
stp mcheck