Appearance
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 #
Layers | Protocol Data Unit (PDU) |
---|---|
Layer 7 Application | Data |
Presentation | Data |
Session | Data |
Layer 4 Transport | Segment / Datagramm |
Layer 3 Network | Packet |
Layer 2 Data Link | Frame |
Layer 1 Physical | Symbol |
16.02.2024
Intro
7
TCP / IP Model #
Layers | PDU |
---|---|
Apllication | Data |
Transport | Segment / Datagramm |
Internet | Packet |
Network Access | Frame / Symbol |
- Im Buch: 1.4 Referenzmodelle,66 ff.
16.02.2024
Intro
Aufgabe der Schichten
8
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
- neu
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
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 | |
---|---|
ext4 | weit verbreitet in Linux |
fat | altes DOS (Windows) Filesystem |
ntfs | weit verbreitet unter Windows (Nachfolger von fat ) |
tmpfs | Temporäres File System (im RAM) |
vfs | Bezeichnung 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
- read / write
16.02.2024
Intro
26
RPI Terminal: UART #
- UART (Serielle) Verbindung via Terminal
- Auf Linux:
minicom
,picocom
oderscreen
. - Auf MAC:
screen
. - Auf Windows
putty
.
In config.txt
der Bootpartition dieses Flag setzen
enable_uart=1
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