<!doctype html>
<html lang="de">
		<meta charset="utf-8">

		<title>Einführung in Linux</title>

		<meta name="description" content="YALC - Yet Another Linux Course ">
		<meta name="author" content="Daniel Schubert">

		<meta name="apple-mobile-web-app-capable" content="yes">
		<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

		<link rel="stylesheet" href="css/reveal.css">
		<link rel="stylesheet" href="css/theme/league.css" id="theme">
		
		<link rel="icon" href="img/openlogo-nd-25.png" type="img/png">

		<!-- Theme used for syntax highlighting of code -->
		<link rel="stylesheet" href="lib/css/zenburn.css">

		<!-- Printing and PDF exports -->
		<script>
			var link = document.createElement( 'link' );
			link.rel = 'stylesheet';
			link.type = 'text/css';
			link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
			document.getElementsByTagName( 'head' )[0].appendChild( link );
		</script>
		<style type="text/css">
			.reveal img{ max-height: 60vh}
		</style>

	</head>

	<body>
		<div class="reveal">
			<!-- Any section element inside of this container is displayed as a slide -->
			<div class="slides">

				<section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
					<h1>LINUX</h1>
					<h3>Das universelle Betriebssystem</h3>
					<p>Eine Einführung - Teil 10
					<p>
						<small>Deutsche Angestellten Akademie</small>
					</p>

					<aside class="notes">
						Frage: Fragen zur letzten Stunde?
					</aside>
				</section>

				<section data-transition="slide" data-background="#4d7e65" data-background-transition="convex">
					<h2 style="text-shadow: 5px 4px 15px black;">Systemverwaltung</h2>
					<h2>Part 8 - Netzwerke</h2>
				</section>

				<section>
					Begriffe:
					<p>
						<table style="font-size: .5em">
						<tr>
							<td>IP = Internet Protocol</td>
							<td>Basis für TCP und UDP</td>
						</tr>
						<tr>
							<td>TCP = Transmission Control Protocol</td>
							<td>Ende-zu-Ende Verbindung zw. 2 Geräten</td>
						</tr>
						<tr>
							<td>UDP = User Datagram Protocol</td>
							<td>minimales, verbindungsloses Netzwerkprotokoll</td>
						</tr>
						<tr>
							<td>ICMP = Internet Control Message Protocol</td>
							<td>Austausch v. IP Status / Fehlern</td>
						</tr>
						<tr>
							<td>PPP = Point-to-Point Protocol</td>
							<td>Verbindung über Wählleitungen, zB ADSL / UMTS / ISDN</td>
						</tr>
						<tr>
							<td>Gateway</td>
							<td>Router über den man ins Internet kommt</td>
						</tr>
						<tr>
							<td>Nameserver</td>
							<td>der für die Adressauflösung zuständige Rechner</td>
						</tr>
						<tr>
							<td>loopback</td>
							<td>lokale Netzwerkschnittstelle zum internen Gebrauch</td>
						</tr>
					</table>
				</section>

				<section>
					<h3>IP Adressen</h3>
				</section>

				<section>
					<h3>IPv4</h3>
					eine IPv4 Adresse: <br><pre><code>65.142.5.123</code></pre>
					<ul>
						<li class="fragment ">32 bits Länge, 4 x 8 Bit ( 0 - 255 )</li>
						<li class="fragment ">max. 4.294.967.296 Adressen</li>
  					</ul>
				</section>
				<section>
					192.168.0.23/24
					<p>
						<table style="font-size: .5em">
							<thead></thead>
							<tbody>

							<tr><td class="bl558_sc w65bb">Address</td><td class="bl558_sc w130b">192.168.0.23</td><td class="bl558_sc w160b">11000000.10101000.00000000<span>.00010111</span></td></tr>

							<tr><td class="bl558_sc w65bb">Netmask</td><td class="bl558_sc w130b">255.255.255.0 = 24</td><td>11111111.11111111.11111111<span>.00000000</span></td></tr>
							<tr><td class="bl558_sc w65bb">Wildcard</td><td class="bl558_sc w130b">0.0.0.255</td><td class="bl558_sc w160b">00000000.00000000.00000000<span>.11111111</span></td></tr><tr>&nbsp;</tr>
							</tbody>
						</table>
					</p>
					<hr>
					<p>
						<table style="font-size: .5em">
							<tbody>
							<tr><td class="bl558_sc w65bb">Network</td><td class="bl558_sc w130b">192.168.0.0/24</td><td class="bl558_sc w160b"><b>110</b>00000.10101000.00000000<span>.00000000</span></td></tr>
							<tr><td class="bl558_sc w65bb">Broadcast</td><td class="bl558_sc w130b">192.168.0.255</td><td class="bl558_sc w160b">11000000.10101000.00000000<span>.11111111</span></td></tr>
							<tr><td class="bl558_sc w65bb">First IP</td><td class="bl558_sc w130b">192.168.0.1</td><td class="bl558_sc w160b">11000000.10101000.00000000<span>.00000001</span></td></tr>
							<tr><td class="bl558_sc w65bb">Last IP</td><td class="bl558_sc w130b">192.168.0.254</td><td class="bl558_sc w160b">11000000.10101000.00000000<span>.11111110</span></td></tr>
							<tr><td class="bl558_sc w65bb">Hosts/Net</td><td class="bl558_sc w130b">254</td><td class="bl558_sc w160b">nnnnnnnn.nnnnnnnn.nnnnnnnn<span>.hhhhhhhh</span></td></tr>
							</tbody>
						</table>
					</p>


				</section>

				<section>
					Private IP Bereiche
					<p>
					<table style="font-size: .5em">
						<tbody><tr>
						<th>Adressbereich
						</th>
						<th>Beschreibung
						</th>
						<th>größter <a href="/wiki/Classless_Inter-Domain_Routing" title="Classless Inter-Domain Routing">CIDR</a>-Block
						</th>
						<th>Anzahl IP-Adressen
						</th></tr>
						<tr>
						<td class="hintergrundfarbe9"><b>10.0.0.0–10.255.255.255</b>
						</td>
						<td>privat, 1 <b>8-Bit</b>-Netz
						</td>
						<td>10.0.0.0/8
						</td>
						<td>2<sup>24</sup> = 16.777.216
						</td></tr>
						<tr>
						<td class="hintergrundfarbe9"><b>172.16.0.0–172.31.255.255</b>
						</td>
						<td>privat, 16 <b>16-Bit</b>-Netze
						</td>
						<td>172.16.0.0/12
						</td>
						<td>2<sup>20</sup> = 1.048.576
						</td></tr>
						<tr>
						<td class="hintergrundfarbe9"><b>192.168.0.0–192.168.255.255</b>
						</td>
						<td>privat, 256 <b>24-Bit</b>-Netze
						</td>
						<td>192.168.0.0/16
						</td>
						<td>2<sup>16</sup> = 65.536
						</td></tr>
						<tr>
						<td>169.254.0.0–169.254.255.255
						</td>
						<td>link local, 1 <b>16-Bit</b>-Netz
						</td>
						<td>169.254.0.0/16
						</td>
						<td>2<sup>16</sup> = 65.536
						</td></tr></tbody></table>
						<p><small><a href="https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing">https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing</a></small></p>
				</section>

				<section>
					verfügbare ipv4 Adress-Blöcke
					<img style="background:white" src="img/1280px-Ipv4-exhaust.svg.png">
				</section>

				<section>
					<h3>IPv6</h3>
					<div class="fragment">eine IPv6 Adresse
						<pre><code>2002:58bf:13bb:0002:0000:0000:0020:1234	 </code></pre>
					</div>
					<ul>
						<li  class="fragment ">seit 1998 !</li>
						<li  class="fragment ">moderne Betriebssysteme können es alle</li>
						<li  class="fragment ">128 bits Länge ( 8 x 4 x 4 Bit )</li>
						<li  class="fragment ">Notierung Hexadezimal</li>
						<li class="fragment ">max. 3,4x10^38 (ca 340 Sextillionen) Adressen</li>
						<li  class="fragment ">URL Notation: <code>http://[2001:0db8:85a3:08d3::0370:7344]/</code></li>
  					</ul>
				</section>

				<section>
					<ul>
						<li class="fragment ">NAT und DHCP sind nicht mehr nötig. In IPv6 ist eine Autokonfiguration eingebaut.</li>
						<li class="fragment ">Der Adressraum genügt auch für alle Toaster</li>
						<li class="fragment ">ipv6 Adressen können für ein Device immer gleich bleiben</li>
						<li class="fragment ">„Privacy Extension“ - Interface identifier wird alle paar Tage gewechselt</li>
						<li class="fragment ">mehrere ipv6 Adressen</li>
						<li class="fragment ">Geräte mit ipv6 sind aus dem Internet erreichbar</li>
						<li class="fragment ">Router hat noch Nutzen als Firewall</li>
					</ul>
				</section>

				<section style="font-size: .6em">
					Führende Nullen innerhalb eines Blockes dürfen ausgelassen werden: <code>2001:0db8:0000:08d3:0000:8a2e:0070:7344</code><br> ist gleichbedeutend mit <br><code>2001:db8:0:8d3:0:8a2e:70:7344</code>
					<p>Mehrere aufeinander folgende Blöcke, deren Wert 0 (bzw. 0000) beträgt, dürfen ausgelassen werden. Dies wird durch zwei aufeinander folgende Doppelpunkte angezeigt:<br><code> 2001:0db8:0:0:0:0:1428:57ab </code><br> ist gleichbedeutend mit <code> <br>2001:db8::1428:57ab</code>.
				</section>

				<section>
					Hat z. B. ein Netzwerkgerät die IPv6-Adresse

					<pre><code>2001:0db8:85a3:08d3:1319:8a2e:0370:7347/64</code></pre> 
					so lautet das Präfix ( vom Provider zuget. )

					<pre><code>2001:0db8:85a3:08d3::/64</code></pre>
					und der Interface-Identifier
					<pre><code>1319:8a2e:0370:7347</code></pre>
				</section>

				<section>
					<h4>speziellle adressen</h4>
					localhost<pre><code>::1/128</code></pre>
					link local <pre><code>fe80::/64</code></pre> ( entspr. 169.254.0.0/16 in ipv4)
				</section>

				<section>
					<ul>
						<li>Netzwerk wird mit Netzwerkmanager konfiguriert</li>
						<li class="fragment ">geht auch im terminal : <pre><code>nmcli -h</code></pre></li>
					</ul>
				</section>

				<section style="font-size: .6em"	>

					/etc/NetworkManager/system-connections/Wired connection 1
					<pre><code>[connection]
