Diseño de red modular: un marco de arquitectura escalable

Introducción al diseño de redes modulares

La modularidad de la red es la práctica de diseñar redes como segmentos interconectados y construidos a propósito en lugar de estructuras monolíticas. Cada módulo sirve una función específica, ha definido límites y se conecta a módulos adyacentes a través de interfaces bien comprendidas. Este enfoque transforma el diseño de red desde un arte en una disciplina de ingeniería repetible.

El poder de la modularidad radica en su capacidad de crearpautas predeciblesque se puede aplicar constantemente a través de toda la huella de infraestructura de una organización, ya sea que abarca decenas de miles de sitios pequeños, miles de sitios medianos, o cientos de grandes campus empresariales.

Por qué la modularidad importa

Beneficios en todas las escalas de red

TENIDO Beneficio TENIDO Pequeños Sitios TENIDO Sitios Medios TENIDO Grandes Sitios TENIDO Silencio------------------------------------------------------------------ SilencioSolución simplificada de problemas← Un ingeniero único puede entender la topología completa Silencio Teams puede especializarse por módulo Silencio Borrar las trayectorias de escalada entre los propietarios de módulos SilencioEscalada predictibleSilencio Añadir módulos según sea necesario Ø Clone patrones probados Silencio sin rediseñar SilencioSeguridad constanteSilencio Mismo políticas en todas partes SilencioEficiencia operacional← Implementación basada en la plantilla TENIDO Aprovisionamiento automatizado SilencioControl de costos← Tamaño derecho de cada módulo ← Compra a granel por tipo módulo ← Gestión del ciclo de vida por tier

El desafío de escalar

Las organizaciones rara vez permanecen estáticas. Un diseño modular debe acomodar:

Sin modularidad, cada sitio se convierte en un exclusivo copo de nieve que requiere documentación personalizada, entrenamiento especializado y solución de problemas. Con modularidad, un ingeniero que entiende el patrón puede funcionar eficazmente en cualquier sitio.


Módulos básicos de red

Módulo 1: Segmento de borde de Internet

El Internet Edge es donde su organización se encuentra con el mundo exterior. Este módulo contiene:

@startuml Internet Edge Module
!define ICONURL https://raw.githubusercontent.com/Roemer/plantuml-office/master/office2014
skinparam backgroundColor #FEFEFE
skinparam handwritten false

nwdiag {
    internet [shape = cloud, description = "Internet"];

    network ISP_Transit {
        address = "VLAN 10-12"
        color = "#FFE4E1"
        description = "ISP/MPLS Transit"

        internet;
        ISP_A [description = "ISP-A\nCircuit"];
        ISP_B [description = "ISP-B\nCircuit"];
        MPLS [description = "MPLS\nCircuit"];
    }

    network Edge_Router_Segment {
        address = "VLAN 10,11,12"
        color = "#E6E6FA"
        description = "Edge Router Aggregation"

        ISP_A;
        ISP_B;
        MPLS;
        Edge_Router [description = "Edge Router\n(BGP Peering)"];
    }

    network FW_Outside {
        address = "VLAN 100"
        color = "#FFFACD"
        description = "Firewall Outside"

        Edge_Router;
        FW_Primary [description = "Firewall\nPrimary"];
        FW_Secondary [description = "Firewall\nSecondary"];
    }

    network FW_HA_Sync {
        address = "VLAN 101"
        color = "#F0FFF0"
        description = "HA Sync Link"

        FW_Primary;
        FW_Secondary;
    }

    network FW_Inside {
        address = "VLAN 102"
        color = "#E0FFFF"
        description = "To Internal Edge"

        FW_Primary;
        FW_Secondary;
    }
}
@enduml

Principios clave de diseño:


Módulo 2: Edge interno / DMZ Tier

Para sitios medianos y grandes, el borde interno proporciona una capa de agregación para servicios que requieren exposición controlada o sirven como puntos de transición entre zonas de seguridad.

@startuml Internal Edge Module
skinparam backgroundColor #FEFEFE

