<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.foxtom.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benhoffmann</id>
	<title>Foxwiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.foxtom.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benhoffmann"/>
	<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php/Spezial:Beitr%C3%A4ge/Benhoffmann"/>
	<updated>2026-07-28T03:06:20Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7695</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7695"/>
		<updated>2020-02-04T10:52:09Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: Benhoffmann verschob die Seite Statisches Routing mit Debian-Linux nach Routing AB18IT8&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mögliche Fehlerquellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Client kann internen Router nicht erreichen&lt;br /&gt;
* Der Switch verwendet VLAN und leitet nicht an die Ports weiter &lt;br /&gt;
&lt;br /&gt;
Client kann öffentl.Router nicht erreichen &lt;br /&gt;
* Gateways im Router checken&lt;br /&gt;
* Routen im Router checken&lt;br /&gt;
* Firewall im Router checken &lt;br /&gt;
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&lt;br /&gt;
** Überprüfe NAT-Einstellungen&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7694</id>
		<title>Teams/Ab18it09/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7694"/>
		<updated>2020-02-04T10:49:58Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Einführung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einführung ==&lt;br /&gt;
&lt;br /&gt;
Auf dem folgenden Plan sieht man das Zielnetzwerk des Raumes 102.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Netzwerkplan.jpg|mini]]&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel wird die Konfiguration am Beispiel des Netzes 10.1.0.0 durchgeführt.&lt;br /&gt;
Im folgenden werden folgende Begriffe verwendet: &lt;br /&gt;
* Öffentlicher Router -&amp;gt; 10.10.0.1&lt;br /&gt;
* Interner Router -&amp;gt; 10.1.0.1 (interne Schnittstelle) und 10.10.1.1 (externe Schnittstelle)&lt;br /&gt;
* Client -&amp;gt; 10.1.0.100&lt;br /&gt;
&lt;br /&gt;
== Konfiguration am internen Router ==&lt;br /&gt;
===physikalische Konfiguration===&lt;br /&gt;
Der interne Router sollte idealerweise zwei Netzwerkkarten besitzen und ein frisches Linux installiert haben. Wir haben Debian verwendet. (Anm.: Es kann auch mit nur einer Netzwerkkarte betrieben werden.) Die Verkabelung sollte wie auf dem Plan realisiert werden.&lt;br /&gt;
&lt;br /&gt;
===Vorbereitung===&lt;br /&gt;
Zunächst sollte der NetworkManager deaktiviert werden, da wir nicht mit diesem arbeiten (dieser arbeitet vorwiegend auf grafischer Ebene). &lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
Nun ist auch kein DNS Server mehr eingestellt. &lt;br /&gt;
Es sollte also der DNS zu dem DNS-Server im Netzwerk eingestellt werden. (Das ist natürlich nur sinnvoll, wenn der DNS bereits korrekt aufgesetzt und aktiv ist). &lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;quot;10.10.0.4&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch 8.8.8.8 eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===IP Forwarding aktivieren===&lt;br /&gt;
&lt;br /&gt;
Der interne Router soll die Pakete von einer Netzwerkkarte zur anderen weiterleiten. &lt;br /&gt;
Dies ist das eigentliche &amp;quot;Routing&amp;quot; und verbindet zwei verschiedene Netze.&lt;br /&gt;
In unserem Beispiel das Netz 10.1.0.1 (interne Schnittstelle) und 10.10.0.1 (externe Schnittstelle).&lt;br /&gt;
&lt;br /&gt;
Diese Funktion nennt sich &#039;&#039;&#039;IP Forwarding&#039;&#039;&#039;. Sie befindet sich in der sysctl.conf.&lt;br /&gt;
 # echo &amp;quot;net.ipv4.ip_forward=1&amp;quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
(Anm.:Diese Zeile befindet sich nun zweimal in der Datei. Allerdings ist die erste Variante auskommentiert und somit deaktiviert)&lt;br /&gt;
&lt;br /&gt;
Nun die Konfiguration neu laden&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
===Interfaces einstellen===&lt;br /&gt;
&lt;br /&gt;
Zunächst müssen wir die Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
Wir sehen neben der lo:Loopback Adresse die Bezeichnungen der Netzwerkkarten (z.B. enp0s6). Daneben steht UP oder DOWN. Dies zeigt i.d.R. an, ob ein Kabel eingesteckt ist und Verbindung zur Gegenstelle hat. Es kann also durch einfaches ein- und ausstecken des Kabels ermittelt werden, welche Netzwerkkarte welchen Namen trägt. Alternativ kann der Name auch über die MAC Adresse bestimmt werden. &lt;br /&gt;
&lt;br /&gt;
In unserem Beispiel ist enp0s6 die externe Schnittstelle am internen Router und enp1s6 die interne Schnittstelle am internen Router. &lt;br /&gt;
&lt;br /&gt;
Nun muss die Interfaces Datei eingestellt werden. Dabei müssen wir dem internen Router auf der internen Schnittstelle (enp1s6) eine IP des internen Netzes geben (in unserem Beispiel 10.1.0.1). Auf der externen Schnittstelle (enp0s6) benötigt er eine externe IP (10.10.1.1.). Außerdem muss auf der externen Schnittstelle das Gateway des öffentlichen Routers eingetragen werden, denn alle Pakete auf beiden Netzwerkkarten sollen hierhin weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 auto enp1s6&lt;br /&gt;
 iface enp1s6 inet static&lt;br /&gt;
            address 10.1.0.1/16&lt;br /&gt;
 auto enp0s6&lt;br /&gt;
 iface enp0s6 inet static&lt;br /&gt;
            address 10.10.1.1/16&lt;br /&gt;
            gateway 10.10.0.1&lt;br /&gt;
&lt;br /&gt;
Anschließend die neue Konfiguration laden :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
==Öffentlichen Router einstellen==&lt;br /&gt;
===Gateway einrichten===&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.10.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Das Login erfolgt einfach, indem man über den Browser die IP aufruft.&lt;br /&gt;
Unter System kann nun ein Gateway hinzugefügt werden. Wir müssen dem öffentlichen Router sagen, dass der interne Router ein Gateway ist (das sich also dahinter ein Netz befindet). Dieses Gateway sollte in der Konfiguration eingetragen sein: &lt;br /&gt;
&lt;br /&gt;
 router01 	LAN 	10.10.1.1 	&lt;br /&gt;
&lt;br /&gt;
===Route einrichten===&lt;br /&gt;
Nun muss eine Route mit diesem Gateway eingerichtet werden um dem öffentlichen Router zu sagen, welches Netz sich hinter diesem Gateway verbirgt. Diese Route sollte in der Konfiguration eingetragen sein :&lt;br /&gt;
 &lt;br /&gt;
 10.1.0.0/16	router01 - 10.10.1.1	Route Netz 1&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen auch die anderen Routen zu den anderen Netzen eingetragen sein. Am Ende sollten diese Routen eingetragen sein :&lt;br /&gt;
 10.1.0.0/16	router01 - 10.10.1.1	&lt;br /&gt;
 10.2.0.0/16	router02 - 10.10.2.1	&lt;br /&gt;
 10.3.0.0/16	router03 - 10.10.3.1	 	&lt;br /&gt;
&lt;br /&gt;
===Routing auf gleicher Schnittstelle aktivieren===&lt;br /&gt;
Nun müssen wir den Router anweisen, dass er verschiedene Netze auf einer Schnittstelle routet (sollte der öffentliche Router für jedes Netzwerk eine Netzwerkkarte besitzen ist dies nicht nötig).&lt;br /&gt;
Dazu setzen wir unter Firewall/Einstellungen/Erweitert das Häkchen bei &amp;quot;Filterung statischer Routen &amp;gt; Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Auch Subnetze ins Internet lassen===&lt;br /&gt;
Zu guter letzt müssen wir dem Router sagen, dass er auch andere Subnetze ins Internet lassen soll. Das erreichen wir, indem wir unter Firewall/Regeln/LAN eine neue Regel hinzufügen, indem wir jegliche IP&#039;s (und nicht nur das LAN) zulassen. Diese Regel sollte am Ende so aussehen &lt;br /&gt;
 IPv4 * 	* 	* 	* 	* 	GW_WAN 	* 	&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
Die Konfigurationen können an den jeweiligen Punkten des Netzwerkes getestet werden.&lt;br /&gt;
Folgende Befehle sind hilfreich :&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping 10.10.0.1(Erreichbarkeit des öffentlichen Routers)&lt;br /&gt;
 ping 10.10.1.1  (Erreichbarkeit der externen Schnittstelle des internen Routers)&lt;br /&gt;
 ping 10.1.0.1  (Erreichbarkeit der internen Schnittstelle des internen Routers)&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
=== Debugging ===&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp0s6 &lt;br /&gt;
&lt;br /&gt;
intern :  enp1s6&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.10.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp1s6&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske, VLAN am Switch o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp0s6&amp;lt;/code&amp;gt; ausführen und schauen ob ein Ping vom  dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.10.0.1). Testweise können auch andere Rechner im 10.10 Netz angepingt werden.&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am öffentlichen Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mögliche Fehlerquellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Client kann internen Router nicht erreichen&lt;br /&gt;
* Der Switch verwendet VLAN und leitet nicht an die Ports weiter &lt;br /&gt;
&lt;br /&gt;
Client kann öffentl.Router nicht erreichen &lt;br /&gt;
* Gateways im Router checken&lt;br /&gt;
* Routen im Router checken&lt;br /&gt;
* Firewall im Router checken &lt;br /&gt;
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&lt;br /&gt;
** Firewall Regeln für Subnetze aktivieren&lt;br /&gt;
&lt;br /&gt;
===Known-Issues===&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7692</id>
		<title>Teams/Ab18it09/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7692"/>
		<updated>2020-02-04T10:47:44Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorbereitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einführung ==&lt;br /&gt;
&lt;br /&gt;
Auf dem folgenden Plan sieht man das Zielnetzwerk des Raumes 102.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Netzwerkplan.jpg|mini]]&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel wird die Konfiguration am Beispiel des Netzes 10.1.0.0 durchgeführt.&lt;br /&gt;
Im folgenden werden folgende Begriffe verwendet: &lt;br /&gt;
* Öffentlicher Router -&amp;gt; 10.10.0.1&lt;br /&gt;
* Interner Router -&amp;gt; 10.1.0.1 (interne Schnittstelle) und 10.10.0.1 (externe Schnittstelle)&lt;br /&gt;
* Client -&amp;gt; 10.1.0.100&lt;br /&gt;
&lt;br /&gt;
== Konfiguration am internen Router ==&lt;br /&gt;
===physikalische Konfiguration===&lt;br /&gt;
Der interne Router sollte idealerweise zwei Netzwerkkarten besitzen und ein frisches Linux installiert haben. Wir haben Debian verwendet. (Anm.: Es kann auch mit nur einer Netzwerkkarte betrieben werden.) Die Verkabelung sollte wie auf dem Plan realisiert werden.&lt;br /&gt;
&lt;br /&gt;
===Vorbereitung===&lt;br /&gt;
Zunächst sollte der NetworkManager deaktiviert werden, da wir nicht mit diesem arbeiten (dieser arbeitet vorwiegend auf grafischer Ebene). &lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
Nun ist auch kein DNS Server mehr eingestellt. &lt;br /&gt;
Es sollte also der DNS zu dem DNS-Server im Netzwerk eingestellt werden. (Das ist natürlich nur sinnvoll, wenn der DNS bereits korrekt aufgesetzt und aktiv ist). &lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;quot;10.10.0.4&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch 8.8.8.8 eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===IP Forwarding aktivieren===&lt;br /&gt;
&lt;br /&gt;
Der interne Router soll die Pakete von einer Netzwerkkarte zur anderen weiterleiten. &lt;br /&gt;
Dies ist das eigentliche &amp;quot;Routing&amp;quot; und verbindet zwei verschiedene Netze.&lt;br /&gt;
In unserem Beispiel das Netz 10.1.0.1 (interne Schnittstelle) und 10.10.0.1 (externe Schnittstelle).&lt;br /&gt;
&lt;br /&gt;
Diese Funktion nennt sich &#039;&#039;&#039;IP Forwarding&#039;&#039;&#039;. Sie befindet sich in der sysctl.conf.&lt;br /&gt;
 # echo &amp;quot;net.ipv4.ip_forward=1&amp;quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
(Anm.:Diese Zeile befindet sich nun zweimal in der Datei. Allerdings ist die erste Variante auskommentiert und somit deaktiviert)&lt;br /&gt;
&lt;br /&gt;
Nun die Konfiguration neu laden&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
===Interfaces einstellen===&lt;br /&gt;
&lt;br /&gt;
Zunächst müssen wir die Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
Wir sehen neben der lo:Loopback Adresse die Bezeichnungen der Netzwerkkarten (z.B. enp0s6). Daneben steht UP oder DOWN. Dies zeigt i.d.R. an, ob ein Kabel eingesteckt ist und Verbindung zur Gegenstelle hat. Es kann also durch einfaches ein- und ausstecken des Kabels ermittelt werden, welche Netzwerkkarte welchen Namen trägt. Alternativ kann der Name auch über die MAC Adresse bestimmt werden. &lt;br /&gt;
&lt;br /&gt;
In unserem Beispiel ist enp0s6 die externe Schnittstelle am internen Router und enp1s6 die interne Schnittstelle am internen Router. &lt;br /&gt;
&lt;br /&gt;
Nun muss die Interfaces Datei eingestellt werden. Dabei müssen wir dem internen Router auf der internen Schnittstelle (enp1s6) eine IP des internen Netzes geben (in unserem Beispiel 10.1.0.1). Auf der externen Schnittstelle (enp0s6) benötigt er eine externe IP (10.10.1.1.). Außerdem muss auf der externen Schnittstelle das Gateway des öffentlichen Routers eingetragen werden, denn alle Pakete auf beiden Netzwerkkarten sollen hierhin weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 auto enp1s6&lt;br /&gt;
 iface enp1s6 inet static&lt;br /&gt;
            address 10.1.0.1/16&lt;br /&gt;
 auto enp0s6&lt;br /&gt;
 iface enp0s6 inet static&lt;br /&gt;
            address 10.10.1.1/16&lt;br /&gt;
            gateway 10.10.0.1&lt;br /&gt;
&lt;br /&gt;
Anschließend die neue Konfiguration laden :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
==Öffentlichen Router einstellen==&lt;br /&gt;
===Gateway einrichten===&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.10.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Das Login erfolgt einfach, indem man über den Browser die IP aufruft.&lt;br /&gt;
Unter System kann nun ein Gateway hinzugefügt werden. Wir müssen dem öffentlichen Router sagen, dass der interne Router ein Gateway ist (das sich also dahinter ein Netz befindet). Dieses Gateway sollte in der Konfiguration eingetragen sein: &lt;br /&gt;
&lt;br /&gt;
 router01 	LAN 	10.10.1.1 	&lt;br /&gt;
&lt;br /&gt;
===Route einrichten===&lt;br /&gt;
Nun muss eine Route mit diesem Gateway eingerichtet werden um dem öffentlichen Router zu sagen, welches Netz sich hinter diesem Gateway verbirgt. Diese Route sollte in der Konfiguration eingetragen sein :&lt;br /&gt;
 &lt;br /&gt;
 10.1.0.0/16	router01 - 10.10.1.1	Route Netz 1&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen auch die anderen Routen zu den anderen Netzen eingetragen sein. Am Ende sollten diese Routen eingetragen sein :&lt;br /&gt;
 10.1.0.0/16	router01 - 10.10.1.1	&lt;br /&gt;
 10.2.0.0/16	router02 - 10.10.2.1	&lt;br /&gt;
 10.3.0.0/16	router03 - 10.10.3.1	 	&lt;br /&gt;
&lt;br /&gt;
===Routing auf gleicher Schnittstelle aktivieren===&lt;br /&gt;
Nun müssen wir den Router anweisen, dass er verschiedene Netze auf einer Schnittstelle routet (sollte der öffentliche Router für jedes Netzwerk eine Netzwerkkarte besitzen ist dies nicht nötig).&lt;br /&gt;
Dazu setzen wir unter Firewall/Einstellungen/Erweitert das Häkchen bei &amp;quot;Filterung statischer Routen &amp;gt; Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Auch Subnetze ins Internet lassen===&lt;br /&gt;
Zu guter letzt müssen wir dem Router sagen, dass er auch andere Subnetze ins Internet lassen soll. Das erreichen wir, indem wir unter Firewall/Regeln/LAN eine neue Regel hinzufügen, indem wir jegliche IP&#039;s (und nicht nur das LAN) zulassen. Diese Regel sollte am Ende so aussehen &lt;br /&gt;
 IPv4 * 	* 	* 	* 	* 	GW_WAN 	* 	&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
Die Konfigurationen können an den jeweiligen Punkten des Netzwerkes getestet werden.&lt;br /&gt;
Folgende Befehle sind hilfreich :&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping 10.10.0.1(Erreichbarkeit des öffentlichen Routers)&lt;br /&gt;
 ping 10.10.1.1  (Erreichbarkeit der externen Schnittstelle des internen Routers)&lt;br /&gt;
 ping 10.1.0.1  (Erreichbarkeit der internen Schnittstelle des internen Routers)&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
=== Debugging ===&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp0s6 &lt;br /&gt;
&lt;br /&gt;
intern :  enp1s6&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.10.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp1s6&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske, VLAN am Switch o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp0s6&amp;lt;/code&amp;gt; ausführen und schauen ob ein Ping vom  dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.10.0.1). Testweise können auch andere Rechner im 10.10 Netz angepingt werden.&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am öffentlichen Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mögliche Fehlerquellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Client kann internen Router nicht erreichen&lt;br /&gt;
* Der Switch verwendet VLAN und leitet nicht an die Ports weiter &lt;br /&gt;
&lt;br /&gt;
Client kann öffentl.Router nicht erreichen &lt;br /&gt;
* Gateways im Router checken&lt;br /&gt;
* Routen im Router checken&lt;br /&gt;
* Firewall im Router checken &lt;br /&gt;
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&lt;br /&gt;
** Firewall Regeln für Subnetze aktivieren&lt;br /&gt;
&lt;br /&gt;
===Known-Issues===&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7690</id>
		<title>Teams/Ab18it09/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7690"/>
		<updated>2020-02-04T10:47:25Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einführung ==&lt;br /&gt;
