Routing: Unterschied zwischen den Versionen
K Textersetzung - „Man-Pages“ durch „Man-Page“ |
|||
(29 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
* Routing ist der Prozess | '''Routing''' | ||
* In Netzwerken, die Pakete vermitteln, wählt das Routing die Pfade aus, auf denen die Internet-Protokoll-Pakete (IP-Pakete) von ihrem Ursprung zu ihrem Ziel gelangen | * „Vermittlung“ | ||
* „Leitweglenkung“ | |||
* „Streckenführung“ | |||
* „Verkehrsführung“ | |||
* sowie „leiten“, „senden“, „steuern“ | |||
; [[Telekommunikation]] | |||
* Festlegen von Wegen für Nachrichtenströme | |||
* Nachrichtenübermittlung in [[Rechnernetz]]en | |||
; Routing und Forwarding | |||
* In [[Paketvermittlung|paketvermittelten]] Datennetzen | |||
* ''Routing'' bestimmt den gesamten Weg eines Nachrichtenstroms durch das Netzwerk | |||
* ''Forwarding'' beschreibt den Entscheidungsprozess eines einzelnen Netzknotens, über welchen seiner Nachbarn er eine vorliegende Nachricht weiterleiten soll | |||
Häufig werden Routing und Forwarding unter dem Begriff „Routing“ miteinander vermengt | |||
* in diesem Fall bezeichnet Routing ganz allgemein die Übermittlung von Nachrichten über [[Nachrichtennetz]]e. | |||
* Im Unterschied zu Verteilern (Hubs und Switches) arbeitet das Routing ohne Einschränkungen auch in [[Vermaschtes Netz|vermaschten Netzen]]. | |||
; [[Vermittlungstechnik]] | |||
* Bezeichnet mit dem Begriff Verkehrslenkung (engl.: ''routing'') die Auswahl der Wegeabschnitte beim Aufbau von [[Nachrichtenverbindung]]en, die unter Berücksichtigung von Kriterien, wie bspw. der kürzesten Entfernung, erfolgen kann. | |||
* Handelt es sich um eine [[Leitungsvermittlung|leitungsvermittelte]] Verbindung, wird ein [[Kanal (Informationstheorie)|Übertragungskanal]] für die gesamte Zeit der Verbindung ausgewählt, und alle Nachrichten werden über denselben Weg geleitet. | |||
* Handelt es sich dagegen um eine paketvermittelte [[Datenübertragung]], wird der Weg für jedes Paket von jedem [[Netzwerkknoten|Netzknoten]] neu bestimmt. | |||
; Herangehensweisen | |||
* [[statisches Routing]] | |||
* [[alternatives Routing]] | |||
* [[adaptives Routing]] | |||
; Routing ist der Prozess | |||
* bei dem ein Pfad über ein oder mehrere Netzwerke ausgewählt wird, um Daten zu versenden | |||
* In Netzwerken, die Pakete vermitteln, wählt das Routing die Pfade aus, auf denen die Internet-Protokoll-Pakete (IP-Pakete) von ihrem Ursprung zu ihrem Ziel gelangen | |||
== Routing von Paketen == | == Routing von Paketen == | ||
Beim paketvermittelten Routing, wie es z. B. im [[Internet]] stattfindet, wird dafür gesorgt, dass logisch adressierte [[Datenpaket]]e aus dem Ursprungsnetz herauskommen und in Richtung ihres Zielnetzes weitergeleitet werden. | Beim paketvermittelten Routing, wie es z. B. im [[Internet]] stattfindet, wird dafür gesorgt, dass logisch adressierte [[Datenpaket]]e aus dem Ursprungsnetz herauskommen und in Richtung ihres Zielnetzes weitergeleitet werden. | ||
* Routing ist die Basis des Internets – ohne Routing würde das Internet nicht existieren, und alle Netze wären autonom. | * Routing ist die Basis des Internets – ohne Routing würde das Internet nicht existieren, und alle Netze wären autonom. | ||
* Die Datenpakete können dabei viele verschiedene Zwischennetze auf dem Weg zu ihrem Ziel passieren. | * Die Datenpakete können dabei viele verschiedene Zwischennetze auf dem Weg zu ihrem Ziel passieren. | ||
* Im Internet wird das Routing (üblicherweise) auf der [[Internet Protocol|IP]]-Schicht durchgeführt. | * Im Internet wird das Routing (üblicherweise) auf der [[Internet Protocol|IP]]-Schicht durchgeführt. | ||
* Im ISO/[[OSI-Modell]] ist Routing eine der wesentlichen Aufgaben der dritten Schicht. | * Im ISO/[[OSI-Modell]] ist Routing eine der wesentlichen Aufgaben der dritten Schicht. | ||
[[Hub (Netzwerk)|Hubs]] und [[Switch (Computertechnik)|Switches]] leiten Daten nur im lokalen Netz weiter, wohingegen der Router auch benachbarte Netze kennt. | [[Hub (Netzwerk)|Hubs]] und [[Switch (Computertechnik)|Switches]] leiten Daten nur im lokalen Netz weiter, wohingegen der Router auch benachbarte Netze kennt. | ||
* Dieser Artikel beschreibt Routing auf eine hardwareunabhängige Art. | * Dieser Artikel beschreibt Routing auf eine hardwareunabhängige Art. | ||
* Für Informationen über Router selbst siehe den [[Router]]-Artikel. | * Für Informationen über Router selbst siehe den [[Router]]-Artikel. | ||
Um zu wissen, wohin Pakete gesendet werden sollen, muss man die Struktur des Netzes kennen. | Um zu wissen, wohin Pakete gesendet werden sollen, muss man die Struktur des Netzes kennen. | ||
* In kleinen Netzen kann das Routing sehr einfach sein und wird oft per Hand konfiguriert. | * In kleinen Netzen kann das Routing sehr einfach sein und wird oft per Hand konfiguriert. | ||
* Man spricht dann auch von ''statischem Routing''. | * Man spricht dann auch von ''statischem Routing''. | ||
* Große Netze können eine komplexe [[Topologie (Rechnernetz)|Topologie]] haben, die sich möglicherweise häufig ändert, was unter anderem das Routing zu einer komplexen Angelegenheit macht. | * Große Netze können eine komplexe [[Topologie (Rechnernetz)|Topologie]] haben, die sich möglicherweise häufig ändert, was unter anderem das Routing zu einer komplexen Angelegenheit macht. | ||
* Hier wird in der Regel ein ''dynamisches Routing'' angewandt. | * Hier wird in der Regel ein ''dynamisches Routing'' angewandt. | ||
Da Router die besten Routen im Verhältnis zur Anzahl der zu bewegenden Pakete nur sehr langsam bestimmen können, merken sie sich in einer oder mehreren ''[[Routingtabelle]]n'' die bestmöglichen, teilweise auch weitere Routen zu bestimmten Netzen und die dazugehörigen Routing-[[Metrik (Netzwerk)|Metriken]]. | Da Router die besten Routen im Verhältnis zur Anzahl der zu bewegenden Pakete nur sehr langsam bestimmen können, merken sie sich in einer oder mehreren ''[[Routingtabelle]]n'' die bestmöglichen, teilweise auch weitere Routen zu bestimmten Netzen und die dazugehörigen Routing-[[Metrik (Netzwerk)|Metriken]]. | ||
* Der bestmögliche Weg ist oftmals der kürzeste Weg; er kann zum Beispiel mit dem [[Algorithmus von Dijkstra]] gefunden werden. | * Der bestmögliche Weg ist oftmals der kürzeste Weg; er kann zum Beispiel mit dem [[Algorithmus von Dijkstra]] gefunden werden. | ||
Basierend auf den Einträgen in der oder den Routingtabelle(n) berechnet ein Router eine sogenannte ''Forwardingtabelle''; sie enthält Einträge der Form ''Zieladressmuster''→''Ausgabeschnittstelle''. | Basierend auf den Einträgen in der oder den Routingtabelle(n) berechnet ein Router eine sogenannte ''Forwardingtabelle''; sie enthält Einträge der Form ''Zieladressmuster''→''Ausgabeschnittstelle''. | ||
* In seiner Forwardingtabelle schlägt ein Router dann für jedes neu eingetroffene Paket nach, über welche Schnittstelle er das Paket weiterleiten muss. | * In seiner Forwardingtabelle schlägt ein Router dann für jedes neu eingetroffene Paket nach, über welche Schnittstelle er das Paket weiterleiten muss. | ||
Zeile 69: | Zeile 101: | ||
; Router arbeiten auf Schicht 3 (Vermittlungsschicht/{{lang|en|Network Layer}}) des [[OSI-Modell|OSI-Referenzmodells]]. | ; Router arbeiten auf Schicht 3 (Vermittlungsschicht/{{lang|en|Network Layer}}) des [[OSI-Modell|OSI-Referenzmodells]]. | ||
* Ein Router besitzt mindestens eine ''Schnittstelle'' ({{enS|Interface}}), die [[Rechnernetz|Netze]] anbindet. | * Ein Router besitzt mindestens eine ''Schnittstelle'' ({{enS|Interface}}), die [[Rechnernetz|Netze]] anbindet. | ||
* Schnittstellen können auch virtuell sein, wenn diese z. B. zum Vermitteln von Daten zwischen virtuellen Netzen (VLAN) verwendet werden. | * Schnittstellen können auch virtuell sein, wenn diese z. B. zum Vermitteln von Daten zwischen virtuellen Netzen (VLAN) verwendet werden. | ||
* Beim Eintreffen von [[Datenpaket]]en muss ein Router anhand der OSI-Schicht-3-Zieladresse (z. B. dem Netzanteil der IP-Adresse) den besten Weg zum Ziel und damit die passende Schnittstelle bestimmen, über welche die Daten weiterzuleiten sind. | * Beim Eintreffen von [[Datenpaket]]en muss ein Router anhand der OSI-Schicht-3-Zieladresse (z. B. dem Netzanteil der IP-Adresse) den besten Weg zum Ziel und damit die passende Schnittstelle bestimmen, über welche die Daten weiterzuleiten sind. | ||
* Dazu bedient er sich einer lokal vorhandenen [[Routingtabelle]], die angibt, über welchen Anschluss des Routers oder welchen lokalen oder entfernten Router welches Netz erreichbar ist. | * Dazu bedient er sich einer lokal vorhandenen [[Routingtabelle]], die angibt, über welchen Anschluss des Routers oder welchen lokalen oder entfernten Router welches Netz erreichbar ist. | ||
Zeile 142: | Zeile 174: | ||
= > AND Vergleich fehlgeschlagen = > netzübergreifende Kommunikation = >Router benötigt | = > AND Vergleich fehlgeschlagen = > netzübergreifende Kommunikation = >Router benötigt | ||
<noinclude> | <noinclude> | ||
== Anhang == | == Anhang == | ||
=== Siehe auch === | === Siehe auch === | ||
{{Special:PrefixIndex/Routing}} | {{Special:PrefixIndex/Routing}} | ||
==== Sicherheit ==== | ==== Sicherheit ==== | ||
==== Dokumentation ==== | ==== Dokumentation ==== | ||
===== RFC ===== | ===== RFC ===== | ||
===== Man- | ===== Man-Page ===== | ||
===== Info-Pages ===== | ===== Info-Pages ===== | ||
==== Links ==== | ==== Links ==== | ||
===== Weblinks ===== | ===== Weblinks ===== | ||
# https://de.wikipedia.org/wiki/Routing | # https://de.wikipedia.org/wiki/Routing | ||
Zeile 486: | Zeile 197: | ||
# https://lartc.org/howto/lartc.kernel.html | # https://lartc.org/howto/lartc.kernel.html | ||
[[Kategorie: | [[Kategorie:Routing]] | ||
[[Kategorie:IPv4]] | [[Kategorie:IPv4]] | ||
[[Kategorie:IPv6]] | [[Kategorie:IPv6/Router]] | ||
</noinclude> | </noinclude> |
Aktuelle Version vom 6. November 2024, 12:39 Uhr
Routing - Vermittlung von Datagrammen zwischen Netzwerken auf OSI-Layer 3
Beschreibung
Routing
- „Vermittlung“
- „Leitweglenkung“
- „Streckenführung“
- „Verkehrsführung“
- sowie „leiten“, „senden“, „steuern“
- Festlegen von Wegen für Nachrichtenströme
- Nachrichtenübermittlung in Rechnernetzen
- Routing und Forwarding
- In paketvermittelten Datennetzen
- Routing bestimmt den gesamten Weg eines Nachrichtenstroms durch das Netzwerk
- Forwarding beschreibt den Entscheidungsprozess eines einzelnen Netzknotens, über welchen seiner Nachbarn er eine vorliegende Nachricht weiterleiten soll
Häufig werden Routing und Forwarding unter dem Begriff „Routing“ miteinander vermengt
- in diesem Fall bezeichnet Routing ganz allgemein die Übermittlung von Nachrichten über Nachrichtennetze.
- Im Unterschied zu Verteilern (Hubs und Switches) arbeitet das Routing ohne Einschränkungen auch in vermaschten Netzen.
- Bezeichnet mit dem Begriff Verkehrslenkung (engl.: routing) die Auswahl der Wegeabschnitte beim Aufbau von Nachrichtenverbindungen, die unter Berücksichtigung von Kriterien, wie bspw. der kürzesten Entfernung, erfolgen kann.
- Handelt es sich um eine leitungsvermittelte Verbindung, wird ein Übertragungskanal für die gesamte Zeit der Verbindung ausgewählt, und alle Nachrichten werden über denselben Weg geleitet.
- Handelt es sich dagegen um eine paketvermittelte Datenübertragung, wird der Weg für jedes Paket von jedem Netzknoten neu bestimmt.
- Herangehensweisen
- Routing ist der Prozess
- bei dem ein Pfad über ein oder mehrere Netzwerke ausgewählt wird, um Daten zu versenden
- In Netzwerken, die Pakete vermitteln, wählt das Routing die Pfade aus, auf denen die Internet-Protokoll-Pakete (IP-Pakete) von ihrem Ursprung zu ihrem Ziel gelangen
Routing von Paketen
Beim paketvermittelten Routing, wie es z. B. im Internet stattfindet, wird dafür gesorgt, dass logisch adressierte Datenpakete aus dem Ursprungsnetz herauskommen und in Richtung ihres Zielnetzes weitergeleitet werden.
- Routing ist die Basis des Internets – ohne Routing würde das Internet nicht existieren, und alle Netze wären autonom.
- Die Datenpakete können dabei viele verschiedene Zwischennetze auf dem Weg zu ihrem Ziel passieren.
- Im Internet wird das Routing (üblicherweise) auf der IP-Schicht durchgeführt.
- Im ISO/OSI-Modell ist Routing eine der wesentlichen Aufgaben der dritten Schicht.
Hubs und Switches leiten Daten nur im lokalen Netz weiter, wohingegen der Router auch benachbarte Netze kennt.
- Dieser Artikel beschreibt Routing auf eine hardwareunabhängige Art.
- Für Informationen über Router selbst siehe den Router-Artikel.
Um zu wissen, wohin Pakete gesendet werden sollen, muss man die Struktur des Netzes kennen.
- In kleinen Netzen kann das Routing sehr einfach sein und wird oft per Hand konfiguriert.
- Man spricht dann auch von statischem Routing.
- Große Netze können eine komplexe Topologie haben, die sich möglicherweise häufig ändert, was unter anderem das Routing zu einer komplexen Angelegenheit macht.
- Hier wird in der Regel ein dynamisches Routing angewandt.
Da Router die besten Routen im Verhältnis zur Anzahl der zu bewegenden Pakete nur sehr langsam bestimmen können, merken sie sich in einer oder mehreren Routingtabellen die bestmöglichen, teilweise auch weitere Routen zu bestimmten Netzen und die dazugehörigen Routing-Metriken.
- Der bestmögliche Weg ist oftmals der kürzeste Weg; er kann zum Beispiel mit dem Algorithmus von Dijkstra gefunden werden.
Basierend auf den Einträgen in der oder den Routingtabelle(n) berechnet ein Router eine sogenannte Forwardingtabelle; sie enthält Einträge der Form Zieladressmuster→Ausgabeschnittstelle.
- In seiner Forwardingtabelle schlägt ein Router dann für jedes neu eingetroffene Paket nach, über welche Schnittstelle er das Paket weiterleiten muss.
Funktionsweise
7 | 7 | ||||
6 | 6 | ||||
5 | 5 | ||||
4 | 4 | ||||
3 | 3 | 3 | |||
2 | 2 | 2 | 2 | ||
1 | 1 | 1 | 1 |
- Router arbeiten auf Schicht 3 (Vermittlungsschicht/Vorlage:Lang) des OSI-Referenzmodells.
- Ein Router besitzt mindestens eine Schnittstelle (), die Netze anbindet.
- Schnittstellen können auch virtuell sein, wenn diese z. B. zum Vermitteln von Daten zwischen virtuellen Netzen (VLAN) verwendet werden.
- Beim Eintreffen von Datenpaketen muss ein Router anhand der OSI-Schicht-3-Zieladresse (z. B. dem Netzanteil der IP-Adresse) den besten Weg zum Ziel und damit die passende Schnittstelle bestimmen, über welche die Daten weiterzuleiten sind.
- Dazu bedient er sich einer lokal vorhandenen Routingtabelle, die angibt, über welchen Anschluss des Routers oder welchen lokalen oder entfernten Router welches Netz erreichbar ist.
- Router können Wege auf drei verschiedene Arten lernen und mit diesem Wissen die Routingtabelleneinträge erzeugen.
- direkt mit der Schnittstelle verbundene Netze: Sie werden automatisch in eine Routingtabelle übernommen, wenn ein Interface mit einer IP-Adresse konfiguriert wird und dieses Interface aktiv ist ("link up").
- statische Routen: Diese Wege werden durch einen Administrator eingetragen.
- Sie dienen zum einen der Sicherheit, sind andererseits nur verwaltbar, wenn ihre Zahl begrenzt ist.
- Die Skalierbarkeit ist für diese Methode ein limitierender Faktor.
- dynamische Routen: In diesem Fall lernen Router erreichbare Netze durch ein Routingprotokoll, das Informationen über das Netzwerk und seine Teilnehmer sammelt und an die Mitglieder verteilt.
- Routingtabelle
Die Routingtabelle ist in ihrer Funktion einem Adressbuch vergleichbar, in dem nachgeschlagen wird, ob ein Ziel-IP-Netz bekannt ist, also ob ein Weg zu diesem Netz existiert und, wenn ja, welche lokale Schnittstelle der Router zur Vermittlung der Daten zu diesem verwenden soll.
- Die Routing-Entscheidung erfolgt üblicherweise nach der Signifikanz der Einträge; spezifischere Einträge werden vor weniger spezifischen gewählt.
- Eine vorhandene Default-Route stellt dabei die am wenigsten spezifische Route dar, welche dann genutzt wird, wenn zuvor kein spezifischer Eintrag für das Ziel(-Netz) existiert.
- Bei einem Bezug der gesamten Internet-Routing-Tabelle im Rahmen des Inter-AS-Routing ist es üblich, keine Default-Route vorzuhalten.
- Policy-basiertes Routing
Einige Router beherrschen Policy-basiertes Routing (für strategiebasiertes Routing).
- Dabei wird die Routingentscheidung nicht notwendigerweise auf Basis der Zieladresse (OSI-Layer 3) getroffen, sondern es können auch andere Kriterien des Datenpaketes berücksichtigt werden.
- Hierzu zählen beispielsweise die Quell-IP-Adresse, Qualitätsanforderungen oder Parameter aus höheren Schichten wie TCP oder UDP.
- So können zum Beispiel Pakete, die HTTP-Inhalte (Web) transportieren, einen anderen Weg nehmen als Pakete mit SMTP-Inhalten (Mail).
- Protokolle
Router können nur für Routing geeignete Datenpakete, also von routingfähigen Protokollen, wie IP (IPv4 oder IPv6) oder IPX/SPX, verarbeiten.
- Andere Protokolle, wie die ursprünglich von MS-DOS und MS-Windows benutzten NetBIOS und NetBEUI, die nur für kleine Netze gedacht waren und von ihrem Design her nicht routingfähig sind, werden von einem Router standardmäßig nicht weitergeleitet.
- Es besteht jedoch die Möglichkeit, solche Daten über Tunnel und entsprechende Funktionen, wie Datalink Switching (DLSw), an entfernte Router zu vermitteln und dort dem Ziel zuzustellen.
- Pakete aus diesen Protokollfamilien werden in aller Regel durch Systeme, die auf Schicht 2 arbeiten, also Bridges oder Switches, verarbeitet.
- Professionelle Router können bei Bedarf diese Bridge-Funktionen wahrnehmen und werden Layer-3-Switch genannt.
- Als Schicht-3-System enden am Router alle Schicht-2-Funktionen, darunter die Broadcastdomäne.
- Das ist insbesondere in großen lokalen Netzen wichtig, um das Broadcast-Aufkommen für die einzelnen Teilnehmer eines Subnetzes gering zu halten.
- Sollen allerdings Broadcast-basierte Dienste, wie beispielsweise DHCP, über den Router hinweg funktionieren, muss der Router Funktionen bereitstellen, die diese Broadcasts empfangen, auswerten und gezielt einem anderen System zur Verarbeitung zuführen können (Relay-Agent-Funktion).
- Multiprotokoll-Router
Außerdem sind Ein- und Mehrprotokoll-Router (auch Multiprotokoll-Router) zu unterscheiden.
- Einprotokoll-Router sind nur für ein Netzwerkprotokoll wie IPv4 geeignet und können daher nur in homogenen Umgebungen eingesetzt werden.
- Multiprotokoll-Router beherrschen den gleichzeitigen Umgang mit mehreren Protokollfamilien, wie DECnet, IPX/SPX, SNA, IP und anderen.
- Heute dominieren IP-Router das Feld, da praktisch alle anderen Netzwerkprotokolle nur noch eine untergeordnete Bedeutung haben und, falls sie zum Einsatz kommen, oft auch gekapselt werden können (NetBIOS over TCP/IP, IP-encapsulated IPX).
- Früher hatten Mehrprotokoll-Router in größeren Umgebungen eine wesentliche Bedeutung, damals verwendeten viele Hersteller unterschiedliche Protokollfamilien, daher kam es unbedingt darauf an, dass vom Router mehrere Protokoll-Stacks unterstützt wurden.
- Multiprotokoll-Router finden sich fast ausschließlich in Weitverkehrs- oder ATM-Netzen.
- 'Gerouteten Protokolle' und 'Routing-Protokolle'
Wichtig ist die Unterscheidung zwischen den gerouteten Protokollen (wie Internet Protocol oder IPX) und Routing-Protokollen.
- Routing-Protokolle dienen der Verwaltung des Routing-Vorgangs und der Kommunikation zwischen den Routern, die so ihre Routing-Tabellen austauschen (beispielsweise BGP, RIP oder OSPF).
- Geroutete Protokolle hingegen sind die Protokolle, die den Datenpaketen, die der Router transportiert, zugrunde liegen.
Beispiel
- Wann wird ein Router benötigt?
- Sobald Daten mit einem anderen IP-Netzwerk ausgetauscht werden sollen, wird ein Router benötigt.
- Vorgang
- PC hat ein IP-Adresse + Subnetzmaske
- PC fuhrt mit IP + Subnetzmaske und Vergleich durch
- Ebenfalls und Vergleich von IP + Subnetz des Ziel-Computerts
- Unterschiedliches Ergebnis = Netzübergreifende Kommunikation = Router notwendig
Computer 1
- IP: 192.168.2.28
- Subnetzmaske: 255.255.255.224
AND Vergleich:
11000000.10101000.00000010.00011100 11111111.11111111.11111111.11100000 11000000.10101000.00000010.00000000 = > 192.168.2.0
Computer 2
- IP: 192.168.1.60
- SN: 255.255.255.192
AND Vergleich
11000000.10101000.00000010.00011100 11111111.11111111.11111111.11000000 11000000.10101000.00000001.00000000 = > 192.168.2.1
= > AND Vergleich fehlgeschlagen = > netzübergreifende Kommunikation = >Router benötigt
Anhang
Siehe auch
Sicherheit
Dokumentation
RFC
Man-Page
Info-Pages
Links
Weblinks
- https://de.wikipedia.org/wiki/Routing
- https://curlie.org/World/Deutsch/Computer/Netzwerk/Router_und_Routing/
- Übersicht über Routing-Metriken
- http://www.microhowto.info/howto/enable_forwarding_of_ipv4_packets.html
- https://unix.stackexchange.com/questions/527012/routing-problems-when-activating-ip-forwarding
- https://www.reddit.com/r/linuxquestions/comments/6vu4em/ip_forwarding_not_working/
- https://serverfault.com/questions/596641/linux-ip-forwarding-trouble
- https://lartc.org/howto/lartc.kernel.html