nwdiag {
    network From_Internet_Edge {
        address = "VLAN 102"
        color = "#E0FFFF"
        description = "From Firewall Inside"

        IntEdge_A [description = "Internal Edge\nSwitch A"];
        IntEdge_B [description = "Internal Edge\nSwitch B"];
    }

    network MCLAG_Peer {
        address = "Peer-Link"
        color = "#DDA0DD"
        description = "MCLAG/vPC Peer"

        IntEdge_A;
        IntEdge_B;
    }

    network WLC_Mgmt {
        address = "VLAN 200 - 10.x.200.0/24"
        color = "#FFE4B5"
        description = "WLC Management"

        IntEdge_A;
        IntEdge_B;
        WLC [description = "Wireless LAN\nController"];
    }

    network Proxy_Farm {
        address = "VLAN 201 - 10.x.201.0/24"
        color = "#FFDAB9"
        description = "Proxy Services"

        IntEdge_A;
        IntEdge_B;
        Proxy [description = "Web Proxy\nServers"];
    }

    network VPN_Services {
        address = "VLAN 202 - 10.x.202.0/24"
        color = "#E6E6FA"
        description = "VPN Termination"

        IntEdge_A;
        IntEdge_B;
        VPN [description = "VPN\nConcentrator"];
    }

    network Infrastructure {
        address = "VLAN 204 - 10.x.204.0/24"
        color = "#F0FFF0"
        description = "Infrastructure Services"

        IntEdge_A;
        IntEdge_B;
        DNS_DHCP [description = "DNS/DHCP\nServers"];
    }

    network To_Core {
        address = "VLAN 205"
        color = "#B0E0E6"
        description = "Core Transit"

        IntEdge_A;
        IntEdge_B;
    }
}
@enduml

Servicios Típicamente en el borde interno:


Módulo 3: Capa de núcleo

El núcleo es la columna vertebral de alta velocidad que interconecta todos los demás módulos. Debe optimizarse para:

@startuml Core Module
skinparam backgroundColor #FEFEFE

nwdiag {
    network From_Internal_Edge {
        address = "L3 Routed"
        color = "#B0E0E6"
        description = "From Internal Edge"

        Core_A [description = "Core Switch A\n100G Backbone"];
        Core_B [description = "Core Switch B\n100G Backbone"];
    }

    network Core_Interconnect {
        address = "100G+ ISL"
        color = "#FFB6C1"
        description = "High-Speed Interconnect\nOSPF/IS-IS/BGP"

        Core_A;
        Core_B;
    }

    network To_Distribution_1 {
        address = "L3 P2P"
        color = "#98FB98"
        description = "Building A"

        Core_A;
        Core_B;
        Dist_1 [description = "Distribution 1\n(L3 Adjacent)"];
    }

    network To_Distribution_2 {
        address = "L3 P2P"
        color = "#DDA0DD"
        description = "Building B"

        Core_A;
        Core_B;
        Dist_2 [description = "Distribution 2\n(MCLAG)"];
    }

    network To_Distribution_3 {
        address = "L3 P2P"
        color = "#FFDAB9"
        description = "Building C"

        Core_A;
        Core_B;
        Dist_3 [description = "Distribution 3\n(MCLAG)"];
    }

    network To_DC_Border {
        address = "L3 Routed"
        color = "#87CEEB"
        description = "Datacenter"

        Core_A;
        Core_B;
        Border_Leaf [description = "Border Leaf\n(DC Fabric)"];
    }
}
@enduml

Principios básicos de diseño:


Módulo 4: Capa de distribución

La capa de distribución agrega los interruptores de acceso y aplica la política. Aquí es donde las opciones de diseño de red tienen la mayor variación basada en los requisitos del sitio.


Distribución Tier Variaciones

Variación 1: L3 Adjacent (Acceso Sur)

En este diseño, las capas de distribución y acceso sonL3 adyacente— Cada interruptor de acceso tiene su propia subred IP y rutas directamente a la distribución.

@startuml Distribution Variation 1 - L3 Adjacent
skinparam backgroundColor #FEFEFE