id=Wired connection 1
uuid=180051c9-6df6-4a96-8d8f-8a0c2eb9050e
type=ethernet
permissions=
timestamp=1531903725

[ethernet]
mac-address-blacklist=

[ipv4]
dns=192.168.1.4;9.9.9.9;
dns-search=
ignore-auto-dns=true
method=auto

[ipv6]
addr-gen-mode=eui64
dns=2a02:8071:4280:ba00:f640:6751:3af0:bb97;2620:fe::10;
dns-search=
ignore-auto-dns=true
ip6-privacy=1
method=auto
</code></pre>
				</section>

				<section>
					<section>
						<h3>DNS</h3>
						<h4>Domain Name System</h4>
						Das Telefonbuch des Internet
					</section>
						<section>
							<ul>
								<li>geht zurück auf die „hosts“ Datei d. ARPANET</li>
								<li class="fragment ">händisch gepflegte Liste aller Hosts -> seriously??</li>
								<li class="fragment ">Einführung des DNS ab 1983</li>
								<li class="fragment ">übersetzt domain Namen ( www.omikron.net ) in IP Adressen</li>
								<li class="fragment ">https://de.wikipedia.org/wiki/Domain_Name_System</li>
								<li class="fragment ">Jeder kann einen DNS Server betreiben ( zb Pi-Hole )</li>
							</ul>
						</section>
				</section>

				<section>
					<span style="color: orange">Aufgabe:</span> ändert euren voreingestellten DNS Server per network Manager, z.B. <br>
					<p>google: 8.8.8.8 <br> Quad9: 9.9.9.9 <br> bzw ipv6 Äquivalent
				</section>

				<section><h2>Manuelle Konfiguration</h2></section>

				<section>
					/etc/hosts
					<pre><code class="bash">127.0.0.1 localhost
