nftables fertig
This commit is contained in:
parent
1a199b912b
commit
f2d905f45b
|
@ -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},
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Binary file not shown.
|
@ -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}
|
||||||
|
|
Loading…
Reference in New Issue