nwdiag {
    network From_Core {
        address = "L3 ECMP"
        color = "#B0E0E6"
        description = "From Core Layer"

        Dist_A [description = "Distribution A\n(L3 Router)"];
        Dist_B [description = "Distribution B\n(L3 Router)"];
    }

    network Dist_iBGP {
        address = "iBGP Peering"
        color = "#DDA0DD"
        description = "ECMP/iBGP"

        Dist_A;
        Dist_B;
    }

    network P2P_Access_1 {
        address = "10.x.2.0/30"
        color = "#98FB98"
        description = "L3 Point-to-Point"

        Dist_A;
        Dist_B;
        Access_1 [description = "Access SW-1\n(L3 Gateway)"];
    }

    network P2P_Access_2 {
        address = "10.x.2.8/30"
        color = "#FFE4B5"
        description = "L3 Point-to-Point"

        Dist_A;
        Dist_B;
        Access_2 [description = "Access SW-2\n(L3 Gateway)"];
    }

    network P2P_Access_3 {
        address = "10.x.2.16/30"
        color = "#FFDAB9"
        description = "L3 Point-to-Point"

        Dist_A;
        Dist_B;
        Access_3 [description = "Access SW-3\n(L3 Gateway)"];
    }

    network User_VLAN_1 {
        address = "10.x.32.0/24"
        color = "#F0FFF0"
        description = "Users - SW1"

        Access_1;
        Laptop_1 [description = "Laptops"];
        Phone_1 [description = "Phones"];
    }

    network User_VLAN_2 {
        address = "10.x.33.0/24"
        color = "#FFF0F5"
        description = "Users - SW2"

        Access_2;
        Laptop_2 [description = "Laptops"];
        Camera_2 [description = "Cameras"];
    }

    network User_VLAN_3 {
        address = "10.x.34.0/24"
        color = "#F5FFFA"
        description = "Users - SW3"

        Access_3;
        Laptop_3 [description = "Workstations"];
        Camera_3 [description = "Cameras"];
    }
}
@enduml

Ejemplo:

Silencio Silencio Silencio Silencio.. TENIDA Distribución a Core TENENCIA 10.x.1.0/30, 10.x.1.4/30 ← Dist-A to Access-1 Silencio 10.x.2.0/30 TENIDA Dist-B to Access-1 TEN 10.x.2.4/30 tención Access-1 Usuario VLAN Silenciosos 10.x.32.0/24 TENIDO Access-2 Usuario VLAN TENIDO 10.x.33.0/24

Beneficios:

Consideraciones:


Variación 2: MCLAG con Trunks LACP

Este diseño utilizaMulti-Chassis Link Aggregation (MCLAG)en distribución conLACP bondsa los interruptores de acceso que llevan VLANs troncales.

Vendor Terminología: Cisco llama a este vPC (Virtual Port Channel), Arista utiliza MLAG, Juniper utiliza MC-LAG y HPE/Aruba utiliza VSX. El comportamiento funcional es similar a través de los proveedores.

@startuml Distribution Variation 2 - MCLAG
skinparam backgroundColor #FEFEFE

nwdiag {
    network From_Core {
        address = "L3 Routed Uplinks"
        color = "#B0E0E6"
        description = "From Core Layer"

        Dist_A [description = "Distribution A\n(MCLAG Member)"];
        Dist_B [description = "Distribution B\n(MCLAG Member)"];
    }

    network MCLAG_Peer_Link {
        address = "Peer-Link"
        color = "#FFB6C1"
        description = "MCLAG/vPC Peer-Link"

        Dist_A;
        Dist_B;
    }

    network LACP_To_Access {
        address = "Po1 - LACP Trunk"
        color = "#DDA0DD"
        description = "VLANs 100,110,120 Trunked"

        Dist_A;
        Dist_B;
        Access_1 [description = "Access SW-1\n(L2 Switch)"];
    }

    network Data_VLAN {
        address = "VLAN 100 - 10.x.32.0/24"
        color = "#98FB98"
        description = "Data VLAN"

        Access_1;
        Laptops [description = "Laptops\nWorkstations"];
    }

    network Voice_VLAN {
        address = "VLAN 110 - 10.x.64.0/24"
        color = "#FFE4B5"
        description = "Voice VLAN"

        Access_1;
        Phones [description = "IP Phones"];
    }

    network Security_VLAN {
        address = "VLAN 120 - 10.x.96.0/24"
        color = "#FFDAB9"
        description = "Security VLAN"

        Access_1;
        Cameras [description = "Cameras\nBadge Readers"];
    }
}
@enduml

SVI Placement (VRRP VIP en Pareja de Distribución):

Configuración VLAN Trunk:

