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 10:06] – créée pteuinformatique:fortinet:offloading [2018/06/19 09:09] (current) – Cas général pteu
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        
 +          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 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.1472638014.txt.gz · Last modified: 2016/08/31 10:06 by pteu