Update to r44141:

Initial shuffle in prep for technical review of this chapter.

Reviewed by:	bcr
Differential Revision:	https://reviews.freebsd.org/D4798
This commit is contained in:
Bjoern Heidotting 2016-01-12 18:52:55 +00:00
parent 06e14b33ff
commit 4289d16911
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48003

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde:$
basiert auf: r44136
basiert auf: r44141
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@ -123,129 +123,164 @@ xml:id="advanced-networking">
<primary>Subnetz</primary>
</indexterm>
<para>Damit ein Rechner einen anderen über ein Netzwerk finden
kann, muss ein Mechanismus vorhanden sein, der beschreibt, wie
man von einem Rechner zum anderen gelangt. Dieser Vorgang wird
als <firstterm>Routing</firstterm> bezeichnet. Eine
<quote>Route</quote> besteht aus einem definierten Adresspaar:
Einem <quote>Ziel</quote> und einem <quote>Gateway</quote>.
Dieses Paar zeigt an, dass Pakete über das
<emphasis>Gateway</emphasis> zum <emphasis>Ziel</emphasis>
gelangen können. Es gibt drei Arten
von Zielen: Einzelne Rechner (Hosts), Subnetze und das
<quote>Standard</quote>ziel. Die <quote>Standardroute</quote>
<para>Der Mechanismus mit dem ein Rechner einen Rechner über ein
Netzwerk finden kann, wird als <firstterm>Routing</firstterm>
bezeichnet. Eine <quote>Route</quote> besteht aus einem
definierten Adresspaar: Einem <quote>Ziel</quote> und einem
<quote>Gateway</quote>. Die Route zeigt an, dass Pakete über
das <emphasis>Gateway</emphasis> zum <emphasis>Ziel</emphasis>
gelangen können. Es gibt drei Arten von Zielen: Einzelne
Rechner (Hosts), Subnetze und das <quote>Standard</quote>ziel.
Die <quote>Standardroute</quote>
wird verwendet, wenn keine andere Route zutrifft. Außerdem gibt
es drei Arten von Gateways: Einzelne Rechner
(Hosts), Schnittstellen (Interfaces, auch als
<quote>Links</quote> bezeichnet), sowie Ethernet
Hardware-Adressen (<acronym>MAC</acronym>).
</para>
Hardware-Adressen (<acronym>MAC</acronym>). Bekannte Adressen
werden in einer Routingtabelle gespeichert.</para>
<sect2>
<title>Ein Beispiel</title>
<para>Dieser Abschnitt bietet einen Überblick über die Grundlagen
des Routings. Er demonstriert, wie ein &os;-System als
Router konfiguriert werden kann und bietet einige Tipps zur
Fehlerbehebung.</para>
<para>Dieses Beispiel zeigt anhand der Ausgabe von
&man.netstat.1; mehrere Aspekte des Routings:</para>
<sect2 xml:id="network-routing-default">
<title>Grundlagen des Routings</title>
<para>&man.netstat.1; zeigt die Routingtabellen
eines &os;-Systems an:</para>
<screen>&prompt.user; <userinput>netstat -r</userinput>
Routing tables
Destination Gateway Flags Refs Use Netif Expire
Internet:
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGS 37 418 em0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 re0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =&gt;
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0</screen>
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =&gt;
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0
</screen>
<para>Die Einträge in diesem Beispiel sind wie folgt:</para>
<indexterm>
<primary>Defaultroute</primary>
</indexterm>
<variablelist>
<varlistentry>
<term>default</term>
<listitem>
<para>Die erste Zeile gibt die Standardroute an. Wenn
sich der lokale Rechner mit einem entfernten Rechner
verbinden will, wird die Routingtabelle überprüft, um
festzustellen, ob bereits ein bekannter Pfad vorhanden
ist. Gehört dieser entfernte Rechner zu einem Subnetz,
dessen Pfad bereits bekannt ist, dann versucht der
lokale Rechner über diese Schnittstelle eine Verbindung
herzustellen.</para>
<para>Die ersten zwei Zeilen geben die Standardroute, die im
<xref linkend="network-routing-default"/> genauer beschrieben
wird, sowie die <systemitem>localhost</systemitem>
Route an.</para>
<para>Wenn alle bekannten Pfade nicht funktionieren, hat
der lokale Rechner eine letzte Möglichkeit: Die
Standardroute (Defaultroute). Bei dieser Route handelt
es sich um eine spezielle Gateway-Route (gewöhnlich die
einzige im System vorhandene), die im Flags-Feld immer
mit <literal>C</literal> gekennzeichnet ist. Für
Rechner im lokalen Netzwerk ist dieses Gateway das
System, welches eine direkte Verbindung zum Internet
hat.</para>
</listitem>
</varlistentry>
<indexterm>
<primary>Loopback-Gerät</primary>
</indexterm>
<varlistentry>
<term>localhost</term>
<listitem>
<para>Die zweite Zeile zeigt die
<literal>localhost</literal> Route. Das festgelegte
Interface für <literal>localhost</literal> ist
<literal>lo0</literal>
(<literal>Netif</literal>-Spalte), das auch als
loopback-Gerät bekannt ist. Das bedeutet, dass der
gesamte Datenverkehr für dieses Ziel intern bleibt,
anstatt ihn über ein Netzwerk zu versenden.</para>
</listitem>
</varlistentry>
<para>Das in der Routingtabelle für
<literal>localhost</literal> festgelegte Interface
(<literal>Netif</literal>-Spalte)
<filename>lo0</filename>, ist auch als loopback-Gerät
(Prüfschleife) bekannt. Das heißt, dass der ganze
Datenverkehr für dieses Ziel intern bleibt, anstatt ihn über
ein Netzwerk zu versenden.</para>
<varlistentry>
<term>MAC-Adresse</term>
<listitem>
<para>Bei den mit <systemitem
class="etheraddress">0:e0:</systemitem> beginnenden
Adressen handelt es sich um
<acronym>MAC</acronym>-Adressen. &os; identifiziert
Rechner im lokalen Netz, im Beispiel
<systemitem>test0</systemitem>, automatisch und fügt
eine direkte Route über die Ethernet-Schnittstelle
<filename>re0</filename> zu diesem Rechner hinzu.
Außerdem existiert in der Spalte
<literal>Expire</literal> ein Timeout, der verwendet
wird, wenn dieser Rechner in einem definierten Zeitraum
nicht reagiert. Wenn dies passiert, wird die Route zu
diesem Rechner automatisch gelöscht. Rechner im lokalen
Netz werden über das Routing Information Protocol
(<acronym>RIP</acronym>) identifiziert, welches den
kürzesten Weg zu den jeweiligen Rechnern
berechnet.</para>
</listitem>
</varlistentry>
<indexterm>
<primary>Ethernet</primary>
<secondary>MAC-Adresse</secondary>
</indexterm>
<varlistentry>
<term>Subnetz</term>
<listitem>
<para>&os; fügt Subnetzrouten für das lokale Subnetz
hinzu. <systemitem
class="ipaddress">10.20.30.255</systemitem> ist die
Broadcast-Adresse für das Subnetz <systemitem
class="ipaddress">10.20.30</systemitem>, und
<systemitem
class="fqdomainname">example.com</systemitem> ist der
zu diesem Subnetz gehörige Domainname. Das Ziel
<literal>link#1</literal> bezieht sich auf die erste
Ethernet-Karte im Rechner.</para>
<para>Bei den mit
<systemitem class="etheraddress">0:e0:</systemitem>
beginnenden Adressen handelt es sich um Ethernet
Hardwareadressen, die auch als
<acronym>MAC</acronym>-Adressen bekannt sind. &os;
identifiziert Rechner im
lokalen Netz, im Beispiel <systemitem>test0</systemitem>,
automatisch und fügt eine direkte Route über die
Ethernet-Schnittstelle <filename>ed0</filename> zu diesem
Rechner hinzu. Außerdem existiert in der Spalte
<literal>Expire</literal> ein Timeout, der verwendet wird,
wenn dieser Rechner in einem definierten Zeitraum nicht
reagiert. Wenn dies passiert, wird die Route zu diesem
Rechner automatisch gelöscht. Rechner im lokalen Netz werden
über das Routing Information Protocol (<acronym>RIP</acronym>)
identifiziert, welches den kürzesten Weg zu den jeweiligen
Rechnern berechnet.</para>
<para>Routen für Rechner im lokalen Netz und lokale
Subnetze werden automatisch durch den
&man.routed.8; Daemon konfiguriert. Ist dieser nicht
gestartet, existieren nur statische Routen, die vom
Administrator definiert werden.</para>
</listitem>
</varlistentry>
<indexterm>
<primary>Subnetz</primary>
</indexterm>
<varlistentry>
<term>Host</term>
<listitem>
<para>Die Zeile <literal>host1</literal> bezieht sich auf
den Rechner, der durch seine Ethernetadresse bekannt ist.
Da es sich um den sendenden Rechner handelt, verwendet &os;
automatisch das Loopback-Gerät (<filename>lo0</filename>),
anstatt den Datenverkehr über die Ethernet-Schnittstelle
zu senden.</para>
<para>&os; fügt Subnetzrouten für das
lokale Subnetz hinzu.
<systemitem class="ipaddress">10.20.30.255</systemitem> ist
die Broadcast-Adresse für das Subnetz
<systemitem class="ipaddress">10.20.30</systemitem>, und
<systemitem class="fqdomainname">example.com</systemitem> ist
der zu diesem Subnetz gehörige Domainname. Das Ziel
<literal>link#1</literal> bezieht sich auf die erste
Ethernet-Karte im Rechner.</para>
<para>Die zwei <literal>host2</literal> Zeilen repräsentieren
Aliase, die mit &man.ifconfig.8; erstellt wurden. Das Symbol
<literal>=&gt;</literal> nach der
<filename>lo0</filename>-Schnittstelle sagt aus, dass
zusätzlich zur Loopback-Adresse auch ein Alias eingestellt
ist. Solche Routen sind nur auf Rechnern vorhanden, die den
Alias bereitstellen. Alle anderen Rechner im lokalen Netz
haben für solche Routen nur eine
<literal>link#1</literal> Zeile.</para>
</listitem>
</varlistentry>
<para>Routen für Rechner im lokalen Netz und lokale
Subnetze werden automatisch durch den
&man.routed.8; Daemon konfiguriert. Ist dieser nicht
gestartet, existieren nur statische Routen, die vom
Administrator definiert werden.</para>
<para>Die Zeile <literal>host1</literal> bezieht sich auf
den Rechner, der durch seine Ethernetadresse bekannt ist.
Da es sich um den sendenden Rechner handelt, verwendet &os;
automatisch das Loopback-Gerät (<filename>lo0</filename>),
anstatt den Datenverkehr über die Ethernetschnittstelle
zu senden.</para>
<para>Die zwei <literal>host2</literal> Zeilen repräsentieren
Aliase, die mit &man.ifconfig.8; erstellt wurden. Das Symbol
<literal>=&gt;</literal> nach der
<filename>lo0</filename>-Schnittstelle sagt aus, dass
zusätzlich zur Loopback-Adresse auch ein Alias eingestellt
ist. Solche Routen sind nur auf Rechnern vorhanden, die den
Alias bereitstellen. Alle anderen Rechner im lokalen Netz
haben für solche Routen nur eine
<literal>link#1</literal> Zeile.</para>
<para>Die letzte Zeile (Zielsubnetz <literal>224</literal>)
behandelt Multicasting.</para>
<varlistentry>
<term>224</term>
<listitem>
<para>Die letzte Zeile (Zielsubnetz <literal>224</literal>)
behandelt Multicasting.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Schließlich gibt es für Routen noch
verschiedene Attribute, die Sie in der Spalte
@ -314,36 +349,6 @@ host2.example.com link#1 UC 0 0
</tbody>
</tgroup>
</informaltable>
</sect2>
<sect2 xml:id="network-routing-default">
<title>Standardrouten</title>
<indexterm>
<primary>Defaultroute</primary>
</indexterm>
<indexterm>
<primary>Standardroute</primary>
<see>Defaultroute</see>
</indexterm>
<para>Wenn sich der lokale Rechner mit einem entfernten Rechner
verbinden will, wird die Routingtabelle überprüft,
um festzustellen, ob bereits ein bekannter Pfad vorhanden ist.
Gehört dieser entfernte Rechner zu einem Subnetz, dessen
Pfad bereits bekannt ist, dann versucht der lokale Rechner
über diese Schnittstelle eine Verbindung herzustellen.</para>
<para>Wenn alle bekannten Pfade nicht funktionieren, hat der
lokale Rechner eine letzte Möglichkeit: Die
Standardroute (Defaultroute). Bei dieser
Route handelt es sich um eine spezielle Gateway-Route
(gewöhnlich die einzige im System vorhandene), die im
Flags-Feld immer mit <literal>C</literal> gekennzeichnet ist.
Für Rechner im lokalen Netzwerk ist dieses Gateway das
System, welches eine direkte Verbindung zum Internet
hat.</para>
<para>Die Standardroute für einen Rechner, der selbst als
Gateway zur Außenwelt fungiert, ist der Gateway-Rechner des
@ -474,8 +479,21 @@ host2.example.com link#1 UC 0 0
Netzwerk-Routingtabellen finden Sie in &man.route.8;.</para>
</sect2>
<sect2 xml:id="network-dual-homed-hosts">
<title>Rechner mit zwei Heimatnetzen</title>
<sect2 xml:id="network-static-routes">
<info>
<title>Statische Routen einrichten</title>
<authorgroup>
<author>
<personname>
<firstname>Al</firstname>
<surname>Hoang</surname>
</personname>
<contrib>Beigetragen von </contrib>
</author>
</authorgroup>
</info>
<!-- Feb 2004 -->
<indexterm>
<primary>Dual-Homed-Hosts</primary>
@ -505,10 +523,6 @@ host2.example.com link#1 UC 0 0
Schnittstellen weiterleiten kann, muss &os; als Router
konfiguriert werden. Dies wird im nächsten Abschnitt
beschrieben.</para>
</sect2>
<sect2 xml:id="network-dedicated-router">
<title>Einen Router konfigurieren</title>
<indexterm>
<primary>Router</primary>
@ -549,23 +563,6 @@ host2.example.com link#1 UC 0 0
<acronym>BGP</acronym>v4,
<acronym>OSPF</acronym>v2 und andere Protokolle werden
von <package>net/zebra</package> unterstützt.</para>
</sect2>
<sect2 xml:id="network-static-routes">
<info><title>Statische Routen einrichten</title>
<authorgroup>
<author>
<personname>
<firstname>Al</firstname>
<surname>Hoang</surname>
</personname>
<contrib>Beigetragen von </contrib>
</author>
</authorgroup>
</info>
<sect3>
<title>Manuelle Konfiguration</title>
<para>Nehmen wir an, dass wir über folgendes Netzwerk
verfügen:</para>
@ -641,7 +638,6 @@ default 10.0.0.1 UGS 0 49378 xl0
<para>Ab sofort kann <systemitem>RouterA</systemitem> alle Rechner des
Netzwerks <systemitem class="ipaddress">192.168.2.0/24</systemitem>
erreichen.</para>
</sect3>
<sect3>
<title>Routen dauerhaft einrichten</title>