Silencio Port-Channel Silencio---------------------------------- Silencio Po1 (MCLAG) Silencio 100,110,120 Silenciosos Access-1 Silencio Silencio Po2 (MCLAG) Silencio 100,110,120,130 Silencioso Access-2 Silencio tención Po3 (MCLAG) Silencio 100,110 Silenciosos Access-3 Silencio Silencio para el VLAN Nativo

MCLAG Ventajas:

Consideraciones:


Variación 3: Hoja de frontera para el centro de datos de columna / hoja

En entornos de centro de datos, la capa de distribución se convierte en laLeaf de fronteraconectar el tejido de la columna vertebral al resto de la red empresarial.

@startuml Distribution Variation 3 - Border Leaf Datacenter
skinparam backgroundColor #FEFEFE

nwdiag {
    network Enterprise_Core {
        address = "L3 Routed (eBGP/OSPF)"
        color = "#B0E0E6"
        description = "From Enterprise Core"

        Border_A [description = "Border Leaf A\nVXLAN Gateway"];
        Border_B [description = "Border Leaf B\nVXLAN Gateway"];
    }

    network Border_EVPN {
        address = "VXLAN EVPN"
        color = "#DDA0DD"
        description = "EVPN Type-5 Routes"

        Border_A;
        Border_B;
        Spine_1 [description = "Spine 1"];
        Spine_2 [description = "Spine 2"];
    }

    network Spine_Fabric {
        address = "eBGP Underlay"
        color = "#FFB6C1"
        description = "Spine Layer"

        Spine_1;
        Spine_2;
    }

    network Leaf_Tier_1 {
        address = "VTEP"
        color = "#98FB98"
        description = "Compute Rack 1"

        Spine_1;
        Spine_2;
        Leaf_1 [description = "Leaf 1"];
        Leaf_2 [description = "Leaf 2"];
    }

    network Leaf_Tier_2 {
        address = "VTEP"
        color = "#FFE4B5"
        description = "Storage/Services"

        Spine_1;
        Spine_2;
        Leaf_3 [description = "Leaf 3"];
        Leaf_4 [description = "Leaf 4"];
    }

    network Server_Rack_1 {
        address = "VNI 10001"
        color = "#F0FFF0"
        description = "Compute Servers"

        Leaf_1;
        Leaf_2;
        Servers_1 [description = "Rack Servers\nVMs/Containers"];
    }

    network Storage_Network {
        address = "VNI 10002"
        color = "#FFDAB9"
        description = "Storage Arrays"

        Leaf_3;
        Storage [description = "SAN/NAS\nStorage"];
    }

    network Voice_Services {
        address = "VNI 10003"
        color = "#E6E6FA"
        description = "UC Systems"

        Leaf_4;
        PBX [description = "PBX/UC\nSystems"];
    }
}
@enduml

Detalles del tejido del centro de datos:

Ø Componente Silencioso Silencioso Silencio.. SilencioUnderlaytención eBGP (ASN por conmutador) o OSPF SilencioSuperposiciónSilencio VXLAN con plano de control EVPN SilencioLeaf de fronteraPuerta VXLAN a VLAN, Rutas externas, enrutamiento Inter-VRF SilencioCarga de trabajo de hoja← Compute, Almacenamiento, Voz/UC, Infraestructura

Beneficios:

Consideraciones:


Módulo 5: Access Layer

La capa Access es donde se conectan los dispositivos finales. Independientemente de la topología de distribución, los interruptores de acceso proporcionan:

@startuml Access Layer Module
skinparam backgroundColor #FEFEFE

nwdiag {
    network Distribution_Uplink {
        address = "L3 or LACP Trunk"
        color = "#B0E0E6"
        description = "Uplinks to Distribution"

        Access_SW [description = "48-Port Access Switch\nPoE+ Capable"];
    }

    network Data_VLAN {
        address = "VLAN 100 - Ports 1-8, 25-32"
        color = "#98FB98"
        description = "Data VLAN"

        Access_SW;
        Laptops [description = "Laptops\nWorkstations"];
    }

    network Voice_VLAN {
        address = "VLAN 110 - Ports 9-16"
        color = "#FFE4B5"
        description = "Voice VLAN"

        Access_SW;
        Phones [description = "IP Phones"];
    }

    network Camera_VLAN {
        address = "VLAN 120 - Ports 17-24"
        color = "#FFDAB9"
        description = "Security VLAN"

        Access_SW;
        Cameras [description = "IP Cameras"];
    }

    network Wireless_VLAN {
        address = "VLAN 130 - Ports 33-40"
        color = "#DDA0DD"
        description = "Wireless AP VLAN"

        Access_SW;
        APs [description = "Wireless APs"];
    }

    network Mgmt_VLAN {
        address = "VLAN 999 - Ports 41-44"
        color = "#F0FFF0"
        description = "Management VLAN"

        Access_SW;
    }
}
@enduml

