Firewall Performance als Latenz messen

Olivier
Olivier

Die Performance von Firewalls und und Routern lässt sich am besten als Latenzwert in Millisekunden messen.

Jedes Packet welches von einer Firewall bearbeitet wird kommt auf der Firewall auf einem Interface an (Ingress Interface) und verlässt die Firewall auf einem Interface (Egress Interface). Dazwischen wird das Packet von der Firewall bearbeitet. Die Firewall beurteilt das Packet anhand eines Regelsets (Policy) und fällt eine Routing Entscheidung bzgl. dem Egress Interface. Dies benötigt Zeit, welche sich messen lässt.

Dazu muss auf Ingress und Egress Interface jeweils ein Netzwerkdump aufgesetzt werden. Das Packet kann dann über eindeutige Attribute wie z.B.: Source IP, Destination IP, oder die verwendeten Ports identifiziert werden.

Danach lässt sich die Latenzzeit, welche durch Firewallfunktionen entsteht wie folgt berechnen:

Timestamp am Ingress Interface - Timestamp am Egress Interface = Latenzzeit durch Firewallfunktionen.

Beispiel tcpdump

Mit dem tcpdump Parameter -i Interface lässt sich das Interface angeben, die Option Hier ein Beispiel für einen Filter:

tcpdump -i eth0 -ttt -nnn 'host 192.168.1.2  \ 
    and host 173.194.112.127 and port 443'
  • -ttt: Der komplette Timestamp in der Form: 2014-09-08 21:02:40.076728 wird ausgegeben.
  • -nnn: Mit dieser Option werden weder Ports noch Hostnamen aufgelöst.
  • host und port: Diese beiden Filter schränken die tcpdump Ausgabe ein.
  • eth0: Das Interface.

Um die Latenz der Firewall zu messen muss dieser Dump nun auf dem Ingress und dem Egress Interface gestartet werden. Danach können die beiden Timestamps verglichen werden.

Beispiel Fortigate diag sniffer

Der integrierte Sniffer von Fortigate hat die Funktion auf allen Interfaces gleichzeitig zu Sniffen und jeweils den Namen des Interfaces im Dump auszugeben. Das oben beschriebene tcpdump Beispiel könnten man dabei so abbilden:

diagnose sniffer packet any 'host 192.168.1.2  \ 
    and host 173.194.112.127 and port 443' 4 a
  • host und port: Diese beiden Filter schränken die Ausgabe ein.
  • 4: Zeigt nur den Packet Header und zusätzlich noch den Interface Namen an.
  • a: Zeit wird im UTC Format angeben, z.B. 2011‑07‑25 15:27:48.212573.