nftables fertig

This commit is contained in:
Alfred Krohmer 2014-03-02 19:13:08 +01:00
parent 1a199b912b
commit f2d905f45b
5 changed files with 23 additions and 21 deletions

View File

@ -21,7 +21,7 @@
xtick={5000,10000,15000,20000,25000,30000}, xtick={5000,10000,15000,20000,25000,30000},
xmin=200, xmax=30000, xmin=200, xmax=30000,
ymin=0, ymode=log, ymin=0, ymode=log,
xlabel={Anzahl der Firewall-Regeln}, ylabel={PPS}, xlabel={Anzahl der Firewall-Regeln}, ylabel={Pakete pro Sekunde},
tick label style={/pgf/number format/fixed,/pgf/number format/1000 sep = \thinspace}, tick label style={/pgf/number format/fixed,/pgf/number format/1000 sep = \thinspace},
width=15cm, height=10cm, width=15cm, height=10cm,
legend entries={iptables,nftables}, legend entries={iptables,nftables},

View File

@ -62,7 +62,7 @@ size rate pps load
title=Empfänger, title=Empfänger,
xmin=1, xmin=1,
xmax=1500, xmax=1500,
xlabel={Ethernet Frame-Größe}, xlabel={Ethernet Frame-Größe [Byte]},
xtick={100,300,500,700,900,1100,1300,1500}, xtick={100,300,500,700,900,1100,1300,1500},
ymin=0,ymax=1000, ymin=0,ymax=1000,
axis y line*=left, axis y line*=left,
@ -81,7 +81,7 @@ size rate pps load
ymin=0,ymax=500000, ymin=0,ymax=500000,
ytick pos=right, ytick pos=right,
axis y line* = right, axis y line* = right,
ylabel={PPS}, ylabel={Pakete pro Sekunde},
ylabel near ticks, ylabel near ticks,
ytick={100000,200000,300000,400000}, ytick={100000,200000,300000,400000},
y axis style=red!75!black, y axis style=red!75!black,
@ -97,6 +97,7 @@ size rate pps load
axis x line=none, axis x line=none,
ymin=0,ymax=26, ymin=0,ymax=26,
axis y line=none, axis y line=none,
legend entries={CPU-Last},
] ]
\addplot[smooth,green] table[x={size}, y={load}] {\sizerateppsrecv}; \addplot[smooth,green] table[x={size}, y={load}] {\sizerateppsrecv};
\end{axis} \end{axis}

View File

@ -61,7 +61,7 @@ size rate pps
title=Sender, title=Sender,
xmin=1, xmin=1,
xmax=1500, xmax=1500,
xlabel={Ethernet Frame-Größe}, xlabel={Ethernet Frame-Größe [Byte]},
xtick={100,300,500,700,900,1100,1300,1500}, xtick={100,300,500,700,900,1100,1300,1500},
ymin=0,ymax=1000, ymin=0,ymax=1000,
axis y line*=left, axis y line*=left,
@ -80,7 +80,7 @@ size rate pps
ymin=0,ymax=500000, ymin=0,ymax=500000,
ytick pos=right, ytick pos=right,
axis y line* = right, axis y line* = right,
ylabel={PPS}, ylabel={Pakete pro Sekunde},
ylabel near ticks, ylabel near ticks,
ytick={100000,200000,300000,400000}, ytick={100000,200000,300000,400000},
y axis style=red!75!black, y axis style=red!75!black,

View File