127.0.0.1 dev.local
127.0.1.1 workhorse.fcknzs workhorse

192.168.1.5 pi


# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

2a01:4f8:191:6204::2 lk.schubertdaniel.de
					</code></pre>
				</section>
				<section>
					/etc/resolv.conf
					<pre><code class="bash">#Generated by NetworkManager
nameserver 192.168.1.4 #pihole
nameserver 9.9.9.9
nameserver 2a02:8071:4280:ba00:f640:6751:3af0:bb97 #pi hole

# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 2620:fe::10
					</code></pre>
				</section>

				<section>
					/etc/network/interfaces
					<pre><code  class="bash" style="font-size: .7em"># The loopback network interface
auto lo
iface lo inet loopback

# dhcp
 auto eth0
    allow-hotplug eth0
    iface eth0 inet dhcp

 iface eth0 inet6 dhcp # stateful
 iface eth0 inet6 auto # stateless
					</code></pre>
				</section>
				<section>
					/etc/network/interfaces
					<pre><code  class="bash" style="font-size: .7em"># statische konfiguration
 auto eth0
	iface eth0 inet static
	    address 192.0.2.7
	    netmask 255.255.255.0
	    gateway 192.0.2.254

	iface eth0 inet6 static
	    address 2001:db8::c0ca:1eaf
	    netmask 64
	    gateway 2001:db8::1ead:ed:beef

					</code></pre>
				</section>
				<section>
					/etc/hostname
					<pre><code>laptop</code></pre>

				</section>

				<section>
					Befehle zur Konfiguration der Netzwerkschnitstelle

					<pre style="font-size: .4em"><code class="bash"># netzwerk geräte anzeigen
