Changeset View
Changeset View
Standalone View
Standalone View
head/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.xml
- This file uses an unknown character encoding.
<?xml version="1.0" encoding="iso-8859-1"?> | <?xml version="1.0" encoding="iso-8859-1"?> | ||||
<!-- | <!-- | ||||
The FreeBSD Documentation Project | The FreeBSD Documentation Project | ||||
The FreeBSD German Documentation Project | The FreeBSD German Documentation Project | ||||
$FreeBSD$ | $FreeBSD$ | ||||
$FreeBSDde:$ | $FreeBSDde:$ | ||||
basiert auf: r44142 | basiert auf: r44143 | ||||
--> | --> | ||||
<chapter xmlns="http://docbook.org/ns/docbook" | <chapter xmlns="http://docbook.org/ns/docbook" | ||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" | xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" | ||||
xml:id="advanced-networking"> | xml:id="advanced-networking"> | ||||
<info><title>Weiterführende Netzwerkthemen</title> | <info><title>Weiterführende Netzwerkthemen</title> | ||||
<authorgroup> | <authorgroup> | ||||
<author> | <author> | ||||
▲ Show 20 Lines • Show All 368 Lines • ▼ Show 20 Lines | 224 link#1 UC 0 0</screen> | ||||
</authorgroup> | </authorgroup> | ||||
</info> | </info> | ||||
<!-- Feb 2004 --> | <!-- Feb 2004 --> | ||||
<indexterm> | <indexterm> | ||||
<primary>Dual-Homed-Hosts</primary> | <primary>Dual-Homed-Hosts</primary> | ||||
</indexterm> | </indexterm> | ||||
<para>Ein Dual-Homed-Host ist ein Rechner, der sich in zwei | <para>Ein &os;-System kann als Standard-Gateway bzw. Router für | ||||
verschiedenen Netzwerken befindet.</para> | ein Netzwerk konfiguriert werden, wenn es sich um einen | ||||
Dual-Homed-Host handelt. Ein Dual-Homed-Host ist ein Rechner, | |||||
der sich in mindestens zwei verschiedenen Netzwerken | |||||
befindet. Typischerweise ist jedes Netzwerk über eine | |||||
separate Netzwerkschnittstelle verbunden. Mit | |||||
<acronym>IP</acronym> Aliasing können mehrere Adressen, die | |||||
jeweils zu einem andren Subnetz gehören, an eine physikalische | |||||
Schnittstelle gebunden werden.</para> | |||||
<para>Der Dual-Homed-Host verfügt möglicherweise über zwei | |||||
Ethernetkarten, die jeweils eine Adresse in einem separaten | |||||
Subnetz benutzen. Alternativ hat der Host nur eine | |||||
Ethernetkarte und verwendet &man.ifconfig.8; Aliasing. | |||||
Die erste Möglichkeit wird verwendet, wenn zwei physikalisch | |||||
getrennte Ethernet-Netzwerke vorhanden sind, die zweite, wenn | |||||
es nur ein physikalisches Ethernet-Netzwerk gibt, das aber aus | |||||
zwei logisch getrennten Subnetzen besteht.</para> | |||||
<para>In beiden Fällen werden Routingtabellen erstellt, | |||||
damit jedes Subnetz weiß, dass dieser Rechner als Gateway | |||||
zum anderen Subnetz arbeitet (<foreignphrase>inbound | |||||
route</foreignphrase>). Diese Konfiguration (der | |||||
Gateway-Rechner arbeitet als Router zwischen den Subnetzen) | |||||
wird häufig verwendet, wenn es darum geht Paketfilterung oder | |||||
eine Firewall zu implementieren.</para> | |||||
<para>Damit dieser Rechner Pakete zwischen den beiden | |||||
Schnittstellen weiterleiten kann, muss &os; als Router | |||||
konfiguriert werden. Dies wird im nächsten Abschnitt | |||||
beschrieben.</para> | |||||
<indexterm> | <indexterm> | ||||
<primary>Router</primary> | <primary>Router</primary> | ||||
</indexterm> | </indexterm> | ||||
<para>Ein Netzwerkrouter ist ein System, das Pakete von | <para>Damit Pakete zwischen den Schnittstellen weitergeleitet | ||||
einer Schnittstelle zur anderen weiterleitet. | werden können, muss das &os;-System als Router konfiguriert | ||||
Internetstandards und gute Ingenieurspraxis sorgten | werden. Internetstandards und gute Ingenieurspraxis sorgten | ||||
dafür, dass diese Funktion in &os; in der Voreinstellung | dafür, dass diese Funktion in &os; in der Voreinstellung | ||||
deaktiviert ist. Diese Funktion kann aktiviert werden, | deaktiviert ist. Sie kann jedoch aktiviert werden, | ||||
indem folgende Zeile in &man.rc.conf.5; hinzugefügt | indem folgende Zeile in <filename>/etc/rc.conf</filename> | ||||
wird:</para> | hinzugefügt wird:</para> | ||||
<programlisting>gateway_enable="YES" # Auf YES setzen, wenn der Rechner als Gateway arbeiten soll</programlisting> | <programlisting>gateway_enable="YES" # Auf YES setzen, wenn der Rechner als Gateway arbeiten soll</programlisting> | ||||
<para>Diese Option setzt die &man.sysctl.8;-Variable | <para>Um das Routing zu aktivieren, setzen Sie die | ||||
&man.sysctl.8;-Variable | |||||
<varname>net.inet.ip.forwarding</varname> auf | <varname>net.inet.ip.forwarding</varname> auf | ||||
<literal>1</literal>. Um das Routing zu stoppen, | <literal>1</literal>. Um das Routing zu stoppen, | ||||
muss die Variable auf <literal>0</literal> gesetzt | muss die Variable wieder auf <literal>0</literal> gesetzt | ||||
werden.</para> | werden.</para> | ||||
<indexterm> | <indexterm> | ||||
<primary>BGP</primary> | <primary>BGP</primary> | ||||
</indexterm> | </indexterm> | ||||
<indexterm> | <indexterm> | ||||
<primary>RIP</primary> | <primary>RIP</primary> | ||||
</indexterm> | </indexterm> | ||||
<indexterm> | <indexterm> | ||||
<primary>OSPF</primary> | <primary>OSPF</primary> | ||||
</indexterm> | </indexterm> | ||||
<para>Der neue Router benötigt nun noch Routen, um zu | <para>Die Routingtabelle eines Routers benötigt zusätzliche | ||||
wissen, wohin er den Verkehr senden soll. Wenn das Netzwerk | Routen, damit er weiß, wie er andere Netzwerke erreichen kann. | ||||
einfach genug ist, können statische Routen verwendet werden. | Die Routen können entweder manuell als statische Routen | ||||
&os; verfügt über den Standard BSD-Routing-Daemon | hinzugefügt werden, oder aber der Router lernt automatisch | ||||
&man.routed.8;, der <acronym>RIP</acronym> (sowohl Version 1 | die Routen anhand des Routing-Protokolls. Statische Routen | ||||
als auch Version 2) und <acronym>IRDP</acronym> versteht. | eignen sich für kleine Netzwerke und dieser Abschnitt | ||||
<acronym>BGP</acronym>v4, | beschreibt, wie Sie eine statische Route für ein kleines | ||||
<acronym>OSPF</acronym>v2 und andere Protokolle werden | Netzwerk hinzufügen.</para> | ||||
von <package>net/zebra</package> unterstützt.</para> | |||||
<note> | |||||
<para>In großen Netzwerken sind statische Routen schlecht | |||||
skalierbar. &os; beinhaltet den | |||||
<acronym>BSD</acronym>-Routing-Daemon &man.routed.8;, der | |||||
die Protokolle <acronym>RIP</acronym> (Version 1 und | |||||
Version 2) sowie <acronym>IRDP</acronym> unterstützt. Die | |||||
Routing-Protokolle <acronym>BGP</acronym> und | |||||
<acronym>OSPF</acronym> können über den Port oder das Paket | |||||
<package>net/zebra</package> installiert werden.</para> | |||||
</note> | |||||
<para>Nehmen wir an, dass wir über folgendes Netzwerk | <para>Nehmen wir an, dass wir über folgendes Netzwerk | ||||
verfügen:</para> | verfügen:</para> | ||||
<mediaobject> | <mediaobject> | ||||
<imageobject> | <imageobject> | ||||
<imagedata fileref="advanced-networking/static-routes"/> | <imagedata fileref="advanced-networking/static-routes"/> | ||||
</imageobject> | </imageobject> | ||||
Show All 24 Lines | Internal Net 1 | 192.168.1.2/24 | ||||
</literallayout> | </literallayout> | ||||
</textobject> | </textobject> | ||||
</mediaobject> | </mediaobject> | ||||
<para><systemitem>RouterA</systemitem>, ein &os;-Rechner, dient als | <para><systemitem>RouterA</systemitem>, ein &os;-Rechner, dient als | ||||
Router für den Zugriff auf das Internet. Die | Router für den Zugriff auf das Internet. Die | ||||
Standardroute ist auf <systemitem class="ipaddress">10.0.0.1</systemitem> | Standardroute ist auf <systemitem class="ipaddress">10.0.0.1</systemitem> | ||||
gesetzt, damit ein Zugriff auf das Internet möglich wird. | gesetzt, damit ein Zugriff auf das Internet möglich wird. | ||||
<systemitem>RouterB</systemitem> ist bereits ordnungsgemäß | <systemitem>RouterB</systemitem> ist bereits | ||||
konfiguriert, da er <systemitem | konfiguriert, da er <systemitem | ||||
class="ipaddress">192.168.1.1</systemitem> als Gateway | class="ipaddress">192.168.1.1</systemitem> als | ||||
benutzt.</para> | Standard-Gateway benutzt.</para> | ||||
<para>Die Routingtabelle auf <systemitem>RouterA</systemitem> | <para>Bevor die statischen Routen hinzugefügt werden, sieht | ||||
sieht in etwa so aus:</para> | die Routingtabelle auf <systemitem>RouterA</systemitem> in | ||||
etwa so aus:</para> | |||||
<screen>&prompt.user; <userinput>netstat -nr</userinput> | <screen>&prompt.user; <userinput>netstat -nr</userinput> | ||||
Routing tables | Routing tables | ||||
Internet: | Internet: | ||||
Destination Gateway Flags Refs Use Netif Expire | Destination Gateway Flags Refs Use Netif Expire | ||||
default 10.0.0.1 UGS 0 49378 xl0 | default 10.0.0.1 UGS 0 49378 xl0 | ||||
127.0.0.1 127.0.0.1 UH 0 6 lo0 | 127.0.0.1 127.0.0.1 UH 0 6 lo0 | ||||
10.0.0/24 link#1 UC 0 0 xl0 | 10.0.0/24 link#1 UC 0 0 xl0 | ||||
192.168.1/24 link#2 UC 0 0 xl1</screen> | 192.168.1/24 link#2 UC 0 0 xl1</screen> | ||||
<para>Mit dieser Routingtabelle kann <systemitem>RouterA</systemitem> | <para>Mit dieser Routingtabelle hat | ||||
das interne Netz 2 nicht erreichen, da keine Route zum | <systemitem>RouterA</systemitem> keine Route zum Netzwerk | ||||
Rechner <systemitem | <systemitem class="ipaddress">192.168.2.0/24</systemitem>. | ||||
class="ipaddress">192.168.2.0/24</systemitem> vorhanden | Der folgende Befehl wird das interne Netz 2 in | ||||
ist. Durch den folgenden Befehl wird das interne Netz 2 in | die Routingtabelle von <systemitem>RouterA</systemitem> | ||||
die Routingtabelle des Rechners | aufnehmen und dabei | ||||
<systemitem>RouterA</systemitem> aufgenommen, indem | |||||
<systemitem class="ipaddress">192.168.1.2</systemitem> als | <systemitem class="ipaddress">192.168.1.2</systemitem> als | ||||
nächster Zwischenschritt | nächsten Zwischenschritt | ||||
(<foreignphrase>Hop</foreignphrase>) verwendet wird:</para> | (<foreignphrase>Hop</foreignphrase>) verwenden:</para> | ||||
<screen>&prompt.root; <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput></screen> | <screen>&prompt.root; <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput></screen> | ||||
<para>Ab sofort kann <systemitem>RouterA</systemitem> alle Rechner des | <para>Ab sofort kann <systemitem>RouterA</systemitem> alle Rechner des | ||||
Netzwerks <systemitem class="ipaddress">192.168.2.0/24</systemitem> | Netzwerks <systemitem class="ipaddress">192.168.2.0/24</systemitem> | ||||
erreichen.</para> | erreichen. Allerdings gehen die Routing-Informationen | ||||
verloren, wenn das &os;-System neu gestartet wird. Um | |||||
statische Routen dauerhaft einzurichten, müssen diese in | |||||
<filename>/etc/rc.conf</filename> eingetragen werden:</para> | |||||
<sect3> | <programlisting># Add Internal Net 2 as a persistent static route | ||||
<title>Routen dauerhaft einrichten</title> | |||||
<para>Das obige Beispiel ist für die Konfiguration einer | |||||
statischen Route auf einem laufenden System geeignet. Diese | |||||
Routing-Information gehen jedoch verloren, wenn der | |||||
&os;-Rechner neu gestartet wird. Dauerhaft statische | |||||
Routen können in <filename>/etc/rc.conf</filename> | |||||
eingetragen werden:</para> | |||||
<programlisting># Add Internal Net 2 as a static route | |||||
static_routes="internalnet2" | static_routes="internalnet2" | ||||
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"</programlisting> | route_internalnet2="-net 192.168.2.0/24 192.168.1.2"</programlisting> | ||||
<para>Die Variable <literal>static_routes</literal> enthält | <para>Die Variable <literal>static_routes</literal> enthält | ||||
eine Reihe von Strings, die durch Leerzeichen getrennt sind. | eine Reihe von Strings, die durch Leerzeichen getrennt sind. | ||||
Jeder String bezieht sich auf den Namen einer Route. Dieses | Jeder String bezieht sich auf den Namen einer Route. Die | ||||
Beispiel hat <literal>static_routes</literal>, | Variable <literal>route_internalnet2</literal> enthält die | ||||
<replaceable>internalnet2</replaceable> als einzigen String. | statische Route.</para> | ||||
Die Variable <literal>route_internalnet2</literal> enthält | |||||
alle Konfigurationsparameter für &man.route.8;. Dieses | |||||
Beispiel entspricht dem Befehl:</para> | |||||
<screen>&prompt.root; <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput></screen> | |||||
<para>Wird mit der Variablen <literal>static_routes</literal> | <para>Wird mit der Variablen <literal>static_routes</literal> | ||||
mehr als eine Variable angegeben, so werden auch mehrere | mehr als eine Variable angegeben, so werden auch mehrere | ||||
Routen angelegt. Im folgenden Beispiel werden statische | Routen angelegt. Im folgenden Beispiel werden statische | ||||
Routen zu den Netzwerken <systemitem | Routen zu den Netzwerken <systemitem | ||||
class="ipaddress">192.168.0.0/24</systemitem> und | class="ipaddress">192.168.0.0/24</systemitem> und | ||||
<systemitem class="ipaddress">192.168.1.0/24</systemitem> | <systemitem class="ipaddress">192.168.1.0/24</systemitem> | ||||
angelegt.</para> | angelegt.</para> | ||||
<programlisting>static_routes="net1 net2" | <programlisting>static_routes="net1 net2" | ||||
route_net1="-net 192.168.0.0/24 192.168.0.1" | route_net1="-net 192.168.0.0/24 192.168.0.1" | ||||
route_net2="-net 192.168.1.0/24 192.168.1.1"</programlisting> | route_net2="-net 192.168.1.0/24 192.168.1.1"</programlisting> | ||||
</sect3> | |||||
</sect2> | </sect2> | ||||
<sect2 xml:id="network-routing-propagation"> | <sect2 xml:id="network-routing-troubleshooting"> | ||||
<title>Verteilung von Routing-Informationen</title> | <title>Problembehandlung</title> | ||||
<para>Wenn ein Adressraum einem Netzwerk zugeordnet wird, | <para>Wenn ein Adressraum einem Netzwerk zugeordnet wird, | ||||
konfiguriert der Dienstanbieter seine Routing-Tabellen, so | konfiguriert der Dienstanbieter seine Routing-Tabellen, so | ||||
dass der gesamte Verkehr für das Netzwerk über die Verbindung | dass der gesamte Verkehr für das Netzwerk über die Verbindung | ||||
zu der Seite gesendet wird. Aber woher wissen externe | zu der Seite gesendet wird. Aber woher wissen externe | ||||
Webseiten, dass sie die Daten an das Netzwerk des | Webseiten, dass sie die Daten an das Netzwerk des | ||||
<acronym>ISP</acronym> senden sollen?</para> | <acronym>ISP</acronym> senden sollen?</para> | ||||
<para>Es gibt ein System, das alle zugewiesenen Adressräume | <para>Es gibt ein System, das alle zugewiesenen Adressräume | ||||
verwaltet und die Verbindung zum Internet-Backbone definiert. | verwaltet und die Verbindung zum Internet-Backbone definiert. | ||||
Der <quote>Backbone</quote> ist das Netz aus | Der <quote>Backbone</quote> ist das Netz aus | ||||
Hauptverbindungen, die den Internetverkehr in der ganzen Welt | Hauptverbindungen, die den Internetverkehr in der ganzen Welt | ||||
transportieren und verteilen. Jeder Backbone-Rechner verfügt | transportieren und verteilen. Jeder Backbone-Rechner verfügt | ||||
über eine Kopie von Master-Tabellen, die den Verkehr für ein | über eine Kopie von Master-Tabellen, die den Verkehr für ein | ||||
bestimmtes Netzwerk hierarchisch vom Backbone über eine Kette | bestimmtes Netzwerk hierarchisch vom Backbone über eine Kette | ||||
von Dienstanbietern bis hin zu Ihrer Seite leiten.</para> | von Dienstanbietern bis hin zu einem bestimmten Netzwerk | ||||
leiten.</para> | |||||
<para>Es ist die Aufgabe des Dienstanbieters, den | <para>Es ist die Aufgabe des Dienstanbieters, den | ||||
Backbone-Seiten mitzuteilen, dass sie mit einer Seite | Backbone-Seiten mitzuteilen, dass sie mit einer Seite | ||||
verbunden wurden. Dieser Vorgang wird als | verbunden wurden. Dieser Vorgang wird als | ||||
<emphasis>Bekanntmachung von Routen</emphasis> | <emphasis>Bekanntmachung von Routen</emphasis> | ||||
(<foreignphrase>routing propagation</foreignphrase>) | (<foreignphrase>routing propagation</foreignphrase>) | ||||
bezeichnet.</para> | bezeichnet.</para> | ||||
</sect2> | |||||
<sect2 xml:id="network-routing-troubleshooting"> | |||||
<title>Problembehebung</title> | |||||
<indexterm> | <indexterm> | ||||
<primary>&man.traceroute.8;</primary> | <primary>&man.traceroute.8;</primary> | ||||
</indexterm> | </indexterm> | ||||
<para>Manchmal kommt es zu Problemen bei der Bekanntmachung von | <para>Manchmal kommt es zu Problemen bei der Bekanntmachung von | ||||
Routen, und einige Seiten sind nicht in der Lage, sich zu | Routen, und einige Seiten sind nicht in der Lage, sich zu | ||||
verbinden. Der vielleicht nützlichste Befehl, um | verbinden. Der vielleicht nützlichste Befehl, um | ||||
festzustellen wo das Routing nicht funktioniert, ist | festzustellen wo das Routing nicht funktioniert, ist | ||||
&man.traceroute.8;. Das Programm ist nützlich, falls | <command>traceroute</command>. Das Programm ist nützlich, | ||||
&man.ping.8; fehlschlägt.</para> | falls <command>ping</command> fehlschlägt.</para> | ||||
<para>Rufen Sie &man.traceroute.8; mit dem Namen des entfernten | <para>Rufen Sie <command>traceroute</command> mit dem Namen des | ||||
Rechners auf, mit dem eine Verbindung aufgebaut werden soll. | entfernten Rechners auf, mit dem eine Verbindung aufgebaut | ||||
Die Ausgabe zeigt die Gateway-Rechner entlang des | werden soll. Die Ausgabe zeigt die Gateway-Rechner entlang | ||||
Verbindungspfades an. Schließlich wird der Zielrechner | des Verbindungspfades an. Schließlich wird der Zielrechner | ||||
erreicht oder es kommt zu einem Verbindungsabbruch.</para> | erreicht oder es kommt zu einem Verbindungsabbruch. Weitere | ||||
Informationen finden Sie in &man.traceroute.8;.</para> | |||||
<para>Weitere Informationen finden Sie in | |||||
&man.traceroute.8;.</para> | |||||
</sect2> | </sect2> | ||||
<sect2 xml:id="network-routing-multicast"> | <sect2 xml:id="network-routing-multicast"> | ||||
<title>Multicast-Routing</title> | <title>Multicast-Routing</title> | ||||
<indexterm> | <indexterm> | ||||
<primary>Multicast-Routing</primary> | <primary>Multicast-Routing</primary> | ||||
</indexterm> | </indexterm> | ||||
<indexterm> | <indexterm> | ||||
<primary>Kerneloptionen</primary> | <primary>Kerneloptionen</primary> | ||||
<secondary>MROUTING</secondary> | <secondary>MROUTING</secondary> | ||||
</indexterm> | </indexterm> | ||||
<para>&os; unterstützt sowohl Multicast-Anwendungen als | <para>&os; unterstützt sowohl Multicast-Anwendungen als | ||||
auch Multicast-Routing. Multicast-Anwendungen sind lauffähig, | auch Multicast-Routing. Multicast-Anwendungen benötigen keine | ||||
ohne dass sie gesondert konfiguriert werden müssen. | spezielle Konfiguration, um auf &os; lauffähig zu sein. Damit | ||||
Multicast-Routing muss in der Kernelkonfiguration aktiviert | Multicast-Routing unterstützt wird, muss die folgende Option | ||||
werden:</para> | in der Kernelkonfiguration aktiviert werden:</para> | ||||
<programlisting>options MROUTING</programlisting> | <programlisting>options MROUTING</programlisting> | ||||
<para>Damit der Multicast-Routing-Daemon &man.mrouted.8; Tunnel | <para>Der Multicast-Routing-Daemon | ||||
und <acronym>DVMRP</acronym> aktiviert, muss | <application>mrouted</application> kann als Port oder Paket | ||||
<filename>/etc/mrouted.conf</filename> konfiguriert werden. | <package>net/mroute</package> installiert werden. Dieser | ||||
Weitere Informationen zu Multicast-Routing finden Sie in | Daemon implementiert das <acronym>DVMRP</acronym> | ||||
&man.mrouted.8;.</para> | Multicast-Routing-Protokoll. Um die Tunnel und | ||||
<acronym>DVMRP</acronym> einzurichten, muss | |||||
<filename>/usr/local/etc/mrouted.conf</filename> bearbeitet | |||||
werden. Bei der Installation von | |||||
<application>mrouted</application> wird auch | |||||
<application>map-mbone</application> und | |||||
<application>mrinfo</application> sowie die zugehörigen | |||||
Manualpages installiert, in denen Sie auch | |||||
Konfigurationsbeispiele finden können.</para> | |||||
<note> | <note> | ||||
<para>Der Multicast-Routing-Daemon &man.mrouted.8; verwendet | <para><acronym>DVMRP</acronym> wurde in vielen | ||||
das <acronym>DVMRP</acronym> Multicast Routing Protocol, | Multicast-Installationen weitgehend durch das | ||||
das inzwischen in den meisten Multicast-Installationen | <acronym>PIM</acronym>-Protokoll ersetzt. Weitere | ||||
durch &man.pim.4; ersetzt wurde. &man.mrouted.8; sowie die | Informationen finden Sie in &man.pim.4;.</para> | ||||
damit in Verbindung stehenden Werkzeuge &man.map-mbone.8; | |||||
und &man.mrinfo.8; können über die &os; Ports-Sammlung aus | |||||
<package>net/mrouted</package> installiert werden.</para> | |||||
</note> | </note> | ||||
</sect2> | </sect2> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="network-wireless"> | <sect1 xml:id="network-wireless"> | ||||
<info> | <info> | ||||
<title>Drahtlose Netzwerke</title> | <title>Drahtlose Netzwerke</title> | ||||
▲ Show 20 Lines • Show All 5,142 Lines • Show Last 20 Lines |