三层架构(内网结构):
接入层:接入层通常指网络中直接面向用户连接或访问的部分。常使用二层交换机,就近提供接口密度,用于用户的接入。
汇聚层:是连接接入层和核心层的网络设备,为接入层提供数据的汇聚\\传输\\管理\\分发处理.汇聚层为接入层提供基于策略的连接,通过网段划分(如VLAN)与网络隔离可以防止某些网段的问题蔓延和影响到核心层.汇聚层同时也可以提供接入层虚拟网之间的互连,控制和限制接入层对核心层的访问,保证核心层的安全和稳定。
核心层:核心层的功能主要是实现骨干网络之间的优化传输,骨干层设计任务的重点通常是冗余能力、可靠性和高速的传输。网络的控制功能最好尽量少在骨干层上实施。核心层一直被认为是所有流量的最终承受者和汇聚者,所以对核心层的设计以及网络设备的要求十分严格。核心层设备将占投资的主要部分。 核心层需要考虑冗余设计。核心层可以使网络的拓展性更强。
三层架构中最重要的思想为冗余(备份)–线路冗余—设备冗余—网关冗余—USP(电源冗余)
一、线路冗余:
一旦在交换机上使用链路冗余,那么将出现二层的桥接环路;因为CAM是流量触发交换机生成的,该表默认并没有被管理;
二层桥接环路导致的问题:
1)广播风暴
2)CAM表记录翻滚
3)重复拷贝同一个数据帧
STP生成树协议:
该协议可应用于在网络中建立树形拓扑,消除网络中的二层环路,并且可以通过一定的方法实现路径冗余,但不是一定可以实现路径冗余。
树根设备到每台交换机仅存在一条链路(最佳);逻辑的阻塞部分接口; 当最佳路径故障时,阻塞端口被打开,来恢复通讯;
【1】IEEE802.1D
解决交互式局域网内的冗余链路造成的环路问题,同时提供故障冗余恢复功能。
交换机间沟通时使用的数据帧:BPDU BPDU数据帧默认不属于任何一个vlan,故在存在vlan的设备上,该数据帧基于native vlan发送;
3类BPDU:
1)配置BPDU — 拓扑收敛完成后,仅根网桥周期(2s)发送;在没有跟网桥的时候,所有设备仅发送BPDU;
2)TCN–拓扑变更消息—包中不包含任何具体信息,也不会导致网络重新收敛;
当一台交换机的阻塞端口链路被断开,那么将标记为中七位置1,标识拓扑已经改变,该BPDU将发送到根网桥处,根网桥使用标记为第0位,来表示确认;若没有收到ack,那么2s周期发送TCN;根网桥在确认后,将使用BPDU告诉所有的非根网桥,刷新cam表;
默认cam的保存周期为300s;
3)次优BPDU–非根网桥上的根端口断开–接收不到的根网桥的BPDU了,同时本地断开的也不是阻塞端口;那么本地将自己定义为根网桥,发出BPDU,由于该BPDU次于根网桥的,故称为次优BPDU;
总结:根网桥发配置BPDU,包含拓扑信息
非根网桥的阻塞端口被断开,当依然可以与根网桥沟通,那么发送TCN,不包含拓扑信息,不会使网络重新收敛
非根网桥上断开了根端口后,若不能再与根网桥沟通,将本地定义为根网桥发送次优BPDU,包含本地的拓扑信息—也是配置BPDU,但不是根网桥的;
802.1D算法需要在整个拓扑中,选择4种角色:
1、根网桥(一台交换机) 2、根端口-RP 3、指定端口-DP
4、非指定端口(阻塞端口)-NDP
选举根网桥:
开始整个交换网络没有根网桥,所有设备均认为本地为根网桥,发送本地BPDU;
当收集到整个交换网络的BPDU后,根网桥被选出;之后由根网桥基于所有的BPDU,生成拓扑,使用配置BPDU来告知其他的交换机;
1)根网桥—整个交换网路的中心;通过BPDU来控制整个网络收敛
选举条件—协议ID----BID(桥ID)=网桥优先级+mac地址
网桥优先级—0-65535 默认为32768
MAC地址===正常的透明交换机不拥有mac地址,不能实现stp技术
非透明交换存在–SVI接口,出厂将被烧录mac地址;若有多个,将选择数字最小的来参选
选举规则:先比较优先级,数值小优;若优先级一致,比较MAC地址,数值小优
2)根端口–每台非根网桥上,有且仅有一个;离根网桥最近的接口,接收来自根网桥的BPDU, 正常转发用户的数据流–非阻塞;
1、比较从该接口进入时的cost值,小优
2、若接口cost值相同,比较接口上级设备的BID,BID最小设备对应的接口为根端口,因为给设备为备份根网桥;
3、再比较上级设备的PID-端口ID—优先级+接口编号
优先级 0-255 默认为128; 先比较优先级,小优;再比较接口编号,小优;
4、若以上参数全部一致,比较本地的PID;小优;
3)指定端口–每条链路上有且仅有一个
转发来自根网桥的BPDU;根网桥上全部为指定端口,根端口的对端一定是指定端口;
1、必须从根网桥发出的BPDU,通过该端口向外转发时消耗的cost值,小优
2、若出向cost值相同,比较本地的BID,小优
3、本地BID相同,比较本地的PID,小优
4、本地PID相同,直接阻塞该端口
4)非指定端口—NDP 阻塞端口
以上所有角色选举完成后,剩余的全部接口为非指定;其状态为阻塞;
注:阻塞端口并不是关闭接口,依然可以接收到数据帧,但不转发数据帧;可以正常识别BPDU;
Cost值:cost值是在进入交换机时,才叠加该段链路的开销;
10M = 100
100M =19
1000M=4
10000M=2
10000M=1
注:生成树协议,cisco产品默认运行,个别厂商需要手工开启-例:H3C
一旦运行将自动选择出所有的角色,当默认可能不是最佳结构,需要管理员手工干预,尤其根网桥一定放置在汇聚层;
{2}802.1D的端口状态
Down — 接口指示灯未亮(模拟器为红色) 接口未工作
侦听----(15s) 接口指示灯为橙色 各台交换机收发BPDU,选举出各种角色
学习----(15s) 接口指示灯为橙色 交换机上的各个未阻塞接口学习各个用户的MAC地址,
生成cam表
转发-----接口指示灯为绿色 指定端口和根端口在学习状态完成后进入–转发用户流量
阻塞-----接口指示灯为橙色 非指定端口在侦听完成后就进入
结论:802.1D必须在指示灯为绿色时,才开始转发用户流量;
{3}802.1D算法的收敛时间
1、初次收敛为30s
2、结构变化----1)存在直连检测—本地的根端口断开后,之后仅一条阻塞端口连接于其他交换机;本地不能发出tcn或也发不出次优BPDU;那么只能本地的阻塞端口
进行收敛–30s
2)没有直连检测—本地根端口断开后,可以向其他交换机的阻塞端口发送次优BPDU;对端交换机在收到次优BPDU后,将忽略该数据帧,而是进行20shold time;之后再收敛该接口----20s hold time+30s收敛=50s
802.1d算法的缺点:
1、收敛速度慢
2、链路利用率低—备份链路正常始终不工作
【2】PVST cisco私有—基于vlan的生成树
每个vlan一棵树;因为cisco存在独立的vlan运行芯片,故可以支持很多的树;
每棵独立的树,依然使用802.1d算法收敛
不同vlan的网桥优先级不同====32768+vlan id;人为可修改32768的部分,且只能以4096的倍数来进行修改;
切记:一台设备若希望加入某棵vlan的树,条件是该交换机存在该vlan;该交换机存在该vlan的活动接口或者存在trunk干道;
缺点:
1、私有
2、树多较难管理
3、收敛慢
4、trunk干道仅支持ISL封装
【3】PVST+ 中低端cisco交换机默认运行的协议;在PVST的基础上进行了部分的升级优化;
1、兼容802.1q trunk干道封装
2、可以做部分的加速优化
干涉选举的命令:
Switch(config)#spanning-tree vlan 2 priority 28672 修改设备的网桥优先级
本地成为vlan1 的主根,vlan2 备份根;建议在两台汇聚层设备上分流,互为备份;不一定生效—主根的意思是自动降低本地2个4096优先级,备份降1个;
sw1(config)#spanning-tree vlan 1 root primary
sw1(config)#spanning-tree vlan 2 root secondary
修改接口优先级或接口cost值
CORE(config)#interface f0/1
CORE(config-if)#spanning-tree vlan 1 ?
cost Change an interface’s per VLAN spanning tree path cost
port-priority Change an interface’s spanning tree port priority
2)部分加速
1、端口加速
sw1(config)#interface f0/7
sw1(config-if)#spanning-tree portfast 用于连接用户的接口;
跳过生成树选举,直接进入转发状态;切记不得配置于连接trunk干道接口
sw1(config-if-range)#switchport host 将接口定义为主机接口–连接PC的接口
修改模式为access,开启portfast
2、上行链路加速—仅用于接入层设备
在设备上运行上行链路加速后,若该设备满足直连检测条件;那么将阻塞端口直接变为根端口,进入转发状态;
CORE(config)#spanning-tree uplinkfast
注:开启后,该交换机的网桥优先级和cost值,将倍增;迫使该设备在默认情况下不会成为根网桥,且阻塞端口处于该设备;故该命令只敢在接入层设备配置
3、骨干加速–所有交换机
若一个阻塞端口收到次优BPDU时,将20s hold time+30s收敛,开启骨干加速后;省略20s的hold time;
优点:
1、一个vlan一棵树,提高链路的利用率;
2、部分加速
3、兼容802.1q
缺点:
1、树多,不好管理
2、加速不够彻底
【4】RSTP-RPVST(快速的PVST协议) cisco私有
公有组织802.1w(802.1D的快速版)
两种协议,均为快速收敛1-2s完成收敛,提速的原理一致;区别在于cisco有基于vlan的运算芯片,故RSTP依然一个vlan一棵树;802.1w整个交换网络一棵树;
快速的原理:
1、取消了计时器,而是在一个状态工作完成后,直接进入下一状态;
2、分段式同步,两台设备间逐级收敛;使用请求和同一标记;依赖标记位的第1和第6位
3、BPDU的保活为6s;hello time 2s;
4、将端口加速(边缘接口)、上行链路加速、骨干加速集成了
5、兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;
6、当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;
状态变化:将阻塞状态和侦听状态 合为丢弃状态
角色变化:将非指定端口为AP-替代接口 BP-备份接口
无论AP还是BP其实就是802.1D中的阻塞端口,AP为对端设备,BP为本端设备;
启动快速生成树,所有交换机全部需启动;
sw1(config)#spanning-tree mode rapid-pvst
注:所有干涉选举的命令和pvst+一致;
切记:
默认接口为半双工(10M)时,接口类型为共享;全双工时为点到点;
共享型接口依然运行慢速生成;只有点到点接口可以快速;
故建议将共享型接口修改为点到点型
sw1(config)#interface range ethernet 0/0 -1
sw1(config-if-range)#spanning-tree link-type point-to-point
STP安全
[1]BPDU保护
接入层接口默认为DP(指定端口),该端口连接的是PC
如果该接口的PC被更换或者用户模拟成为一台交换机,那么可能会导致根网桥转移,最终迫使网络结构发生变化,因为根网桥最佳位置应该在汇聚层,而新的结构可能会该改变该特性,导致网络运行不佳,流量集中于接入层设备;
可以将这些接口开启BPDU保护功能;被保护接口若收到BPDU,那么将进行错误关闭状态;
进入该状态的接口的状态和协议均为down,解决方案就是重新唤活该接口。
重新唤活该接口:
1、手工重启—先关闭(shutdown)再开启(no shutdown)
2、自动启动—需要手动配置,进行配置后,若该接口在300s内没有收到BPDU了,那么将自动开启
在接入层连接用户的接口上,开启BPDU保护功能
sw2(config)#interface e0/0
sw2(config-if)#spanning-tree bpduguard enable
被保护接口若接收到BPDU将错误关闭
sw2#show interfaces e0/0
Ethernet0/0 is down, line protocol is down (err-disabled)
若接口出现了错误关闭,可以查看其导致原因
sw2#show interfaces status err-disabled
Port Name Status Reason
Et0/0 err-disabled bpduguard
针对BPDU保护出现的错误关闭,可以通过手工重启,或设置自动重启
sw2(config)#errdisable recovery cause bpduguard BPDU保护出现后的自动重启
sw2#show errdisable recovery 查看各种错误的原因状态
sw2(config)#errdisable recovery interval ? 默认300s收不到BPDU将自动重启
<30-86400> timer-interval(sec) 修改计时器
全局配置:
在接入层接口上,开启所有接口的端口加速和所有接口的BPDU保护
sw2(config)#spanning-tree portfast bpduguard
全局开启后,还需要到上行链路关闭BPDU保护
sw2(config)#interface e0/0
sw2(config-if)#spanning-tree bpduguard disable 关闭单个接口的BPDU保护
sw2#show spanning-tree summary totals 查看各种全局协议的配置
[2]BPDU过滤
开启BPDU过滤后,若接入层接口收到BPDU信息,将仅丢弃BPDU数据帧,正常转发用户流量
接口开启或关闭
sw2(config)#interface e0/0 sw2(config-if)#spanning-tree bpdufilter ?
disable Disable BPDU filtering for this interface
enable Enable BPDU filtering for this interface
sw2(config)#spanning-tree portfast bpdufilter default 全局开启
注:全局开启后,需要在上行链路接口手工关闭
总结:保护和过滤除了对接口的处理方式不同,还存在一个区别(保护是拒绝接收BPDU,但可以发送;过滤则是收发均拒绝)
[3]根网桥保护
若网络中添加新的交换机,其BID最优;那么将抢占网络的根网桥,导致拓扑结构发生改变;
在接口开启根桥保活后,若交换机的接口收到了更优BPDU时,则会阻塞该接口;直到该接口不再收到更优BPDU才恢复;
sw2(config)#interface e0/0
sw2(config-if)#spanning-tree guard root 接口开启根网保护
当开启根网桥保护的接口并接收到更优BPDU时,改接口将阻塞;进入broken状态,显示与根不一致;
sw2#show spanning-tree interface ethernet 0/0 detail
Port 1 (Ethernet0/0) of VLAN0001 is broken (Root Inconsistent) 根不一致
不一致接口在生成树列表中的显示
sw2#show spanning-tree
Et0/0 Desg BKN*100 128.1 Shr *ROOT_Inc
查看出现不一致的接口
sw2#show spanning-tree inconsistentports
Name Interface Inconsistency
VLAN0001 Ethernet0/0 Root Inconsistent
Number of inconsistent ports (segments) in the system : 1
总结:BPDU保护和过滤配置在所有的接入层连接PC接口;
Root 保护建议配置在新连接交换机的接口,来避免网络的重新收敛;
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。