~$ ip link show

# ip adressen anzeigen
~$ ip addr

# netzwerk device de-/aktivieren
~$ ip link set enp0s7 down
~$ ip link set enp0s7 up

# ip setzen
~$ ip addr add 192.168.1.2/24 dev enp0s7

# route zeigen
~$ ip route

#route ( gateway ) hinzufügen
~$ ip route add default via 192.168.1.1
					</code></pre>
				</section>


				<section>
					Befehle zur Konfiguration der WLAN-Netzwerkschnitstelle

					<pre style="font-size: .4em"><code class="bash">~$ iw dev wlan0 info
~$ iw dev wlan0 link

~$ iw dev wlan0 scan #...

~$ iw dev wlan0 connect gastnetz-01
~$ dhclient wlan0  # holt dhcp ein

~$ iw dev wlan0 disconnect

					</code></pre>

					
				</section>

				<section>

					<small>für WPA gesicherte Netzwerke muss wpa_supplicant bemüht werden <br> 
						https://wiki.ubuntuusers.de/WLAN/wpa_supplicant/
					</small>
					<p>
					/etc/network/interfaces
					<pre><code  class="bash" style="font-size: .7em"># statische konfiguration
 auto wlan0
	iface wlan0 inet dhcp
	wpa-conf /etc/wpa.conf</code></pre>
 /etc/wpa.conf
					<pre><code  class="bash" style="font-size: .55em">network={
        ssid="Netzwerkname"
        scan_ssid=1
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        psk="meinschluessel"
}</code></pre>


				</section>

				<section>
					per Systemd
					<p>/etc/systemd/network/20-wired.network</p>

				<pre><code>
[Match]
Name=enp1s0

[Network]
Address=10.1.10.9/24
Gateway=10.1.10.1
DNS=10.1.10.1
#DNS=8.8.8.8</code></pre>
				</section>

				<section>
					prüfen ob Device im Netz ist:
					<pre><code>~$ ping -c 3 192.168.1.2</code></pre>
				</section>

				<section>
					Benennung der Netzwerkschnittstelle
					<pre class="fragment "><code class="plain">wlan0 wlan1 wlan2 ...</code></pre>
					<pre class="fragment "><code class="plain">eth0 eth1 eth2 .. </code></pre>
					aktuelle Distributionen verw.
					<pre class="fragment "><code class="plain">eno1 eno2 eno3 ...</code></pre>
					<pre class="fragment "><code class="plain">ens1 ens2 ens3 ...</code></pre>
					<pre class="fragment "><code class="plain">enp1s2 enp2s4 enp1s7 ...</code></pre>
					<pre class="fragment "><code class="plain">wlp1s2 wlp2s8...</code></pre>
				</section>
			</div>
		</div>

		<script src="lib/js/head.min.js"></script>
		<script src="js/reveal.js"></script>

		<script>

			// More info https://github.com/hakimel/reveal.js#configuration
			Reveal.initialize({
				controls: true,
				progress: true,
				history: true,
				center: true,

				transition: 'slide', // none/fade/slide/convex/concave/zoom

				// More info https://github.com/hakimel/reveal.js#dependencies
				dependencies: [
					{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
					{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
					{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
					{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
					{ src: 'plugin/search/search.js', async: true },
					{ src: 'plugin/zoom-js/zoom.js', async: true },
					{ src: 'plugin/notes/notes.js', async: true }
				]
			});

		</script>

	</body>
</html>