Características de seguridad de la capa de acceso:


Topología modular completa

Así se conectan todos los módulos para formar una red empresarial completa:

@startuml Complete Modular Network Topology
skinparam backgroundColor #FEFEFE
title Complete Enterprise Modular Network

nwdiag {
    internet [shape = cloud, description = "Internet/WAN"];

    network Internet_Edge {
        address = "Module 1"
        color = "#FFE4E1"
        description = "INTERNET EDGE MODULE"

        internet;
        ISP_A [description = "ISP-A"];
        ISP_B [description = "ISP-B"];
        MPLS [description = "MPLS"];
        Edge_RTR [description = "Edge Router"];
        FW_A [description = "FW-A"];
        FW_B [description = "FW-B"];
    }

    network Internal_Edge {
        address = "Module 2"
        color = "#E6E6FA"
        description = "INTERNAL EDGE / DMZ MODULE"

        FW_A;
        FW_B;
        IntEdge_A [description = "IntEdge-A"];
        IntEdge_B [description = "IntEdge-B"];
        WLC [description = "WLC"];
        Proxy [description = "Proxy"];
        VPN [description = "VPN"];
        DNS [description = "DNS/DHCP"];
    }

    network Core {
        address = "Module 3"
        color = "#B0E0E6"
        description = "CORE MODULE"

        IntEdge_A;
        IntEdge_B;
        Core_A [description = "Core-A"];
        Core_B [description = "Core-B"];
    }

    network Distribution_L3 {
        address = "Variation 1"
        color = "#98FB98"
        description = "DIST - L3 Adjacent\n(Building A)"

        Core_A;
        Core_B;
        Dist_1A [description = "Dist-1A"];
        Dist_1B [description = "Dist-1B"];
        Access_L3 [description = "Access\n(L3)"];
    }

    network Distribution_MCLAG {
        address = "Variation 2"
        color = "#DDA0DD"
        description = "DIST - MCLAG\n(Building B)"

        Core_A;
        Core_B;
        Dist_2A [description = "Dist-2A"];
        Dist_2B [description = "Dist-2B"];
        Access_L2 [description = "Access\n(L2)"];
    }

    network Datacenter {
        address = "Variation 3"
        color = "#FFE4B5"
        description = "DATACENTER\n(Spine/Leaf)"

        Core_A;
        Core_B;
        Border_Leaf [description = "Border\nLeaf"];
        Spine [description = "Spine"];
        Leaf [description = "Leaf"];
        Servers [description = "Servers\nStorage\nPBX"];
    }

    network Campus_Users {
        address = "End Devices"
        color = "#F0FFF0"
        description = "Campus Users"

        Access_L3;
        Access_L2;
        Users [description = "Laptops\nPhones\nCameras"];
    }
}
@enduml

IP Addressing Strategy with VRF Isolation

El reto del diseño multisegmento, multi-VRF

Cuando las redes crecen para incluir múltiples zonas de seguridad, unidades de negocio o límites de cumplimiento,VRF (Virtual Routing and Forwarding)proporciona aislamiento de la mesa de ruta. Sin embargo, la ampliación de los VRF a través de múltiples niveles añade complejidad:

Subnet Schema Strategy

Un esquema de subnet bien diseñado hace que los patrones sean reconocibles, reduciendo errores de carga y configuración cognitivas.

Ejemplo: Sitio de fabricación grande (10.0.0.0/13)

Localización:10.0.0.0/13 (Manufacturing Site Alpha) - 524.286 hosts utilizables

@startuml VRF Subnet Schema
skinparam backgroundColor #FEFEFE
title Large Site VRF Allocation Schema (10.0.0.0/13)