@ -24,7 +24,7 @@
\input{theme/theme} \input{theme/theme}
\title{Linux Cluster in Theorie und Praxis} \title{Linux Cluster in Theorie und Praxis}
\subtitle{\texttt{iptables} und \texttt{nftables}} \subtitle{iptables und nftables}
\author{Alfred Krohmer} \author{Alfred Krohmer}
\date{4. März 2014} \date{4. März 2014}
\institute[ZIH TUD]{Zentrum für Informationsdienste und Hochleistungsrechnen -- TU Dresden} \institute[ZIH TUD]{Zentrum für Informationsdienste und Hochleistungsrechnen -- TU Dresden}
@ -82,7 +82,7 @@ Zielstellungen bei der Entwicklung bei \texttt{nftables}
\begin{frame} \begin{frame}
\frametitle{Funktionsweise iptables vs. nftables} \frametitle{Funktionsweise iptables vs. nftables}
iptables: \textbf{iptables:}
\begin{itemize} \begin{itemize}
\item nur für IPv4 \item nur für IPv4
\item andere Tools für andere Protokolle: \item andere Tools für andere Protokolle:
@ -111,11 +111,11 @@ iptables:
\begin{frame} \begin{frame}
\frametitle{Funktionsweise iptables vs. nftables} \frametitle{Funktionsweise iptables vs. nftables}
nftables: \textbf{nftables:}
\begin{itemize} \begin{itemize}
\item ein Tool für alle Protokolle \\ \item ein Tool für alle Protokolle \\
(IPv4, IPv6, Ethernet-Bridging, ARP) (IPv4, IPv6, Ethernet-Bridging, ARP)
\item inheitliche Schnittstelle zum Kernel \item einheitliche Schnittstelle zum Kernel
\item Implementierung als kleine virtuelle Maschine im Kernel \item Implementierung als kleine virtuelle Maschine im Kernel
\item Regeln werden im Userspace zu Byte-Code kompiliert \item Regeln werden im Userspace zu Byte-Code kompiliert
\item Byte-Code kann auf Feldern und Bits der Pakete Operationen ausführen: \item Byte-Code kann auf Feldern und Bits der Pakete Operationen ausführen:
@ -125,7 +125,7 @@ nftables:
\item beliebige Änderungen am Paketinhalt \item beliebige Änderungen am Paketinhalt
\end{itemize} \end{itemize}
\item atomares Ersetzen von Regeln über Netlink-Transaktionen \item atomares Ersetzen von Regeln über Netlink-Transaktionen
\item funktioniert mit bisher verfügbaren Tools noch nicht effektiv \item funktioniert mit bisher verfügbaren Tools noch nicht effizient
\end{itemize} \end{itemize}
\end{frame} \end{frame}
@ -145,7 +145,7 @@ nftables:
\frametitle{Funktionsweise iptables vs. nftables} \frametitle{Funktionsweise iptables vs. nftables}
\begin{itemize} \begin{itemize}
\item \hspace{0.3cm} \item \hspace{0.3cm}
\begin{minipage}{.45\linewidth}% \begin{minipage}{0.97\linewidth}%
\begin{lstlisting} \begin{lstlisting}
payload load 4 offset network header + 16 => reg 1 payload load 4 offset network header + 16 => reg 1
compare reg 1 192.168.0.1 compare reg 1 192.168.0.1
@ -153,7 +153,7 @@ compare reg 1 192.168.0.1
\end{minipage} \end{minipage}
\item \hspace{0.3cm} \item \hspace{0.3cm}
\begin{minipage}{.45\linewidth}% \begin{minipage}{0.97\linewidth}%
\begin{lstlisting} \begin{lstlisting}
payload load 4 offset network header + 16 => reg 1 payload load 4 offset network header + 16 => reg 1
set lookup reg 1 load result in verdict register set lookup reg 1 load result in verdict register
@ -169,9 +169,9 @@ set lookup reg 1 load result in verdict register
\section{Syntax und Tools} \section{Syntax und Tools}
\begin{frame} \begin{frame}
\frametitle{Funktionsweise iptables vs. nftables} \frametitle{Syntax und Tools}
iptables: \textbf{iptables:}
\begin{itemize} \begin{itemize}
\item iptables -A INPUT -p tcp --dport 22 -j LOG \item iptables -A INPUT -p tcp --dport 22 -j LOG
\item iptables -A INPUT -p tcp --dport 22 -j DROP \item iptables -A INPUT -p tcp --dport 22 -j DROP
@ -180,9 +180,9 @@ iptables:
\end{frame} \end{frame}
\begin{frame}[fragile] \begin{frame}[fragile]
\frametitle{Funktionsweise iptables vs. nftables} \frametitle{Syntax und Tools}
nftables: nft \textbf{nftables:} nft
\begin{itemize} \begin{itemize}
\item nft add table filter \item nft add table filter
\item nft add chain filter input "\{ type filter hook input priority 0; \}" \\ \vspace{0.3cm} \item nft add chain filter input "\{ type filter hook input priority 0; \}" \\ \vspace{0.3cm}
@ -190,7 +190,7 @@ nftables: nft
tcp dport 22 log drop \\ \vspace{0.3cm} tcp dport 22 log drop \\ \vspace{0.3cm}
\item als Script: \\ \item als Script: \\
\begin{minipage}{.45\linewidth}% \begin{minipage}{.75\linewidth}%
\begin{lstlisting} \begin{lstlisting}
#!/usr/bin/nft -f #!/usr/bin/nft -f
table filter { table filter {
@ -259,7 +259,7 @@ Testaufbau:
\begin{frame} \begin{frame}
\frametitle{Performance-Vergleich} \frametitle{Ermittlung der optimalen Paketgröße}
\begin{center} \begin{center}
\includegraphics[width=11cm]{../../../bericht/benchmarks/nft-size-load-rate-send.pdf} \includegraphics[width=11cm]{../../../bericht/benchmarks/nft-size-load-rate-send.pdf}
\end{center} \end{center}
@ -267,7 +267,7 @@ Testaufbau:
\begin{frame} \begin{frame}
\frametitle{Performance-Vergleich} \frametitle{Ermittlung der optimalen Paketgröße}
\begin{center} \begin{center}
\includegraphics[width=11cm]{../../../bericht/benchmarks/nft-size-load-rate-recv.pdf} \includegraphics[width=11cm]{../../../bericht/benchmarks/nft-size-load-rate-recv.pdf}
\end{center} \end{center}
@ -275,7 +275,7 @@ Testaufbau:
\begin{frame} \begin{frame}
\frametitle{Performance-Vergleich} \frametitle{Daten- und Paketdurchsatz}
\begin{center} \begin{center}
\includegraphics[width=11cm]{../../../bericht/benchmarks/nft-ipt-drop.pdf} \includegraphics[width=11cm]{../../../bericht/benchmarks/nft-ipt-drop.pdf}
\end{center} \end{center}
@ -283,7 +283,7 @@ Testaufbau:
\begin{frame} \begin{frame}
\frametitle{Performance-Vergleich} \frametitle{Verarbeitungsgeschwindigkeit / Antwortzeit}
\begin{center} \begin{center}
\includegraphics[width=11cm]{../../../bericht/benchmarks/nft-ipt-drop-response.pdf} \includegraphics[width=11cm]{../../../bericht/benchmarks/nft-ipt-drop-response.pdf}
\end{center} \end{center}
@ -307,6 +307,7 @@ Testaufbau:
\item momentan bei mittlerer Regelanzahl noch wesentlich schlechter performant als iptables \item momentan bei mittlerer Regelanzahl noch wesentlich schlechter performant als iptables
\item bisher so gut wie keine Dokumentation verfügbar \item bisher so gut wie keine Dokumentation verfügbar
\end{itemize} \end{itemize}
\item Fazit: (noch) nicht für den Produktiveinsatz bereit
\end{itemize} \end{itemize}
\end{frame} \end{frame}