# Einführung in Linux
YALC - Yet Another Linux Course
Author: Daniel Schubert

# LINUX

### Das universelle Betriebssystem

Eine Einführung - Teil 10

Deutsche Angestellten Akademie

Frage: Fragen zur letzten Stunde?

## Systemverwaltung

## Part 8 - Netzwerke

Begriffe:

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

### IP Adressen

### IPv4

eine IPv4 Adresse:

    65.142.5.123

- 32 bits Länge, 4 x 8 Bit ( 0 - 255 )
- max. 4.294.967.296 Adressen

192.168.0.23/24

Address | 192.168.0.23 | 11000000.10101000.00000000.00010111
Netmask | 255.255.255.0 = 24 | 11111111.11111111.11111111.00000000
Wildcard | 0.0.0.255 | 00000000.00000000.00000000.11111111

Network | 192.168.0.0/24 | 11000000.10101000.00000000.00000000
Broadcast | 192.168.0.255 | 11000000.10101000.00000000.11111111
First IP | 192.168.0.1 | 11000000.10101000.00000000.00000001
Last IP | 192.168.0.254 | 11000000.10101000.00000000.11111110
Hosts/Net | 254 | nnnnnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh

Private IP Bereiche

Adressbereich | Beschreibung | größter CIDR-Block | Anzahl IP-Adressen
--- | --- | --- | ---
10.0.0.0–10.255.255.255 | privat, 1 8-Bit-Netz | 10.0.0.0/8 | 224 = 16.777.216
172.16.0.0–172.31.255.255 | privat, 16 16-Bit-Netze | 172.16.0.0/12 | 220 = 1.048.576
192.168.0.0–192.168.255.255 | privat, 256 24-Bit-Netze | 192.168.0.0/16 | 216 = 65.536
169.254.0.0–169.254.255.255 | link local, 1 16-Bit-Netz | 169.254.0.0/16 | 216 = 65.536

https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing

verfügbare ipv4 Adress-Blöcke

### IPv6

eine IPv6 Adresse

    2002:58bf:13bb:0002:0000:0000:0020:1234

- seit 1998 !
- moderne Betriebssysteme können es alle
- 128 bits Länge ( 8 x 4 x 4 Bit )
- Notierung Hexadezimal
- max. 3,4x10^38 (ca 340 Sextillionen) Adressen
- URL Notation: `http://[2001:0db8:85a3:08d3::0370:7344]/`

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

Führende Nullen innerhalb eines Blockes dürfen ausgelassen werden: `2001:0db8:0000:08d3:0000:8a2e:0070:7344`
ist gleichbedeutend mit
`2001:db8:0:8d3:0:8a2e:70:7344`

Mehrere aufeinander folgende Blöcke, deren Wert 0 (bzw. 0000) beträgt, dürfen ausgelassen werden. Dies wird durch zwei aufeinander folgende Doppelpunkte angezeigt:
`2001:0db8:0:0:0:0:1428:57ab`
ist gleichbedeutend mit `
2001:db8::1428:57ab`.

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

    2001:0db8:85a3:08d3:1319:8a2e:0370:7347/64

so lautet das Präfix ( vom Provider zuget. )

    2001:0db8:85a3:08d3::/64

und der Interface-Identifier

    1319:8a2e:0370:7347

#### speziellle adressen

localhost

    ::1/128

link local

    fe80::/64

( entspr. 169.254.0.0/16 in ipv4)

- Netzwerk wird mit Netzwerkmanager konfiguriert
- geht auch im terminal :

      nmcli -h

/etc/NetworkManager/system-connections/Wired connection 1

    [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

### DNS

#### Domain Name System

Das Telefonbuch des Internet

- geht zurück auf die „hosts“ Datei d. ARPANET
- händisch gepflegte Liste aller Hosts -> seriously??
- Einführung des DNS ab 1983
- übersetzt domain Namen ( www.omikron.net ) in IP Adressen
- https://de.wikipedia.org/wiki/Domain_Name_System
- Jeder kann einen DNS Server betreiben ( zb Pi-Hole )

Aufgabe: ändert euren voreingestellten DNS Server per network Manager, z.B.

google: 8.8.8.8
Quad9: 9.9.9.9
bzw ipv6 Äquivalent

## Manuelle Konfiguration

/etc/hosts

    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

/etc/resolv.conf

    #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

/etc/network/interfaces

    # 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

/etc/network/interfaces

    # 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

/etc/hostname

    laptop

Befehle zur Konfiguration der Netzwerkschnitstelle

    # 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

Befehle zur Konfiguration der WLAN-Netzwerkschnitstelle

    ~$ 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

für WPA gesicherte Netzwerke muss wpa_supplicant bemüht werden
https://wiki.ubuntuusers.de/WLAN/wpa_supplicant/

/etc/network/interfaces

    # statische konfiguration
     auto wlan0
    	iface wlan0 inet dhcp
    	wpa-conf /etc/wpa.conf

/etc/wpa.conf

    network={
            ssid="Netzwerkname"
            scan_ssid=1
            proto=RSN
            key_mgmt=WPA-PSK
            pairwise=CCMP
            group=CCMP
            psk="meinschluessel"
    }

per Systemd

/etc/systemd/network/20-wired.network

    [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

prüfen ob Device im Netz ist:

    ~$ ping -c 3 192.168.1.2

Benennung der Netzwerkschnittstelle

    wlan0 wlan1 wlan2 ...

    eth0 eth1 eth2 ..

aktuelle Distributionen verw.

    eno1 eno2 eno3 ...

    ens1 ens2 ens3 ...

    enp1s2 enp2s4 enp1s7 ...

    wlp1s2 wlp2s8...