User Tools

Site Tools


informatique:fortinet:offloading

Differences

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

Link to this comparison view

Next revision
Previous revision
informatique:fortinet:offloading [2016/08/31 10:06] – créée pteuinformatique:fortinet:offloading [2025/01/14 11:27] (current) pteu
Line 1: Line 1:
 +======Accélération matérielle sur un Fortigate======
  
-======Accélération hardware sur un Fortigate======+L'**offloading** (ou **accélération matérielle**) est le fait de déléguer certains calculs à des puces spécialisées, afin de 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 FortigateCela 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.
  
-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 :+ 
 +=====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         
 +          port6            10G   Yes         
 +          port2            10G   Yes         
 +          port5            10G   Yes         
 +          port3            10G   Yes         
 +          port8            10G   Yes         
 +          port4            10G   Yes         
 +          port7            10G   Yes         
 +------ ---- -------          ----- ----------  
 +np6_1  0    port10           10G   Yes         
 +          port13           10G   Yes         
 +          port9            10G   Yes         
 +          port14           10G   Yes         
 +          port12           10G   Yes         
 +          port15           10G   Yes         
 +          port11           10G   Yes         
 +          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                                                
 +purge-success                                              
 +search-total    1429081013      634733460       2063814473       
 +search-hit      3594216301      2717149912      2016398917       
 +mcast-tx        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 si elle est prise en charge par le matériel, mais on peut l'activer (ou la désactiver) pour les tunnels IPSec :
 <code bash> <code bash>
 # Pour les tunnels routés cela se configure dans la phase1-interface : # Pour les tunnels routés cela se configure dans la phase1-interface :
Line 19: Line 165:
 </code> </code>
  
-On peut vérifier si un tunnel déjà en fonctionnement est offloader avec la commande :+Il faut noter que dans certains cas précis le tunnel n'est pas offloadé alors qu'on penserait qu'il le soit : [[https://community.fortinet.com/t5/FortiGate/Technical-Tip-Information-about-IPsec-on-loopback-interface-and/ta-p/208677|par exemple un Fortigate en version 7.2.0, équipé de NP7, et avec un VPN configuré sur une interface de loopback]] (mais pas s'il est en 7.2.1 !). 
 + 
 +On peut vérifier si un tunnel déjà en fonctionnement est offloadé avec la commande :
 <code bash> <code bash>
 diagnose vpn tunnel list diagnose vpn tunnel list
Line 112: Line 260:
   * [[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.1472638014.txt.gz · Last modified: 2016/08/31 10:06 by pteu