This commit is contained in:
Thomas Kruse
2026-02-03 22:29:46 +01:00
commit 8fdf5827e4
156 changed files with 23069 additions and 0 deletions

55
01-basics/lab13/lab.txt Normal file
View File

@ -0,0 +1,55 @@
= QoS 0 Verlust von Nachrichten
$ docker run --rm -it --net host eclipse-mosquitto \
mosquitto_sub --debug --topic demo/qos0 -q 0
In separatem Terminal wird nun das Netzwerk so konfiguriert, dass es
hohe Latenzen (3 Sekunden) gibt, dies macht es leichter, zum richtigen Zeitpunkt
die Verbindung zu unterbrechen:
(falls Docker genutzt wird)
$ docker run --rm -it --net host --cap-add NET_ADMIN alpine:3
# apk -U add iptables iproute2 iproute2-ss
(ohne Docker, Debian/Ubuntu)
$ sudo apt install -y iptables iproute2
$ sudo bash
# iptables -t mangle -A POSTROUTING -o lo -p tcp --sport 1883 -j MARK --set-mark 1
# iptables -t mangle -A PREROUTING -i lo -p tcp --dport 1883 -j MARK --set-mark 1
# tc qdisc add dev lo root handle 1: prio
# tc filter add dev lo parent 1:0 protocol ip handle 1 fw flowid 1:1
# tc qdisc add dev lo parent 1:1 handle 10: netem delay 3s
Im ersten Terminal werden nun mehrere Nachrichten versandt:
$ docker run --rm -it --net host eclipse-mosquitto \
mosquitto_pub -t demo/qos0 -q 0 -m "this will be save #1"
$ docker run --rm -it --net host eclipse-mosquitto \
mosquitto_pub -t demo/qos0 -q 0 -m "this will be lost #2"
(Nach ca. 6 Sekunden werden die TCP Verbindungen im zweiten Terminal unterbrochen)
# ss -t -K sport = :1883
(Neuer Versand funktioniert)
$ docker run --rm -it --net host eclipse-mosquitto \
mosquitto_pub -t demo/qos0 -q 0 -m "this will be save #3"
Anschließendes Aufräumen:
# iptables -t mangle -F
# tc qdisc del dev lo root
= Quellen
Wireshark: https://www.wireshark.org/