User Tools

Site Tools


informatique:fortinet:offloading

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

informatique:fortinet:offloading [2016/08/31 12:06]
pteu créée
informatique:fortinet:offloading [2018/06/19 11:09] (current)
pteu Cas général
Line 3: Line 3:
  
 L'​**offloading** (ou **accélération hardware**) est le fait de déléguer certains calculs pour décharger le CPU du Fortigate. Cela peut être le cas pour le chiffrement des tunnels IPSec ou SSL par exemple. L'​**offloading** (ou **accélération hardware**) est le fait de déléguer certains calculs pour décharger le CPU du Fortigate. Cela peut être le cas pour le chiffrement des tunnels IPSec ou SSL par exemple.
 +
 +Chez Fortinet il y a 2 types d'​ASICs : des **n**etwork **p**rocessors (NP) pour accélérer les flux réseaux, et des **c**ontent **p**rocessors (CP) pour la partie sécurité (antivirus, IPS, etc) ; leur suffixe indique leur génération (NP4, NP6, CP8...) et donc leur performance.
 +
 +
 +=====Cas général=====
 +
 +2 commandes pour afficher différents informations relatives à la prise en charge sur des NPx :
 +<code bash>
 +config global
 +get hardware npu np6 {options}
 +# commande plus verbeuse :
 +diagnose npu np6 {plus d'​options}
 +</​code>​
 +
 +====Port binding====
 +
 +Pour afficher l'​attribution des NP par port physique (ici on est sur un 3000D = 2 NP6) :
 +<code bash>
 +diagnose 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 ​       ​
 +------ ---- ------- ​         ----- ----------
 +</​code>​
 +
 +====Fonctionnalités activées====
 +
 +Pour afficher les fonctionnalités activées pour chaque NP (toujours sur notre 3000D)
 +<code bash>
 +diagnose npu np6 npu-feature
 +                    np_0      np_1      ​
 +------------------- --------- --------- ​
 +Fastpath ​           Enabled ​  ​Enabled ​  
 +Low-latency-mode ​   Disabled ​ Disabled  ​
 +Low-latency-cap ​    ​No ​       No        ​
 +IPv4 firewall ​      ​Yes ​      ​Yes ​      
 +IPv6 firewall ​      ​Yes ​      ​Yes ​      
 +IPv4 IPSec          Yes       ​Yes ​      
 +IPv6 IPSec          Yes       ​Yes ​      
 +IPv4 tunnel ​        ​Yes ​      ​Yes ​      
 +IPv6 tunnel ​        ​Yes ​      ​Yes ​      
 +GRE tunnel ​         No        No        ​
 +GRE passthrough ​    ​Yes ​      ​Yes ​      
 +IPv4 Multicast ​     Yes       ​Yes ​      
 +IPv6 Multicast ​     Yes       ​Yes ​      
 +CAPWAP ​             Yes       Yes
 +
 +# Pour modifier ces fonctionnalités :
 +config system np6
 +   show full-configuration
 +</​code>​
 +
 +====Compteurs====
 +
 +Pour afficher l'​état des NP6 : notamment le nombre de sessions :
 +  * actives
 +  * offloadées (insert-success)
 +  * dropped (insert-total - insert-success)
 +<code bash>
 +config global
 +   ​diagnose npu np6 sse-stats 0
 +Counters ​       SSE0            SSE1            Total           
 +--------------- --------------- --------------- --------------- ​
 +active ​         3455            3521            6976            ​
 +insert-total ​   457586249 ​      ​456796466 ​      ​914382715 ​      
 +insert-success ​ 457586249 ​      ​456796466 ​      ​914382715 ​      
 +delete-total ​   457582794 ​      ​456792945 ​      ​914375739 ​      
 +delete-success ​ 457582794 ​      ​456792945 ​      ​914375739 ​      
 +purge-total ​    ​0 ​              ​0 ​              ​0 ​              
 +purge-success ​  ​0 ​              ​0 ​              ​0 ​              
 +search-total ​   1429081013 ​     634733460 ​      ​2063814473 ​     ​
 +search-hit ​     3594216301 ​     2717149912 ​     2016398917 ​     ​
 +mcast-tx ​       0               ​0 ​              ​0 ​              
 +--------------- --------------- --------------- --------------- ​
 +pht-size ​       8421376 ​        ​8421376 ​        
 +oft-size ​       8355840 ​        ​8355840 ​        
 +oftfree ​        ​8355837 ​        ​8355839 ​        
 +PBA             3001
 +</​code>​
 +
 +====Afficher l'​état d'un flux====
 +
 +Les informations de de l'​offloading d'une session sont affichées par la commande ''​diagnose sys session list''​ (qu'il faut filtrer au préalable) ; par exemple pour une session vers l'IP 10.0.0.1 :
 +<code bash>
 +diagnose sys session filter dst 10.0.0.1
 +diagnose sys session list
 +
 +session info: proto=6 proto_state=05 duration=64 expire=62 timeout=300 flags=00000000 sockflag=00000000 sockport=0 av_idx=0 use=3
 +origin-shaper=
 +reply-shaper=
 +per_ip_shaper=
 +ha_id=0 policy_dir=0 tunnel=/ vlan_cos=0/​255
 +state=may_dirty npu 
 +statistic(bytes/​packets/​allow_err):​ org=132/3/1 reply=92/​2/​1 tuples=2
 +tx speed(Bps/​kbps):​ 2/0 rx speed(Bps/​kbps):​ 1/0
 +orgin->​sink:​ org pre->​post,​ reply pre->​post dev=23->​21/​21->​23 gwy=10.1.1.78/​10.40.3.171
 +hook=pre dir=org act=noop 10.40.3.171:​50412->​10.1.1.78:​80(0.0.0.0:​0)
 +hook=post dir=reply act=noop 10.1.1.78:​80->​10.40.3.171:​50412(0.0.0.0:​0)
 +pos/​(before,​after) 0/(0,0), 0/(0,0)
 +misc=0 policy_id=294 auth_info=0 chk_client_info=0 vd=0
 +serial=d3e5760d tos=ff/ff app_list=0 app=0 url_cat=0
 +dd_type=0 dd_mode=0
 +npu_state=0x000c00
 +npu info: flag=0x81/​0x81,​ offload=8/​8,​ ips_offload=0/​0,​ epid=144/​146,​ ipid=146/​144,​ vlan=0x0000/​0x0000
 +vlifid=146/​144,​ vtag_in=0x0000/​0x0000 in_npu=2/2, out_npu=2/​2,​ fwd_en=0/0, qid=10/10
 +</​code>​
 +
 +Si ''​npu_state''​ n'est pas égal à 0, le flux est offloadé. Le détail est de la ligne ''​npu_info''​ suivante :
 +<code bash>
 +offload=1/1 for NP1(FA1) sessions.
 +offload=2/2 for NP1(FA2) sessions.
 +offload=3/3 for NP2 sessions.
 +offload=4/4 for NP4 sessions.
 +offload=5/5 for XLR sessions.
 +offload=6/6 for Nplite/​NP4lite sessions.
 +offload=7/7 for XLP sessions.
 +offload=8/8 for NP6 sessions.
 +
 +flag 0x81 means regular traffic.
 +flag 0x82 means IPsec traffic.
 +</​code>​
 +
 +Certaines sessions ne sont pas accélérées,​ la raison est indiquée par le champs ''​no_ofld_reason''​. Par exemple les flux locaux (depuis ou vers le firewall lui-même) apparaissent ainsi :
 +<code bash>
 +npu_state=00000000
 +no_ofld_reason: ​ local
 +</​code>​
 +
 +
 +=====Cas de l'​IPSec=====
  
 Normalement l'​accélération hardware est activée par défaut mais on peut l'​activer (ou la désactiver) pour les tunnels IPSec : Normalement l'​accélération hardware est activée par défaut mais on peut l'​activer (ou la désactiver) pour les tunnels IPSec :
Line 112: Line 259:
   * [[http://​docs-legacy.fortinet.com/​fos50hlp/​50/​index.html#​page/​FortiOS%25205.0%2520Help/​NP4.077.10.html|Configuration VPN IPsec accélérée : NP4 IPsec VPN offloading configuration example]]   * [[http://​docs-legacy.fortinet.com/​fos50hlp/​50/​index.html#​page/​FortiOS%25205.0%2520Help/​NP4.077.10.html|Configuration VPN IPsec accélérée : NP4 IPsec VPN offloading configuration example]]
   * [[http://​kb.fortinet.com/​kb/​documentLink.do?​externalID=FD36203|Ensuring IPSec traffic is offloaded for improved throughput]]   * [[http://​kb.fortinet.com/​kb/​documentLink.do?​externalID=FD36203|Ensuring IPSec traffic is offloaded for improved throughput]]
 +  * [[http://​help.fortinet.com/​fos50hlp/​54/​Content/​FortiOS/​fortigate-hardware-acceleration-52/​npu-diag-commands.htm|Hardware acceleration get and diagnose commands]]
  
informatique/fortinet/offloading.txt · Last modified: 2018/06/19 11:09 by pteu