Table of Contents
Fortigate
Fortigate est la gamme de firewall++ de Fortinet ; ils font du routage, du firewalling, concentrateur VPN, VPN SSL, antivirus, IPS, etc… bref pas mal de fonctions qui s'implémentent au fil du temps.
Processeurs
Comparatif informel des CPUs de certains modèles de Fortigate :
# MODEL CORE/HT MODEL NAME 3810A 2c AMD / cpu family 15 / model 33 / model name 02/21 / stepping 2 / 1795 MHz / 1024 KB cache 3000D 2x 10c/20t Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz 3040B 4c/8t Intel(R) Xeon(R) CPU E5540 @ 2.53GHz 1240B 4c Intel(R) Xeon(R) CPU E5504 @ 2.00GHz 1101E 6c/12t Intel(R) Xeon(R) E-2186G CPU @ 3.80GHz 800C 4c Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz 800 1c Mobile Genuine Intel(R) processor 1600MHz 600E 6c/12t Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz 600D 4c/8t Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 600C 2c/4t Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz 310B 1c Intel(R) Celeron(R) CPU 440 @ 2.00GHz 300A 1c Intel(R) Celeron(R) CPU 2.00GHz 200 1c Celeron (Coppermine) @300MHz 100F 8c ARMv8 Processor rev 4 (v8l) @ 1400 MHZ 60 1c VIA Samuel 2 @ 400 MHz
On peut récupérer les infos CPU avec la commande :
get hardware stat | grep ^CPU
ou diagnose hardware sysinfo cpu | grep “model name”
Lien vers une page plus fournie : yurisk.info
Architecture interne
L'architecture interne (simplifiée) des Fortigate varie selon les modèles, et interconnecte les composants suivants :
- CPU
- CPx : Content Processor, permet d'offloader (décharger le processeur principal de) certaines tâches de sécurité (comme les signatures IPS ou la gestion protocolaire IKE/IPSec dans le cas de la génération 8 = CP8)
- NPx : FortiASIC Network Processor, permet d'offloader certaines tâche réseau (principalement les trafics IPv4 et les trafics des tunnels VPN IPSec)
- SPx : Security Processor permet d'offloader certaines tâches de sécurité notamment l'intégralité des fonctions d'IPS
- ISF : Integrated Switch Fabric : permet d'interconnecter les NPs. L'ISF lève les restrictions qui font que, par exemple, un flux ne peut être accéléré que si les 2 ports d'entrée et de sortie du flux sont connectés physiquement sur le même NP6.
- les ports physiques
Il existe souvent des restrictions de prise en charge de l'offloading (par exemple dans le cas de paquets fragmentés, jumbo frames ou autre..) ; dans ce cas lesdits trafics seront traités par le processeur central. Pour en avoir une liste plus exhaustive je vous recommande la consultation du document FortiOS Handbook - Hardware Acceleration trouvable ici : http://docs.fortinet.com/fortigate/admin-guides .
Comparaison indicative des NPx : les différences concernent 1) la capacité de traitement de la puce, 2) sa connectivité, et 3) les fonctions gérées par celle-ci.
- NP1 : firewalling IPv4 et chiffrement des VPN IPSec ; capacité de traitement de 2 Gbps (2x 1 Gbps)
- NP2 : idem ; capacité de traitement de 2 Gbps (1x 10 Gbps ou 4x 1Gbps)
- NP4 : idem ; capacité de traitement de 20 Gbps (2x 10 Gbps)
- NP6 : idem + IPv6 + CAPWAP + trafic Mcast ; capacité de traitement de 40 Gbps (4x 10 Gbps ou 3x 10 Gbps + 16x 1 Gbps)
- NP7 (introduit avec la génération F, à partir du modèle 400F) : idem + GTP, accélération VxLAN, NAT ; capacité de 200 Gbps (2x 100)
Exemple d'architecture interne pour les Fortigate 800C (source) : Ce modèle est doté de 1x CP8 et 1x NP4 (gérant les ports via une ISF).
Exemple d'architecture interne pour les Fortigate 3000D (source) : Celui-ci est équipé de 4x CP8, (une CPU), 2x NP6 et une ISF. On notera que le premier NP6 gère les 8 premiers ports alors que le second les 8 derniers. Ainsi, on prendra soin de répartir les interfaces à fort trafic sur des ports reliés aux différents NP6, afin de ne pas les saturer.
Comme indiqué dans la source, on peut vérifier la connectivité interne d'un Fortigate 3000D avec une des 2 commandes suivantes (exemple ici avec un 3000D) :
diagnose npu np6 port-list # ou get hardware npu np6 port-list Chip XAUI Ports Max Cross-chip Speed offloading ------ ---- ------- ----- ---------- np6_0 0 port1 10G Yes 0 port6 10G Yes 1 port2 10G Yes 1 port5 10G Yes 2 port3 10G Yes 2 port8 10G Yes 3 port4 10G Yes 3 port7 10G Yes ------ ---- ------- ----- ---------- np6_1 0 port10 10G Yes 0 port13 10G Yes 1 port9 10G Yes 1 port14 10G Yes 2 port12 10G Yes 2 port15 10G Yes 3 port11 10G Yes 3 port16 10G Yes ------ ---- ------- ----- ----------
On voit donc les 2 NP6 (np6_0 et np6_1) ainsi que leur connectivité avec les ports réels.
La colonne XAUI indique les connexions internes des NPs ; les liens utilisés peuvent être QSGMII (4x 1G), XAUI (10G). Sur ce 3000D par exemple, chaque NP6 est interconnecté par 4 liens internes XAUI (à 10Gbps), pour atteindre la capacité max de traitement d'un NP6 qui est de 40 Gbps. On voit que les ports 1 et 6 sont connectés au np6_0 via le même lien XAUI 0 ; or ces ports ont une capacité de 10Gbps chacun, ils ne pourront donc pas être pleinement accélérés s'ils sont saturés.
Pour créer un agrégat :
- si le forti n'a pas d'ISF, il faut utiliser des ports connectés en interne sur le même NP6 ; de fait, l’agrégat ne pourra pas dépasser 40Gbps de débit accéléré, puisqu’il sera limité par le NP6.
- si le forti possède une ISF qui interconnecte plusieurs NP6, on peut utiliser des ports connectés en interne sur les différents NPs, afin de répartir la charge et augmenter la capacité ; le débit accéléré max sera donc de N x 40Gbps (N = nombre de NP6)
Ces paramètres doivent être pris en compte pour choisir quels ports utiliser pour interconnecter le Fortigate à votre réseau.
Versions de FortiOS
Correspondance constatée entre les numéros de version et les numéros de build (ces derniers peuvent changer en fonction des modèles) :
# VER BUILD RELEASE DATE 5.4.1 Build 1064 5.2.7 Build 0718 5.2.6 Build 0711 5.2.5 Build 0701 5.2.3 Build 0670 ou 0350 5.0.6 Build 0271 Latest 5.0 Patch Release Released 24 January 2014 5.0.5 Build 0252 Latest 5.0 Patch Release Released 31 October 2013 5.0.4 Build 0228 Latest 5.0 Patch Release Released 9 August 2013 5.0.3 Build 0208 Latest 5.0 Patch Release Released 3 June 2013 v4.00 Build 0672 MR3 Patch 15 Latest MR3 Patch Release Released 4 September 2013 v4.00 Build 0665 MR3 Patch 14 Latest MR3 Patch Release Released 17 May 2013 v4.00 Build 0656 MR3 Patch 12 Latest MR3 Patch Release Released 13 Feb 2013 v4.00 Build 0646 MR3 Patch 11 Latest MR3 Patch Release Released 22 Nov 2012 v4.00 Build 0639 MR3 Patch 10 Latest MR3 Patch Release Released 10 Sep 2012 v4.00 Build 0637 MR3 Patch 9 Latest MR3 Patch Release Released 21 Aug 2012 v4.00 Build 0632 MR3 Patch 8 Latest MR3 Patch Release Released 06 Jul 2012 v4.00 Build 0535 MR3 Patch 7 Latest MR3 Patch Release Released 11 May 2012 v4.00 Build 0521 MR3 Patch 6 Latest MR3 Patch Release Released 15 Mar 2012 v4.00 Build 0513 MR3 Patch 5 Latest MR3 Patch Release Released 01 Feb 2012 v4.00 Build 0511 MR3 Patch 4 Latest MR3 Patch Release Released 12 Jan 2012 [..] v4.00 Build 0441 MR3 Latest MR3 Patch Release Released 19 Mar 2011