Raspberry Pi with two additional USB network devices (onboard network device provides administration interface), simulating this:

       ##########hop1###########       ##########hop2###########
       #                       #       #                       #
       #        172.17.21.38/30<-veth0-<172.17.21.37/30        #
#<------>172.16.210.65/26       # -0 -1 #                       <_____
#abc330 #                       #       #          10.10.12.1/30# -0  \
       #        10.10.11.130/29>-veth1->10.10.11.131/29        #      \veth2   ##########hop3###########
       #                       # -1 -0 #                       #       \       #                       #
       #########################       #########################        \______>10.10.12.2/30          #
#                                                                            -1 #                       #
#                                                                         ______>                       #
       ##########hop5###########       ##########hop4###########        /   -0 #10.10.12.5/30          #
       #                       #       #                       #       /       #                       #
       #        172.17.21.50/30<-veth4-<172.17.21.49/30        #      /        #########################
#<------>172.16.211.1/26        # -1 -0 #          10.10.12.6/30<_____/veth3
#abc333 #                       #       #                       # -1
       #        10.10.11.130/29>-veth5->10.10.11.131/29        #
       #                       # -0 -1 #                       #
       #########################       #########################

Giving this traceroutes:

 #traceroute to 172.16.210.65 (172.16.210.65), 30 hops max, 60 byte packets 
 #1 172.16.211.1 (172.16.211.1) 13.648 ms 15.374 ms 17.097 ms 
 #2 10.10.11.131 (10.10.11.131) 540.199 ms 544.337 ms 547.468 ms 
 #3 10.10.12.2 (10.10.12.2) 545.220 ms 547.769 ms 548.212 ms 
 #4 10.10.12.1 (10.10.12.1) 550.749 ms 551.069 ms 551.806 ms 
 #5 172.17.21.38 (172.17.21.38) 1090.526 ms 1088.507 ms * 
 #traceroute to 172.16.211.1 (172.16.211.1), 30 hops max, 60 byte packets 
 #1 172.16.210.65 (172.16.210.65) 12.828 ms 13.210 ms 16.086 ms 
 #2 10.10.11.131 (10.10.11.131) 543.290 ms 544.448 ms 556.136 ms 
 #3 10.10.12.2 (10.10.12.2) 546.740 ms 548.843 ms 549.200 ms 
 #4 10.10.12.1 (10.10.12.1) 551.521 ms 552.013 ms 554.218 ms 
 #5 172.17.21.50 (172.17.21.50) 1094.433 ms 1081.656 ms *

I used a standard archlinux installation, with this package rc-local.
Modified those files:

/etc/rc.local:

#!/bin/bash 
#modprobe sch_netem -> /etc/modules
##Network namespaces erstellen
for i in $(seq 1 5)
do
ip netns add hop$i
ip netns exec hop$i sysctl net.ipv4.conf.all.rp_filter=0
ip netns exec hop$i sysctl net.ipv4.conf.default.rp_filter=0
ip netns exec hop$i ip link set lo up
ip netns exec hop$i sysctl net.ipv4.ip_forward=1
done

##physikalische Netzwerkkarten an hop1 und hop5 binden
##Zuordnung der Netzwerkkarte via MAC erfolgt in /etc/udev/rules.d/10-network.rules 
ip link set pl0 up
ip link add link pl0 abc330 type macvlan
ip link set abc330 netns hop1
ip netns exec hop1 ip link set abc330 up
ip netns exec hop1 ip addr change 172.16.210.65/26 dev abc330
ip link set pr0 up
ip link add link pr0 abc333 type macvlan
ip link set abc333 netns hop5
ip netns exec hop5 ip link set abc333 up
ip netns exec hop5 ip addr change 172.16.211.1/26 dev abc333

##virtuelle Netzwerkkarten erstellen
for i in $(seq 0 5)
do
ip link add veth$i-0 type veth peer name veth$i-1
done

##Zuordnung der virtuellen Netzwerkkarten zu den hops
declare -A hops
hops=([veth0-0]=hop1)
hops+=([veth0-1]=hop2)
hops+=([veth1-0]=hop2)
hops+=([veth1-1]=hop1)
hops+=([veth2-0]=hop2)
hops+=([veth2-1]=hop3)
hops+=([veth3-0]=hop3)
hops+=([veth3-1]=hop4)
hops+=([veth4-0]=hop4)
hops+=([veth4-1]=hop5)
hops+=([veth5-0]=hop5)
hops+=([veth5-1]=hop4)

