# Dos sitios de una misma organización, separados por una red que no es de ellos.
#
#   ofi 10.215.1.10 --- eth1                        eth1 --- gw2 --- eth2 --- b 10.215.3.10
#                           fw --- eth3 --- wan --- 
#   web 100.64.15.10 -- eth2        |
#                                  ext 100.64.15.100
#
# fw separa tres zonas: la red interna (eth1), la DMZ (eth2) y afuera (eth3). wan es "Internet":
# sabe llegar a la red interna de fw para que quien la proteja sea el firewall y no la falta de
# una ruta, y no sabe llegar a la red de b, que solo se alcanza por el túnel.
# No hay NAT: así las capturas muestran las direcciones reales.
name: w15-sitios
mgmt:
  network: redes-w15-sitios
  ipv4-subnet: 172.90.15.0/26
  ipv6-subnet: 3fff:172:90:15:1::/80
topology:
  defaults:
    kind: linux
    image: redes-router
    binds:
      - ../captures:/captures
  nodes:
    ofi:
      exec:
        - ip route del default
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - ip addr add 10.215.1.10/24 dev eth1
        - ip route add default via 10.215.1.1
    web:
      exec:
        - ip route del default
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - ip addr add 100.64.15.10/26 dev eth1
        - ip route add default via 100.64.15.1
    fw:
      exec:
        - ip route del default
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - sysctl -w net.ipv4.ip_forward=1
        - ip addr add 10.215.1.1/24 dev eth1
        - ip addr add 100.64.15.1/26 dev eth2
        - ip addr add 100.64.15.66/30 dev eth3
        - ip route add default via 100.64.15.65
    wan:
      exec:
        - ip route del default
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - sysctl -w net.ipv4.ip_forward=1
        - ip addr add 100.64.15.65/30 dev eth1
        - ip addr add 100.64.15.69/30 dev eth2
        - ip addr add 100.64.15.97/27 dev eth3
        - ip route add 10.215.1.0/24 via 100.64.15.66
        - ip route add 100.64.15.0/26 via 100.64.15.66
    gw2:
      exec:
        - ip route del default
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - sysctl -w net.ipv4.ip_forward=1
        - ip addr add 100.64.15.70/30 dev eth1
        - ip addr add 10.215.3.1/24 dev eth2
        - ip route add default via 100.64.15.69
    b:
      exec:
        - ip route del default
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - ip addr add 10.215.3.10/24 dev eth1
        - ip route add default via 10.215.3.1
    ext:
      exec:
        - ip route del default
        - sysctl -w net.ipv6.conf.all.disable_ipv6=1
        - ip addr add 100.64.15.100/27 dev eth1
        - ip route add default via 100.64.15.97
  # Containerlab usa MTU 9500 por defecto; el costo de la VPN solo se ve con el valor de Ethernet.
  links:
    - {endpoints: ["ofi:eth1", "fw:eth1"], mtu: 1500}
    - {endpoints: ["web:eth1", "fw:eth2"], mtu: 1500}
    - {endpoints: ["fw:eth3", "wan:eth1"], mtu: 1500}
    - {endpoints: ["wan:eth2", "gw2:eth1"], mtu: 1500}
    - {endpoints: ["wan:eth3", "ext:eth1"], mtu: 1500}
    - {endpoints: ["gw2:eth2", "b:eth1"], mtu: 1500}
