# Tres routers en triángulo, con un host en cada LAN. Las rutas estáticas están
# incompletas a propósito: completarlas es el paso 1 del laboratorio.
#
#   h1 --- r1 ------- r2 --- h2
#            \       /
#             \     /
#               r3 --- h3
name: w04-fwd
mgmt:
  network: redes-w04-fwd
  ipv4-subnet: 172.90.4.0/25
  ipv6-subnet: 3fff:172:90:4::/80
topology:
  defaults:
    kind: linux
    image: redes-router
  nodes:
    # Se borra la ruta por defecto de gestión (eth0): sin esto, lo que un nodo no
    # sabe a dónde mandar se iría por Docker en vez de fallar.
    r1:
      binds: [r1/frr.conf:/etc/frr/frr.conf:ro]
      exec: &router-exec
        - ip route del default
        - ip -6 route del default
        - sysctl -w net.ipv6.conf.all.forwarding=1
    r2:
      binds: [r2/frr.conf:/etc/frr/frr.conf:ro]
      exec: *router-exec
    r3:
      binds: [r3/frr.conf:/etc/frr/frr.conf:ro]
      exec: *router-exec
    h1:
      exec:
        - ip route del default
        - ip -6 route del default
        - ip addr add 10.200.1.10/24 dev eth1
        - ip route add default via 10.200.1.1
    h2:
      exec:
        - ip route del default
        - ip -6 route del default
        - ip addr add 10.200.2.10/24 dev eth1
        - ip route add default via 10.200.2.1
    h3:
      exec:
        - ip route del default
        - ip -6 route del default
        - ip addr add 10.200.3.10/24 dev eth1
        - ip route add default via 10.200.3.1
  # Containerlab usa MTU 9500 por defecto; aquí queremos el valor de Ethernet.
  links:
    - endpoints: ["h1:eth1", "r1:eth1"]
      mtu: 1500
    - endpoints: ["h2:eth1", "r2:eth1"]
      mtu: 1500
    - endpoints: ["h3:eth1", "r3:eth1"]
      mtu: 1500
    - endpoints: ["r1:eth2", "r2:eth2"]
      mtu: 1500
    - endpoints: ["r2:eth3", "r3:eth2"]
      mtu: 1500
    - endpoints: ["r1:eth3", "r3:eth3"]
      mtu: 1500
