Skip to content
On this page
Intro
1

Datennetze

Manuel Di Cerbo, manuel.dicerbo@fhnw.ch

16.02.2024
Intro
2

Buch zum Nachschlagen

Computernetzwerke

Andrew S. Tanenbaum
David J. Wetherall

ISBN 978-3-86894-137-1

16.02.2024
Intro
3

Intro

  • Kommunikation über Kanäle
  • Daten von A nach B senden
    • Symbole
    • Binär
    • XML, HTML, JSON
    • Dokumente, Bilder, etc.
16.02.2024
Intro

Umfang dnet

4
  • von physikalischer Ebene bis zu Daten
  • von modulation bis zu Application Layer
  • Labs mit Linux
    • Konfiguration moderner Netze
    • Netzwerk Tools für Debugging (ping etc.)
    • Wireshark
    • DHCP
    • Verschlüsselung und Sicherheit
  • Ziel
    • In der Lage sein Netzwerke selbst zu erstellen ...
    • ... und zu warten oder erweitern.
    • Analyse von existierenden Netzen
    • Offensichtliche Probleme mit Security erkennen und lösen können
    • VPN verwenden und erstellen können
    • Linux als Access Point und Router verwenden können
    • Einfache Firewall Rules erstellen und verstehen
16.02.2024
Intro
5

Paketorientierte Kommunikation

  • Pakete von Applikation zu Applikation
  • ... von Host zu Host
  • ... von Link Endpoint zu Link Endpoint
  • ... via Kabel oder Wirelesse
16.02.2024
Intro
6

OSI Model

LayersProtocol Data Unit (PDU)
Layer 7 ApplicationData
PresentationData
SessionData
Layer 4 TransportSegment / Datagramm
Layer 3 NetworkPacket
Layer 2 Data LinkFrame
Layer 1 PhysicalSymbol
16.02.2024
Intro
7

TCP / IP Model

LayersPDU
ApllicationData
TransportSegment / Datagramm
InternetPacket
Network AccessFrame / Symbol
  • Im Buch: 1.4 Referenzmodelle,66 ff.
16.02.2024
Intro

Aufgabe der Schichten

8
16.02.2024
Intro
9

Linux

16.02.2024
Intro
10

Linux

  • Betriebssystem
  • Entwickelt von Linus Torvalds
  • Free Software (not free as in free Beer, free as in without shackles) ... Open Source
  • Klon von UNIX (siehe Buchautor Andrew S. Tanenbaum + Minix)
  • Verbreitet in Serversystemen
  • POSIX
16.02.2024
Intro
11

Distributionen

  • Ubuntu
  • Debian
  • Arch
  • Redhat
  • SUSE
  • ... Android (Linux Kernel)
  • Raspbery Pi OS (basiert auf Debian)
16.02.2024
Intro
12
  • Linux == Linux Kernel
  • Linux Distros verwenden oft GNU Tools im Userspace
  • GNU: GNU is not Unix
16.02.2024
Intro
13

Linux Desktop

Basis: X11 (xserver) oder wayland

  • Gnome
  • KDE

In den Labs verwenden wir Linux headless d.h. ohne Desktop nur via

  • Serial Console (UART)
  • Secure Shell SSH
16.02.2024
Intro
14

Das Terminal

  • Command Line Interface ("CLI")
  • BASH, ZSH, Powershell, etc.
  • Windows: CMD.exe 🤢🤢🤮
    • neu Powershell
16.02.2024
Intro

Command Line Interpreter

15
  • Verschiedene implementierungen
    • BASH
    • zsh
    • fish
  • Typisches Interface ohne GUI
  • Windows Command Line ist nicht ideal um produktiv zu arbeiten.
16.02.2024
Intro
16

Raspberry Pi (rpi)

  • ARM based SoC
  • Embedded System
  • Peripherie (Ethernet, USB, SPI, I2C, etc.)
  • Audio, Display & Camera Port
  • WiFi ac & Bluetooth
16.02.2024
Intro
17

dnet Kit

  • Raspberry Pi 3B+ / 5
  • Ethernet Kabel
  • USB-Ethernet Adapter
  • LED (VCC, GND, IN)
  • Button
  • Micro SD-Karte
  • USB SD-Reader
  • FTDI UART Adapter
  • SHT40 Temperatursensor
  • BMI160 IMU
16.02.2024
Intro
18

Terminologie: Target vs. Host

  • Target: Raspberry Pi
  • Host: Notebook (Windows / Linux / MAC)
16.02.2024
Intro
19

Pinout

16.02.2024
Intro
20

ACHTUNG

FTDI Adapter nicht falsch anschliessen.

16.02.2024
Intro
21

SD-Karte

  • Hauptspeichermedium
  • Kann verschiedene Partitionen beherrbergen
  • Achtung: Verschleiss!
  • Am besten Filesystem readonly (längste Lebzeit)
  • Performance
    • Angaben wie z.B. Class 10 irrelevant
    • ... da selten "seriell" gelesen / geschrieben wird
    • Random Access entscheidend
    • SSD wäre sicher besser
