svn commit: r53713 - head/de_DE.ISO8859-1/books/handbook/firewalls

Bjoern Heidotting <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.doc
Message-ID <[email protected]>
Author: bhd
Date: Sat Dec 28 22:50:26 2019
New Revision: 53713
URL: https://svnweb.freebsd.org/changeset/doc/53713

Log:
  Update to r53486:
  
  Rewrite the NAT chapter to focus on in-kernel NAT, with
  a small section about natd at the end.
  
  Reviewed by:	bcr
  Differential Revision:	https://reviews.freebsd.org/D22944

Modified:
  head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml

Modified: head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml
==============================================================================
--- head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml	Sat Dec 28 21:32:11 2019	(r53712)
+++ head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml	Sat Dec 28 22:50:26 2019	(r53713)
@@ -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 @@ $
 &dollar;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 @@ redirect_port tcp 192.168.0.3:80 80</programlisting>
       <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 &dollar;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>&dollar;cmd 005 allow all from any to any via xl0  # exclude LAN traffic
 &dollar;cmd 010 allow all from any to any via lo0  # exclude loopback traffic
-&dollar;cmd 100 divert natd ip from any to any in via &dollar;pif # NAT any inbound packets
+&dollar;cmd 099 reass all from any to any in       # reassamble inbound packets
+&dollar;cmd 100 nat 1 ip from any to any in via &dollar;pif # NAT any inbound packets
 # Allow the packet through if it has an existing entry in the dynamic rules table
 &dollar;cmd 101 check-state</programlisting>
 
@@ -2410,12 +2462,18 @@ good_tcpo="22,25,37,53,80,443,110"</programlisting>
 	modifiziert, um Aktionen mit der
 	<literal>&dollar;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>&dollar;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
 &dollar;cmd 120 &dollar;skip udp from any to x.x.x.x 53 out via &dollar;pif &dollar;ks
 &dollar;cmd 121 &dollar;skip udp from any to x.x.x.x 67 out via &dollar;pif &dollar;ks
@@ -2431,19 +2489,19 @@ good_tcpo="22,25,37,53,80,443,110"</programlisting>
 	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>&dollar;cmd 499 deny log all from any to any
-&dollar;cmd 500 divert natd ip from any to any out via &dollar;pif # skipto location for outbound stateful rules
-&dollar;cmd 510 allow ip from any to any</programlisting>
+      <programlisting>&dollar;cmd 999 deny log all from any to any
+&dollar;cmd 1000 nat 1 ip from any to any out via &dollar;pif # skipto location for outbound stateful rules
+&dollar;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 @@ good_tcpo="22,25,37,53,80,443,110"</programlisting>
 	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 @@ good_tcpo="22,25,37,53,80,443,110"</programlisting>
 	<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 @@ good_tcpo="22,25,37,53,80,443,110"</programlisting>
 	  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 @@ good_tcpo="22,25,37,53,80,443,110"</programlisting>
 	  (<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 &dollar;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 @@ good_tcpo="22,25,37,53,80,443,110"</programlisting>
 	<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 @@ good_tcpo="22,25,37,53,80,443,110"</programlisting>
 	  <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>&dollar;cmd 100 divert natd ip from any to any in via &dollar;pif
+&dollar;cmd 1000 divert natd ip from any to any out via &dollar;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>

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-doc-all
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.