&lt;br /&gt;
Auf dem folgenden Plan sieht man das Zielnetzwerk des Raumes 102.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Netzwerkplan.jpg|mini]]&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel wird die Konfiguration am Beispiel des Netzes 10.1.0.0 durchgeführt.&lt;br /&gt;
Im folgenden werden folgende Begriffe verwendet: &lt;br /&gt;
* Öffentlicher Router -&amp;gt; 10.10.0.1&lt;br /&gt;
* Interner Router -&amp;gt; 10.1.0.1 (interne Schnittstelle) und 10.10.0.1 (externe Schnittstelle)&lt;br /&gt;
* Client -&amp;gt; 10.1.0.100&lt;br /&gt;
&lt;br /&gt;
== Konfiguration am internen Router ==&lt;br /&gt;
===physikalische Konfiguration===&lt;br /&gt;
Der interne Router sollte idealerweise zwei Netzwerkkarten besitzen und ein frisches Linux installiert haben. Wir haben Debian verwendet. (Anm.: Es kann auch mit nur einer Netzwerkkarte betrieben werden.) Die Verkabelung sollte wie auf dem Plan realisiert werden.&lt;br /&gt;
&lt;br /&gt;
===Vorbereitung===&lt;br /&gt;
Zunächst sollte der NetworkManager deaktiviert werden, da wir nicht mit diesem arbeiten (dieser arbeitet vorwiegend auf grafischer Ebene). &lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
Nun ist auch kein DNS Server mehr eingestellt. &lt;br /&gt;
Es sollte also der DNS zu dem DNS-Server im Netzwerk eingestellt werden. (Das ist natürlich nur sinnvoll, wenn der DNS bereits korrekt aufgesetzt und aktiv ist). &lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch 8.8.8.8 eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===IP Forwarding aktivieren===&lt;br /&gt;
&lt;br /&gt;
Der interne Router soll die Pakete von einer Netzwerkkarte zur anderen weiterleiten. &lt;br /&gt;
Dies ist das eigentliche &amp;quot;Routing&amp;quot; und verbindet zwei verschiedene Netze.&lt;br /&gt;
In unserem Beispiel das Netz 10.1.0.1 (interne Schnittstelle) und 10.10.0.1 (externe Schnittstelle).&lt;br /&gt;
&lt;br /&gt;
Diese Funktion nennt sich &#039;&#039;&#039;IP Forwarding&#039;&#039;&#039;. Sie befindet sich in der sysctl.conf.&lt;br /&gt;
 # echo &amp;quot;net.ipv4.ip_forward=1&amp;quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
(Anm.:Diese Zeile befindet sich nun zweimal in der Datei. Allerdings ist die erste Variante auskommentiert und somit deaktiviert)&lt;br /&gt;
&lt;br /&gt;
Nun die Konfiguration neu laden&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
===Interfaces einstellen===&lt;br /&gt;
&lt;br /&gt;
Zunächst müssen wir die Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
Wir sehen neben der lo:Loopback Adresse die Bezeichnungen der Netzwerkkarten (z.B. enp0s6). Daneben steht UP oder DOWN. Dies zeigt i.d.R. an, ob ein Kabel eingesteckt ist und Verbindung zur Gegenstelle hat. Es kann also durch einfaches ein- und ausstecken des Kabels ermittelt werden, welche Netzwerkkarte welchen Namen trägt. Alternativ kann der Name auch über die MAC Adresse bestimmt werden. &lt;br /&gt;
&lt;br /&gt;
In unserem Beispiel ist enp0s6 die externe Schnittstelle am internen Router und enp1s6 die interne Schnittstelle am internen Router. &lt;br /&gt;
&lt;br /&gt;
Nun muss die Interfaces Datei eingestellt werden. Dabei müssen wir dem internen Router auf der internen Schnittstelle (enp1s6) eine IP des internen Netzes geben (in unserem Beispiel 10.1.0.1). Auf der externen Schnittstelle (enp0s6) benötigt er eine externe IP (10.10.1.1.). Außerdem muss auf der externen Schnittstelle das Gateway des öffentlichen Routers eingetragen werden, denn alle Pakete auf beiden Netzwerkkarten sollen hierhin weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 auto enp1s6&lt;br /&gt;
 iface enp1s6 inet static&lt;br /&gt;
            address 10.1.0.1/16&lt;br /&gt;
 auto enp0s6&lt;br /&gt;
 iface enp0s6 inet static&lt;br /&gt;
            address 10.10.1.1/16&lt;br /&gt;
            gateway 10.10.0.1&lt;br /&gt;
&lt;br /&gt;
Anschließend die neue Konfiguration laden :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
==Öffentlichen Router einstellen==&lt;br /&gt;
===Gateway einrichten===&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.10.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Das Login erfolgt einfach, indem man über den Browser die IP aufruft.&lt;br /&gt;
Unter System kann nun ein Gateway hinzugefügt werden. Wir müssen dem öffentlichen Router sagen, dass der interne Router ein Gateway ist (das sich also dahinter ein Netz befindet). Dieses Gateway sollte in der Konfiguration eingetragen sein: &lt;br /&gt;
&lt;br /&gt;
 router01 	LAN 	10.10.1.1 	&lt;br /&gt;
&lt;br /&gt;
===Route einrichten===&lt;br /&gt;
Nun muss eine Route mit diesem Gateway eingerichtet werden um dem öffentlichen Router zu sagen, welches Netz sich hinter diesem Gateway verbirgt. Diese Route sollte in der Konfiguration eingetragen sein :&lt;br /&gt;
 &lt;br /&gt;
 10.1.0.0/16	router01 - 10.10.1.1	Route Netz 1&lt;br /&gt;
&lt;br /&gt;
Natürlich müssen auch die anderen Routen zu den anderen Netzen eingetragen sein. Am Ende sollten diese Routen eingetragen sein :&lt;br /&gt;
 10.1.0.0/16	router01 - 10.10.1.1	&lt;br /&gt;
 10.2.0.0/16	router02 - 10.10.2.1	&lt;br /&gt;
 10.3.0.0/16	router03 - 10.10.3.1	 	&lt;br /&gt;
&lt;br /&gt;
===Routing auf gleicher Schnittstelle aktivieren===&lt;br /&gt;
Nun müssen wir den Router anweisen, dass er verschiedene Netze auf einer Schnittstelle routet (sollte der öffentliche Router für jedes Netzwerk eine Netzwerkkarte besitzen ist dies nicht nötig).&lt;br /&gt;
Dazu setzen wir unter Firewall/Einstellungen/Erweitert das Häkchen bei &amp;quot;Filterung statischer Routen &amp;gt; Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Auch Subnetze ins Internet lassen===&lt;br /&gt;
Zu guter letzt müssen wir dem Router sagen, dass er auch andere Subnetze ins Internet lassen soll. Das erreichen wir, indem wir unter Firewall/Regeln/LAN eine neue Regel hinzufügen, indem wir jegliche IP&#039;s (und nicht nur das LAN) zulassen. Diese Regel sollte am Ende so aussehen &lt;br /&gt;
 IPv4 * 	* 	* 	* 	* 	GW_WAN 	* 	&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
Die Konfigurationen können an den jeweiligen Punkten des Netzwerkes getestet werden.&lt;br /&gt;
Folgende Befehle sind hilfreich :&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping 10.10.0.1(Erreichbarkeit des öffentlichen Routers)&lt;br /&gt;
 ping 10.10.1.1  (Erreichbarkeit der externen Schnittstelle des internen Routers)&lt;br /&gt;
 ping 10.1.0.1  (Erreichbarkeit der internen Schnittstelle des internen Routers)&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
=== Debugging ===&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp0s6 &lt;br /&gt;
&lt;br /&gt;
intern :  enp1s6&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.10.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp1s6&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske, VLAN am Switch o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp0s6&amp;lt;/code&amp;gt; ausführen und schauen ob ein Ping vom  dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.10.0.1). Testweise können auch andere Rechner im 10.10 Netz angepingt werden.&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am öffentlichen Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mögliche Fehlerquellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Client kann internen Router nicht erreichen&lt;br /&gt;
* Der Switch verwendet VLAN und leitet nicht an die Ports weiter &lt;br /&gt;
&lt;br /&gt;
Client kann öffentl.Router nicht erreichen &lt;br /&gt;
* Gateways im Router checken&lt;br /&gt;
* Routen im Router checken&lt;br /&gt;
* Firewall im Router checken &lt;br /&gt;
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&lt;br /&gt;
** Firewall Regeln für Subnetze aktivieren&lt;br /&gt;
&lt;br /&gt;
===Known-Issues===&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7674</id>
		<title>Teams/Ab18it09/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7674"/>
		<updated>2020-02-04T09:46:53Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Netzwerkplan.jpg|mini]]&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mögliche Fehlerquellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Client kann internen Router nicht erreichen&lt;br /&gt;
* Der Switch verwendet VLAN und leitet nicht an die Ports weiter &lt;br /&gt;
&lt;br /&gt;
Client kann öffentl.Router nicht erreichen &lt;br /&gt;
* Gateways im Router checken&lt;br /&gt;
* Routen im Router checken&lt;br /&gt;
* Firewall im Router checken &lt;br /&gt;
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&lt;br /&gt;
** Überprüfe NAT-Einstellungen&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:Netzwerkplan.jpg&amp;diff=7673</id>
		<title>Datei:Netzwerkplan.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:Netzwerkplan.jpg&amp;diff=7673"/>
		<updated>2020-02-04T09:46:21Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Netzwerkplan AB18IT9&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7672</id>
		<title>Teams/Ab18it09/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it09/Netzwerk&amp;diff=7672"/>
		<updated>2020-02-04T09:42:09Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: Die Seite wurde neu angelegt: „&amp;#039;&amp;#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert;…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mögliche Fehlerquellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Client kann internen Router nicht erreichen&lt;br /&gt;
* Der Switch verwendet VLAN und leitet nicht an die Ports weiter &lt;br /&gt;
&lt;br /&gt;
Client kann öffentl.Router nicht erreichen &lt;br /&gt;
* Gateways im Router checken&lt;br /&gt;
* Routen im Router checken&lt;br /&gt;
* Firewall im Router checken &lt;br /&gt;
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&lt;br /&gt;
** Überprüfe NAT-Einstellungen&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7659</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7659"/>
		<updated>2020-02-04T09:01:11Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Known-Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mögliche Fehlerquellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Client kann internen Router nicht erreichen&lt;br /&gt;
* Der Switch verwendet VLAN und leitet nicht an die Ports weiter &lt;br /&gt;
&lt;br /&gt;
Client kann öffentl.Router nicht erreichen &lt;br /&gt;
* Gateways im Router checken&lt;br /&gt;
* Routen im Router checken&lt;br /&gt;
* Firewall im Router checken &lt;br /&gt;
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&lt;br /&gt;
** Überprüfe NAT-Einstellungen&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7657</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7657"/>
		<updated>2020-02-04T08:28:31Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mögliche Fehlerquellen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Client kann internen Router nicht erreichen&lt;br /&gt;
* Der Switch verwendet VLAN und leitet nicht an die Ports weiter &lt;br /&gt;
&lt;br /&gt;
Client kann öffentl.Router nicht erreichen &lt;br /&gt;
* Gateways im Router checken&lt;br /&gt;
* Routen im Router checken&lt;br /&gt;
* Firewall im Router checken &lt;br /&gt;
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&lt;br /&gt;
** Überprüfe NAT-Einstellungen&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7656</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7656"/>
		<updated>2020-02-04T08:28:03Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mögliche Fehlerquellen&#039;&#039;&#039;&lt;br /&gt;
Client kann internen Router nicht erreichen&lt;br /&gt;
* Der Switch verwendet VLAN und leitet nicht an die Ports weiter &lt;br /&gt;
&lt;br /&gt;
Client kann öffentl.Router nicht erreichen &lt;br /&gt;
* Gateways im Router checken&lt;br /&gt;
* Routen im Router checken&lt;br /&gt;
* Firewall im Router checken &lt;br /&gt;
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle&lt;br /&gt;
** Überprüfe NAT-Einstellungen&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Ip/Befehl&amp;diff=7645</id>
		<title>Ip/Befehl</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Ip/Befehl&amp;diff=7645"/>
		<updated>2020-01-24T13:07:23Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Beispiele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Das Kommando &#039;&#039;&#039;ip&#039;&#039;&#039; aus der &#039;&#039;iproute2&#039;&#039; Toolsammlung dient unter Linux zur Konfiguration von Netzwerkadressen. &lt;br /&gt;
* Es ersetzt das &#039;&#039;ifconfig&#039;&#039; Kommando aus den obsoleten &#039;&#039;net-tools&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Vergleichstabelle ip versus ifconfig ==&lt;br /&gt;
Die Tabelle zeigt wichtige Befehle zur Netzwerkkonfiguration und vergleicht die Syntax der Kommandos ip und ifconfig:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #EFEFEF; font-weight: bold;&amp;quot;==Befehle und Dateien zum Routing==&lt;br /&gt;
! Zweck&lt;br /&gt;
! iproute2 Kommando&lt;br /&gt;
! iproute2 Kommando Kurzversion&lt;br /&gt;
! net-tools Kommando&lt;br /&gt;
|-&lt;br /&gt;
| Linkstatus anzeigen&lt;br /&gt;
| ip link show|&amp;lt;code&amp;gt;ip link show&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ip l&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Linkstatus inkl. Statistik &amp;lt;br&amp;gt;(RX/TX bytes, errors, ...) anzeigen&lt;br /&gt;
| ip link show|&amp;lt;code&amp;gt;ip -statistics link show&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ip -s l&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IP Adresse anzeigen&lt;br /&gt;
| ip addr show|&amp;lt;code&amp;gt;ip addr show&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ip a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ifconfig -a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IP Adresse setzen&lt;br /&gt;
| ip addr add IP/NETMASK dev DEVICE|&amp;lt;code&amp;gt;ip addr add IP/NETMASK dev DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ip a a IP/NETMASK dev DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ifconfig DEVICE IP/NETMASK&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IP Adresse entfernen&lt;br /&gt;
| ip addr add IP/NETMASK dev DEVICE|&amp;lt;code&amp;gt;ip addr del IP/NETMASK dev DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ip a d IP/NETMASK dev DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Alle IP Adressen entfernen&lt;br /&gt;
| ip addr flush dev DEVICE|&amp;lt;code&amp;gt;ip addr flush dev DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ip a f dev DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Routingtabelle anzeigen&lt;br /&gt;
| ip route show|&amp;lt;code&amp;gt;ip route show&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;route -n&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Standardgateway setzen&lt;br /&gt;
| ip route add default via IP|&amp;lt;code&amp;gt;ip route add default via IP&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ip r a default via IP&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;route add default gw IP DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ARP-Cache anzeigen&lt;br /&gt;
| ip neigh show|&amp;lt;code&amp;gt;ip neigh show&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ip n&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;arp -na&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Verbindungen anzeigen&lt;br /&gt;
| &amp;lt;code&amp;gt;ss --tcp --all --processes --extended --numeric&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ss -tapen&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;netstat -tapen&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Ausgaben zeigen einige Beispiele von iproute2 Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== ip link show ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip link show&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether 08:00:27:66:72:e1 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zeigt nur die Netzwerkkarten an.&lt;br /&gt;
&lt;br /&gt;
=== ip -statistics link show ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip -statistics link show&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
    2073916    4895     0       0       0       0      &lt;br /&gt;
    TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
    2073916    4895     0       0       0       0      &lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether 08:00:27:66:72:e1 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
    1716782262 1369751  0       0       0       0      &lt;br /&gt;
    TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
    308636400  1172428  0       0       0       0      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zeigt dir neben den Netzwerkschnittstellen auch die durchgegangen Pakete.&lt;br /&gt;
&lt;br /&gt;
=== ip addr show ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip addr show&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host &lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether 08:00:27:66:72:e1 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 10.1.102.59/24 brd 10.1.102.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::a00:27ff:fe66:72e1/64 scope link &lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zeigt die Netzwerkschnittstellen und ihre IP-Addressen.&lt;br /&gt;
&lt;br /&gt;
=== ip addr add IP/NETMASK dev DEVICE ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ip addr add 10.1.102.60/24 dev eth0&lt;br /&gt;
$ ip a&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host &lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether 08:00:27:66:72:e1 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 10.1.102.59/24 brd 10.1.102.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet 10.1.102.60/24 scope global secondary eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::a00:27ff:fe66:72e1/64 scope link &lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fügt eine neue Ip-Addresse zu einer Netzwerkkarte hinzu. IP/NETMASK ist die gewünschte IP-Addresse mit der CIDR-Notation. DEVICE ist der Name der Netzwerkkarte.&lt;br /&gt;
&lt;br /&gt;
=== ip addr del IP/NETMASK dev DEVICE ===&lt;br /&gt;
 # ip addr del 10.1.102.60/24 dev eth0&lt;br /&gt;
 $ ip a&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
     link/ether 08:00:27:15:17:5e brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 10.1.102.54/24 brd 10.1.102.255 scope global eth0&lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
     inet6 fe80::a00:27ff:fe15:175e/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
Löscht eine IP-Addresse von einer Netzwerkkarte.&lt;br /&gt;
&lt;br /&gt;
=== ip addr flush dev DEVICE ===&lt;br /&gt;
# ip addr flush dev eth0&lt;br /&gt;
$ ip a&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN &lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host &lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000&lt;br /&gt;
    link/ether 08:00:27:15:17:5e brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
