NSIS-ka
A free C++ implementation of NSIS protocols

Changeset 2346

Show
Ignore:
Timestamp:
11/20/06 12:25:38 (6 years ago)
Author:
stud-matfried
Message:

thesis: Added text and a diagram showing how badly iptables performs.

Location:
natfw-nslp/trunk/thesis
Files:
3 added
1 modified

Legend:

Unmodified
Added
Removed
  • natfw-nslp/trunk/thesis/eval.tex

    r2333 r2346  
    408408 
    409409Der Unterschied zwischen Firewall- und NAT-Knoten bei den 
    410 RESPONSE-Nachrichten fällt wesentlich geringer aus als der zwischen 
     410RESPONSE-Nachrich"-ten fällt wesentlich geringer aus als der zwischen 
    411411Firewall und NAT bei den CREATE-Nachrichten (siehe 
    412412Abbildung~\ref{img:nf_vergleich}). Das ist darauf zurückzuführen, 
     
    424424\end{figure} 
    425425 
    426 % TODO: Testen mit iptables! 
     426 
     427In den bisherigen Messungen wurde I/O soweit wie möglich eliminiert und 
     428deshalb ein wichtiger Aufgabenbereich des NF-Knotens außen vor gelassen: 
     429Die Installation von Policy-Rules auf dem lokalen Knoten durch Verwendung 
     430von iptables. Wie in Kapitel \ref{ch:Entwurf:sec:Implementierung} 
     431beschrieben, existiert abgesehen vom iptables-Kommandozeilentool derzeit keine 
     432offiziell unterstützte Schnittstelle zur Konfiguration des Netfilter-Pakets. 
     433Für jede einzutragende Policy-Rule muss deshalb ein neuer Prozess gestartet 
     434werden, was mit hohem Aufwand verbunden ist. 
     435 
     436Die folgende Messung ist funktional fast identisch mit der Messung aus 
     437Tabelle~\ref{tab:nf_3}, nur dass dieses Mal tatsächlich Policy-Rules 
     438installiert werden. Die Anzahl der Sitzungen (und damit der verarbeiteten 
     439RESPONSE-Nachrichten) blieb auf 1.000 beschränkt, da der 
     440iptables-Implementierung im Kernel bereits bei weniger als 10.000 
     441eingetragenen Regeln der Speicher ausgeht und danach keine neuen 
     442Policy Rules mehr angenommen werden. Aber auch so zeigen sich die 
     443Unterschiede deutlich (siehe Tabelle~\ref{tab:nf_5}). 
     444 
     445\begin{table}[h] 
     446\begin{center} 
     447\begin{tabular}{|l|r|r|r|r|} 
     448\hline 
     449Benchmark & Min & Max & Mean & StdDev \\ 
     450\hline 
     451\hline 
     452Mapping & 18.000 & 84.000 & 24.110 & 3.007 \\ 
     453Deserialisierung & 11.000 & 30.000 & 15.301 & 1.809 \\ 
     454Session-Manager & 3.000 & 17.000 & 4.176 & 1.063 \\ 
     455Protokoll-Automat & 12691.000 & 73946.000 & 42466.151 & 17518.951 \\ 
     456Serialisierung & 13.000 & 227.000 & 15.272 & 7.002 \\ 
     457Gesamt & 12725.000 & 73981.000 & 42501.543 & 17519.440 \\ 
     458\hline 
     459\end{tabular} 
     460\caption{Firewall: Eintragen von Policy-Rules mittels iptables (Werte in $\mu s$)} 
     461\label{tab:nf_5} 
     462\end{center} 
     463\end{table} 
     464 
     465Gegenüber dem Protokoll-Automaten, der das iptables-Kommando aufruft, ist der 
     466Zeitverbrauch der anderen Komponenten zu vernachlässigen. Sie bleiben in den 
     467zuvor beobachteten Größenordnungen, während die Verarbeitungszeit des 
     468Protokoll-Automaten um mehr als das tausendfache ansteigt. Der Grund für 
     469die hohe Standardabweichung zeigt Diagramm~\ref{img:nf_iptables}: Die 
     470Verarbeitungszeit steigt mit der Anzahl der eingetragenen Regeln an. Je 
     471mehr Policy-Rules bereits eingetragen sind, desto größer wird der Aufwand. 
     472 
     473\begin{figure}[h] 
     474\begin{center} 
     475\input{nf_iptables} 
     476\caption{Eintragen von Policy-Rules mittels iptables} 
     477\label{img:nf_iptables} 
     478\end{center} 
     479\end{figure} 
     480 
     481Ein Grund dafür ist die Verwaltung der Firewall-Regeln in Form von 
     482verketteten Listen. Offenbar wird in jedem Fall eine Überprüfung aller 
     483bisherigen Regeln durchgeführt, egal ob eine neue Regel am Anfang oder 
     484am Ende der Liste eingefügt werden soll. Während das Eintragen der ersten 
     485Regel 13 Millisekunden benötigt, schlägt das der tausendsten Regel 
     486bereits mit mehr als 70ms zu Buche. Die iptables-Implementierung hat 
     487also durch den iptables-Aufruf bereits sehr hohe Fixkosten und darüber 
     488hinaus verursacht die Verwaltung der Liste im Kernel linearen Aufwand. 
     489In dieser Form ist ein Einsatz der NATFW-Implementierung auf NF-Knoten 
     490mit hohem Verkehrsaufkommen undenkbar. 
     491 
    427492 
    428493 
     
    479544als NI- oder NR-Knoten, bieten sich einige Optimierungen an, die im Folgenden 
    480545vorgestellt werden: 
     546 
     547% TODO: iptables ist offensichtlich nicht geeignet! 
    481548 
    482549Serialisierung und Deserialisierung sind vergleichsweise teuere Operationen,