FortiGate 硬件加速
来源 https://wenku.baidu.com/view/07749195a1c7aa00b52acb63.html
硬件加速
来源 https://blog.csdn.net/meigang2012/article/details/78638341
===============================
在这节课中你将了解到FortiASIC芯片和Fortinet的夹层卡是如何加速FortiGate的性能的。
专用硬件的加速处理与一般CPU的传统处理不同。
在完成这一课程之后,你应该具备这些实用技能,你可以使用这些技巧来优化配置,以增强网络和安全性能。
你将能够描述Fortinet的芯片组,识别IP会话的卸载,配置异常检测,加速基于流程的检查,并配置TCP SYN代理的SYN洪水检测。
让我们先来看看在一个FortiGate里有什么,并比较专业的硬件加速器-FortiASIC类型。
与大多数安全设备一样,FortiGate是由通用计算机基础建造的。但是,一般的计算机设备在网络安全性能方面是有限的。这就是为什么Fortinet包含了特殊的附加硬件加速组件。
“硬件加速”是什么意思?硬件加速允许FortiGate将其处理负载从通用的CPU转移到专门的处理器。
请注意,分流CPU周期和分流任务在专门的硬件上执行的速度比一般的CPU要快。这个过程类似于你的电脑在图形卡上使用GPU的方式;也就是说,GPU通常有专用的RAM,GPU电路的设计是为了更有效地处理图像。
ASIC是一种芯片,设计用于执行一组具有最优效率、性能和可伸缩性的功能。
FortiASIC是专门用来分流流量和检查程序的。
ASIC芯片的优势在于它的专业化;因此,Fortinet开发了几个由他们的类型(网络处理器或内容处理器)和版本所识别的关键的ASIC。Fortinet还开发了安全处理器,这是不被认为是FortiASIC的。
注意约定的名称是家庭缩写加上修订号。一般来说,较新的版本有更多的功能和更好的性能。这张图表说明了使用只使用CPU专用设备的较老的FortiGate和硬件加速的更新更快的FortiGate之间的性能差异。
ASIC被连接到电路板上,因此它们是不能升级的。
每个硬件加速器都做什么类型的处理?
内容处理(CP):CP是一个FortiASIC。CP从CPU中分流了一些类型的内容检查功能。他们检查内容以防止被加载到内存中的威胁进行比较。他们还处理SSL加密。
网络处理(NP):NP是一个FortiASIC。NP在接口层进行操作,以提供极低的延迟数据路径。NP可以处理数据包转发、Psec加密散列、链路聚合、高可用性(HA),还有一些其他类型的包处理。CP也可以处理密码学,那么有什么区别呢?CP就像一个协同处理器,就其物理线路而言,与大多数NP不同,CP不绑定到特定的网络接口。
安全处理(SP):SP不是一个FortiASIC。SP是一个带有内容处理器逻辑的夹层卡。SP可以使用自己的多核/多线程CPU进行操作。它们可以处理多播、IPv6、DoS和SYN代理。
系统芯片处理(SoC):SoC是集成了传统系统CPU和CP、NP的集成芯片。
现在我们已经简单地比较了FortiASIC芯片的类型,让我们来看看每一个芯片的发展,以及如何配置你的FortiGate以使用每一个ASIC来提高性能。我们还将展示如何分流预期的诊断输出。
在本节中,我们将研究CP芯片的功能,以及哪些配置可以使用它们来实现更高的性能。
CP是CPU的协同处理器。它加速了许多常见的资源密集型安全相关过程。
自从第一个FortiGate型号以来,Fortinet就在设计中加入了一个CP。CP在系统级工作。那些早期的FortiGate型号现在已经过时了,所以我们将从最早期的,相关的CP:CP4开始。
每一代的CP都建立在之前的功能之上。
CP4处理IPsec。更具体地说,它对IPsec第二阶段的DES、3DES和AES进行加密和解密。它还为密码学产生伪随机数字,计算了消息身份验证的SHA-1和MD5校验和,并验证了PKCS#1证书中的RSA公钥。
CP5增加了FIPS和RFC的遵从性,并且在支持IKE和RSA的情况下改进了IPsec。此外,它的随机数生成器与SSL兼容,这将与下一代的CP6特别相关。
CP6包括SSL的硬件支持,由于SSL VPN和SSL检查越来越流行,SSL需要更好的性能。
CP8增加了对一个IPS引擎进行签名模式匹配的支持;扩展的加密支持包括ARC4和SHA-256和大型公共密钥。另外,CP8芯片可以用于可伸缩性。
你的FortiGate有哪些CP?
为了确定这一点,使用CLI命令〖get hardware status〗。
如果你想禁用CP分流过程呢?
你可以在配置防火墙安全策略中禁用CP分流过程:
IPv4
IPv6
多路传送
当你禁用auto-asic-offload时,它也会禁用NP分流。
现在让我们继续看NP芯片。
NP在接口层工作,通过从CPU上分流它来加速流量。
对于每一个新会话,第一个包总是在CPU上到达内核。但是,如果NP不支持你已经配置了用于会话的FortiGate的所有功能,那么内核必须继续在缓慢的路径上处理所有会话的包。
如果NP确实支持你配置的所有功能来应用到该会话,那么内核将向NP程序发送一条指令来处理该会话,并启用一条快速通道。NP加速传播。
一旦FortiGate处理了最后一个包,例如TCP FIN(finish)或RST(reset)信号,或者如果有错误,那么NP将会话返回给CPU,这样它就可以分解会话。
这个图表说明了如何决定是否加速包转发和IP会话处理。
这个过程可能会根据NP版本改变。与CP相似,也有一些NP修正。
NP1和NP2是在许多年前发布的,并且可以分流大多数类型的IPv4流量。
下一代NP4在早期版本中表现出了显著的性能提升。
NP6的性能加倍,并增加对IPv6、CAPWAP通信(用于无线控制和供应)和多播的支持。
要找到关于你的每一个FortiGate的网络处理器的信息,请使用CLI命令〖get hardware npu〗。
没有集成交换结构(ISF)的平台的接口直接连接到NP。因此,特别重要的是要了解这些直接映射,特别是当平台有多个NP时。
NP版本1、2和4不支持流量统计(包括日志)。这个规则的唯一例外是IP会话中的第一个和最后一个包。
这个异常发生是因为第一个和最后一个包是由内核处理的,在会话信息传递给ASIC之前。ASIC芯片处理中间的所有数据包,因此内核不知道在此期间发生的任何统计信息。同样,NP1到NP4也没有内存来保存它们自己的统计数据。
NP6支持统计数据。它还支持SNMP以太网MIB,因此它也可以回答有关这些统计数据的查询。
为了获得分流的资格,流量必须与ASIC芯片的设计标准相匹配。对于NP4,标准是:
2层的类型/长度必须设置为0X0800.IEEE 802.1 q和802.3的广告流量也可以被分流。
3层必须是单一的IPv4。NP4不支持多播和IPv6。
4层必须是UDP、TCP、SCTP或ICMP。
头或内容不需要由会话助手修改。
任何类型的安全配置都不能检查流量,如反病毒或网络过滤。
流量一定不是来自防火墙。
入口和出口必须在同一个NP4上,除非在两个通信NP4之间有一个EEI桥。
NP6和NP4标准是相同的,除了NP6还支持IPv6、NAT64、NAT46和其他。
使用NP6的FortiGate型号与ISF进行物理连接。ISF连接允许所有接口和NP6处理器之间的通信,而不需要通过CPU进行通信。这意味着分流是可能的,即使入口和出口的端口不在同一处理器上。
要验证会话是否已被分流,请使用CLI命令〖diagnose sys session list〗。
npu info指明会话可以被分流。offload=x/y这里标记状态。在本例中,所有会话都已被分流(offload=4/4)。输出offload=0/0指示非加速会话。
no_ofld_reason表明会话没有被分流,例如会话被重定向到反病毒或IPS分析。
内核没有意识到会话中正在发生的事情,而会话是由一个NP来处理的。这会影响到日志记录。它还会产生什么影响呢?
包捕获涉及到使用CPU的FortiGate内核。NP芯片不会把所有的数据都发送回CPU,因为这会抵消加速。因此,一旦会话被分流到一个NP,嗅探器就不会看到那些被分流的数据包。
在故障排除期间,你通常需要查看整个会话。为了做到这一点,你可能需要暂时禁用分流。在CLI中,你可以在每个策略基础上执行此工作。请记住,此操作也禁用了CP分流。
NP不仅仅是IP层封包转发。它也有以下几点:
主动-主动 HA 负载平衡
IPsec密码学
链路聚合
基本异常检测(在软件IPS引擎之前)
基本的流量影响
在HA主动-主动模式下,分流标准与独立的FortiGate相同。
用户流量的硬件加速是由集群中的每一个单独的FortiGate决定的。一般来说,为了满足内容检查的目的,流量是负载均衡的,因此硬件加速不适用。然而,它是在被分流的同一会话中对包的重定向。这意味着网络处理器重新编写MAC地址,从这些中断中分流CPU。
在本节中,我们将研究如何查看、过滤、下载和导出日志。虽然你可以通过执行日志过滤器和执行日志显示命令来查看和管理日志,但是这一节关注的是GUI。
要验证IPsec流量是否已被分流,请使用CLI命令〖diagnose vpn tunnel list〗。
这显示了每个VPN隧道的状态和统计信息。如果它包含一条带有npu_flag的行,隧道就会被分流。
请记住,在检查npu_flag字段之前,首先需要从两个方向获得初始包。否则,它的初始值是0/0。
如果所有聚合的接口都与相同的NP相关联,网络处理器还可以加速802.3ad链接聚合。(取决于你所熟悉的供应商,链路聚合也称为NIC teaming、channeling或link bonding。)要确定通道是否已被卸载,请使用CLI命令〖diagnose netlink aggreate〗。
是否所有链接与聚合相关的处理都将被分流?不,只有在CPU建立会话并将其发送到NP时才会发生分流。因此,在哈希的初始阶段,即内核如何决定集合中的哪个接口将发送第一个框架,CPU仍然参与其中。在链接聚合哈希后发生分流。
一些网络处理器也可以检测到一些异常,并删除这些数据包。这发生在硬件。它独立于IPS引擎,并在IPS引擎参与之前发生。要做到这一点,可以使用〖set fp-anomaly〗来配置接口。例如,你可以配置你的NP处理器来删除带有未知协议号的数据包。
一些类型的流量整形也可以被分流到一个NP。
请注意,只支持限制和优先级,但是保证带宽不能被分流,并且由CPU处理。
NP有有限的整形对象(NP6有更多的整形对象和数据包流改进),因此CPU的流量仍然是很常见的。
现在我们来看一看SP,夹层卡增加了FortiGate的性能。
SP为入侵保护和防火墙功能提供了一个集成的、高性能的、快速的多层解决方案。
入侵保护从一个IPS硬件加速引擎开始,这可以确保每个包都可以。然后,采用一套基于接口的数据包异常保护、DDoS保护、基于策略的入侵保护和防火墙快速通道来防止攻击。
SP还可以分流数据包传输,比如多播、IPv4、IPv6和NAT64通信。它加速了IPsec的加密和解密。它可以执行基于流程的内容检查,并提供SYN代理功能。
与CP和NP一样,每个修订版本都增加了SP的功能。
第一个版本可以处理IPS和加密的多播卸载。这个版本是用三张扩展卡构建的:FMC-XE2、FMC-FE8、FMC-CE4,它们都兼容于FortiGate的3810A,5001A,1240B和3016B。
第二个版本增加了对基于流程的检查的支持。这个SP的夹层扩展卡是FMC-XG2,它与FortiGate的3140B和5001C兼容。
第三个版本的性能好处是内置了FMC-XH0卡。
要确定在你的FortiGate型号中安装的SP(如果有的话),请使用CLI命令〖diagnose npu spm list〗。
在这里所示的示例中,xh0表示安装了FMC-XH0型号夹层扩展卡。这个产品家族使用SP3。
请记住,SP主要是加速与安全相关的特性,NP不支持这些会话。
SP处理基于流程的检查,例如AV、IPS和应用程序控制,提供了显著的吞吐量优势。
要分流基于流程的检查,必须将防火墙策略中的入口和出口接口绑定到相同的SP。
根据类型的不同,DoS策略也可以被分流到安全处理器。
SP上的一个接口也可以作为TCP SYN代理,删除在超时期间客户端未完成的所有连接。这为你的后端服务器提供了更大的保护和性能,以防止发生同步的洪水。
在客户端完成3路握手之前,TCP连接不会被传递给服务器。通过这种方式,SYN的洪水攻击不会耗尽CPU资源。
SP支持VLANs和带有欺骗源IP的通信流。
在DoS配置文件tcp_syn_flood设置中配置了SYN代理,并将其应用到一个安全处理器的接口中。
最后,让我们看一种集成了其他两个方面的ASIC:一个芯片上的系统(SoC)。
SoC将一个通用的CPU与Fortinet的定制ASIC网络、NP和CP集成到一个芯片中。
通常,SoC模块是在桌面或小型办公室型号中找到的,因为它允许较小的表单因素,但不能处理载波级别的计算负载。SoC的最大好处是更大的成本和能源效率。
SoC模块的性能水平很低。
你在之前的章节中提到过我们没有提到关于CP7和NP3的任何事情吗?
CP7和NP3(或者NP4Lite),被开发出来集成到Fortinet的SoC处理器中。这个集成处理器有三个模块:
VPN模块(CP7处理器)包括SSL、TLS和IPsec引擎,它们处理通信和消息身份验证算法的加密和解密。
防火墙快速通道模块(NP4Lite处理器)是NP4处理器的一个轻量级版本(具有更少的特性)。它加速会话处理。
IPS确定性有限自动机(DFA)模块用于分流某些IPS签名匹配。
这个表比较了大多数使用的FortiGate、SoCs和SP的每个规范的性能。
这里回顾一些我们讨论的内容:
每一个FortiASIC家族的架构
每个芯片都可以分流哪些特性
芯片之间的差异
如何找到你的型号的芯片
============================== End