Löscht alle IP-Addressen von einer Netzwerkkarte&lt;br /&gt;
&lt;br /&gt;
=== ip route show ===&lt;br /&gt;
 $ ip route show&lt;br /&gt;
 default via 10.1.102.1 dev eth0  metric 100 &lt;br /&gt;
 10.1.102.0/24 dev eth0  proto kernel  scope link  src 10.1.102.59 &lt;br /&gt;
Zeigt die Routingtabelle&lt;br /&gt;
&lt;br /&gt;
=== ip route add default via IP ===&lt;br /&gt;
 # ip route add d via 10.1.102.1&lt;br /&gt;
Fügt ein Standardgateway in die Routingtabelle hinzu.&lt;br /&gt;
&lt;br /&gt;
=== ip route hinzufügen ===&lt;br /&gt;
 # ip route add 10.0.0.0/8 via 10.0.0.200 dev enp0s6&lt;br /&gt;
Fügt eine Route zum Netz 10.0.0.0/8 über den Router 10.0.0.200 hinzu. Die angegebene Schnittstelle sollte der internen des Routers 0.200 entsprechen (welche zu einem anderen Netz führ, beispielsweise 10.5.0.200).&lt;br /&gt;
&lt;br /&gt;
=== ip neigh show ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ip neigh show&lt;br /&gt;
10.1.102.101 dev eth0 lladdr f0:de:f1:f3:17:88 REACHABLE&lt;br /&gt;
10.1.102.1 dev eth0 lladdr 00:0c:42:97:79:63 REACHABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quelle==&lt;br /&gt;
* [https://www.thomas-krenn.com/de/wiki/Linux_ip_Kommando thomas-krenn.com]&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://de.wikipedia.org/wiki/Iproute2|Wikipedia Iproute2]&lt;br /&gt;
* https://wiki.ubuntuusers.de/ip/&lt;br /&gt;
* https://lintut.com/how-to-use-linux-ip-command/&lt;br /&gt;
* [http://www.policyrouting.org/iproute2-toc.html|IPROUTE2 Utility Suite Howto]&lt;br /&gt;
* https://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Netzwerk]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7644</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7644"/>
		<updated>2020-01-24T12:59:31Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
* Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
* tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske o.ä..&lt;br /&gt;
 &lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7643</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7643"/>
		<updated>2020-01-24T12:57:19Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1). Kommt der ping dort an springe direkt zu Punkt 4.&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem (tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP)&lt;br /&gt;
&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7642</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7642"/>
		<updated>2020-01-24T12:56:28Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&#039;&#039;&#039;Vorbereitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem (tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP)&lt;br /&gt;
&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7641</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7641"/>
		<updated>2020-01-24T12:56:12Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem (tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP)&lt;br /&gt;
&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7640</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7640"/>
		<updated>2020-01-24T12:53:49Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem (tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP)&lt;br /&gt;
&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7639</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7639"/>
		<updated>2020-01-24T12:52:53Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem&lt;br /&gt;
&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7638</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7638"/>
		<updated>2020-01-24T12:52:27Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
==Known-Issues==&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7637</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7637"/>
		<updated>2020-01-24T12:49:06Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
Known-Issues:&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7636</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7636"/>
		<updated>2020-01-24T12:48:44Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debugging-Check&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
Known-Issues:&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7635</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7635"/>
		<updated>2020-01-24T12:48:35Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
Debugging-Check&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
Known-Issues:&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7634</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7634"/>
		<updated>2020-01-24T12:48:26Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
&lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
Debugging-Check&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
Known-Issues:&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7633</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7633"/>
		<updated>2020-01-24T12:48:15Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
 # apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
Debugging-Check&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
Known-Issues:&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7632</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7632"/>
		<updated>2020-01-24T12:47:53Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
# apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel &lt;br /&gt;
&lt;br /&gt;
extern :  enp2s0:0 &lt;br /&gt;
intern :  enp2s0&lt;br /&gt;
(Die Bezeichnungen der Netzwerkkarte(n) können mit &amp;lt;code&amp;gt;ip link show &amp;lt;/code&amp;gt; angezeigt werden.)&lt;br /&gt;
&lt;br /&gt;
Debugging-Check&lt;br /&gt;
&lt;br /&gt;
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1)&lt;br /&gt;
2. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem&lt;br /&gt;
3. Am Router &amp;lt;code&amp;gt;tcpdump -i enp2s0:0&amp;lt;/code&amp;gt; ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).&lt;br /&gt;
&lt;br /&gt;
Known-Issues:&lt;br /&gt;
*Trotz korrektem Routing kann der Client eines Subnetzes nicht zu einem Client eines anderen Subnetzes pingen&lt;br /&gt;
*Der DHCP Relay funktioniert nicht&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7631</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7631"/>
		<updated>2020-01-24T12:41:12Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Konfiguration testen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden.&lt;br /&gt;
Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.&lt;br /&gt;
&lt;br /&gt;
# apt install tcpdump&lt;br /&gt;
&lt;br /&gt;
Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden.&lt;br /&gt;
Wir haben am Router eine externe und eine interne Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
extern :&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7629</id>
		<title>Teams/Ab18it08/Netzwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Teams/Ab18it08/Netzwerk&amp;diff=7629"/>
		<updated>2020-01-24T12:25:25Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Konfiguration für einen Router */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].&#039;&#039; &amp;lt;sup&amp;gt;[Citation needed]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).&lt;br /&gt;
&lt;br /&gt;
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;grünem Marker&amp;lt;/span&amp;gt; gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]&lt;br /&gt;
&lt;br /&gt;
== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop NetworkManager&lt;br /&gt;
 # systemctl disable NetworkManager&lt;br /&gt;
&lt;br /&gt;
DNS: (wird &amp;quot;normalerweise&amp;quot; auch vom NetworkManager verwaltet)&lt;br /&gt;
&lt;br /&gt;
 # unlink /etc/resolv.conf&lt;br /&gt;
 # echo &amp;quot;nameserver &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Router ==&lt;br /&gt;
&lt;br /&gt;
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:&lt;br /&gt;
&lt;br /&gt;
 # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
… und die geänderte System-Konfiguration neu laden:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254/24&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;:0 inet static&lt;br /&gt;
            address 10.0.0.10&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;/8&lt;br /&gt;
            gateway 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
Die neue Konfiguration starten :&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.0.1&lt;br /&gt;
 # ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0&lt;br /&gt;
&lt;br /&gt;
== Konfiguration für einen Client ==&lt;br /&gt;
&lt;br /&gt;
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.&lt;br /&gt;
&lt;br /&gt;
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:&lt;br /&gt;
&lt;br /&gt;
 ip link show&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/network/interfaces.d/&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;$INTERFACE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):&lt;br /&gt;
&lt;br /&gt;
 auto &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
 iface &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; inet static&lt;br /&gt;
            address 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;/24&lt;br /&gt;
            gateway 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;.254&lt;br /&gt;
&lt;br /&gt;
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
== Konfiguration testen ==&lt;br /&gt;
&lt;br /&gt;
 ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)&lt;br /&gt;
 ip route show (oder kurz: ip r – IP-Routen des System anzeigen)&lt;br /&gt;
&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;172.16.X.254&amp;lt;/span&amp;gt;  (Erreichbarkeit des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.10X&amp;lt;/span&amp;gt;  (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)&lt;br /&gt;
 ping &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;  (Erreichbarkeit des “öffentlichen” Gateways&lt;br /&gt;
 ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)&lt;br /&gt;
 ping google.de  (Namensauflösung)&lt;br /&gt;
 traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)&lt;br /&gt;
&lt;br /&gt;
== IP-Konfiguration zur Laufzeit ändern ==&lt;br /&gt;
&lt;br /&gt;
Routen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip route del default&lt;br /&gt;
 # ip route add default via &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.1&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(Default-Route, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
 # ip route add 172.16.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;A&amp;lt;/span&amp;gt;.0/24 via 10.0.&amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;B.C&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:transparent;&amp;quot;&amp;gt;(spezielles Netz, Next Hop)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IP-Adressen löschen und anlegen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr del &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt; (Adresse und “Device” muss angegeben werden)&lt;br /&gt;
 # ip addr add &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;10.0.0.101/8&amp;lt;/span&amp;gt; dev &amp;lt;span style=&amp;quot;background-color:#ccff00;&amp;quot;&amp;gt;enp2s0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7627</id>
		<title>LPIC101/103.7 Regulären Ausdrücke</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7627"/>
		<updated>2020-01-24T12:13:00Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Kontrollfragen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wichtung : 3&lt;br /&gt;