16.02.2024
Intro
22

Ethernet

  • Bei rpi3B+ über USB
    • Bandbreite wird geteilt mit anderen USB Geräten (USB-Stick etc.)
  • ... bei rpi4 separat, ergo bessere Performance (insbesondere wenn andere geräte USB verwenden)

WiFi

  • Access Point möglich
  • schneller ac Standard (ax wäre noch besser)
  • ... Ländereinstellung wegen Frequenzen beachten.
16.02.2024
Intro

File Systeme

23
Filesystem
ext4weit verbreitet in Linux
fataltes DOS (Windows) Filesystem
ntfsweit verbreitet unter Windows (Nachfolger von fat )
tmpfsTemporäres File System (im RAM)
vfsBezeichnung eines "virtuellen" Filesystems (wie z.B. devfs, sysfs, etc.)
16.02.2024
Intro
24

RPI Partitions

  • Boot Partition
    • Config Files, Kernel
    • ... wird im rpi von der GPU geladen (Bootloader ist closed source)
  • Root File System
    • read / write ext4 Partition für das OS
    • wird als root=/dev/mmcblk0p1 als Kernelargument mitgegeben
16.02.2024
Intro
25

RPI Terminal: UART

16.02.2024
Intro
26

RPI Terminal: UART

  • UART (Serielle) Verbindung via Terminal
  • Auf Linux: minicom, picocom oder screen.
  • Auf MAC: screen.
  • Auf Windows putty.

In config.txt der Bootpartition dieses Flag setzen

enable_uart=1
16.02.2024
Intro
27

RPI Terminal: SSH

  • Secure Shell
  • Auf MAC / Linux ssh
  • Auf Windows putty / ssh via GIT
16.02.2024
Intro
28

RPI Terminal: SSH

  • SSH muss zuerst aktiviert werden
  • ... File erstellen in der Boot Partition des Targets
  • ... mit namen ssh (ohne Extension)
  • ... dannach IP statisch auf Host und Target konfigurieren.
16.02.2024
Intro
29

SSH

  • Mehr als nur eine Shell
  • Portforwarding möglich
  • Filetransfers via SFTP
  • SOCKS Proxy möglich
  • Arbeitet mit Public / Private Keys
  • defacto Standard für Terminalverbindungen im Internet
16.02.2024
Intro
30

Pitfalls Versuch 1

  • Linux Image Raspbian Buster Lite
  • Terminologie bei Putty
    • Host (Putty): Ein Teilnehmer im Netz
    • Hostsystem (in den Versuchen): Notebook mit Windows / Linux
    • Speed (Putty): Baudrate
  • Entfernen der SD-Karte nach dem flashen
  • Under-voltage detected! (0x00050005)
16.02.2024
Intro
31

... Pitfalls Versuch 1

  • Terminal SSH + Serial gleichzeitig möglich
  • Windows: Firewall(s)
  • sudo (Admin rechte)
  • Copy / Paste
  • nano
  • Zeilen mit # = Kommentar
  • Zwei Ethernetadapter (LAN 3 / LAN 4 unter Windows)
16.02.2024
Intro
32

eth1 bei Bootup konfigurieren

  • File: /etc/network/interfaces
txt
auto lo eth0 eth1

allow-hotplug eth1
iface eth1 inet static
        address 192.168.50.1/24
txt
sudo /etc/init.d/networking restart
Restarting networking (via systemctl): networking.serviceJob for
networking.service failed because the control process exited 
with error code.
See "systemctl status networking.service" and "journalctl -xe" for details.
16.02.2024
Intro
33

Log anschauen

bash
cat /var/log/syslog
Aug 13 11:49:00 raspberrypi systemd[1]: Starting Raise network interfaces...
Aug 13 11:49:00 raspberrypi ifup[1715]: ifup: unknown interface eth0
Aug 13 11:49:00 raspberrypi systemd[1]: networking.service: Main process exited,
   code=exited, status=1/FAILURE
Aug 13 11:49:00 raspberrypi systemd[1]: networking.service: Failed 
   with result 'exit-code'.
Aug 13 11:49:00 raspberrypi systemd[1]: Failed to start Raise network interfaces.
  • ifup: unknown interface eth0
  • man ifup
  • ifquery -l
  • exit aus man mit q
16.02.2024
Intro
34

auto eth0, aber nirgends konfiguriert.

txt
auto lo eth1 eth0

allow-hotplug eth1
iface eth1 inet static
        address 192.168.50.1/24

allow-hotplug eth0
iface eth0 inet dhcp
  • dauert: dhcp heisst es wird auf die Zuweisung einer IP gewartet.
  • ... besser:
txt
auto lo eth1

allow-hotplug eth1
iface eth1 inet static
        address 192.168.50.1/24
16.02.2024