Add labs
This commit is contained in:
55
01-basics/lab12/lab.txt
Normal file
55
01-basics/lab12/lab.txt
Normal file
@ -0,0 +1,55 @@
|
||||
= QoS 0 TCP Absicherung
|
||||
|
||||
Ziel ist zu sehen, wie TCP bei Verbindungsproblemen die Applikationsschicht absichert.
|
||||
|
||||
Dazu wird für den TCP Port 1883 ein Paketverlust von 50% konfiguriert und Anschließend
|
||||
Nachrichten versendet und konsumiert.
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --debug --topic demo/qos0 -q 0
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_pub --topic demo/qos0 -q 0 --message "before tcp loss"
|
||||
|
||||
|
||||
In separatem Terminal wird nun das Netzwerk so konfiguriert, dass es
|
||||
hohen IP Paketverlust (50%) gibt:
|
||||
|
||||
(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 loss 50%
|
||||
|
||||
|
||||
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 save #2"
|
||||
$ 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/
|
||||
Reference in New Issue
Block a user