&lt;br /&gt;
==Begriffs- und Zeichenklärung==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was sind reguläre Ausdrücke?&#039;&#039;&#039;&lt;br /&gt;
*Reguläre Ausdrücke erleichtern das durchsuchen von Texten&lt;br /&gt;
*Sie beschreiben anhand von Wildcards, Suchwörtern und Positionsangaben und ermöglichen so eine differenziertere Suche&lt;br /&gt;
*Wildcards werden auch Jokerzeichen genannt und sind Platzhalter für ein oder mehrere Zeichen &lt;br /&gt;
*Reguläre Ausdrücke werden in englisch Regular Expressions genannt &lt;br /&gt;
*Reguläre Ausdrücke werden meist mit RegEx oder RegExp abgekürzt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wo kann man reguläre Ausdrücke verwenden?&#039;&#039;&#039;&lt;br /&gt;
*Mit dem Filter &amp;quot;grep&amp;quot; in der Shell&lt;br /&gt;
*Mit dem Vi-Editor in der Shell&lt;br /&gt;
*Mit dem sed Editor in der Shell&lt;br /&gt;
*Im Kate Editor (Option {} aktivieren im Suchen Fenster)&lt;br /&gt;
*In allen Programmiersprachen&lt;br /&gt;
*In vielen weiteren Programmen (z.B. libreOffice)&lt;br /&gt;
&lt;br /&gt;
===Gültige Metazeichen=== &lt;br /&gt;
&lt;br /&gt;
Metazeichen beschreiben die Position einer Suchanfrage. Sie könen auch Zeichen und Zeichensätze definieren, nach denen gesucht werden soll. Gültige Metazeichen sind :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; Textanker für Zeilenanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; Textanker für Zeilenende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;&amp;lt;/code&amp;gt; markiert einen Wortanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;gt;&amp;lt;/code&amp;gt; markiert ein Wortende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt; schützt ein Zeichen vor der Interpretation (z.B. \$ sucht nach Dollarzeichen und nimmt diesen seine Spezialbedeutung)&lt;br /&gt;
* &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; sucht nach einem Zeichen oder einer Zeichenfolge innerhalb des eckig geklammerten Bereichs (z.B. [a-g] )&lt;br /&gt;
* &amp;lt;code&amp;gt;[^Zeichen]&amp;lt;/code&amp;gt; Schließt das Zeichen nach dem Circonflex aus der Suche aus&lt;br /&gt;
&lt;br /&gt;
===Wildcards (Joker/Quantoren)===&lt;br /&gt;
Wildcards beschreiben vorgehende und nachfolgende Zeichen.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; bezeichnet keine oder beliebig viele Wiederholungen des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; bezeichnet keine oder eine Wiederholung des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; bezeichnet, dass das voranstehende Zeichen mindestens einmal vorkommt&lt;br /&gt;
* &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; wird als Platzhalter für ein beliebiges Zeichen verwendet&lt;br /&gt;
&lt;br /&gt;
==Verwendung von grep mit regulären Ausdrücken==&lt;br /&gt;
* Der Filter grep bedeutet &amp;quot;Global search for Regular Expressions and Print out&amp;quot; (Sinngemäß: Globale Suche durch Reguläre Ausdrücke mit Ausgabe).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise für die Verwendung von grep:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; ist bei grep nicht verbose (Gesprächigkeit), sondern invertiert die Ausgabe (z.B. grep -v &amp;quot;Testwort&amp;quot; zeigt alle Zeilen ohne Testwort)&lt;br /&gt;
* &amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt; aktiviert erweiterte reguläre Ausdrücke (entspricht dem Befehl egrep)&lt;br /&gt;
* &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt; ignoriert Groß- &amp;amp; Kleinschreibung&lt;br /&gt;
&lt;br /&gt;
===Beispiele für Verwendung von grep mit RegEx===&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep [Ww]ill[iy] Adressliste&amp;lt;/code&amp;gt; – sucht in der Datei Adressliste nach Willi,willi,Willy und willy. (grep -i Will[iy] liefert das gleiche Ergebnis, ignoriert jedoch auch die Groß- &amp;amp; Kleinschreibung von den anderen Buchstaben)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep W.lly Adressliste&amp;lt;/code&amp;gt; – der Punkt ersetzt ein beliebiges Zeichen, somit würden Willy, Wally usw. gefunden werden, sofern diese existieren.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -v ^[#] /etc/config.conf&amp;lt;/code&amp;gt;oder Alternativ &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf&amp;lt;/code&amp;gt; – findet alle Zeilenanfänge, welche nicht mit einer Raute beginnen&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf | grep -v ^$&amp;lt;/code&amp;gt; – Sucht alle Zeilenanfänge ohne Raute und mit Zeichen am Anfang (siebt Leerzeilen aus, Leerzeile ist Zeilenanfang ^ gefolgt von Zeilenende $)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]*\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend beliebig viele Zahlen bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]\?\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend eine beliebige einstellige Zahl bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -w &#039;1\{3,5\}&#039; Suchdatei&amp;lt;/code&amp;gt; – Mit  dem  folgenden  Kommando  werden  alle  Zeilen  einer  Datei  angezeigt,  die  drei, vier oder fünf aufeinander folgende Einsen enthalten.&lt;br /&gt;
&lt;br /&gt;
===Schutz von Metazeichen===&lt;br /&gt;
Einige Metazeichen müssen durch einen Backslash geschützt werden, damit grep diese nicht als Suchmusterbestandteil versteht.&lt;br /&gt;
&lt;br /&gt;
Diese  Zeichen sind: &lt;br /&gt;
&amp;lt;code&amp;gt;?&lt;br /&gt;
+&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
|&lt;br /&gt;
(&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==egrep und fgrep==&lt;br /&gt;
Ursprünglich eigenständige Filter, werden diese beiden Varianten heute kaum noch verwendet. Sie sind in grep mit dem Optionen -E und -F enthalten. egrep hat erweiterte Funktionen (benötigt daher etwas länger zum Suchen), fgrep verzichtet auf Metazeichen und spart somit Zeit und Rechenleistung.&lt;br /&gt;
&lt;br /&gt;
==Der Streamlineeditor sed==&lt;br /&gt;
Der Editor sed arbeitet mit Strömen. Er liest in seiner puren Form StdIn (Kanal 0) und gibt in StdOut (Kanal 1) aus, ähnlich dem Befehl cat. Um das Ergebnis zu speichern muss man eine extra Zieldatei angeben. Quelle und Ziel dürfen nicht identisch sein.&lt;br /&gt;
&lt;br /&gt;
===Wichtige Kommandos und Optionen===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-e Kommando&amp;lt;/code&amp;gt; – Kündigt ein Kommando an. Dies ist nur nötig, wenn mehrere Kommandos aufeinander folgen sollen.&lt;br /&gt;
* &amp;lt;code&amp;gt;-f Scriptdatei&amp;lt;/code&amp;gt; – Lädt mehrere Kommandos aus einem Script. Besonders praktisch, wenn eine bestimmte Kommandoroutine mehrmals aufgerufen werden soll.&lt;br /&gt;
* &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; – sed sucht normalerweise nur innerhalb einer Zeile. Die Option g setzt das Suchverhalten auf global und lässt sed somit auch nach einem Fund weitersuchen.&lt;br /&gt;
&lt;br /&gt;
===Adressierung mit sed===&lt;br /&gt;
&lt;br /&gt;
Der Editor sed sucht und bearbeitet Zeilen innerhalb einer Datei. Manchmal ist es nötig den Arbeitsbereich einzuschränken. Dies kann auf drei Arten geschehen : &lt;br /&gt;
1. Angabe von Zeilennummern&lt;br /&gt;
2. Verwendung des $ Zeichens für die Bearbeitung der letzten Zeile&lt;br /&gt;
3. Verwendung von regulären Ausdrücken (auf beiden Seiten mit Slashes begrenzt nach dem Muster /regEx/ )&lt;br /&gt;
&lt;br /&gt;
Wird keine Adressierung vorgenommen so bearbeitrt sed die gesamte Datei.&lt;br /&gt;
&lt;br /&gt;
===Beispiele für das Arbeiten mit sed===&lt;br /&gt;
&lt;br /&gt;
sed kann mit dem Kommando &amp;quot;y&amp;quot; ähnlich wie translate (Siehe 103.2) einzelne Zeichen suchen und ersetzen. Im Gegensatz zu translate kann sed die Änderungen jedoch in einer neuen Datei abspeichern. Dabei kann für jedes Zeichen nur ein Zeichen ersetzt werden, keine Zeichenkette (1:1 Beziehung).&lt;br /&gt;
&lt;br /&gt;
In dem folgenden Beispiel wird ein Komma mit einem Semikolon ersetzt.&lt;br /&gt;
&amp;lt;code&amp;gt;archangel:~ # sed &#039;y/,/;/&#039; Kommadatei &amp;gt; Semikolondatei&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed -e &#039;/^$/d&#039; -e &#039;/^#/d&#039; /etc/config.conf&amp;lt;/code&amp;gt; – Das -e leitet jeweils ein Kommando ein. Die RegEx müssen innerhalb von Slashes stehen. Der Befehl &amp;quot;d&amp;quot; löscht das Suchergebnis. &amp;quot;/^$/&amp;quot; sucht von Zeilenanfang bis Zeilenenede. &amp;quot;/^#/&amp;quot; sucht Rauten am Zeilenanfang. Somit werden bei diesem Befehl Kommentarspalten und Leerzeilen gelöscht.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed &#039;25,47d&#039; Originaldatei &amp;gt; Kurzdatei&amp;lt;/code&amp;gt; – In diesem Befehl wird zur Adressierung die Zeilenangabe verwendet. Es werden also Zeile 25 und 47 gelöscht. Das Kommando kann durch ein &amp;quot;!&amp;quot; invertiert werden (&amp;quot;25,45!d&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/&#039; Namensliste &amp;lt;/code&amp;gt; – Das Kommando s substituiert Zeichen. Es ist leistungsfähiger als y, da es ein Zeichen auch durch eine Zeichenkette ersetzen kann und umgekehrt. In diesem Beispiel wird ein &amp;quot;ue&amp;quot; mit einem &amp;quot;ü&amp;quot; ersetzt. Mit diesem Befehl wird allerdings lediglich der erste gefundene String mit &amp;quot;ue&amp;quot; durch &amp;quot;ü&amp;quot; ersetzt. Durch das setzen der globalen Option &amp;quot;g&amp;quot; werden alle &amp;quot;ue&amp;quot;&#039;s im Text mit &amp;quot;ü&amp;quot; ersetzt : &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/g&#039; Namensliste&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skripte in sed===&lt;br /&gt;
Man kann mitels Skripten eine Befehlskette durch sed ausführen lassen.&lt;br /&gt;
In dem folgenden Beispiel werden Umlaute (Ä,ä,Ü,ü,Ö,ö und ß) mit HTML tauglichen Zeichenketten ersetzt (&amp;quot;Ä&amp;quot; ist beispielsweise in HTML &amp;quot;&amp;amp;Auml;&amp;quot;). Das Skript wird mit cat (siehe 103.2) erstellt und heisst sedskript :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
archangel:~ # cat sedskript &amp;lt;br&amp;gt;&lt;br /&gt;
s/ä/\&amp;amp;auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ä/\&amp;amp;Auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ü/\&amp;amp;uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ü/\&amp;amp;Uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ö/\&amp;amp;ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ö/\&amp;amp;Ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ß/\&amp;amp;szlig\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kann das Skript mit der Option -f eingelesen werden. Es müssen nun lediglich Quell- &amp;amp; Zieldatei angegeben werden und die Befehle in dem Skript werden auf die Quelldatei angewandt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; archangel:~ # sed -f sedskript Quelltext-mit-Umlauten &amp;gt; Zieltext-in-HTML-Format&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kontrollfragen==&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Wonach sucht RegEx &amp;lt;code&amp;gt;^[^#]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort : Nach einem Zeilenanfang ohne Raute&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben im Kate Editor unter Suchen ohne RegExp &amp;quot;a*&amp;quot; ein. Was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : Sie suchen nach dem String &amp;quot;a*&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Kate-Suche mit RegEx a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Wörter, welche mit einem a beginnen und eine bis beliebig viele Wiederholungen dieses Zeichens aufweisen.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Shell den Befehl ls a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, welche mit a beginnen und deren Folgezeichen belibieg sein können.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Sie geben in der Shell den Befehl ls a??? ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, deren Name mit a beginnt und anschließend genau drei beliebige Folgezeichen beinhaltet.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie können Sie sich alle Einträge vom 10ten Dezember im Systemlog ansehen?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : archangel:~ # grep &#039;^Dec 10&#039; /var/log/syslog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegEx Kommando : archangel:~ # grep –w &#039;[0-9]\{3\}&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen, die drei aufeinander folgende Ziffern beinhalten.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegExp Kommando : archangel:~ # grep &#039;[A-Z]\+&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen mit mindestens einem Großbuchstaben.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Was bewirkt folgender Befehl &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ae/ä/g&#039; DeutscherText.txt&amp;lt;/code&amp;gt; ? &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort: Er ersetzt alle &amp;quot;ae&amp;quot; Strings mit einem &amp;quot;ä&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Linux:LPIC:101]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7461</id>
		<title>LPIC101/103.7 Regulären Ausdrücke</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7461"/>
		<updated>2019-12-13T10:12:54Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Wildcards (Joker) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wichtung : 3&lt;br /&gt;
&lt;br /&gt;
==Begriffs- und Zeichenklärung==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was sind reguläre Ausdrücke?&#039;&#039;&#039;&lt;br /&gt;
*Reguläre Ausdrücke erleichtern das durchsuchen von Texten&lt;br /&gt;
*Sie beschreiben anhand von Wildcards, Suchwörtern und Positionsangaben und ermöglichen so eine differenziertere Suche&lt;br /&gt;
*Wildcards werden auch Jokerzeichen genannt und sind Platzhalter für ein oder mehrere Zeichen &lt;br /&gt;
*Reguläre Ausdrücke werden in englisch Regular Expressions genannt &lt;br /&gt;
*Reguläre Ausdrücke werden meist mit RegEx oder RegExp abgekürzt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wo kann man reguläre Ausdrücke verwenden?&#039;&#039;&#039;&lt;br /&gt;
*Mit dem Filter &amp;quot;grep&amp;quot; in der Shell&lt;br /&gt;
*Mit dem Vi-Editor in der Shell&lt;br /&gt;
*Mit dem sed Editor in der Shell&lt;br /&gt;
*Im Kate Editor (Option {} aktivieren im Suchen Fenster)&lt;br /&gt;
*In allen Programmiersprachen&lt;br /&gt;
*In vielen weiteren Programmen (z.B. libreOffice)&lt;br /&gt;
&lt;br /&gt;
===Gültige Metazeichen=== &lt;br /&gt;
&lt;br /&gt;
Metazeichen beschreiben die Position einer Suchanfrage. Sie könen auch Zeichen und Zeichensätze definieren, nach denen gesucht werden soll. Gültige Metazeichen sind :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; Textanker für Zeilenanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; Textanker für Zeilenende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;&amp;lt;/code&amp;gt; markiert einen Wortanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;gt;&amp;lt;/code&amp;gt; markiert ein Wortende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt; schützt ein Zeichen vor der Interpretation (z.B. \$ sucht nach Dollarzeichen und nimmt diesen seine Spezialbedeutung)&lt;br /&gt;
* &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; sucht nach einem Zeichen oder einer Zeichenfolge innerhalb des eckig geklammerten Bereichs (z.B. [a-g] )&lt;br /&gt;
* &amp;lt;code&amp;gt;[^Zeichen]&amp;lt;/code&amp;gt; Schließt das Zeichen nach dem Circonflex aus der Suche aus&lt;br /&gt;
&lt;br /&gt;
===Wildcards (Joker/Quantoren)===&lt;br /&gt;
Wildcards beschreiben vorgehende und nachfolgende Zeichen.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; bezeichnet keine oder beliebig viele Wiederholungen des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; bezeichnet keine oder eine Wiederholung des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; bezeichnet, dass das voranstehende Zeichen mindestens einmal vorkommt&lt;br /&gt;
* &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; wird als Platzhalter für ein beliebiges Zeichen verwendet&lt;br /&gt;
&lt;br /&gt;
==Verwendung von grep mit regulären Ausdrücken==&lt;br /&gt;
* Der Filter grep bedeutet &amp;quot;Global search for Regular Expressions and Print out&amp;quot; (Sinngemäß: Globale Suche durch Reguläre Ausdrücke mit Ausgabe).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise für die Verwendung von grep:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; ist bei grep nicht verbose (Gesprächigkeit), sondern invertiert die Ausgabe (z.B. grep -v &amp;quot;Testwort&amp;quot; zeigt alle Zeilen ohne Testwort)&lt;br /&gt;
* &amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt; aktiviert erweiterte reguläre Ausdrücke (entspricht dem Befehl egrep)&lt;br /&gt;
* &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt; ignoriert Groß- &amp;amp; Kleinschreibung&lt;br /&gt;
&lt;br /&gt;
===Beispiele für Verwendung von grep mit RegEx===&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep [Ww]ill[iy] Adressliste&amp;lt;/code&amp;gt; – sucht in der Datei Adressliste nach Willi,willi,Willy und willy. (grep -i Will[iy] liefert das gleiche Ergebnis, ignoriert jedoch auch die Groß- &amp;amp; Kleinschreibung von den anderen Buchstaben)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep W.lly Adressliste&amp;lt;/code&amp;gt; – der Punkt ersetzt ein beliebiges Zeichen, somit würden Willy, Wally usw. gefunden werden, sofern diese existieren.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -v ^[#] /etc/config.conf&amp;lt;/code&amp;gt;oder Alternativ &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf&amp;lt;/code&amp;gt; – findet alle Zeilenanfänge, welche nicht mit einer Raute beginnen&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf | grep -v ^$&amp;lt;/code&amp;gt; – Sucht alle Zeilenanfänge ohne Raute und mit Zeichen am Anfang (siebt Leerzeilen aus, Leerzeile ist Zeilenanfang ^ gefolgt von Zeilenende $)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]*\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend beliebig viele Zahlen bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]\?\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend eine beliebige einstellige Zahl bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -w &#039;1\{3,5\}&#039; Suchdatei&amp;lt;/code&amp;gt; – Mit  dem  folgenden  Kommando  werden  alle  Zeilen  einer  Datei  angezeigt,  die  drei, vier oder fünf aufeinander folgende Einsen enthalten.&lt;br /&gt;
&lt;br /&gt;
===Schutz von Metazeichen===&lt;br /&gt;
Einige Metazeichen müssen durch einen Backslash geschützt werden, damit grep diese nicht als Suchmusterbestandteil versteht.&lt;br /&gt;
&lt;br /&gt;
Diese  Zeichen sind: &lt;br /&gt;
&amp;lt;code&amp;gt;?&lt;br /&gt;
+&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
|&lt;br /&gt;
(&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==egrep und fgrep==&lt;br /&gt;
Ursprünglich eigenständige Filter, werden diese beiden Varianten heute kaum noch verwendet. Sie sind in grep mit dem Optionen -E und -F enthalten. egrep hat erweiterte Funktionen (benötigt daher etwas länger zum Suchen), fgrep verzichtet auf Metazeichen und spart somit Zeit und Rechenleistung.&lt;br /&gt;
&lt;br /&gt;
==Der Streamlineeditor sed==&lt;br /&gt;
Der Editor sed arbeitet mit Strömen. Er liest in seiner puren Form StdIn (Kanal 0) und gibt in StdOut (Kanal 1) aus, ähnlich dem Befehl cat. Um das Ergebnis zu speichern muss man eine extra Zieldatei angeben. Quelle und Ziel dürfen nicht identisch sein.&lt;br /&gt;
&lt;br /&gt;
===Wichtige Kommandos und Optionen===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-e Kommando&amp;lt;/code&amp;gt; – Kündigt ein Kommando an. Dies ist nur nötig, wenn mehrere Kommandos aufeinander folgen sollen.&lt;br /&gt;
* &amp;lt;code&amp;gt;-f Scriptdatei&amp;lt;/code&amp;gt; – Lädt mehrere Kommandos aus einem Script. Besonders praktisch, wenn eine bestimmte Kommandoroutine mehrmals aufgerufen werden soll.&lt;br /&gt;
* &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; – sed sucht normalerweise nur innerhalb einer Zeile. Die Option g setzt das Suchverhalten auf global und lässt sed somit auch nach einem Fund weitersuchen.&lt;br /&gt;
&lt;br /&gt;
===Adressierung mit sed===&lt;br /&gt;
&lt;br /&gt;
Der Editor sed sucht und bearbeitet Zeilen innerhalb einer Datei. Manchmal ist es nötig den Arbeitsbereich einzuschränken. Dies kann auf drei Arten geschehen : &lt;br /&gt;
1. Angabe von Zeilennummern&lt;br /&gt;
2. Verwendung des $ Zeichens für die Bearbeitung der letzten Zeile&lt;br /&gt;
3. Verwendung von regulären Ausdrücken (auf beiden Seiten mit Slashes begrenzt nach dem Muster /regEx/ )&lt;br /&gt;
&lt;br /&gt;
Wird keine Adressierung vorgenommen so bearbeitrt sed die gesamte Datei.&lt;br /&gt;
&lt;br /&gt;
===Beispiele für das Arbeiten mit sed===&lt;br /&gt;
&lt;br /&gt;
sed kann mit dem Kommando &amp;quot;y&amp;quot; ähnlich wie translate (Siehe 103.2) einzelne Zeichen suchen und ersetzen. Im Gegensatz zu translate kann sed die Änderungen jedoch in einer neuen Datei abspeichern. Dabei kann für jedes Zeichen nur ein Zeichen ersetzt werden, keine Zeichenkette (1:1 Beziehung).&lt;br /&gt;
&lt;br /&gt;
In dem folgenden Beispiel wird ein Komma mit einem Semikolon ersetzt.&lt;br /&gt;
&amp;lt;code&amp;gt;archangel:~ # sed &#039;y/,/;/&#039; Kommadatei &amp;gt; Semikolondatei&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed -e &#039;/^$/d&#039; -e &#039;/^#/d&#039; /etc/config.conf&amp;lt;/code&amp;gt; – Das -e leitet jeweils ein Kommando ein. Die RegEx müssen innerhalb von Slashes stehen. Der Befehl &amp;quot;d&amp;quot; löscht das Suchergebnis. &amp;quot;/^$/&amp;quot; sucht von Zeilenanfang bis Zeilenenede. &amp;quot;/^#/&amp;quot; sucht Rauten am Zeilenanfang. Somit werden bei diesem Befehl Kommentarspalten und Leerzeilen gelöscht.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed &#039;25,47d&#039; Originaldatei &amp;gt; Kurzdatei&amp;lt;/code&amp;gt; – In diesem Befehl wird zur Adressierung die Zeilenangabe verwendet. Es werden also Zeile 25 und 47 gelöscht. Das Kommando kann durch ein &amp;quot;!&amp;quot; invertiert werden (&amp;quot;25,45!d&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/&#039; Namensliste &amp;lt;/code&amp;gt; – Das Kommando s substituiert Zeichen. Es ist leistungsfähiger als y, da es ein Zeichen auch durch eine Zeichenkette ersetzen kann und umgekehrt. In diesem Beispiel wird ein &amp;quot;ue&amp;quot; mit einem &amp;quot;ü&amp;quot; ersetzt. Mit diesem Befehl wird allerdings lediglich der erste gefundene String mit &amp;quot;ue&amp;quot; durch &amp;quot;ü&amp;quot; ersetzt. Durch das setzen der globalen Option &amp;quot;g&amp;quot; werden alle &amp;quot;ue&amp;quot;&#039;s im Text mit &amp;quot;ü&amp;quot; ersetzt : &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/g&#039; Namensliste&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skripte in sed===&lt;br /&gt;
Man kann mitels Skripten eine Befehlskette durch sed ausführen lassen.&lt;br /&gt;
In dem folgenden Beispiel werden Umlaute (Ä,ä,Ü,ü,Ö,ö und ß) mit HTML tauglichen Zeichenketten ersetzt (&amp;quot;Ä&amp;quot; ist beispielsweise in HTML &amp;quot;&amp;amp;Auml;&amp;quot;). Das Skript wird mit cat (siehe 103.2) erstellt und heisst sedskript :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
archangel:~ # cat sedskript &amp;lt;br&amp;gt;&lt;br /&gt;
s/ä/\&amp;amp;auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ä/\&amp;amp;Auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ü/\&amp;amp;uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ü/\&amp;amp;Uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ö/\&amp;amp;ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ö/\&amp;amp;Ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ß/\&amp;amp;szlig\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kann das Skript mit der Option -f eingelesen werden. Es müssen nun lediglich Quell- &amp;amp; Zieldatei angegeben werden und die Befehle in dem Skript werden auf die Quelldatei angewandt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; archangel:~ # sed -f sedskript Quelltext-mit-Umlauten &amp;gt; Zieltext-in-HTML-Format&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kontrollfragen==&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Wonach sucht RegEx &amp;lt;code&amp;gt;^[^#]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort : Nach einem Zeilenanfang ohne Raute&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben im Kate Editor unter Suchen ohne RegExp &amp;quot;a*&amp;quot; ein. Was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : Sie suchen nach dem String &amp;quot;a*&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Kate-Suche mit RegEx a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Wörter, welche mit einem a beginnen und eine bis beliebig viele Wiederholungen dieses Zeichens aufweisen.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Shell den Befehl ls a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, welche mit a beginnen und deren Folgezeichen belibieg sein können.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Sie geben in der Shell den Befehl ls a??? ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, deren Name mit a beginnt und anschließend genau drei beliebige Folgezeichen beinhaltet.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie können Sie sich alle Einträge vom 10ten Dezember im Systemlog ansehen?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : archangel:~ # grep &#039;^Dec 10&#039; /var/log/syslog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegEx Kommando : archangel:~ # grep –w &#039;[0-9]\{3\}&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen, die drei aufeinander folgende Ziffern beinhalten.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegExp Kommando : archangel:~ # grep &#039;[A-Z]\+&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen mit mindestens einem Großbuchstaben.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Was bewirkt folgender Befehl &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ae/ä/&#039; DeutscherText.txt&amp;lt;/code&amp;gt; ? &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort: Er ersetzt alle &amp;quot;ae&amp;quot; Strings mit einem &amp;quot;ä&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Linux:LPIC:101]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7460</id>
		<title>LPIC101/103.7 Regulären Ausdrücke</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7460"/>
		<updated>2019-12-13T10:06:24Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Gültige Metazeichen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wichtung : 3&lt;br /&gt;
&lt;br /&gt;
==Begriffs- und Zeichenklärung==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was sind reguläre Ausdrücke?&#039;&#039;&#039;&lt;br /&gt;
*Reguläre Ausdrücke erleichtern das durchsuchen von Texten&lt;br /&gt;
*Sie beschreiben anhand von Wildcards, Suchwörtern und Positionsangaben und ermöglichen so eine differenziertere Suche&lt;br /&gt;
*Wildcards werden auch Jokerzeichen genannt und sind Platzhalter für ein oder mehrere Zeichen &lt;br /&gt;
*Reguläre Ausdrücke werden in englisch Regular Expressions genannt &lt;br /&gt;
*Reguläre Ausdrücke werden meist mit RegEx oder RegExp abgekürzt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wo kann man reguläre Ausdrücke verwenden?&#039;&#039;&#039;&lt;br /&gt;
*Mit dem Filter &amp;quot;grep&amp;quot; in der Shell&lt;br /&gt;
*Mit dem Vi-Editor in der Shell&lt;br /&gt;
*Mit dem sed Editor in der Shell&lt;br /&gt;
*Im Kate Editor (Option {} aktivieren im Suchen Fenster)&lt;br /&gt;
*In allen Programmiersprachen&lt;br /&gt;
*In vielen weiteren Programmen (z.B. libreOffice)&lt;br /&gt;
&lt;br /&gt;
===Gültige Metazeichen=== &lt;br /&gt;
&lt;br /&gt;
Metazeichen beschreiben die Position einer Suchanfrage. Sie könen auch Zeichen und Zeichensätze definieren, nach denen gesucht werden soll. Gültige Metazeichen sind :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; Textanker für Zeilenanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; Textanker für Zeilenende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;&amp;lt;/code&amp;gt; markiert einen Wortanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;gt;&amp;lt;/code&amp;gt; markiert ein Wortende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt; schützt ein Zeichen vor der Interpretation (z.B. \$ sucht nach Dollarzeichen und nimmt diesen seine Spezialbedeutung)&lt;br /&gt;
* &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; sucht nach einem Zeichen oder einer Zeichenfolge innerhalb des eckig geklammerten Bereichs (z.B. [a-g] )&lt;br /&gt;
* &amp;lt;code&amp;gt;[^Zeichen]&amp;lt;/code&amp;gt; Schließt das Zeichen nach dem Circonflex aus der Suche aus&lt;br /&gt;
&lt;br /&gt;
===Wildcards (Joker)===&lt;br /&gt;
Wildcards beschreiben vorgehende und nachfolgende Zeichen.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; bezeichnet keine oder beliebig viele Wiederholungen des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; bezeichnet keine oder eine Wiederholung des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; bezeichnet, dass das voranstehende Zeichen mindestens einmal vorkommt&lt;br /&gt;
* &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; wird als Platzhalter für ein beliebiges Zeichen verwendet&lt;br /&gt;
&lt;br /&gt;
==Verwendung von grep mit regulären Ausdrücken==&lt;br /&gt;
* Der Filter grep bedeutet &amp;quot;Global search for Regular Expressions and Print out&amp;quot; (Sinngemäß: Globale Suche durch Reguläre Ausdrücke mit Ausgabe).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise für die Verwendung von grep:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; ist bei grep nicht verbose (Gesprächigkeit), sondern invertiert die Ausgabe (z.B. grep -v &amp;quot;Testwort&amp;quot; zeigt alle Zeilen ohne Testwort)&lt;br /&gt;
* &amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt; aktiviert erweiterte reguläre Ausdrücke (entspricht dem Befehl egrep)&lt;br /&gt;
* &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt; ignoriert Groß- &amp;amp; Kleinschreibung&lt;br /&gt;
&lt;br /&gt;
===Beispiele für Verwendung von grep mit RegEx===&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep [Ww]ill[iy] Adressliste&amp;lt;/code&amp;gt; – sucht in der Datei Adressliste nach Willi,willi,Willy und willy. (grep -i Will[iy] liefert das gleiche Ergebnis, ignoriert jedoch auch die Groß- &amp;amp; Kleinschreibung von den anderen Buchstaben)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep W.lly Adressliste&amp;lt;/code&amp;gt; – der Punkt ersetzt ein beliebiges Zeichen, somit würden Willy, Wally usw. gefunden werden, sofern diese existieren.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -v ^[#] /etc/config.conf&amp;lt;/code&amp;gt;oder Alternativ &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf&amp;lt;/code&amp;gt; – findet alle Zeilenanfänge, welche nicht mit einer Raute beginnen&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf | grep -v ^$&amp;lt;/code&amp;gt; – Sucht alle Zeilenanfänge ohne Raute und mit Zeichen am Anfang (siebt Leerzeilen aus, Leerzeile ist Zeilenanfang ^ gefolgt von Zeilenende $)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]*\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend beliebig viele Zahlen bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]\?\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend eine beliebige einstellige Zahl bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -w &#039;1\{3,5\}&#039; Suchdatei&amp;lt;/code&amp;gt; – Mit  dem  folgenden  Kommando  werden  alle  Zeilen  einer  Datei  angezeigt,  die  drei, vier oder fünf aufeinander folgende Einsen enthalten.&lt;br /&gt;
&lt;br /&gt;
===Schutz von Metazeichen===&lt;br /&gt;
Einige Metazeichen müssen durch einen Backslash geschützt werden, damit grep diese nicht als Suchmusterbestandteil versteht.&lt;br /&gt;
&lt;br /&gt;
Diese  Zeichen sind: &lt;br /&gt;
&amp;lt;code&amp;gt;?&lt;br /&gt;
+&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
|&lt;br /&gt;
(&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==egrep und fgrep==&lt;br /&gt;
Ursprünglich eigenständige Filter, werden diese beiden Varianten heute kaum noch verwendet. Sie sind in grep mit dem Optionen -E und -F enthalten. egrep hat erweiterte Funktionen (benötigt daher etwas länger zum Suchen), fgrep verzichtet auf Metazeichen und spart somit Zeit und Rechenleistung.&lt;br /&gt;
&lt;br /&gt;
==Der Streamlineeditor sed==&lt;br /&gt;
Der Editor sed arbeitet mit Strömen. Er liest in seiner puren Form StdIn (Kanal 0) und gibt in StdOut (Kanal 1) aus, ähnlich dem Befehl cat. Um das Ergebnis zu speichern muss man eine extra Zieldatei angeben. Quelle und Ziel dürfen nicht identisch sein.&lt;br /&gt;
&lt;br /&gt;
===Wichtige Kommandos und Optionen===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-e Kommando&amp;lt;/code&amp;gt; – Kündigt ein Kommando an. Dies ist nur nötig, wenn mehrere Kommandos aufeinander folgen sollen.&lt;br /&gt;
* &amp;lt;code&amp;gt;-f Scriptdatei&amp;lt;/code&amp;gt; – Lädt mehrere Kommandos aus einem Script. Besonders praktisch, wenn eine bestimmte Kommandoroutine mehrmals aufgerufen werden soll.&lt;br /&gt;
* &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; – sed sucht normalerweise nur innerhalb einer Zeile. Die Option g setzt das Suchverhalten auf global und lässt sed somit auch nach einem Fund weitersuchen.&lt;br /&gt;
&lt;br /&gt;
===Adressierung mit sed===&lt;br /&gt;
&lt;br /&gt;
Der Editor sed sucht und bearbeitet Zeilen innerhalb einer Datei. Manchmal ist es nötig den Arbeitsbereich einzuschränken. Dies kann auf drei Arten geschehen : &lt;br /&gt;
1. Angabe von Zeilennummern&lt;br /&gt;
2. Verwendung des $ Zeichens für die Bearbeitung der letzten Zeile&lt;br /&gt;
3. Verwendung von regulären Ausdrücken (auf beiden Seiten mit Slashes begrenzt nach dem Muster /regEx/ )&lt;br /&gt;
&lt;br /&gt;
Wird keine Adressierung vorgenommen so bearbeitrt sed die gesamte Datei.&lt;br /&gt;
&lt;br /&gt;
===Beispiele für das Arbeiten mit sed===&lt;br /&gt;
&lt;br /&gt;
sed kann mit dem Kommando &amp;quot;y&amp;quot; ähnlich wie translate (Siehe 103.2) einzelne Zeichen suchen und ersetzen. Im Gegensatz zu translate kann sed die Änderungen jedoch in einer neuen Datei abspeichern. Dabei kann für jedes Zeichen nur ein Zeichen ersetzt werden, keine Zeichenkette (1:1 Beziehung).&lt;br /&gt;
&lt;br /&gt;
In dem folgenden Beispiel wird ein Komma mit einem Semikolon ersetzt.&lt;br /&gt;
&amp;lt;code&amp;gt;archangel:~ # sed &#039;y/,/;/&#039; Kommadatei &amp;gt; Semikolondatei&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed -e &#039;/^$/d&#039; -e &#039;/^#/d&#039; /etc/config.conf&amp;lt;/code&amp;gt; – Das -e leitet jeweils ein Kommando ein. Die RegEx müssen innerhalb von Slashes stehen. Der Befehl &amp;quot;d&amp;quot; löscht das Suchergebnis. &amp;quot;/^$/&amp;quot; sucht von Zeilenanfang bis Zeilenenede. &amp;quot;/^#/&amp;quot; sucht Rauten am Zeilenanfang. Somit werden bei diesem Befehl Kommentarspalten und Leerzeilen gelöscht.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed &#039;25,47d&#039; Originaldatei &amp;gt; Kurzdatei&amp;lt;/code&amp;gt; – In diesem Befehl wird zur Adressierung die Zeilenangabe verwendet. Es werden also Zeile 25 und 47 gelöscht. Das Kommando kann durch ein &amp;quot;!&amp;quot; invertiert werden (&amp;quot;25,45!d&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/&#039; Namensliste &amp;lt;/code&amp;gt; – Das Kommando s substituiert Zeichen. Es ist leistungsfähiger als y, da es ein Zeichen auch durch eine Zeichenkette ersetzen kann und umgekehrt. In diesem Beispiel wird ein &amp;quot;ue&amp;quot; mit einem &amp;quot;ü&amp;quot; ersetzt. Mit diesem Befehl wird allerdings lediglich der erste gefundene String mit &amp;quot;ue&amp;quot; durch &amp;quot;ü&amp;quot; ersetzt. Durch das setzen der globalen Option &amp;quot;g&amp;quot; werden alle &amp;quot;ue&amp;quot;&#039;s im Text mit &amp;quot;ü&amp;quot; ersetzt : &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/g&#039; Namensliste&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skripte in sed===&lt;br /&gt;
Man kann mitels Skripten eine Befehlskette durch sed ausführen lassen.&lt;br /&gt;
In dem folgenden Beispiel werden Umlaute (Ä,ä,Ü,ü,Ö,ö und ß) mit HTML tauglichen Zeichenketten ersetzt (&amp;quot;Ä&amp;quot; ist beispielsweise in HTML &amp;quot;&amp;amp;Auml;&amp;quot;). Das Skript wird mit cat (siehe 103.2) erstellt und heisst sedskript :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
archangel:~ # cat sedskript &amp;lt;br&amp;gt;&lt;br /&gt;
s/ä/\&amp;amp;auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ä/\&amp;amp;Auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ü/\&amp;amp;uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ü/\&amp;amp;Uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ö/\&amp;amp;ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ö/\&amp;amp;Ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ß/\&amp;amp;szlig\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kann das Skript mit der Option -f eingelesen werden. Es müssen nun lediglich Quell- &amp;amp; Zieldatei angegeben werden und die Befehle in dem Skript werden auf die Quelldatei angewandt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; archangel:~ # sed -f sedskript Quelltext-mit-Umlauten &amp;gt; Zieltext-in-HTML-Format&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kontrollfragen==&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Wonach sucht RegEx &amp;lt;code&amp;gt;^[^#]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort : Nach einem Zeilenanfang ohne Raute&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben im Kate Editor unter Suchen ohne RegExp &amp;quot;a*&amp;quot; ein. Was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : Sie suchen nach dem String &amp;quot;a*&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Kate-Suche mit RegEx a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Wörter, welche mit einem a beginnen und eine bis beliebig viele Wiederholungen dieses Zeichens aufweisen.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Shell den Befehl ls a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, welche mit a beginnen und deren Folgezeichen belibieg sein können.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Sie geben in der Shell den Befehl ls a??? ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, deren Name mit a beginnt und anschließend genau drei beliebige Folgezeichen beinhaltet.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie können Sie sich alle Einträge vom 10ten Dezember im Systemlog ansehen?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : archangel:~ # grep &#039;^Dec 10&#039; /var/log/syslog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegEx Kommando : archangel:~ # grep –w &#039;[0-9]\{3\}&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen, die drei aufeinander folgende Ziffern beinhalten.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegExp Kommando : archangel:~ # grep &#039;[A-Z]\+&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen mit mindestens einem Großbuchstaben.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Was bewirkt folgender Befehl &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ae/ä/&#039; DeutscherText.txt&amp;lt;/code&amp;gt; ? &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort: Er ersetzt alle &amp;quot;ae&amp;quot; Strings mit einem &amp;quot;ä&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Linux:LPIC:101]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7459</id>
		<title>LPIC101/103.7 Regulären Ausdrücke</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7459"/>
		<updated>2019-12-13T10:05:29Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Begriffs- und Zeichenklärung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wichtung : 3&lt;br /&gt;
&lt;br /&gt;
==Begriffs- und Zeichenklärung==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was sind reguläre Ausdrücke?&#039;&#039;&#039;&lt;br /&gt;
*Reguläre Ausdrücke erleichtern das durchsuchen von Texten&lt;br /&gt;
*Sie beschreiben anhand von Wildcards, Suchwörtern und Positionsangaben und ermöglichen so eine differenziertere Suche&lt;br /&gt;
*Wildcards werden auch Jokerzeichen genannt und sind Platzhalter für ein oder mehrere Zeichen &lt;br /&gt;
*Reguläre Ausdrücke werden in englisch Regular Expressions genannt &lt;br /&gt;
*Reguläre Ausdrücke werden meist mit RegEx oder RegExp abgekürzt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wo kann man reguläre Ausdrücke verwenden?&#039;&#039;&#039;&lt;br /&gt;
*Mit dem Filter &amp;quot;grep&amp;quot; in der Shell&lt;br /&gt;
*Mit dem Vi-Editor in der Shell&lt;br /&gt;
*Mit dem sed Editor in der Shell&lt;br /&gt;
*Im Kate Editor (Option {} aktivieren im Suchen Fenster)&lt;br /&gt;
*In allen Programmiersprachen&lt;br /&gt;
*In vielen weiteren Programmen (z.B. libreOffice)&lt;br /&gt;
&lt;br /&gt;
===Gültige Metazeichen=== &lt;br /&gt;
&lt;br /&gt;
Metazeichen beschreiben die Position einer Suchanfrage. Sie könen auch Zeichen und Zeichensätze definieren, nach denen gesucht werden soll. Gültige Metazeichen sind :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; Textanker für Zeilenanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; Textanker für Zeilenende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;&amp;lt;/code&amp;gt; markiert einen Wortanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;gt;&amp;lt;/code&amp;gt; markiert ein Wortende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt; schützt ein Zeichen vor der Interpretation (z.B. /$ sucht nach Dollarzeichen und nimmt diesen seine Spezialbedeutung)&lt;br /&gt;
* &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; sucht nach einem Zeichen oder einer Zeichenfolge innerhalb des eckig geklammerten Bereichs (z.B. [a-g] )&lt;br /&gt;
* &amp;lt;code&amp;gt;[^Zeichen]&amp;lt;/code&amp;gt; Schließt das Zeichen nach dem Circonflex aus der Suche aus&lt;br /&gt;
&lt;br /&gt;
===Wildcards (Joker)===&lt;br /&gt;
Wildcards beschreiben vorgehende und nachfolgende Zeichen.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; bezeichnet keine oder beliebig viele Wiederholungen des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; bezeichnet keine oder eine Wiederholung des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; bezeichnet, dass das voranstehende Zeichen mindestens einmal vorkommt&lt;br /&gt;
* &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; wird als Platzhalter für ein beliebiges Zeichen verwendet&lt;br /&gt;
&lt;br /&gt;
==Verwendung von grep mit regulären Ausdrücken==&lt;br /&gt;
* Der Filter grep bedeutet &amp;quot;Global search for Regular Expressions and Print out&amp;quot; (Sinngemäß: Globale Suche durch Reguläre Ausdrücke mit Ausgabe).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise für die Verwendung von grep:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; ist bei grep nicht verbose (Gesprächigkeit), sondern invertiert die Ausgabe (z.B. grep -v &amp;quot;Testwort&amp;quot; zeigt alle Zeilen ohne Testwort)&lt;br /&gt;
* &amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt; aktiviert erweiterte reguläre Ausdrücke (entspricht dem Befehl egrep)&lt;br /&gt;
* &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt; ignoriert Groß- &amp;amp; Kleinschreibung&lt;br /&gt;
&lt;br /&gt;
===Beispiele für Verwendung von grep mit RegEx===&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep [Ww]ill[iy] Adressliste&amp;lt;/code&amp;gt; – sucht in der Datei Adressliste nach Willi,willi,Willy und willy. (grep -i Will[iy] liefert das gleiche Ergebnis, ignoriert jedoch auch die Groß- &amp;amp; Kleinschreibung von den anderen Buchstaben)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep W.lly Adressliste&amp;lt;/code&amp;gt; – der Punkt ersetzt ein beliebiges Zeichen, somit würden Willy, Wally usw. gefunden werden, sofern diese existieren.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -v ^[#] /etc/config.conf&amp;lt;/code&amp;gt;oder Alternativ &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf&amp;lt;/code&amp;gt; – findet alle Zeilenanfänge, welche nicht mit einer Raute beginnen&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf | grep -v ^$&amp;lt;/code&amp;gt; – Sucht alle Zeilenanfänge ohne Raute und mit Zeichen am Anfang (siebt Leerzeilen aus, Leerzeile ist Zeilenanfang ^ gefolgt von Zeilenende $)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]*\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend beliebig viele Zahlen bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]\?\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend eine beliebige einstellige Zahl bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -w &#039;1\{3,5\}&#039; Suchdatei&amp;lt;/code&amp;gt; – Mit  dem  folgenden  Kommando  werden  alle  Zeilen  einer  Datei  angezeigt,  die  drei, vier oder fünf aufeinander folgende Einsen enthalten.&lt;br /&gt;
&lt;br /&gt;
===Schutz von Metazeichen===&lt;br /&gt;
Einige Metazeichen müssen durch einen Backslash geschützt werden, damit grep diese nicht als Suchmusterbestandteil versteht.&lt;br /&gt;
&lt;br /&gt;
Diese  Zeichen sind: &lt;br /&gt;
&amp;lt;code&amp;gt;?&lt;br /&gt;
+&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
|&lt;br /&gt;
(&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==egrep und fgrep==&lt;br /&gt;
Ursprünglich eigenständige Filter, werden diese beiden Varianten heute kaum noch verwendet. Sie sind in grep mit dem Optionen -E und -F enthalten. egrep hat erweiterte Funktionen (benötigt daher etwas länger zum Suchen), fgrep verzichtet auf Metazeichen und spart somit Zeit und Rechenleistung.&lt;br /&gt;
&lt;br /&gt;
==Der Streamlineeditor sed==&lt;br /&gt;
Der Editor sed arbeitet mit Strömen. Er liest in seiner puren Form StdIn (Kanal 0) und gibt in StdOut (Kanal 1) aus, ähnlich dem Befehl cat. Um das Ergebnis zu speichern muss man eine extra Zieldatei angeben. Quelle und Ziel dürfen nicht identisch sein.&lt;br /&gt;
&lt;br /&gt;
===Wichtige Kommandos und Optionen===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-e Kommando&amp;lt;/code&amp;gt; – Kündigt ein Kommando an. Dies ist nur nötig, wenn mehrere Kommandos aufeinander folgen sollen.&lt;br /&gt;
* &amp;lt;code&amp;gt;-f Scriptdatei&amp;lt;/code&amp;gt; – Lädt mehrere Kommandos aus einem Script. Besonders praktisch, wenn eine bestimmte Kommandoroutine mehrmals aufgerufen werden soll.&lt;br /&gt;
* &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; – sed sucht normalerweise nur innerhalb einer Zeile. Die Option g setzt das Suchverhalten auf global und lässt sed somit auch nach einem Fund weitersuchen.&lt;br /&gt;
&lt;br /&gt;
===Adressierung mit sed===&lt;br /&gt;
&lt;br /&gt;
Der Editor sed sucht und bearbeitet Zeilen innerhalb einer Datei. Manchmal ist es nötig den Arbeitsbereich einzuschränken. Dies kann auf drei Arten geschehen : &lt;br /&gt;
1. Angabe von Zeilennummern&lt;br /&gt;
2. Verwendung des $ Zeichens für die Bearbeitung der letzten Zeile&lt;br /&gt;
3. Verwendung von regulären Ausdrücken (auf beiden Seiten mit Slashes begrenzt nach dem Muster /regEx/ )&lt;br /&gt;
&lt;br /&gt;
Wird keine Adressierung vorgenommen so bearbeitrt sed die gesamte Datei.&lt;br /&gt;
&lt;br /&gt;
===Beispiele für das Arbeiten mit sed===&lt;br /&gt;
&lt;br /&gt;
sed kann mit dem Kommando &amp;quot;y&amp;quot; ähnlich wie translate (Siehe 103.2) einzelne Zeichen suchen und ersetzen. Im Gegensatz zu translate kann sed die Änderungen jedoch in einer neuen Datei abspeichern. Dabei kann für jedes Zeichen nur ein Zeichen ersetzt werden, keine Zeichenkette (1:1 Beziehung).&lt;br /&gt;
&lt;br /&gt;
In dem folgenden Beispiel wird ein Komma mit einem Semikolon ersetzt.&lt;br /&gt;
&amp;lt;code&amp;gt;archangel:~ # sed &#039;y/,/;/&#039; Kommadatei &amp;gt; Semikolondatei&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed -e &#039;/^$/d&#039; -e &#039;/^#/d&#039; /etc/config.conf&amp;lt;/code&amp;gt; – Das -e leitet jeweils ein Kommando ein. Die RegEx müssen innerhalb von Slashes stehen. Der Befehl &amp;quot;d&amp;quot; löscht das Suchergebnis. &amp;quot;/^$/&amp;quot; sucht von Zeilenanfang bis Zeilenenede. &amp;quot;/^#/&amp;quot; sucht Rauten am Zeilenanfang. Somit werden bei diesem Befehl Kommentarspalten und Leerzeilen gelöscht.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed &#039;25,47d&#039; Originaldatei &amp;gt; Kurzdatei&amp;lt;/code&amp;gt; – In diesem Befehl wird zur Adressierung die Zeilenangabe verwendet. Es werden also Zeile 25 und 47 gelöscht. Das Kommando kann durch ein &amp;quot;!&amp;quot; invertiert werden (&amp;quot;25,45!d&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/&#039; Namensliste &amp;lt;/code&amp;gt; – Das Kommando s substituiert Zeichen. Es ist leistungsfähiger als y, da es ein Zeichen auch durch eine Zeichenkette ersetzen kann und umgekehrt. In diesem Beispiel wird ein &amp;quot;ue&amp;quot; mit einem &amp;quot;ü&amp;quot; ersetzt. Mit diesem Befehl wird allerdings lediglich der erste gefundene String mit &amp;quot;ue&amp;quot; durch &amp;quot;ü&amp;quot; ersetzt. Durch das setzen der globalen Option &amp;quot;g&amp;quot; werden alle &amp;quot;ue&amp;quot;&#039;s im Text mit &amp;quot;ü&amp;quot; ersetzt : &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/g&#039; Namensliste&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skripte in sed===&lt;br /&gt;
Man kann mitels Skripten eine Befehlskette durch sed ausführen lassen.&lt;br /&gt;
In dem folgenden Beispiel werden Umlaute (Ä,ä,Ü,ü,Ö,ö und ß) mit HTML tauglichen Zeichenketten ersetzt (&amp;quot;Ä&amp;quot; ist beispielsweise in HTML &amp;quot;&amp;amp;Auml;&amp;quot;). Das Skript wird mit cat (siehe 103.2) erstellt und heisst sedskript :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
archangel:~ # cat sedskript &amp;lt;br&amp;gt;&lt;br /&gt;
s/ä/\&amp;amp;auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ä/\&amp;amp;Auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ü/\&amp;amp;uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ü/\&amp;amp;Uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ö/\&amp;amp;ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ö/\&amp;amp;Ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ß/\&amp;amp;szlig\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kann das Skript mit der Option -f eingelesen werden. Es müssen nun lediglich Quell- &amp;amp; Zieldatei angegeben werden und die Befehle in dem Skript werden auf die Quelldatei angewandt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; archangel:~ # sed -f sedskript Quelltext-mit-Umlauten &amp;gt; Zieltext-in-HTML-Format&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kontrollfragen==&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Wonach sucht RegEx &amp;lt;code&amp;gt;^[^#]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort : Nach einem Zeilenanfang ohne Raute&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben im Kate Editor unter Suchen ohne RegExp &amp;quot;a*&amp;quot; ein. Was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : Sie suchen nach dem String &amp;quot;a*&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Kate-Suche mit RegEx a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Wörter, welche mit einem a beginnen und eine bis beliebig viele Wiederholungen dieses Zeichens aufweisen.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Shell den Befehl ls a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, welche mit a beginnen und deren Folgezeichen belibieg sein können.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Sie geben in der Shell den Befehl ls a??? ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, deren Name mit a beginnt und anschließend genau drei beliebige Folgezeichen beinhaltet.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie können Sie sich alle Einträge vom 10ten Dezember im Systemlog ansehen?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : archangel:~ # grep &#039;^Dec 10&#039; /var/log/syslog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegEx Kommando : archangel:~ # grep –w &#039;[0-9]\{3\}&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen, die drei aufeinander folgende Ziffern beinhalten.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegExp Kommando : archangel:~ # grep &#039;[A-Z]\+&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen mit mindestens einem Großbuchstaben.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Was bewirkt folgender Befehl &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ae/ä/&#039; DeutscherText.txt&amp;lt;/code&amp;gt; ? &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort: Er ersetzt alle &amp;quot;ae&amp;quot; Strings mit einem &amp;quot;ä&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Linux:LPIC:101]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7374</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7374"/>
		<updated>2019-12-10T11:00:14Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 # tar -xJf keepassxc-2.5.1-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 # cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
Anschließend werden die benötigten Bibliotheken installiert. Diese können unter [[https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux|Debian Libraries]] eingesehen werden. Für die Version 2.5.1 benötigen wir :&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe [[Debian_Repositories#Backport_Repository_anlegen_.28Linux_Buster.29|Backport Repository einbinden]] &lt;br /&gt;
Danach &amp;lt;code&amp;gt;# apt install checkinstall&amp;lt;/code&amp;gt; ausführen. Anschließend folgenden Befehl im Ordner /home/user/Downloads/keepassxc-2.5.1/build ausführen:&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
*In der Installation die erste Frage zur Doc mit n (No) beantworten. &lt;br /&gt;
*In dem anschließenden Screen einmal Enter drücken&lt;br /&gt;
*Anschließend erscheint ein Bildschirm mit Meta-Informationen. Hier können mit den Ziffern und Enter die entsprechenden Infos bearbeitet werden, dort unter 2 keepassXC, unter 3 2.5.1 und unter 8 https://keepassxc.org/download/#source eintragen. &lt;br /&gt;
*Mit Enter weiter und Kompilierung abwarten&lt;br /&gt;
*Am Ende der Installation die erste Frage mit n und die zweite mit yes beantworten&lt;br /&gt;
*Das .deb Paket mit dem entsprechenden Namen wurde in dem Ordner /build erstellt&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7373</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7373"/>
		<updated>2019-12-10T10:58:29Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
Anschließend werden die benötigten Bibliotheken installiert. Diese können unter [[https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux|Debian Libraries]] eingesehen werden. Für die Version 2.5.1 benötigen wir :&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe [[Debian_Repositories#Backport_Repository_anlegen_.28Linux_Buster.29|Backport Repository einbinden]] &lt;br /&gt;
Danach &amp;lt;code&amp;gt;# apt install checkinstall&amp;lt;/code&amp;gt; ausführen. Anschließend folgenden Befehl im Ordnet /home/user/Downloads/keepassxc-2.5.1/build&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
*In der Installation die erste Frage zur Doc mit n (No) beantworten. &lt;br /&gt;
*In dem anschließenden Screen einmal Enter drücken&lt;br /&gt;
*Anschließend erscheint ein Bildschirm mit Meta-Informationen. Hier können mit den Ziffern und Enter die entsprechenden Infos bearbeitet werden, dort unter 2 keepassXC, unter 3 2.5.1 und unter 8 https://keepassxc.org/download/#source eintragen. &lt;br /&gt;
*Mit Enter weiter und Kompilierung abwarten&lt;br /&gt;
*Am Ende der Installation die erste Frage mit n und die zweite mit yes beantworten&lt;br /&gt;
*Das .deb Paket mit dem entsprechenden Namen wurde in dem Ordner /build erstellt&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7365</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7365"/>
		<updated>2019-12-10T09:52:10Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
Anschließend werden die benötigten Bibliotheken installiert. Diese können unter [[https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux|Debian Libraries]] eingesehen werden. Für die Version 2.5.1 benötigen wir :&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe [[Debian_Repositories#Backport_Repository_anlegen_.28Linux_Buster.29|Backport Repository einbinden]] &lt;br /&gt;
Danach &amp;lt;code&amp;gt;# apt install checkinstall&amp;lt;/code&amp;gt; ausführen. Anschließend folgenden Befehl im Ordnet /home/user/Downloads/keepassxc-2.5.1/build&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
*In der Installation die erste Frage zur Doc mit n (No) beantworten.&lt;br /&gt;
*Anschließend können mit den Ziffern und Enter die entsprechenden Infos bearbeitet werden, dort unter 2 keepassXC, unter 3 2.5.1 und unter 8 https://keepassxc.org/download/#source eintragen. &lt;br /&gt;
*Mit Enter weiter und Kompilierung abwarten&lt;br /&gt;
*Das .deb Paket mit dem entsprechenden Namen wurde in dem Ordner /build erstellt&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7360</id>
		<title>LPIC101/103.7 Regulären Ausdrücke</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=LPIC101/103.7_Regul%C3%A4ren_Ausdr%C3%BCcke&amp;diff=7360"/>
		<updated>2019-12-10T08:48:40Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Kontrollfragen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wichtung : 3&lt;br /&gt;
&lt;br /&gt;
==Begriffs- und Zeichenklärung==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was sind reguläre Ausdrücke?&#039;&#039;&#039;&lt;br /&gt;
*Reguläre Ausdrücke erleichtern das durchsuchen von Texten&lt;br /&gt;
*Sie beschreiben anhand von Wildcards, Suchwörtern und Positionsangaben und ermöglichen so eine differenziertere Suche&lt;br /&gt;
*Wildcards werden auch Jokerzeichen genannt und sind Platzhalter für ein oder mehrere Zeichen &lt;br /&gt;
*Reguläre Ausdrücke werden in englisch Regular Expressions genannt &lt;br /&gt;
*Reguläre Ausdrücke werden meist mit RegEx oder RegExp abgekürzt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wo kann man reguläre Ausdrücke verwenden?&#039;&#039;&#039;&lt;br /&gt;
*Mit dem Filter &amp;quot;grep&amp;quot; in der Shell&lt;br /&gt;
*Mit dem Vi-Editor in der Shell&lt;br /&gt;
*Mit dem sed Editor in der Shell&lt;br /&gt;
*Im Kate Editor (Option {} aktivieren im Suchen Fenster)&lt;br /&gt;
*In vielen weiteren Programmen&lt;br /&gt;
&lt;br /&gt;
===Gültige Metazeichen=== &lt;br /&gt;
&lt;br /&gt;
Metazeichen beschreiben die Position einer Suchanfrage. Sie könen auch Zeichen und Zeichensätze definieren, nach denen gesucht werden soll. Gültige Metazeichen sind :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; Textanker für Zeilenanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; Textanker für Zeilenende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;&amp;lt;/code&amp;gt; markiert einen Wortanfang&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;gt;&amp;lt;/code&amp;gt; markiert ein Wortende&lt;br /&gt;
* &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt; schützt ein Zeichen vor der Interpretation (z.B. /$ sucht nach Dollarzeichen und nimmt diesen seine Spezialbedeutung)&lt;br /&gt;
* &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; sucht nach einem Zeichen oder einer Zeichenfolge innerhalb des eckig geklammerten Bereichs (z.B. [a-g] )&lt;br /&gt;
* &amp;lt;code&amp;gt;[^Zeichen]&amp;lt;/code&amp;gt; Schließt das Zeichen nach dem Circonflex aus der Suche aus&lt;br /&gt;
&lt;br /&gt;
===Wildcards (Joker)===&lt;br /&gt;
Wildcards beschreiben vorgehende und nachfolgende Zeichen.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; bezeichnet keine oder beliebig viele Wiederholungen des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; bezeichnet keine oder eine Wiederholung des vorangegangenen Zeichens&lt;br /&gt;
* &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; bezeichnet, dass das voranstehende Zeichen mindestens einmal vorkommt&lt;br /&gt;
* &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; wird als Platzhalter für ein beliebiges Zeichen verwendet&lt;br /&gt;
&lt;br /&gt;
==Verwendung von grep mit regulären Ausdrücken==&lt;br /&gt;
* Der Filter grep bedeutet &amp;quot;Global search for Regular Expressions and Print out&amp;quot; (Sinngemäß: Globale Suche durch Reguläre Ausdrücke mit Ausgabe).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise für die Verwendung von grep:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; ist bei grep nicht verbose (Gesprächigkeit), sondern invertiert die Ausgabe (z.B. grep -v &amp;quot;Testwort&amp;quot; zeigt alle Zeilen ohne Testwort)&lt;br /&gt;
* &amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt; aktiviert erweiterte reguläre Ausdrücke (entspricht dem Befehl egrep)&lt;br /&gt;
* &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt; ignoriert Groß- &amp;amp; Kleinschreibung&lt;br /&gt;
&lt;br /&gt;
===Beispiele für Verwendung von grep mit RegEx===&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep [Ww]ill[iy] Adressliste&amp;lt;/code&amp;gt; – sucht in der Datei Adressliste nach Willi,willi,Willy und willy. (grep -i Will[iy] liefert das gleiche Ergebnis, ignoriert jedoch auch die Groß- &amp;amp; Kleinschreibung von den anderen Buchstaben)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep W.lly Adressliste&amp;lt;/code&amp;gt; – der Punkt ersetzt ein beliebiges Zeichen, somit würden Willy, Wally usw. gefunden werden, sofern diese existieren.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -v ^[#] /etc/config.conf&amp;lt;/code&amp;gt;oder Alternativ &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf&amp;lt;/code&amp;gt; – findet alle Zeilenanfänge, welche nicht mit einer Raute beginnen&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep ^[^#] /etc/config.conf | grep -v ^$&amp;lt;/code&amp;gt; – Sucht alle Zeilenanfänge ohne Raute und mit Zeichen am Anfang (siebt Leerzeilen aus, Leerzeile ist Zeilenanfang ^ gefolgt von Zeilenende $)&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]*\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend beliebig viele Zahlen bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep &#039;Wort[1-9]\?\&amp;gt;&#039; Suchdatei&amp;lt;/code&amp;gt; – Sucht alle Wörter, welche mit &amp;quot;Wort&amp;quot; anfangen und anschließend eine beliebige einstellige Zahl bis zum Wortende beinhalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # grep -w &#039;1\{3,5\}&#039; Suchdatei&amp;lt;/code&amp;gt; – Mit  dem  folgenden  Kommando  werden  alle  Zeilen  einer  Datei  angezeigt,  die  drei, vier oder fünf aufeinander folgende Einsen enthalten.&lt;br /&gt;
&lt;br /&gt;
===Schutz von Metazeichen===&lt;br /&gt;
Einige Metazeichen müssen durch einen Backslash geschützt werden, damit grep diese nicht als Suchmusterbestandteil versteht.&lt;br /&gt;
&lt;br /&gt;
Diese  Zeichen sind: &lt;br /&gt;
&amp;lt;code&amp;gt;?&lt;br /&gt;
+&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
|&lt;br /&gt;
(&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==egrep und fgrep==&lt;br /&gt;
Ursprünglich eigenständige Filter, werden diese beiden Varianten heute kaum noch verwendet. Sie sind in grep mit dem Optionen -E und -F enthalten. egrep hat erweiterte Funktionen (benötigt daher etwas länger zum Suchen), fgrep verzichtet auf Metazeichen und spart somit Zeit und Rechenleistung.&lt;br /&gt;
&lt;br /&gt;
==Der Streamlineeditor sed==&lt;br /&gt;
Der Editor sed arbeitet mit Strömen. Er liest in seiner puren Form StdIn (Kanal 0) und gibt in StdOut (Kanal 1) aus, ähnlich dem Befehl cat. Um das Ergebnis zu speichern muss man eine extra Zieldatei angeben. Quelle und Ziel dürfen nicht identisch sein.&lt;br /&gt;
&lt;br /&gt;
===Wichtige Kommandos und Optionen===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-e Kommando&amp;lt;/code&amp;gt; – Kündigt ein Kommando an. Dies ist nur nötig, wenn mehrere Kommandos aufeinander folgen sollen.&lt;br /&gt;
* &amp;lt;code&amp;gt;-f Scriptdatei&amp;lt;/code&amp;gt; – Lädt mehrere Kommandos aus einem Script. Besonders praktisch, wenn eine bestimmte Kommandoroutine mehrmals aufgerufen werden soll.&lt;br /&gt;
* &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; – sed sucht normalerweise nur innerhalb einer Zeile. Die Option g setzt das Suchverhalten auf global und lässt sed somit auch nach einem Fund weitersuchen.&lt;br /&gt;
&lt;br /&gt;
===Adressierung mit sed===&lt;br /&gt;
&lt;br /&gt;
Der Editor sed sucht und bearbeitet Zeilen innerhalb einer Datei. Manchmal ist es nötig den Arbeitsbereich einzuschränken. Dies kann auf drei Arten geschehen : &lt;br /&gt;
1. Angabe von Zeilennummern&lt;br /&gt;
2. Verwendung des $ Zeichens für die Bearbeitung der letzten Zeile&lt;br /&gt;
3. Verwendung von regulären Ausdrücken (auf beiden Seiten mit Slashes begrenzt nach dem Muster /regEx/ )&lt;br /&gt;
&lt;br /&gt;
Wird keine Adressierung vorgenommen so bearbeitrt sed die gesamte Datei.&lt;br /&gt;
&lt;br /&gt;
===Beispiele für das Arbeiten mit sed===&lt;br /&gt;
&lt;br /&gt;
sed kann mit dem Kommando &amp;quot;y&amp;quot; ähnlich wie translate (Siehe 103.2) einzelne Zeichen suchen und ersetzen. Im Gegensatz zu translate kann sed die Änderungen jedoch in einer neuen Datei abspeichern. Dabei kann für jedes Zeichen nur ein Zeichen ersetzt werden, keine Zeichenkette (1:1 Beziehung).&lt;br /&gt;
&lt;br /&gt;
In dem folgenden Beispiel wird ein Komma mit einem Semikolon ersetzt.&lt;br /&gt;
&amp;lt;code&amp;gt;archangel:~ # sed &#039;y/,/;/&#039; Kommadatei &amp;gt; Semikolondatei&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed -e &#039;/^$/d&#039; -e &#039;/^#/d&#039; /etc/config.conf&amp;lt;/code&amp;gt; – Das -e leitet jeweils ein Kommando ein. Die RegEx müssen innerhalb von Slashes stehen. Der Befehl &amp;quot;d&amp;quot; löscht das Suchergebnis. &amp;quot;/^$/&amp;quot; sucht von Zeilenanfang bis Zeilenenede. &amp;quot;/^#/&amp;quot; sucht Rauten am Zeilenanfang. Somit werden bei diesem Befehl Kommentarspalten und Leerzeilen gelöscht.&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:~ # sed &#039;25,47d&#039; Originaldatei &amp;gt; Kurzdatei&amp;lt;/code&amp;gt; – In diesem Befehl wird zur Adressierung die Zeilenangabe verwendet. Es werden also Zeile 25 und 47 gelöscht. Das Kommando kann durch ein &amp;quot;!&amp;quot; invertiert werden (&amp;quot;25,45!d&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/&#039; Namensliste &amp;lt;/code&amp;gt; – Das Kommando s substituiert Zeichen. Es ist leistungsfähiger als y, da es ein Zeichen auch durch eine Zeichenkette ersetzen kann und umgekehrt. In diesem Beispiel wird ein &amp;quot;ue&amp;quot; mit einem &amp;quot;ü&amp;quot; ersetzt. Mit diesem Befehl wird allerdings lediglich der erste gefundene String mit &amp;quot;ue&amp;quot; durch &amp;quot;ü&amp;quot; ersetzt. Durch das setzen der globalen Option &amp;quot;g&amp;quot; werden alle &amp;quot;ue&amp;quot;&#039;s im Text mit &amp;quot;ü&amp;quot; ersetzt : &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ue/ü/g&#039; Namensliste&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skripte in sed===&lt;br /&gt;
Man kann mitels Skripten eine Befehlskette durch sed ausführen lassen.&lt;br /&gt;
In dem folgenden Beispiel werden Umlaute (Ä,ä,Ü,ü,Ö,ö und ß) mit HTML tauglichen Zeichenketten ersetzt (&amp;quot;Ä&amp;quot; ist beispielsweise in HTML &amp;quot;&amp;amp;Auml;&amp;quot;). Das Skript wird mit cat (siehe 103.2) erstellt und heisst sedskript :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
archangel:~ # cat sedskript &amp;lt;br&amp;gt;&lt;br /&gt;
s/ä/\&amp;amp;auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ä/\&amp;amp;Auml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ü/\&amp;amp;uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ü/\&amp;amp;Uuml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ö/\&amp;amp;ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/Ö/\&amp;amp;Ouml\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
s/ß/\&amp;amp;szlig\;/g;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kann das Skript mit der Option -f eingelesen werden. Es müssen nun lediglich Quell- &amp;amp; Zieldatei angegeben werden und die Befehle in dem Skript werden auf die Quelldatei angewandt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; archangel:~ # sed -f sedskript Quelltext-mit-Umlauten &amp;gt; Zieltext-in-HTML-Format&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kontrollfragen==&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Wonach sucht RegEx &amp;lt;code&amp;gt;^[^#]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort : Nach einem Zeilenanfang ohne Raute&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben im Kate Editor unter Suchen ohne RegExp &amp;quot;a*&amp;quot; ein. Was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : Sie suchen nach dem String &amp;quot;a*&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Kate-Suche mit RegEx a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Wörter, welche mit einem a beginnen und eine bis beliebig viele Wiederholungen dieses Zeichens aufweisen.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie geben in der Shell den Befehl ls a* ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, welche mit a beginnen und deren Folgezeichen belibieg sein können.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Sie geben in der Shell den Befehl ls a??? ein, was erhalten Sie als Antwort?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Sie erhalten alle Dateien und Verzeichnisse, deren Name mit a beginnt und anschließend genau drei beliebige Folgezeichen beinhaltet.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie können Sie sich alle Einträge vom 10ten Dezember im Systemlog ansehen?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort : archangel:~ # grep &#039;^Dec 10&#039; /var/log/syslog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegEx Kommando : archangel:~ # grep –w &#039;[0-9]\{3\}&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen, die drei aufeinander folgende Ziffern beinhalten.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wonach sucht das folgende RegExp Kommando : archangel:~ # grep &#039;[A-Z]\+&#039; Suchdatei ?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Antwort: Es sucht nach Zeilen mit mindestens einem Großbuchstaben.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Was bewirkt folgender Befehl &amp;lt;code&amp;gt;archangel:/textfiles # sed &#039;s/ae/ä/&#039; DeutscherText.txt&amp;lt;/code&amp;gt; ? &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Antwort: Er ersetzt alle &amp;quot;ae&amp;quot; Strings mit einem &amp;quot;ä&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Linux:LPIC:101]]&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=LPIC/Simulator/Fragen_einreichen&amp;diff=7358</id>
		<title>LPIC/Simulator/Fragen einreichen</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=LPIC/Simulator/Fragen_einreichen&amp;diff=7358"/>
		<updated>2019-12-10T08:35:17Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Fragen für den Prüfungssimulator in folgender Form einreichen:&lt;br /&gt;
&lt;br /&gt;
==Variante MultipleChoice mit 1 richtiger Antwort==&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetitel&amp;gt;&#039;&#039;&#039;Frage 2124&#039;&#039;&#039;&amp;lt;/fragetitel&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetyp&amp;gt;&#039;&#039;&#039;auswahl&#039;&#039;&#039;&amp;lt;/fragetyp&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;punkte&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/punkte&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;hinweis&amp;gt;&#039;&#039;&#039;LPI101-102&#039;&#039;&#039;&amp;lt;/hinweis&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;erklaerung&amp;gt;&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;/erklaerung&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetext&amp;gt;&#039;&#039;&#039;Mit welchem ​​der folgenden apt-get-Befehle werden die neuesten Versionen aller derzeit installierten&lt;br /&gt;
 Pakete installiert?&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/fragetext&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;auto-update&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;full-upgrade&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;dist-upgrade&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;install&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;update&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variante freie Texteingabe (hier können auch mehrere richtige Antwortmöglichkeiten angegeben werden)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetitel&amp;gt;&#039;&#039;&#039;Frage 2110&#039;&#039;&#039;&amp;lt;/fragetitel&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetyp&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;&amp;lt;/fragetyp&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;punkte&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/punkte&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;hinweis&amp;gt;&#039;&#039;&#039;LPI101-102&#039;&#039;&#039;&amp;lt;/hinweis&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;erklaerung&amp;gt;&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;/erklaerung&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetext&amp;gt;&#039;&#039;&#039;Welches Debian-Paketverwaltungstool stellt die Konfigurationsfragen für ein bestimmten bereits&lt;br /&gt;
 installiertes Paket, als ob das Paket zum ersten Mal installiert würde? (Geben sie NUR den Befehl ohne Pfad oder&lt;br /&gt;
 Parameter an) &amp;amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/fragetext&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2110&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;dpkg-reconfigure&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variante Multiple Choice mit mehreren richtigen Antworten== &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetitel&amp;gt;&#039;&#039;&#039;Frage 2099&#039;&#039;&#039;&amp;lt;/fragetitel&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetyp&amp;gt;&#039;&#039;&#039;auswahl&#039;&#039;&#039;&amp;lt;/fragetyp&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;punkte&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/punkte&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;hinweis&amp;gt;&#039;&#039;&#039;LPI101-102&#039;&#039;&#039;&amp;lt;/hinweis&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;erklaerung&amp;gt;&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;/erklaerung&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetext&amp;gt;&#039;&#039;&#039;Wofür kann der Logical Volume Manager (LVM) verwendet werden? (Wählen Sie DREI richtige Antworten)&#039;&#039;&#039;&amp;lt;/fragetext&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;Zum erstellen von RAID 9-Arrays&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;Um die Größe der logischen Volumes dynamisch zu ändern&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;Zum verschlüsseln von logische Volumes&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;Snapshots erstellen&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;Dynamisches Erstellen oder Löschen von logischen Volumes&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Es kann zwischen den Varianten frei gewählt werden.&lt;br /&gt;
*Einreichen an simulator@itw-berlin.net&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=LPIC/Simulator/Fragen_einreichen&amp;diff=7357</id>
		<title>LPIC/Simulator/Fragen einreichen</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=LPIC/Simulator/Fragen_einreichen&amp;diff=7357"/>
		<updated>2019-12-10T08:33:41Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Fragen für den Prüfungssimulator in folgender Form einreichen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Variante MultipleChoice mit 1 richtiger Antwort&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetitel&amp;gt;&#039;&#039;&#039;Frage 2124&#039;&#039;&#039;&amp;lt;/fragetitel&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetyp&amp;gt;&#039;&#039;&#039;auswahl&#039;&#039;&#039;&amp;lt;/fragetyp&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;punkte&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/punkte&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;hinweis&amp;gt;&#039;&#039;&#039;LPI101-102&#039;&#039;&#039;&amp;lt;/hinweis&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;erklaerung&amp;gt;&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;/erklaerung&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetext&amp;gt;&#039;&#039;&#039;Mit welchem ​​der folgenden apt-get-Befehle werden die neuesten Versionen aller derzeit installierten&lt;br /&gt;
Pakete installiert?&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/fragetext&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;auto-update&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;full-upgrade&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;dist-upgrade&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;install&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2124&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;update&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Variante freie Texteingabe (hier können auch mehrere richtige Antwortmöglichkeiten angegeben werden)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetitel&amp;gt;&#039;&#039;&#039;Frage 2110&#039;&#039;&#039;&amp;lt;/fragetitel&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetyp&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;&amp;lt;/fragetyp&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;punkte&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/punkte&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;hinweis&amp;gt;&#039;&#039;&#039;LPI101-102&#039;&#039;&#039;&amp;lt;/hinweis&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;erklaerung&amp;gt;&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;/erklaerung&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetext&amp;gt;&#039;&#039;&#039;Welches Debian-Paketverwaltungstool stellt die Konfigurationsfragen für ein bestimmten bereits&lt;br /&gt;
 installiertes Paket, als ob das Paket zum ersten Mal installiert würde? (Geben sie NUR den Befehl ohne Pfad oder&lt;br /&gt;
 Parameter an) &amp;amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/fragetext&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2110&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;dpkg-reconfigure&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Variante Multiple Choice mit mehreren richtigen Antworten&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetitel&amp;gt;&#039;&#039;&#039;Frage 2099&#039;&#039;&#039;&amp;lt;/fragetitel&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetyp&amp;gt;&#039;&#039;&#039;auswahl&#039;&#039;&#039;&amp;lt;/fragetyp&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;punkte&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039;&amp;lt;/punkte&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;hinweis&amp;gt;&#039;&#039;&#039;LPI101-102&#039;&#039;&#039;&amp;lt;/hinweis&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;erklaerung&amp;gt;&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;/erklaerung&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;fragetext&amp;gt;&#039;&#039;&#039;Wofür kann der Logical Volume Manager (LVM) verwendet werden? (Wählen Sie DREI richtige Antworten)&#039;&#039;&#039;&amp;lt;/fragetext&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;Zum erstellen von RAID 9-Arrays&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;Um die Größe der logischen Volumes dynamisch zu ändern&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;nein&#039;&amp;gt;&#039;&#039;&#039;Zum verschlüsseln von logische Volumes&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;Snapshots erstellen&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;antwort zuFrage=&#039;Frage 2099&#039; richtig=&#039;ja&#039;&amp;gt;&#039;&#039;&#039;Dynamisches Erstellen oder Löschen von logischen Volumes&#039;&#039;&#039;&amp;lt;/antwort&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Es kann zwischen den Varianten frei gewählt werden.&lt;br /&gt;
*Einreichen an simulator@itw-berlin.net&lt;br /&gt;
*Fragenr. von folgender Logik entnehmen (und eintragen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3001 || Ben&lt;br /&gt;
|-&lt;br /&gt;
| 3002 || Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| 3003 || Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| 3004 || Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| 3005 || Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| 3006 || Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| 3007 || Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| usw. || Beispiel&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7344</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7344"/>
		<updated>2019-12-09T13:49:17Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
Anschließend werden die benötigten Bibliotheken installiert. Diese können unter [[https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux|Debian Libraries]] eingesehen werden. Für die Version 2.5.1 benötigen wir :&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe [[Debian_Repositories#Backport_Repository_anlegen_.28Linux_Buster.29|Backport Repository einbinden]] &lt;br /&gt;
Danach &amp;lt;code&amp;gt;# apt install checkinstall&amp;lt;/code&amp;gt; ausführen. Anschließend folgenden Befehl im Ordnet /home/user/Downloads/keepassxc-2.5.1/build&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
*In der Installation die erste Frage zur Doc mit n (No) beantworten.&lt;br /&gt;
*Anschließend können mit den Ziffern und Enter die entsprechenden Infos bearbeitet werden, dort unter 2 keepassXC, unter 3 2.5.1 und unter 8 https://keepassxc.org/download/#source eintragen. &lt;br /&gt;
*Mit Enter weiter und Kompilierung abwarten&lt;br /&gt;
*Das .deb Paket mit dem entsprechenden Namen wurde in dem Ordner /build erstellt&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7342</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7342"/>
		<updated>2019-12-09T13:48:41Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
Anschließend werden die benötigten Bibliotheken installiert. Diese können unter https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux eingesehen werden. Für die Version 2.5.1 benötigen wir :&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe [[Debian_Repositories#Backport_Repository_anlegen_.28Linux_Buster.29|Backport Repository einbinden]] &lt;br /&gt;
Danach &amp;lt;code&amp;gt;# apt install checkinstall&amp;lt;/code&amp;gt; ausführen. Anschließend folgenden Befehl im Ordnet /home/user/Downloads/keepassxc-2.5.1/build&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
*In der Installation die erste Frage zur Doc mit n (No) beantworten.&lt;br /&gt;
*Anschließend können mit den Ziffern und Enter die entsprechenden Infos bearbeitet werden, dort unter 2 keepassXC, unter 3 2.5.1 und unter 8 https://keepassxc.org/download/#source eintragen. &lt;br /&gt;
*Mit Enter weiter und Kompilierung abwarten&lt;br /&gt;
*Das .deb Paket mit dem entsprechenden Namen wurde in dem Ordner /build erstellt&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7338</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7338"/>
		<updated>2019-12-09T13:47:21Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe [[Debian_Repositories#Backport_Repository_anlegen_.28Linux_Buster.29|Backport Repository einbinden]] &lt;br /&gt;
Danach &amp;lt;code&amp;gt;# apt install checkinstall&amp;lt;/code&amp;gt; ausführen. Anschließend folgenden Befehl im Ordnet /home/user/Downloads/keepassxc-2.5.1/build&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
*In der Installation die erste Frage zur Doc mit n (No) beantworten.&lt;br /&gt;
*Anschließend können mit den Ziffern und Enter die entsprechenden Infos bearbeitet werden, dort unter 2 keepassXC, unter 3 2.5.1 und unter 8 https://keepassxc.org/download/#source eintragen. &lt;br /&gt;
*Mit Enter weiter und Kompilierung abwarten&lt;br /&gt;
*Das .deb Paket mit dem entsprechenden Namen wurde in dem Ordner /build erstellt&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7335</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7335"/>
		<updated>2019-12-09T13:39:55Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe [[Debian_Repositories#Backport_Repository_anlegen_.28Linux_Buster.29|Backport Repository einbinden]] &lt;br /&gt;
Danach &amp;lt;code&amp;gt;# apt install checkinstall&amp;lt;/code&amp;gt; ausführen. Anschließend folgenden Befehl im Ordnet /home/user/Downloads/keepassxc-2.5.1/build&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7329</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7329"/>
		<updated>2019-12-09T13:31:30Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe https://wiki.itw-berlin.net/index.php?title=Debian_Repositories&lt;br /&gt;
Danach &amp;lt;code&amp;gt;# apt install checkinstall&amp;lt;/code&amp;gt; ausführen. Anschließend folgenden Befehl im Ordnet /home/user/Downloads/keepassxc-2.5.1/build&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=APT/Repositories&amp;diff=7327</id>
		<title>APT/Repositories</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=APT/Repositories&amp;diff=7327"/>
		<updated>2019-12-09T13:17:43Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* sourceslistgenerator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Was macht ein Repository===&lt;br /&gt;
&lt;br /&gt;
Ein Repository enthält die URL&#039;s und Informationen zu den aktuellen Programmen, welche von Debian unterstützt, getestet und für vertrauenswürdig befunden wurden. Das Hauptrepository befindet sich in der Datei sources.list im Ordnet /etc/apt/ .&lt;br /&gt;
&lt;br /&gt;
===Unterteilungen von Repositories===&lt;br /&gt;
Es ist möglich im Ordnet sources.list.d Dateien anzulegen mit jeweiligen URL&#039;s zu entsprechenden Repositories. Das ist hilfreich um die Übersicht zu behalten. &lt;br /&gt;
&lt;br /&gt;
===Backport Repository anlegen (Linux Buster)===&lt;br /&gt;
Um ein Backport Repository anzulegen muss man zunächst in den Ordner /etc/apt/sources.list.d/ wechseln.&lt;br /&gt;
Anschließend die Datei backport.list anlegen&lt;br /&gt;
 touch backport.list&lt;br /&gt;
&lt;br /&gt;
Nun muss die Datei mit Inhalt befüllt werden&lt;br /&gt;
 cat &amp;gt; backport.list  [Enter drücken]&lt;br /&gt;
 deb http://deb.debian.org/debian buster-backports main [Enter drücken]&lt;br /&gt;
 [CTRL+D]&lt;br /&gt;
&lt;br /&gt;
===Vertrauenswürdigkeit von Repositories===&lt;br /&gt;
Normalerweise benötigt man zum Einbinden eines Repositories einen GPG-Key. Dieser stellt die Vertrauenswürdigkeit des Repositories sicher. Bei den Backport-Repositories ist dies jedoch nicht nötig.&lt;br /&gt;
&lt;br /&gt;
===GPG-Key bei Fremdquellen===&lt;br /&gt;
Deb-Pakete in Paketquellen werden mit GnuPG-Schlüsseln digital signiert. Passt die Signatur zu keinem der Paketverwaltung bekannten Schlüssel, so wird der Benutzer bei der Installation eines Paketes aus solch einer Quelle gewarnt (in neueren Ubuntu-Version sogar verweigert). Drittanbieter stellen daher oft ihren GPG-Key zur Verfügung, den man dann in seinen Keyring importieren muss.&lt;br /&gt;
&lt;br /&gt;
Um einen Schlüssel hinzuzufügen, ist die einsteigerfreundlichste (weil grafische) Methode, den Schlüssel als Textdatei abzuspeichern und dann über System -&amp;gt; Systemverwaltung -&amp;gt; Synaptic Paketverwaltung -&amp;gt; Einstellungen -&amp;gt; Paketquellen -&amp;gt; Authentifizierung zu importieren.&lt;br /&gt;
&lt;br /&gt;
In einem Terminal kann durch die Eingabe folgenden Befehls dasselbe erreicht werden:&lt;br /&gt;
&lt;br /&gt;
 # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com FINGERPRINT_DES_SCHLÜSSELS &lt;br /&gt;
&lt;br /&gt;
Beispiel :&lt;br /&gt;
 # wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg&lt;br /&gt;
 # apt-key add apt.gpg&lt;br /&gt;
 # apt-key add php.gpg&lt;br /&gt;
&lt;br /&gt;
*wget lädt den gpg Key herunter (in diesem Beispiel sind es zwei Schlüssel)&lt;br /&gt;
*apt-key add fügt den Schlüssel zum Keyring hinzu&lt;br /&gt;
 &lt;br /&gt;
===sources.list Generator===&lt;br /&gt;
&lt;br /&gt;
Es gibt im Internet ein praktisches Tool, welches eine sources List Datei erstellt.&lt;br /&gt;
Dabei kann zwischen den verschiedenen Versionen von Debian gewählt werden (Stable, Testing, Unstable).&lt;br /&gt;
Es können auch Repositories von Dritten eingebunden werden (diese werden unterhalb angezeigt und können via Checkbox ausgewählt werden). In diesem Fall muss man den GPG-Key manuell hinzufügen. Die Adresse des GPG-Keys wird auf der folgenden Seite angezeigt.&lt;br /&gt;
&lt;br /&gt;
Link : https://debgen.simplylinux.ch/&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=APT/Repositories&amp;diff=7323</id>
		<title>APT/Repositories</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=APT/Repositories&amp;diff=7323"/>
		<updated>2019-12-09T13:11:55Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Überschrift 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Was macht ein Repository===&lt;br /&gt;
&lt;br /&gt;
Ein Repository enthält die URL&#039;s und Informationen zu den aktuellen Programmen, welche von Debian unterstützt, getestet und für vertrauenswürdig befunden wurden. Das Hauptrepository befindet sich in der Datei sources.list im Ordnet /etc/apt/ .&lt;br /&gt;
&lt;br /&gt;
===Unterteilungen von Repositories===&lt;br /&gt;
Es ist möglich im Ordnet sources.list.d Dateien anzulegen mit jeweiligen URL&#039;s zu entsprechenden Repositories. Das ist hilfreich um die Übersicht zu behalten. &lt;br /&gt;
&lt;br /&gt;
===Backport Repository anlegen (Linux Buster)===&lt;br /&gt;
Um ein Backport Repository anzulegen muss man zunächst in den Ordner /etc/apt/sources.list.d/ wechseln.&lt;br /&gt;
Anschließend die Datei backport.list anlegen&lt;br /&gt;
 touch backport.list&lt;br /&gt;
&lt;br /&gt;
Nun muss die Datei mit Inhalt befüllt werden&lt;br /&gt;
 cat &amp;gt; backport.list  [Enter drücken]&lt;br /&gt;
 deb http://deb.debian.org/debian buster-backports main [Enter drücken]&lt;br /&gt;
 [CTRL+D]&lt;br /&gt;
&lt;br /&gt;
===Vertrauenswürdigkeit von Repositories===&lt;br /&gt;
Normalerweise benötigt man zum Einbinden eines Repositories einen GPG-Key. Dieser stellt die Vertrauenswürdigkeit des Repositories sicher. Bei den Backport-Repositories ist dies jedoch nicht nötig.&lt;br /&gt;
&lt;br /&gt;
===GPG-Key bei Fremdquellen===&lt;br /&gt;
Deb-Pakete in Paketquellen werden mit GnuPG-Schlüsseln digital signiert. Passt die Signatur zu keinem der Paketverwaltung bekannten Schlüssel, so wird der Benutzer bei der Installation eines Paketes aus solch einer Quelle gewarnt (in neueren Ubuntu-Version sogar verweigert). Drittanbieter stellen daher oft ihren GPG-Key zur Verfügung, den man dann in seinen Keyring importieren muss.&lt;br /&gt;
&lt;br /&gt;
Um einen Schlüssel hinzuzufügen, ist die einsteigerfreundlichste (weil grafische) Methode, den Schlüssel als Textdatei abzuspeichern und dann über System -&amp;gt; Systemverwaltung -&amp;gt; Synaptic Paketverwaltung -&amp;gt; Einstellungen -&amp;gt; Paketquellen -&amp;gt; Authentifizierung zu importieren.&lt;br /&gt;
&lt;br /&gt;
In einem Terminal kann durch die Eingabe folgenden Befehls dasselbe erreicht werden:&lt;br /&gt;
&lt;br /&gt;
 # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com FINGERPRINT_DES_SCHLÜSSELS &lt;br /&gt;
&lt;br /&gt;
Beispiel :&lt;br /&gt;
 # wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg&lt;br /&gt;
 # apt-key add apt.gpg&lt;br /&gt;
 # apt-key add php.gpg&lt;br /&gt;
&lt;br /&gt;
*wget lädt den gpg Key herunter (in diesem Beispiel sind es zwei Schlüssel)&lt;br /&gt;
*apt-key add fügt den Schlüssel zum Keyring hinzu&lt;br /&gt;
 &lt;br /&gt;
===sourceslistgenerator===&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=APT/Repositories&amp;diff=7322</id>
		<title>APT/Repositories</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=APT/Repositories&amp;diff=7322"/>
		<updated>2019-12-09T13:11:33Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Überschrift 1 ===&lt;br /&gt;
&lt;br /&gt;
===Was macht ein Repository===&lt;br /&gt;
&lt;br /&gt;
Ein Repository enthält die URL&#039;s und Informationen zu den aktuellen Programmen, welche von Debian unterstützt, getestet und für vertrauenswürdig befunden wurden. Das Hauptrepository befindet sich in der Datei sources.list im Ordnet /etc/apt/ .&lt;br /&gt;
&lt;br /&gt;
===Unterteilungen von Repositories===&lt;br /&gt;
Es ist möglich im Ordnet sources.list.d Dateien anzulegen mit jeweiligen URL&#039;s zu entsprechenden Repositories. Das ist hilfreich um die Übersicht zu behalten. &lt;br /&gt;
&lt;br /&gt;
===Backport Repository anlegen (Linux Buster)===&lt;br /&gt;
Um ein Backport Repository anzulegen muss man zunächst in den Ordner /etc/apt/sources.list.d/ wechseln.&lt;br /&gt;
Anschließend die Datei backport.list anlegen&lt;br /&gt;
 touch backport.list&lt;br /&gt;
&lt;br /&gt;
Nun muss die Datei mit Inhalt befüllt werden&lt;br /&gt;
 cat &amp;gt; backport.list  [Enter drücken]&lt;br /&gt;
 deb http://deb.debian.org/debian buster-backports main [Enter drücken]&lt;br /&gt;
 [CTRL+D]&lt;br /&gt;
&lt;br /&gt;
===Vertrauenswürdigkeit von Repositories===&lt;br /&gt;
Normalerweise benötigt man zum Einbinden eines Repositories einen GPG-Key. Dieser stellt die Vertrauenswürdigkeit des Repositories sicher. Bei den Backport-Repositories ist dies jedoch nicht nötig.&lt;br /&gt;
&lt;br /&gt;
===GPG-Key bei Fremdquellen===&lt;br /&gt;
Deb-Pakete in Paketquellen werden mit GnuPG-Schlüsseln digital signiert. Passt die Signatur zu keinem der Paketverwaltung bekannten Schlüssel, so wird der Benutzer bei der Installation eines Paketes aus solch einer Quelle gewarnt (in neueren Ubuntu-Version sogar verweigert). Drittanbieter stellen daher oft ihren GPG-Key zur Verfügung, den man dann in seinen Keyring importieren muss.&lt;br /&gt;
&lt;br /&gt;
Um einen Schlüssel hinzuzufügen, ist die einsteigerfreundlichste (weil grafische) Methode, den Schlüssel als Textdatei abzuspeichern und dann über System -&amp;gt; Systemverwaltung -&amp;gt; Synaptic Paketverwaltung -&amp;gt; Einstellungen -&amp;gt; Paketquellen -&amp;gt; Authentifizierung zu importieren.&lt;br /&gt;
&lt;br /&gt;
In einem Terminal kann durch die Eingabe folgenden Befehls dasselbe erreicht werden:&lt;br /&gt;
&lt;br /&gt;
 # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com FINGERPRINT_DES_SCHLÜSSELS &lt;br /&gt;
&lt;br /&gt;
Beispiel :&lt;br /&gt;
 # wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg&lt;br /&gt;
 # apt-key add apt.gpg&lt;br /&gt;
 # apt-key add php.gpg&lt;br /&gt;
&lt;br /&gt;
*wget lädt den gpg Key herunter (in diesem Beispiel sind es zwei Schlüssel)&lt;br /&gt;
*apt-key add fügt den Schlüssel zum Keyring hinzu&lt;br /&gt;
 &lt;br /&gt;
===sourceslistgenerator===&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7321</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7321"/>
		<updated>2019-12-09T12:48:03Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe https://wiki.itw-berlin.net/index.php?title=Debian_Repositories&lt;br /&gt;
Anschließend folgenden Befehl im Ordnet /home/user/Downloads/keepassxc-2.5.1/build&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7320</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7320"/>
		<updated>2019-12-09T12:47:09Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
Zum Kompilieren verwenden wir den Befehl &amp;quot;checkinstall&amp;quot;, dieser ist in der aktuellen Debian Version nicht enthalten.&lt;br /&gt;
Daher muss ein Backport Repository eingebunden werden. Siehe https://wiki.itw-berlin.net/index.php?title=Debian_Repositories&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7319</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7319"/>
		<updated>2019-12-09T12:24:21Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 # apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
 # apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 # apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7318</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7318"/>
		<updated>2019-12-09T12:23:47Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
# apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
# apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-dev libqrencode-dev libsodium-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
# apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libcurl4-openssl-dev libquazip5-dev libreadline-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7317</id>
		<title>KeepassXC/Kompilieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=KeepassXC/Kompilieren&amp;diff=7317"/>
		<updated>2019-12-09T12:14:08Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: /* Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
KeePassXC kompilieren (install) aus einer fremden Quelle, die nicht von der Repository von Debian stammt.(Das install) bitte per root ausführen&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
*Gehen sie auf die Seite [https://keepassxc.org/download/#source Keepassxc.org/download]&lt;br /&gt;
*Über die Seite &amp;quot;source code&amp;quot; &amp;quot;source code release&amp;quot; downloaden&lt;br /&gt;
*Über die Konsole mit dem Befehl &amp;lt;code&amp;gt;apt purge keepassxc&amp;lt;/code&amp;gt; alte Version löschen&lt;br /&gt;
*Auf der Konsole: &amp;lt;code&amp;gt;cd Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
*Danach tue schrittweise folgendes:sei(root)&lt;br /&gt;
 tar -xJf keepassxc-2.5.1.-src.tar.xz&lt;br /&gt;
&lt;br /&gt;
 cd keepassxc-2.5.1&lt;br /&gt;
&lt;br /&gt;
 apt install build-essential cmake g++&lt;br /&gt;
&lt;br /&gt;
 apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev \&lt;br /&gt;
    libgcrypt20-dev libargon2-0-dev libqrencode-dev zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
 apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \&lt;br /&gt;
     libykpers-1-dev libsodium-dev libcurl4-openssl-dev libquazip5-dev&lt;br /&gt;
&lt;br /&gt;
Sobald die Abhängigkeiten installiert sind, dann sind die nächsten Schritte:&lt;br /&gt;
&lt;br /&gt;
 mkdir build &lt;br /&gt;
&lt;br /&gt;
 cd build&lt;br /&gt;
&lt;br /&gt;
 cmake -DWITH_XC_ALL=ON ..&lt;br /&gt;
&lt;br /&gt;
 checkinstall&lt;br /&gt;
&lt;br /&gt;
== Weitere Informationen==&lt;br /&gt;
* https://keepassxc.org/docs#wiki&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Ufukmeral|Ufukmeral]] ([[Benutzer Diskussion:Ufukmeral|Diskussion]]) 11:42, 17. Mai 2019 (CEST)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=APT/Repositories&amp;diff=7316</id>
		<title>APT/Repositories</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=APT/Repositories&amp;diff=7316"/>
		<updated>2019-12-09T12:09:00Z</updated>

		<summary type="html">&lt;p&gt;Benhoffmann: Die Seite wurde neu angelegt: „===  sources.d  eigene Datei für jedes Repository woher gpg key wie import bei backport gpg key nicht nötig, weil repository aus testing  checkinstall erstel…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===&lt;br /&gt;
&lt;br /&gt;
sources.d &lt;br /&gt;
eigene Datei für jedes Repository&lt;br /&gt;
woher gpg key&lt;br /&gt;
wie import&lt;br /&gt;
bei backport gpg key nicht nötig, weil repository aus testing&lt;br /&gt;
&lt;br /&gt;
checkinstall erstellt und installiert (via option machbar)&lt;/div&gt;</summary>
		<author><name>Benhoffmann</name></author>
	</entry>
</feed>