三层网络架构
三层网络架构采用层次化模型设计,即将复杂的网络设计分成几个层次,每个层次着重于某些特定的功能,这样就能够使一个复杂的大问题变成许多简单的小问题。三层网络架构设计的网络有三个层次:核心层(网络的高速交换主干)、汇聚层(提供基于策略的连接)、接入层 (将工作站接入网络)。
- 核心层:核心层是网络的高速交换主干,对整个网络的连通起到至关重要的作用。核心层应该具有如下几个特性:可靠性、高效性、冗余性、容错性、可管理性、适应性、低延时性等。在核心层中,应该采用高带宽的千兆以上交换机。因为核心层是网络的枢纽中心,重要性突出。核心层设备采用双机冗余热备份是非常必要的,也可以使用负载均衡功能,来改善网络性能。
- 汇聚层:汇聚层是网络接入层和核心层的“中介”,就是在工作站接入核心层前先做汇聚,以减轻核心层设备的负荷。汇聚层具有实施策略、安全、工作组接入、虚拟局域网(VLAN)之间的路由、源地址或目的地址过滤等多种功能。在汇聚层中,应该选用支持三层交换技术和VLAN的交换机,以达到网络隔离和分段的目的。
- 接入层:接入层向本地网段提供工作站接入。在接入层中,减少同一网段的工作站数量,能够向工作组提供高速带宽。接入层可以选择不支持VLAN和三层交换技术的普通交换机。
摘自百度百科——三层网络架构
三层网络架构的设计原则
- 层次化设计:每个层可以看作为是一个具有特定角色和功能的、结构定义良好的模块,层次化的设计结构,易于扩展和维护,降低了设计的复杂度和难度。三层网络架构可以更好地控制网络规模和网络质量,同时也方便网络管理和维护。
- 模块化设计:每个模块对应一个部门、功能或业务区域,可根据网络规模灵活扩展,部门或区域内部调整涉及范围小,容易进行问题定位。
-
冗余设计:双节点冗余性设计可以保证设备级可靠,适当的冗余提高可靠性,但过度的冗余也不便于运行维护。如果无法做好双节点冗余设计,对框式的核心交换机或者出口路由器,可以考虑单板级的冗余,如双主控板,双交换网板。另外,关键链路可以采用
Eth-Trunk 链路实现链路级可靠性。
- 对称性设计:网络的对称性便于业务部署,拓扑直观,便于协议设计和分析。
总结:三层网络架构特点—冗余:线路冗余、设备冗余、网关冗余、电源冗余(UPS)
线路冗余
因为路由器的路由表是有相对完善的计算所得,且存在防环规则;故路由器物理链路上实施备份时,一般不会出现环路;
但交换转发数据依赖MAC表(CAM表),该表的生成规则非常简单(记录产生),没有防环设计,故只要交换机使用链路备份,就将出现二层环路;
CAM:将MAC地址+接口编号+VLAN ID进行哈希运算后,存储的哈希值;
二层环路导致的问题
- 广播风暴
- MAC地址表翻滚——MAC地址在交换机中的刷新时间为5min,一个接口可以对应多个MAC;但一台交换机上同一MAC地址只能对应一个接口;
- 同一数据帧的重复拷贝
生成树协议(STP)
生成树协议(Spanning Tree Protocol,STP),是一种工作在 OSI 网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路,用于确保以太网中无环路的逻辑拓扑结构,从而避免了广播风暴大量占用交换机的资源。
传统的数据中心网络技术中,STP 是二层网络中非常重要的一种协议。但是,在二层网络中使用 STP 协议有一个相当矛盾的点,那就是 可靠性 和 安全性 的矛盾。
- 可靠性是指构建二层网络时,一般会采用会采用设备冗余和链路冗余的方式。
- 安全性是指二层交换机同处于一个广播域,广播报文在环路中会反复持续传送,可能会形成广播风暴,所以必须防止形成环路。要想两种同时达到,可以采用STP(生成树协议)自动控制,即冗余设备和冗余链路成备份,在正常情况下被阻塞掉,当出现链路故障时冗余的设备端口和链路才会被打开。
在一个二层交换网络,逻辑的阻塞部分接口;当最佳路径故障时,自动疏通部分接口来实现链路备份
生成树:在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用(生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树)
生成树协议分类:802.1D、PVST/PVST+(CISCO)、RSTP(CISCO)/802.1W(公有) 、MST=802.1S
-
BPDU—桥协议数据单元:
交换机间使用BPDU进行交换机间沟通互动收发数据,使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;之后所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU
-
TCN—拓扑变更消息(也是BPDU):
本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老换时间修改为15s(默认的,转发延时)
TCN
BPDU
选举角色
-
根网桥:在每一棵生成树实例中,有且仅有一台交换机作为根桥;负责发送BPDU,计算和指挥整个树的收敛;作为树形结构的根部,交换网络部分的中心节点;
对比BPDU中的桥ID(BID);
桥ID= 网桥优先级 + MAC地址(本地背板池)
比较网桥优先级(0-65535,默认32768),数值越小越优;若优先级一致,比较MAC地址,数值越小越优;
注意:交换机作为网桥设备时,关注终端设备发送的数据帧中的MAC地址;但交换机本地无MAC;
需要运行STP协议的交换机,必须在出厂时由厂家进行MAC的写入,存储于交换机的背板地址池中
若交换的背板地址池中MAC地址为多个,将选择数值最小的地址来进行选举
-
根端口:在每一台非根网桥上有且仅有一个接口;本地离根网桥最近的接口,用于接收来自根网桥的BPDU,同时转发终端的数据帧;
1.比较从根网桥发出,之后通过该接口进入时最小的cost值;
2.若入向的cost相同,比较接口对端的设备的BID,小优
3.若对端设备的BID相同,那么比较对端接口的PID;小优
4.若对端设备的PID相同,那么比较本地的PID,小优
端口ID(PID) = 接口优先级(0-240,默认128 小优(数值越小越优))+ 接口编号 先比较优先级,小优;若优先级相同比较接口编号,数值小优
-
指定端口:在每一段运行了STP的物理链路上有且仅有一个接口;转发来自根网桥的BPDU,同时转发终端的数据帧;根网桥上所有接口均为指定端口;根端口的对端一定为指定端口;
1.比较转发来自根网桥的BPDU是,出项的最小cost值
2.若出向cost值相同,比较本地的BID,小优
3.若本地的BID相同,比较本地的PID,小优
4.若本地PID相同,将直接阻塞该端口
-
非指定端口(阻塞端口):以上所有角色选举完成后,剩余各个接口的角色;该接口处于阻塞状态;
接口阻塞是逻辑上的,并不是接口被关闭;该接口处于可以接收到数据,但不进行转发的状态;
接口状态
- Down :所有接口通电后进入下一状态
- 侦听:交换机收发BPDU,选出所有角色;根端口、指定端口15s后进入学习状态;非指定端口进入阻塞
- 学习:学习终端设备发出数据帧中的源mac地址,生成交换机的MAC表(CAM表);15s后进入转发状态
- 转发:根端口、指定端口可以开始转发终端的数据帧
- 阻塞:逻辑阻塞
选举流程:
当网络中还没有根网桥时,所有交换机自己将自己视为根网桥,向外发送BPDU,最终对比每台交换机的BPDU中的BID(桥ID),选举出根网桥。
每台交换机选出一个根端口,负责接收根网桥发送的BPDU;选举出若干个指定端口,负责转发BPDU,同时转发终端的数据帧。其余非指定端口进入阻塞状态,可正常收到PBDU,但是不进行转发。
802.1D协议
收敛时间:
- 初次收敛 30s 15s侦听+15s学习
-
结构变化
1)存在直连检测 –本地仅存在一个阻塞端口可以接收到来自根网桥的BPDU;需要30s收敛
2)无直连检测 — 20s
hold time等待+30s收敛=50s
缺点:
- 收敛速度慢
- 链路利用率低 – 备份链路正常不转发数据
802.1D配置命令:
[sw1]stp mode stp //修改为802.1d算法,当下华为默认为MSTP;
[sw1]stp priority 4096 //修改网桥优先级
[sw1-GigabitEthernet0/0/1]stp cost ? //修改接口cost值
INTEGER<1-200000000> Port path cost
[sw1-GigabitEthernet0/0/1]stp port priority ? //修改接口优先级
INTEGER<0-240> Port priority, in steps of 16
PVST/PVST+协议
PVST:cisco私有,基于VLAN的生成树协议,依然沿用了802.1D的运算规则;
区别在于,在每个vlan内,存在一棵树,每棵树的工作原理同802.1d一致;不同vlan的BPDU区别在于网桥优先级。
优先级=4096倍数+vlan id,人为仅可修改4096倍数备份,且只能修改为4096的整倍。仅支持 trunk干道封装为ISL(cisco私有封装)
PVST+:在PVST的基础,兼容802.1q的trunk封装;
且设计了部分的加速:
- 端口加速:将接口设置成边缘端口,(接入层连接用户的接口),省去30s收敛
- 上行链路加速:针对直连检测(接入层设备方可配置)
- 骨干加速:针对次优BPDU 剩去20s的hold time 所有交换机均可配置
边缘接口:用于连接PC的接口,一旦被设定为边缘接口;将不再进行BPDU的发送,且不进行STP的收敛,直接为转发状态; 但若该接口收到了对端的BPDU,将失去边缘特性,重新正常收敛;
[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp edged-port enable
缺点:
- 收敛慢(加速不彻底)
- 树多(仅cisco存在单独的芯片,友商无法负荷)
快速生成树(RSTP)
cisco的RSTP:基于vlan的快速生成树,一个vlan一棵树,PVST+的升级
公有RSTP(802.1w):整个交换网络一棵树, 802.1d的升级
快速的原理:
- 取消了计时器,而是在一个状态工作完成后,直接进入下一状态;
- 分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位(将完整的同步请求分成多段,逐级收敛)
- BPDU的保活为6s;hello time 2s;
- 集成端口加速(边缘接口)、上行链路加速、骨干加速与一体
- 兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;
- 当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;
注意:接口默认为半双工时,即便运行RSTP,依然基于慢速的802.1D算法来收敛;
[sw1]stp priority ? //修改网桥优先级
INTEGER<0-61440> Bridge priority, in steps of 4096
[sw1]stp root ? //快速定义根网桥角色
primary Primary root switch
secondary Secondary root switch
[sw1-GigabitEthernet0/0/1]stp port priority ? //修改接口优先级
INTEGER<0-240> Port priority, in steps of 16
[sw1-GigabitEthernet0/0/1]stp cost ? //修改接口cost
INTEGER<1-200000000> Port path cost
MSTP
继承了快速生成树的基础;解决了快速生成树的问题:每个VLAN生成一棵树,这样将会有许多相同功能的树,增加资源消耗;将多个vlan放置于一个组内,基于每个组一棵生成树;
不同组间的BPDU中优先级= 4096倍数+组号
默认存在组0,且所有vlan默认处于该组;优先级= 32768+0
分组配置:
[sw1]stp enable
[sw1]stp region-configuration
[sw1-mst-region]region-name a //所有设备应在一个域内
[sw1-mst-region]instance 1 vlan 1 to 5
[sw1-mst-region]instance 2 vlan 6 to 10
[sw1-mst-region]active region-configuration //激活当前配置(必须配置该指令)
切记:若将创建某个组,但该组内的vlan,在本交换机上没有创建,同时没有为该vlan服务的接口;该组将没有任何信息;整个交换网络中所有设备的分组信息必须完全一致;
定义本地为组1 的主根,组2 的备份根
stp instance 1 root primary //优先级修改为0
stp instance 2 root secondary //优先级修改为4096