Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F164717252
D22944.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
24 KB
Referenced Files
None
Subscribers
None
D22944.diff
View Options
Index: head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml
+++ head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml
@@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/firewalls/chapter.xml,v 1.53 2012/04/30 16:15:52 bcr Exp $
- basiert auf: r53425
+ basiert auf: r53486
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@@ -2289,9 +2289,9 @@
$cmd 00999 deny log all from any to any</programlisting>
</sect2>
- <sect2 xml:id="network-natd">
+ <sect2 xml:id="in-kernel-nat">
<info>
- <title><acronym>NAT</acronym> Konfiguration</title>
+ <title>In-Kernel <acronym>NAT</acronym></title>
<authorgroup>
<author>
@@ -2302,6 +2302,16 @@
<contrib>Beigetragen von </contrib>
</author>
</authorgroup>
+
+ <authorgroup>
+ <author>
+ <personname>
+ <firstname>Dries</firstname>
+ <surname>Michiels</surname>
+ </personname>
+ <contrib>Aktualisiert von </contrib>
+ </author>
+ </authorgroup>
</info>
<indexterm>
@@ -2325,58 +2335,50 @@
mit dem internen Netzwerk. Jeder Rechner im internen Netzwerk
sollte eine <link
xlink:href="https://www.ietf.org/rfc/rfc1918.txt">RFC
- 1918</link> konforme Adresse zugewiesen bekommen. Zudem
- muss das Standard-Gateway der Rechner auf die interne
- <acronym>IP</acronym>-Adresse des &man.natd.8;-Systems
- gesetzt werden.</para>
+ 1918</link> konforme Adresse zugewiesen bekommen.</para>
<para>Es ist noch ein wenig Konfiguration nötig, um die
- <acronym>NAT</acronym>-Funktion von
- <application>IPFW</application> zu aktivieren. Wenn das
- System einen angepassten Kernel hat, muss die
- Kernelkonfigurationsdatei die Zeile
- <literal>option IPDIVERT</literal> sowie weitere
- <literal>IPFIREWALL</literal>-Optionen, die in <xref
- linkend="firewalls-ipfw-enable"/> beschrieben sind,
- enthalten.</para>
-
- <para>Um die <acronym>NAT</acronym>-Unterstützung beim Booten
- zu aktivieren, müssen folgende Einträge in
+ In-Kernel <acronym>NAT</acronym>-Funktion von
+ <application>IPFW</application> zu aktivieren. Um die
+ In-Kernel <acronym>NAT</acronym>-Unterstützung beim Booten zu
+ aktivieren, müssen folgende Einträge in
<filename>/etc/rc.conf</filename> vorhanden sein:</para>
- <programlisting>gateway_enable="YES" # enables the gateway
-natd_enable="YES" # enables <acronym>NAT</acronym>
-natd_interface="rl0" # specify interface name of NIC attached to Internet
-natd_flags="-dynamic -m" # -m = preserve port numbers; additional options are listed in &man.natd.8;</programlisting>
+ <programlisting>gateway_enable="YES"
+firewall_enable="YES"
+firewall_nat_enable="YES"</programlisting>
<note>
- <para>Es ist auch möglich eine Konfigurationsdatei zu
- verwenden, welche die Optionen enthält, die an
- &man.natd.8; übergeben werden:</para>
-
- <programlisting>natd_flags="-f /etc/natd.conf"</programlisting>
-
- <para>Die angegebene Datei muss die Konfigurationsoptionen
- enthalten, eine Option pro Zeile. Zum Beispiel:</para>
-
- <programlisting>redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80</programlisting>
-
- <para>Weitere Informationen zu dieser Konfigurationsdatei
- finden Sie in &man.natd.8;.</para>
+ <para>Wenn <literal>firewall_enable</literal> nicht gesetzt
+ ist, <literal>firewall_nat_enable</literal> jedoch schon,
+ hat dies keine Auswirkung, da die
+ <acronym>NAT</acronym>-Implementierung im Kernel nur mit
+ <application>IPFW</application> kompatibel ist.</para>
</note>
- <para>Als nächstes werden die <acronym>NAT</acronym>-Regeln
- hinzugefügt. Wenn die Regeln zustandsorientiert sind, ist die
- Platzierung der <acronym>NAT</acronym>-Regeln sehr wichtig und
- die <literal>skipto</literal>-Aktion wird verwendet. Dies
- erfordert, dass jede Regel über eine eindeutige Nummer
- verfügt, um eindeutige Sprungziele zu erhalten.</para>
+ <para>Wenn der Regelsatz zustandsorientierte Regeln enthält, ist
+ die Position der <acronym>NAT</acronym>-Regel kritisch und die
+ <literal>skipto</literal>-Aktion wird benutzt. Die Aktion
+ <literal>skipto</literal> benötigt eine Regelnummer, damit
+ <application>IPFW</application> weiß, zu welcher Regel es
+ springen muss. Darüber hinaus ist es aufgrund der Architektur
+ von &man.libalias.3;, einer Bibliothek die als Kernelmodul
+ implementiert ist und für das In-Kernel <acronym>NAT</acronym>
+ von <application>IPFW</application> benutzt wird, notwendig,
+ <foreignphrase>TCP segmentation offloading</foreignphrase>
+ (<acronym>TSO</acronym>) zu deaktivieren.
+ <acronym>TSO</acronym> kann pro Netzwerkschnittstelle mit
+ &man.ifconfig.8;, oder systemweit mit &man.sysctl.8;
+ deaktiviert werden. Um <acronym>TSO</acronym> systemweit zu
+ deaktivieren, muss folgende Zeile in
+ <filename>/etc/sysctl.conf</filename> enthalten sein:</para>
- <para>Das folgende Beispiel baut auf dem im vorherigen Abschnitt
+ <programlisting>net.inet.tcp.tso="0"</programlisting>
+
+ <para>Das folgende Beispiel baut auf den im vorherigen Abschnitt
gezeigten Firewall-Relgelsatz auf. Es werden einige neue
Einträge hinzugefügt und bestehende Regeln modifiziert, um
- <acronym>NAT</acronym> zu konfigurieren. Zunächst werden
+ In-Kernel <acronym>NAT</acronym> zu konfigurieren. Zunächst werden
einige Variablen hinzugefügt, darunter Regelnummern, die
<literal>keep-state</literal>-Option und eine Liste mit
<acronym>TCP</acronym>-Ports um die Anzahl der Regeln zu
@@ -2385,24 +2387,74 @@
<programlisting>#!/bin/sh
ipfw -q -f flush
cmd="ipfw -q add"
-skip="skipto 500"
+skip="skipto 1000"
pif=dc0
ks="keep-state"
good_tcpo="22,25,37,53,80,443,110"</programlisting>
+ <para>Danach wird eine <acronym>NAT</acronym>-Instanz
+ konfiguriert. Mit In-Kernel <acronym>NAT</acronym> ist es
+ möglich, mehrere <acronym>NAT</acronym>-Instanzen mit jeweils
+ eigener Konfiguration zu betreiben. In diesem Beispiel wird
+ jedoch nur eine <acronym>NAT</acronym>-Instanz mit der Nummer
+ 1 benötigt. Die Konfiguration nimmt ein paar Argumente und
+ Schalter an, zum Beispiel: <option>if</option>, dass die
+ öffentliche Netzwerkschnittstelle angibt,
+ <option>same_ports</option>, das dafür sorgt, dass Alias-Ports
+ und lokale Portnummern identisch zugeordnet werden,
+ <option>unreg_only</option> führt dazu, dass nur
+ unregistrierte (private) Adressräume von der
+ <acronym>NAT</acronym>-Instanz verarbeitet werden, und
+ <option>reset</option>, was dazu beiträgt, dass eine
+ <acronym>NAT</acronym>-Instanz auch dann erhalten bleibt,
+ wenn sich die öffentliche <acronym>IP</acronym>-Adresse des
+ Rechners ändert. Weitere mögliche Optionen, die an einzelne
+ <acronym>NAT</acronym>-Instanzen übergeben werden können,
+ finden Sie in &man.ipfw.8;. Darüber hinaus ist es aufgrund
+ der zustandsorientierten <acronym>NAT</acronym>-Firewall
+ notwendig, dass übersetzte Pakete zur weiteren Verarbeitung in
+ die Firewall eingespielt werden können, was durch die
+ Deaktivierung des <option>one_pass</option>-Verhaltens beim
+ Start des Firewall-Skripts erreicht werden kann.</para>
+
+ <programlisting>ipfw disable one_pass
+ipfw -q nat 1 config if $pif same_ports unreg_only reset</programlisting>
+
<para>Die <acronym>NAT</acronym>-Regel für eingehende Pakete
wird <emphasis>nach</emphasis> den beiden Regeln, die das
- interne Netzwerk und die Loopback-Schnittstelle erlauben und
- <emphasis>vor</emphasis> der
+ interne Netzwerk und die Loopback-Schnittstelle erlauben, und
+ nach der Reassamble-Regel, aber <emphasis>vor</emphasis> der
<literal>check-state</literal>-Regel eingefügt. Es ist
wichtig, dass die Nummer der <acronym>NAT</acronym>-Regel
(in diesem Beispiel <literal>100</literal>) höher ist, als
- die beiden vorherigen Regeln und niedriger, als die
- <literal>check-state</literal>-Regel:</para>
+ die drei vorherigen Regeln und niedriger, als die
+ <literal>check-state</literal>-Regel. Darüber hinaus wird
+ aufgrund des Verhaltens von In-Kernel <acronym>NAT</acronym>
+ empfohlen, eine Reassamble-Regel kurz vor der ersten
+ <acronym>NAT</acronym>-Regel, aber hinter den Regeln zu
+ platzieren, die den Datenverkehr auf einer vertrauenswürdigen
+ Schnittstelle erlauben.</para>
+ <note>
+ <para>Die Reassamble-Regel wird beim Userland &man.natd.8;
+ nicht benötigt, da die Aktion <literal>divert</literal> von
+ <application>IPFW</application> dies bereits automatisch
+ übernimmt. Dies ist auch in &man.ipfw.8;
+ dokumentiert.</para>
+
+ <para>Beachten Sie, dass die aktuelle
+ <acronym>NAT</acronym>-Instanznummer und
+ <acronym>NAT</acronym>-Regelnummer nicht mit der
+ voreingestellten <acronym>NAT</acronym>-Instanznummer
+ und Regelnummer übereinstimmt, wenn sie mit dem
+ <filename>rc.firewall</filename>-Skript von &os; erstellt
+ wurde.</para>
+ </note>
+
<programlisting>$cmd 005 allow all from any to any via xl0 # exclude LAN traffic
$cmd 010 allow all from any to any via lo0 # exclude loopback traffic
-$cmd 100 divert natd ip from any to any in via $pif # NAT any inbound packets
+$cmd 099 reass all from any to any in # reassamble inbound packets
+$cmd 100 nat 1 ip from any to any in via $pif # NAT any inbound packets
# Allow the packet through if it has an existing entry in the dynamic rules table
$cmd 101 check-state</programlisting>
@@ -2410,12 +2462,18 @@
modifiziert, um Aktionen mit der
<literal>$skipto</literal>-Variable zu erlauben und
anzuzeigen, dass die Prüfung mit der Regel
- <literal>500</literal> fortgesetzt wird. Die sieben Regeln
+ <literal>1000</literal> fortgesetzt wird. Die sieben Regeln
für <acronym>TCP</acronym> wurden durch die Regel
<literal>125</literal> ersetzt, da die sieben erlaubten
ausgehenden Ports in der Variable
<literal>$good_tcp0</literal> enthalten sind.</para>
+ <note>
+ <para>Beachten Sie, dass die Leistung von
+ <application>IPFW</application> weitgehend von der Anzahl
+ der im Regelsatz vorhandenen Regeln bestimmt wird.</para>
+ </note>
+
<programlisting># Authorized outbound packets
$cmd 120 $skip udp from any to x.x.x.x 53 out via $pif $ks
$cmd 121 $skip udp from any to x.x.x.x 67 out via $pif $ks
@@ -2431,19 +2489,19 @@
Regel haben und die Nummer muss über die
<literal>skipto</literal>-Aktion referenziert werden. In
diesem Regelsatz leitet die Regel mit der Nummer
- <literal>500</literal> alle ausgehenden Pakete zur
- Weiterverarbeitung an &man.natd.8; weiter. Die darauf
+ <literal>1000</literal> alle ausgehenden Pakete zur
+ konfigurierten <acronym>NAT</acronym>-Instanz weiter. Die darauf
folgende Regel lässt alle von <acronym>NAT</acronym>
verarbeiteten Pakete passieren.</para>
- <programlisting>$cmd 499 deny log all from any to any
-$cmd 500 divert natd ip from any to any out via $pif # skipto location for outbound stateful rules
-$cmd 510 allow ip from any to any</programlisting>
+ <programlisting>$cmd 999 deny log all from any to any
+$cmd 1000 nat 1 ip from any to any out via $pif # skipto location for outbound stateful rules
+$cmd 1001 allow ip from any to any</programlisting>
<para>In diesem Beispiel steuern die Regeln
<literal>100</literal>, <literal>101</literal>,
- <literal>125</literal>, <literal>500</literal> und
- <literal>510</literal> die Adressübersetzung der ein- und
+ <literal>125</literal>, <literal>1000</literal> und
+ <literal>1001</literal> die Adressübersetzung der ein- und
ausgehende Pakete, so dass immer die private
<acronym>LAN</acronym> <acronym>IP</acronym>-Adresse in der
dynamische Zustandstabelle registriert werden.</para>
@@ -2463,7 +2521,7 @@
Regel zutreffen, werden zwei Aktionen ausgeführt. Zuerst
wird durch die Aktion <literal>keep-state</literal> ein
dynamischer Eintrag in der Statustabelle erstellt und die
- angegebene Aktion <literal>skipto 500</literal> ausgeführt.
+ angegebene Aktion <literal>skipto 1000</literal> ausgeführt.
Als nächstes durchläuft das Paket <acronym>NAT</acronym> und
wird dann an das Internet gesendet. Nachdem dieses Paket am
Webserver angekommen ist, wird dort eine Antwort erzeugt und
@@ -2485,14 +2543,44 @@
<acronym>LAN</acronym> freigegeben. Das Antwortpaket wird
von der Regel <literal>check-state</literal> als Paket einer
aktiven Sitzung erkannt. Das Paket wird dann von Regel
- <literal>500</literal> per <acronym>NAT</acronym>
- verarbeitet, bevor es über die externe Schnittstelle versendet
- wird.</para>
+ <literal>1000</literal> per <acronym>NAT</acronym>
+ verarbeitet, bevor es über die externe Schnittstelle
+ verschickt wird.</para>
+ <note>
+ <para>Der Wechsel vom Userland &man.natd.8; zu In-Kernel
+ <acronym>NAT</acronym> mag zunächst nahtlos erscheinen, aber
+ es gibt einen kleinen Haken. Bei Verwendung des
+ <filename>GENERIC</filename>-Kernels wird
+ <application>IPFW</application> das Kernelmodul
+ <filename>libalias.ko</filename> laden, wenn
+ <literal>firewall_nat_enable</literal> in
+ <filename>rc.conf</filename> aktiviert ist. Das geladene
+ Kernelmodul stellt nur grundlegende
+ <acronym>NAT</acronym>-Funktionalität bereit, während
+ die Userland-Implementierung &man.natd.8; alle
+ Funktionalitäten ohne zusätzliche Konfiguration zur
+ Verfügung stellt. Die gesamte Funktionalität bezieht sich
+ auf die folgenden Kernelmodule, die bei Bedarf zusätzlich
+ zu <filename>libalias.ko</filename> geladen werden können:
+ <filename>alias_cuseeme.ko</filename>,
+ <filename>alias_ftp.ko</filename>,
+ <filename>alias_bbt.ko</filename>,
+ <filename>skinny.ko</filename>, <filename>irc.ko</filename>,
+ <filename>alias_pptp.ko</filename> und
+ <filename>alias_smedia.ko</filename> unter Verwendung der
+ <literal>kld_list</literal> Direktive in
+ <filename>rc.conf</filename>, um die volle Funktionalität
+ der Userland-Implementierung zu erreichen. Wenn ein
+ angepasster Kernel benutzt wird, kann die volle
+ Funktionalität der Userland-Bibliothek im Kernel mit
+ <option>option LIBALIAS</option> gebaut werden.</para>
+ </note>
+
<sect3>
<title>Weiterleitung von Ports</title>
- <para>Der Nachteil von &man.natd.8; ist, dass die Rechner im
+ <para>Der Nachteil von <acronym>NAT</acronym> ist, dass die Rechner im
<acronym>LAN</acronym> nicht aus dem Internet zugänglich
sind. Diese Rechner können zwar ausgehende Verbindungen
zur Außenwelt aufbauen, jedoch keine eingehenden
@@ -2501,7 +2589,7 @@
anbieten möchten, die aus dem Internet erreichbar sein
sollen. In diesem Fall können Sie die Ports, welche über
das Internet erreichbar sein sollen, über die
- &man.natd.8;-Maschine an den Rechner im
+ <acronym>NAT</acronym>-Maschine an den Rechner im
<acronym>LAN</acronym> weiterleiten.</para>
<para>Angenommen es gibt einen <acronym>IRC</acronym>-Server
@@ -2511,39 +2599,42 @@
(<acronym>IRC</acronym>) und 80 (<acronym>HTTP</acronym>)
an die jeweiligen Rechner weitergeleitet werden.</para>
- <para>Die Syntax für <option>-redirect_port</option>
- lautet:</para>
+ <para>Bei In-Kernel <acronym>NAT</acronym> wird die gesamte
+ Konfiguration in der <acronym>NAT</acronym>-Instanz selbst
+ vorgenommen. Alle Optionen, die in einer
+ <acronym>NAT</acronym>-Instanz benutzt werden können, sind
+ in &man.ipfw.8; dokumentiert. Die Syntax für
+ <application>IPFW</application> folgt dabei der von
+ <application>natd</application>. Die Syntax für
+ <option>-redirect_port</option> lautet:</para>
- <programlisting>-redirect_port proto targetIP:targetPORT[-targetPORT]
- [aliasIP:]aliasPORT[-aliasPORT]
- [remoteIP[:remotePORT[-remotePORT]]]</programlisting>
+ <programlisting>redirect_port proto targetIP:targetPORT[-targetPORT]
+ [aliasIP:]aliasPORT[-aliasPORT]
+ [remoteIP[:remotePORT[-remotePORT]]]</programlisting>
<para>Für das obige Beispiel sollten die Argumente wie folgt
aussehen:</para>
- <programlisting>-redirect_port tcp 192.168.0.2:6667 6667
--redirect_port tcp 192.168.0.3:80 80</programlisting>
+ <programlisting>redirect_port tcp 192.168.0.2:6667 6667
+redirect_port tcp 192.168.0.3:80 80</programlisting>
- <para>Damit werden die entsprechenden
- <acronym>TCP</acronym>-Ports an die Rechner im
- <acronym>LAN</acronym> weitergeleitet.</para>
+ <para>Nachdem diese Argumente der Konfiguration der
+ <acronym>NAT</acronym>-Instanz 1 im obigen Regelsatz
+ hinzugefügt wurden, werden die <acronym>TCP</acronym>-Ports
+ an die Rechner im <acronym>LAN</acronym> weitergeleitet, auf
+ denen <acronym>IRC</acronym>- und
+ <acronym>HTTP</acronym>-Dienste laufen.</para>
- <para>Portbereiche können über <option>-redirect_port</option>
+ <programlisting>ipfw -q nat 1 config if $pif same_ports unreg_only reset \
+ redirect_port tcp 192.168.0.2:6667 6667 \
+ redirect_port tcp 192.1683.0.3:80 80</programlisting>
+
+ <para>Portbereiche können über <option>redirect_port</option>
festgelegt werden. Zum Beispiel würde
<replaceable>tcp 192.168.0.2:2000-3000
2000-3000</replaceable> alle Verbindungen auf die Ports
2000 bis 3000 an die Ports 2000 bis 3000 an
Rechner <systemitem>A</systemitem> weiterleiten.</para>
-
- <para>Diese Optionen können über
- <literal>natd_flags=""</literal> in
- <filename>/etc/rc.conf</filename> direkt beim Start an
- &man.natd.8; übergeben werden. Alternativ können die
- Optionen in eine Konfigurationsdatei eingetragen
- werden.</para>
-
- <para>Weitere Konfigurationsmöglichkeiten sind in
- &man.natd.8; beschrieben.</para>
</sect3>
<sect3>
@@ -2552,9 +2643,9 @@
<para>Das Weiterleiten von Adressen ist nützlich, wenn
mehr als eine <acronym>IP</acronym>-Adresse zur Verfügung
steht. Jeder Rechner im <acronym>LAN</acronym> kann über
- &man.natd.8; seine eigene externe
+ &man.ipfw.8; seine eigene externe
<acronym>IP</acronym>-Adresse zugewiesen bekommen.
- &man.natd.8; wird dann den ausgehenden Datenverkehr der
+ <application>IPFW</application> wird dann den ausgehenden Datenverkehr der
Rechner aus dem <acronym>LAN</acronym> mit der
entsprechenden externen <acronym>IP</acronym>-Adresse
umschreiben. Auch der eingehenden Datenverkehr über die
@@ -2568,56 +2659,103 @@
<systemitem class="ipaddress">128.1.1.3</systemitem> zur
Verfügung stehen, kann <systemitem
class="ipaddress">128.1.1.1</systemitem> als externe
- Adresse der &man.natd.8;-Maschine verwendet werden, während
+ Adresse der &man.ipfw.8;-Maschine verwendet werden, während
<systemitem class="ipaddress">128.1.1.2</systemitem> und
<systemitem class="ipaddress">128.1.1.3</systemitem> an
Rechner <systemitem>A</systemitem> und
Rechner <systemitem>B</systemitem> im <acronym>LAN</acronym>
weitergeleitet werden.</para>
- <para>Die Syntax für <option>-redirect_address</option>
- lautet:</para>
+ <para>Die Syntax für <option>redirect_address</option>
+ lautet wie im Folgenden, wobei <literal>localIP</literal>
+ die interne <acronym>IP</acronym>-Adresse des Rechners im
+ <acronym>LAN</acronym>, und <literal>publicIP</literal> die
+ externe <acronym>IP</acronym>-Adresse ist, die dem Rechner
+ im <acronym>LAN</acronym> entspricht.</para>
- <programlisting>-redirect_address localIP publicIP</programlisting>
+ <programlisting>redirect_address localIP publicIP</programlisting>
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>localIP</entry>
- <entry>Die interne <acronym>IP</acronym>-Adresse des
- Rechners im <acronym>LAN</acronym>.</entry>
- </row>
+ <para>Auf das Beispiel bezogen, würden die Argumente so
+ lauten:</para>
- <row>
- <entry>publicIP</entry>
- <entry>Die externe <acronym>IP</acronym>-Adresse für
- den entsprechenden Rechner im
- <acronym>LAN</acronym>.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <programlisting>redirect_address 192.168.0.2 128.1.1.2
+redirect_address 192.168.0.3 128.1.1.3</programlisting>
- <para>Für das obige Beispiel sollten die Argumente wie
- folgt aussehen:</para>
+ <para>Genau wie bei <option>redirect_port</option>, werden
+ diese Argumente in der Konfiguration der
+ <acronym>NAT</acronym>-Instanz gesetzt. Bei der
+ Weiterleitung von Adressen ist keine Portumleitung
+ notwendig, da alle Daten, die auf einer bestimmten
+ <acronym>IP</acronym>-Adresse empfangen werden,
+ weitergeleitet werden.</para>
- <programlisting>-redirect_address 192.168.0.2 128.1.1.2
--redirect_address 192.168.0.3 128.1.1.3</programlisting>
-
- <para>Genau wie bei <option>-redirect_port</option>, werden
- diese Argumente innerhalb der
- <filename>/etc/rc.conf</filename>-Option
- <literal>natd_flags=""</literal> angegeben, oder alternativ
- über eine Konfigurationsdatei. Allerdings müssen beim
- Weiterleiten von Adressen keine Ports umgeleitet werden, da
- der gesamte eingehende Datenverkehr einer bestimmte
- <acronym>IP</acronym>-Adresse weitergeleitet wird.</para>
-
<para>Die externe <acronym>IP</acronym>-Adresse der
- &man.natd.8;-Maschine muss auf der externen Schnittstelle
+ &man.ipfw.8;-Maschine muss auf der externen Schnittstelle
aktiv und mit einem Alias versehen sein. Weitere
- Einzelheiten sind in &man.natd.8; beschrieben.</para>
+ Einzelheiten sind in &man.rc.conf.5;; beschrieben.</para>
+ </sect3>
+
+ <sect3>
+ <title>Userland <acronym>NAT</acronym></title>
+
+ <para>Zunächst sei gesagt, dass &man.natd.8;, die
+ Userland-Implementierung aufwändiger ist als In-Kernel
+ <acronym>NAT</acronym>. Damit &man.natd.8; Pakete
+ übersetzen kann, müssen die Pakete vom Kernel ins
+ Userland und zurück kopiert werden, was zusätzlichen Aufwand
+ mit sich bringt. Dieser Aufwand entfällt bei In-Kernel
+ <acronym>NAT</acronym>.</para>
+
+ <para>Um den Userland <acronym>NAT</acronym>-Daemon
+ &man.natd.8; beim Systemstart zu aktivieren, ist etwas
+ Konfiguration in <filename>/etc/rc.conf</filename> nötig.
+ <option>natd_interface</option> wird auf den Namen der mit
+ dem Internet verbundenen Schnittstelle gesetzt. Das
+ &man.rc.8;-Skript von &man.natd.8; wird selbstständig
+ prüfen, ob eine dynamische <acronym>IP</acronym>-Adresse
+ benutzt wird und sich selbst so konfigurieren, dass es damit
+ umgehen kann.</para>
+
+ <programlisting>gateway_enable="YES"
+natd_enable="YES"
+natd_interface="rl0"</programlisting>
+
+ <para>Generell kann der obige Regelsatz, wie er für In-Kernel
+ <acronym>NAT</acronym> erklärt wurde, auch zusammen mit
+ &man.natd.8; benutzt werden. Die einzigen Ausnahmen sind,
+ dass die Konfiguration der In-Kernel
+ <acronym>NAT</acronym>-Instanz
+ <literal>(ipfw -q nat 1 config ...)</literal> nicht
+ anwendbar ist und die Regeln müssen wie unten beschrieben
+ leicht geändert werden, und Regel 99 wird nicht mehr
+ benötigt, da die <option>divert</option>-Aktion sich um die
+ Fragmentierung kümmert.</para>
+
+ <programlisting>$cmd 100 divert natd ip from any to any in via $pif
+$cmd 1000 divert natd ip from any to any out via $pif</programlisting>
+
+ <para>Um eine Port- oder Adressumleitung zu konfigurieren,
+ wird eine ähnliche Syntax wie bei In-Kernel
+ <acronym>NAT</acronym> verwendet. Anstatt die Konfiguration
+ in unserem Regelsatz-Skript wie bei In-Kernel
+ <acronym>NAT</acronym> anzugeben, wird die Konfiguration von
+ &man.natd.8; am besten in einer Konfigurationsdatei
+ vorgenommen. Dazu muss eine zusätzliche Option in
+ <filename>/etc/rc.conf</filename> übergeben werden, welche
+ den Pfad zur Konfigurationsdatei angibt.</para>
+
+ <programlisting>natd_flags="-f /etc/natd.conf"</programlisting>
+
+ <note>
+ <para>Die Konfigurationsdatei muss eine Liste von Optionen
+ enthalten, eine pro Zeile. Weitere Informationen über die
+ Konfigurationsdatei und mögliche Variablen finden Sie in
+ &man.natd.8;. Hier zwei Beispieleinträge, einer pro
+ Zeile:</para>
+
+ <programlisting>redirect_port tcp 192.168.0.2:6667 6667
+redirect_address 192.168.0.3 128.1.1.3</programlisting>
+ </note>
</sect3>
</sect2>
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Aug 4, 8:10 AM (6 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35954276
Default Alt Text
D22944.diff (24 KB)
Attached To
Mode
D22944: DE handbook: update to r53486 / in-kernel NAT
Attached
Detach File
Event Timeline
Log In to Comment