nwdiag {
    network Corporate_VRF {
        address = "VRF: CORPORATE\n10.0.0.0/17"
        color = "#98FB98"
        description = "Production Users"

        Corp_Transit [description = "Transit\n10.0.0.0/23"];
        Corp_Users [description = "Users\n10.0.32.0/19"];
        Corp_Voice [description = "Voice\n10.0.64.0/19"];
        Corp_Wireless [description = "Wireless\n10.0.96.0/19"];
        Corp_Server [description = "Servers\n10.0.112.0/20"];
    }

    network Guest_VRF {
        address = "VRF: GUEST\n10.1.0.0/17"
        color = "#FFE4B5"
        description = "Visitor Network"

        Guest_Transit [description = "Transit\n10.1.0.0/23"];
        Guest_Users [description = "Users\n10.1.32.0/19"];
    }

    network Security_VRF {
        address = "VRF: SECURITY\n10.2.0.0/17"
        color = "#FFDAB9"
        description = "Physical Security"

        Sec_Transit [description = "Transit\n10.2.0.0/23"];
        Sec_Camera [description = "Cameras\n10.2.32.0/19"];
        Sec_Badge [description = "Badge Readers\n10.2.64.0/19"];
        Sec_NVR [description = "NVR/VMS\n10.2.96.0/20"];
    }

    network IOT_VRF {
        address = "VRF: IOT\n10.3.0.0/17"
        color = "#E6E6FA"
        description = "Manufacturing OT"

        IOT_Transit [description = "Transit\n10.3.0.0/23"];
        IOT_PLC [description = "PLCs\n10.3.32.0/19"];
        IOT_HMI [description = "HMIs\n10.3.64.0/19"];
        IOT_SCADA [description = "SCADA\n10.3.96.0/20"];
    }
}
@enduml

Detalle de segmento de tránsito (10.0.0.0/23 - 510 IPs utilizables):

Subnet Silencio Enlace Descripción Silencio Silencio.. Silencio 10.0.0.0/30 Silencio FW-Inside → Interna-Edge-A Silencio tención 10.0.0.4/30 Silencio FW-Inside → Interna-Edge-B tención 10.0.0.8/30 Silencio Interna-Edge-A → Core-A Silencio tención 10.0.0.12/30 tención 10.0.0.16/30 Silencio Interna-Edge-B → Core-A Silencio tención 10.0.0.20/30 Silencio Interna-Edge-B → Core-B Silenciosos 10.0.0.24/30 Silencio Core-A → Distribución-A Silenciosos 10.0.0.28/30 Silencio Core-A → Distribución-B tención 10.0.0.32/30 Silencio Core-B → Distribución-A Silencio Silenciosos 10.0.0.36/30 Silencio Core-B → Distribución-B tención 10.0.0.40/30 Silencioso Distribución-A → Access-SW-1 tención 10.0.0.44/30 Silencioso Distribución-B → Access-SW-1 Silencio ... Silencio (Pattern continúa)

Nota:/31 subnets (RFC 3021) también se pueden utilizar para enlaces de punto a punto, conservando espacio de dirección.

Beneficios de reconocimiento del patrón

Cuando los patrones de subnet son consistentes en VRFs:

Silencio Lo que usted sabe tóxico Lo que usted puede inferir Silencio.. Enlace de Tránsito en usos corporativos 10.0.0.40/30 Los usuarios de Access-SW-5 están en 10.0.36.0/24 Las cámaras de seguridad en el mismo interruptor son 10.2.36.0/24 Silencio Silencioso Sitio Alfa es 10.0.0.0/13 Silencio Sitio Beta podría ser 10.8.0.0/13

Esto permite a los ingenieros:


Plantillas de tamaño del sitio

Plantilla pequeña del sitio (oficina de apertura)

@startuml Small Site Template
skinparam backgroundColor #FEFEFE
title Small Site Template (< 50 users)

nwdiag {
    internet [shape = cloud];

    network WAN {
        color = "#FFE4E1"
        description = "ISP/MPLS Circuit"

        internet;
        UTM [description = "UTM/SD-WAN\nAppliance\n(Router+FW+VPN+WLC)"];
    }

    network LAN {
        address = "10.100.x.0/24"
        color = "#98FB98"
        description = "Single Subnet"

        UTM;
        Access [description = "Access Switch\n(or UTM ports)"];
    }

    network Endpoints {
        color = "#F0FFF0"
        description = "End Devices"

        Access;
        AP [description = "WiFi AP"];
        Users [description = "Users"];
        Phones [description = "Phones"];
    }
}
@enduml

