# Un cliente, un middlebox y un servidor. mb agrega retardo en sus dos interfaces y es el lugar
# natural para capturar: ve lo mismo que cualquier equipo entre el cliente y el servidor.
#
#     c  10.213.1.10 ---- eth1 mb eth2 ---- 10.213.2.10  s
#
# mb tiene otra red en eth1, 10.213.3.0/24: a ella se muda c en la demostración de migración.
# c y s usan la imagen del contenedor de trabajo, porque tienen openssl y curl con HTTP/3.
# mb usa la imagen de los routers, sin demonios de routing: basta con forwarding y tc.
# Toda la carpeta de la semana queda en /w13, y captures/ guarda los .pcap.
name: w13-net
mgmt:
  network: redes-w13-net
  ipv4-subnet: 172.90.13.0/26
  ipv6-subnet: 3fff:172:90:13:1::/80
topology:
  defaults:
    kind: linux
    binds:
      - ..:/w13
  nodes:
    c:
      image: redes
      cmd: sleep infinity
      exec:
        - ip route del default
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - ip addr add 10.213.1.10/24 dev eth1
        - ip route add default via 10.213.1.1
    s:
      image: redes
      cmd: sleep infinity
      exec:
        - ip route del default
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - ip addr add 10.213.2.10/24 dev eth1
        - ip route add default via 10.213.2.1
    mb:
      image: redes-router
      exec:
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - sysctl -w net.ipv4.ip_forward=1
        - ip addr add 10.213.1.1/24 dev eth1
        - ip addr add 10.213.3.1/24 dev eth1
        - ip addr add 10.213.2.1/24 dev eth2
        - tc qdisc add dev eth1 root netem delay 20ms
        - tc qdisc add dev eth2 root netem delay 20ms
  links:
    - endpoints: ["c:eth1", "mb:eth1"]
      mtu: 1500
    - endpoints: ["mb:eth2", "s:eth1"]
      mtu: 1500
