iperf-docker.md 1.5 KB

# Create bridge directly connected to an interface
# https://docs.docker.com/network/macvlan/#bridge-mode
# # Docker requires to run its own DHCP,
# apparently it is not possible to use an existing DHCP server
# To find a proper subnet: http://www.davidc.net/sites/default/subnets/subnets.html
# E.g. 
# - The existing DHCP server serves 192.168.178.0/24
#   for the range starting 192.167.167.50 41-46

docker network create -d macvlan -o parent=br0 \
  --subnet 192.168.178.0/24 \
  --gateway 192.168.178.1 \
  --ip-range 192.168.178.40/29 \
  macvlan
docker network ls

# IPERF 3
docker run --rm -d \
  --network macvlan \
  --name iperf3-server \
  --ip 192.168.178.40 \
  alpine \
  sh -c \
     "
     apk add iperf3 \
     && ip addr show dev eth0 \
     && iperf3 -s \
     "

# IPERF 2
docker run --rm -d \
  --network macvlan \
  --name iperf2-server \
  --ip 192.168.178.42 \
  alpine \
  sh -c \
     "
     apk add iperf \
     && ip addr show dev eth0 \
     && iperf -s \
     "

# CLIENT IPERF3
docker run --rm \
  --network macvlan \
  --name iperf3-client \
  --ip 192.168.178.41 \
  alpine \
  sh -c \
     "
     apk add iperf3 \
     && ip addr show dev eth0 \
     && iperf3 -c 192.168.178.40
     "

# CLIENT IPERF2
docker run --rm \
  --network macvlan \
  --name iperf3-client \
  --ip 192.168.178.41 \
  alpine \
  sh -c \
     "
     apk add iperf \
     && ip addr show dev eth0 \
     && iperf -c 192.168.178.42
     "


# Cleanup
docker kill iperf2-server
docker kill iperf3-server
docker network rm macvlan