Notas de diseño de sitios pequeños:

Plantilla de Sitio Media (Oficina Regional)

@startuml Medium Site Template
skinparam backgroundColor #FEFEFE
title Medium Site Template (50-500 users)

nwdiag {
    internet [shape = cloud];

    network WAN_Edge {
        color = "#FFE4E1"
        description = "Internet Edge"

        internet;
        ISP_A [description = "ISP-A"];
        ISP_B [description = "ISP-B/MPLS"];
        Edge_RTR [description = "Edge Router"];
    }

    network Firewall_Tier {
        color = "#FFDAB9"
        description = "Firewall HA Pair"

        Edge_RTR;
        FW_A [description = "FW-A"];
        FW_B [description = "FW-B"];
    }

    network Distribution {
        address = "10.50.x.0/21"
        color = "#DDA0DD"
        description = "MCLAG Distribution\n(Dist/Core Combined)"

        FW_A;
        FW_B;
        Dist_A [description = "Dist-A"];
        Dist_B [description = "Dist-B"];
    }

    network Access_Tier {
        color = "#98FB98"
        description = "Access Switches (LACP)"

        Dist_A;
        Dist_B;
        Acc1 [description = "Acc1"];
        Acc2 [description = "Acc2"];
        Acc3 [description = "Acc3"];
        Acc4 [description = "Acc4"];
        Acc5 [description = "Acc5"];
    }

    network Users {
        color = "#F0FFF0"
        description = "End Devices"

        Acc1;
        Acc2;
        Acc3;
        Acc4;
        Acc5;
        Endpoints [description = "Laptops/Phones\nCameras/APs"];
    }
}
@enduml

Notas de diseño de sitios medios:

Plantilla de sitio grande (Headquarters/Campus)

@startuml Large Site Template
skinparam backgroundColor #FEFEFE
title Large Site Template (500+ users)

nwdiag {
    internet [shape = cloud];

    network Internet_Edge {
        color = "#FFE4E1"
        description = "INTERNET EDGE MODULE"

        internet;
        ISP_A [description = "ISP-A"];
        ISP_B [description = "ISP-B"];
        MPLS [description = "MPLS"];
        Edge_RTR [description = "Edge-RTR"];
        FW_A [description = "FW-A"];
        FW_B [description = "FW-B"];
    }

    network Internal_Edge {
        color = "#E6E6FA"
        description = "INTERNAL EDGE MODULE"

        FW_A;
        FW_B;
        IntEdge_A [description = "IntEdge-A"];
        IntEdge_B [description = "IntEdge-B"];
        WLC [description = "WLC"];
        Proxy [description = "Proxy"];
        VPN [description = "VPN"];
        DNS [description = "DNS"];
    }

    network Core {
        color = "#B0E0E6"
        description = "CORE MODULE"

        IntEdge_A;
        IntEdge_B;
        Core_A [description = "Core-A"];
        Core_B [description = "Core-B"];
    }

    network Dist_Var1 {
        color = "#98FB98"
        description = "L3 Adjacent"

        Core_A;
        Core_B;
        Dist_1 [description = "Dist-1"];
        Access_1 [description = "Access"];
    }

    network Dist_Var2 {
        color = "#DDA0DD"
        description = "MCLAG Trunk"

        Core_A;
        Core_B;
        Dist_2 [description = "Dist-2"];
        Access_2 [description = "Access"];
    }

    network Dist_Var3 {
        color = "#FFE4B5"
        description = "MCLAG Trunk"

        Core_A;
        Core_B;
        Dist_3 [description = "Dist-3"];
        Access_3 [description = "Access"];
    }

    network Datacenter {
        color = "#87CEEB"
        description = "SPINE/LEAF DC"

        Core_A;
        Core_B;
        Border [description = "Border-Leaf"];
        Spine [description = "Spine"];
        Leaf [description = "Leaf"];
        Servers [description = "Servers"];
    }
}
@enduml

Notas de diseño de sitios grandes:


VRF y L3 Segmentation: Benefits and Complexity