##Zuordnung der virtuellen Netzwerkkarten zu den IP Adressen
declare -A ips
ips=([veth0-0]="172.17.21.38/30")
ips+=([veth0-1]="172.17.21.37/30")
ips+=([veth1-0]="10.10.11.131/29")
ips+=([veth1-1]="10.10.11.130/29")
ips+=([veth2-0]="10.10.12.1/30")
ips+=([veth2-1]="10.10.12.2/30")
ips+=([veth3-0]="10.10.12.5/30")
ips+=([veth3-1]="10.10.12.6/30")
ips+=([veth4-0]="172.17.21.49/30")
ips+=([veth4-1]="172.17.21.50/30")
ips+=([veth5-0]="10.10.11.131/29")
ips+=([veth5-1]="10.10.11.130/29")

##Die wirkliche Arbeit
for device in "${!hops[@]}"
do
hop=${hops["$device"]}
ip=${ips["$device"]}
ip link set $device netns $hop
ip netns exec $hop ip addr change $ip dev $device
ip netns exec $hop ip link set $device up
done

##die Routen ...
ip netns exec hop1 ip route add 172.16.211.0/26 via ${ips[veth0-1]%/*}

ip netns exec hop2 ip route add 172.16.211.0/26 via ${ips[veth2-1]%/*}
ip netns exec hop2 ip route add 172.16.210.64/26 via ${ips[veth1-1]%/*}

ip netns exec hop3 ip route add 172.16.211.0/26 via ${ips[veth3-1]%/*} dev veth3-0
ip netns exec hop3 ip route add 172.16.210.64/26 via ${ips[veth2-0]%/*} dev veth2-1

ip netns exec hop4 ip route add 172.16.210.64/26 via ${ips[veth3-0]%/*}
ip netns exec hop4 ip route add 172.16.211.0/26 via ${ips[veth5-0]%/*}

ip netns exec hop5 ip route add 172.16.210.64/26 via ${ips[veth4-0]%/*}

##Traffic shaping

##Zuordnung der virtuellen Netzwerkkarten zu den Delays
declare -A delay
delay=([veth0-0]="0ms")
delay+=([veth0-1]="528ms")
delay+=([veth1-0]="528ms")
delay+=([veth1-1]="0ms")
delay+=([veth2-0]="0ms")
delay+=([veth2-1]="5ms")
delay+=([veth3-0]="5ms")
delay+=([veth3-1]="0ms")
delay+=([veth4-0]="530ms")
delay+=([veth4-1]="0ms")
delay+=([veth5-0]="0ms")
delay+=([veth5-1]="530ms")

##Default Werte
BANDWIDTH=${BANDWIDTH:-2}kbps
JITTER=${JITTER:-5}ms
LOSS=${LOSS:-1}%
CORRUPTION=${CORRUPTION:-1}%
DUPLICATION=${DUPLICATION:-1}%
RATE=${RATE:-128}kbit
OVERHEAD=${OVERHEAD:-100}

for DEV in "${!delay[@]}"
do
DELAY=${delay[$DEV]}
hop=${hops["$DEV"]}
if [ -n "$DELAY" -a "$DELAY" != "0ms" ]
then
       ip netns exec $hop /usr/bin/tc qdisc del dev $DEV root
       ip netns exec $hop /usr/bin/tc qdisc add dev $DEV root handle 1: htb default 12
       ip netns exec $hop /usr/bin/tc class add dev $DEV parent 1:1 classid 1:12 htb rate $BANDWIDTH ceil $BANDWIDTH
   ip netns exec $hop /usr/bin/tc qdisc add dev $DEV parent 1:12 netem delay $DELAY $JITTER loss random $LOSS corrupt $CORRUPTION duplicate $DUPLICATION rate $RATE $OVERHEAD
fi
done

/etc/udev/rules.d/10-network.rules

 SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="b8:27:eb:b2:bd:59", NAME="eth0" SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:88:00:94", NAME="pr0" SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:66:10:25", NAME="pl0"

/etc/systemd/network/00-eth0.network

 [Match] Name=eth0 [Network] MACVLAN=adm0

/etc/systemd/network/50-adm0.netdev

 [Match] [NetDev] Name=adm0 Kind=macvlan [MACVLAN] Mode=private

/etc/systemd/network/70-adm0.network

 [Match] Name=adm0 [Address] Address=10.255.255.253/12

Multihop Network Pi