Beneficios de la Segmentación L3 con Sub-Interfaces

  1. Resolución de seguridad: El tráfico entre VRFs debe atravesar un cortafuegos o un dispositivo de política
  2. Blast Radius Containment: El segmento comprometido no puede llegar directamente a otros VRF
  3. Cumplimiento de límites: PCI, HIPAA o redes OT en dominios de enrutamiento separados
  4. Ingeniería de tráfico: Diferentes políticas de enrutamiento por VRF

The Complexity Tradeoff

Cuando los segmentos deben extenderse a través de múltiples niveles, cada límite L3 añade configuración sobrecabeza:

@startuml Multi-VRF Path Through Tiers
skinparam backgroundColor #FEFEFE
title Multi-VRF Traffic Path: Camera to NVR

nwdiag {
    network Camera_Segment {
        address = "VLAN 120\n10.2.36.0/24"
        color = "#FFDAB9"
        description = "VRF: SECURITY"

        Camera [description = "Camera"];
        Access_SW [description = "Access-SW\nSub-int: 10.2.0.40/30"];
    }

    network Access_to_Dist {
        address = "10.2.0.40/30"
        color = "#DDA0DD"
        description = "VRF: SECURITY"

        Access_SW;
        Distribution [description = "Distribution\nSub-int: 10.2.0.24/30"];
    }

    network Dist_to_Core {
        address = "10.2.0.24/30"
        color = "#B0E0E6"
        description = "VRF: SECURITY"

        Distribution;
        Core [description = "Core\nSub-int: 10.2.0.8/30"];
    }

    network Core_to_IntEdge {
        address = "10.2.0.8/30"
        color = "#E6E6FA"
        description = "VRF: SECURITY"

        Core;
        Internal_Edge [description = "Internal-Edge\nSub-int: 10.2.0.0/30"];
    }

    network IntEdge_to_FW {
        address = "10.2.0.0/30"
        color = "#FFE4E1"
        description = "VRF: SECURITY"

        Internal_Edge;
        Firewall [description = "Firewall\nInter-VRF Policy"];
    }

    network DC_Path {
        address = "VXLAN/EVPN"
        color = "#87CEEB"
        description = "Datacenter Fabric"

        Firewall;
        Border_Leaf [description = "Border-Leaf"];
        Spine [description = "Spine"];
        Leaf [description = "Leaf"];
        NVR [description = "NVR"];
    }
}
@enduml

Configuration Overhead:

Mitigation Strategies

  1. Limit VRF count: Sólo crea VRFs para requisitos de aislamiento genuinos
  2. Centralizar las rutas inter-VRF: Single firewall policy point vs. distributed
  3. Use VXLAN/EVPN: Overlay reduce la sub-interfase física
  4. Automatizar la provisión: Las plantillas aseguran una configuración consistente
  5. Documentar el patrón: Una vez aprendido, los patrones son más rápidos que la búsqueda

Resumen: Construcción de un patrón de red escalable

El objetivo del diseño modular de red es crear unpatrón repetibleque permite:

TENIDO Scale TENIDO Sitios TENIDO Pattern Silencio---------- ← Small TEN 10,000+ TENIDO Acoplado UTM + interruptor único, /24 por sitio TEN Silencio Medio Silencio 1000+ Silencio Edge + distribución MCLAG + acceso, /21 por sitio Silencio Silencio Grande Silencio 100+ Silencio Completo modular (Edge, borde interno, núcleo, variantes de distribución, tejido DC), /13-/15 por sitio viv

Key Takeaways

  1. Los módulos crean límites: Cada módulo tiene un propósito definido e interfaz
  2. Los patrones permiten escala: El mismo diseño en cada sitio reduce el entrenamiento y los errores
  3. VRFs provide isolation: Pero añadir complejidad de configuración en cada nivel
  4. Subnet schemas matter: El tratamiento predictivo reduce la carga cognitiva
  5. La distribución varía según las necesidades: L3 adyacente, MCLAG/LACP, o espina/leaf
  6. Tamaño derecho para el sitio: No sobre-motor pequeños sitios

Al establecer estas pautas y aplicarlas de manera sistemática, las organizaciones pueden crear redes que se escalan de una oficina de una sola rama a una empresa mundial, manteniendo al mismo tiempo la simplicidad operacional y la postura de seguridad.


Versión del artículo 2.0 Silencio Publicado 2026-02-02 Silencio Actualizado con diagramas de nwdiag PlantUML