Modular Network Design: A Scalable Architecture Framework
Модульный сетевой дизайн: масштабируемая архитектура
Введение в модульный сетевой дизайн
Сетевая модульность — это практика проектирования сетей как взаимосвязанных, специально построенных сегментов, а не монолитных структур. Каждый модуль выполняет определенную функцию, имеет определенные границы и подключается к соседним модулям через хорошо понятные интерфейсы. Этот подход превращает сетевой дизайн из искусства в повторяемую инженерную дисциплину.
Сила модульности заключается в ее способности создаватьпредсказуемые моделиэто может применяться последовательно во всей инфраструктуре организации, будь то десятки тысяч небольших сайтов, тысячи средних сайтов или сотни крупных корпоративных кампусов.
Почему модульность имеет значение
Преимущества во всех сетевых масштабах
| Преимущества | Малые сайты | Средние сайты | Большие сайты | ----------------------------------------------------------------------------------------------------- |Упрощенное устранение неполадокОдин инженер может понять всю топологию | Команды могут специализироваться по модулю | Ясные пути эскалации между владельцами модулей | |Предсказуемое масштабированиеДобавить модули по мере необходимости | Доказанные образцы клонов | Расширить без редизайна | |Последовательная безопасностьПовсюду одни и те же политики. Единая позиция соответствия |Оперативная эффективность| Развертывание на основе шаблонов | Автоматизированное обеспечение | Стандартизированное управление изменениями | |Контроль затрат| Правомерный размер каждого модуля | Насыпная покупка по типу модуля | Управление жизненным циклом по уровню |
Вызов масштабирования
Организации редко остаются статичными. Модульная конструкция должна вмещать:
- 10 000+ небольших сайтов: Филиалы, торговые точки, удаленные объекты
- 1000+ средних сайтовРегиональные офисы, распределительные центры, производственные предприятия
- 100+ крупных сайтовШтаб-квартира, центры обработки данных, крупные кампусы
Без модульности каждый сайт становится уникальной снежинкой, требующей индивидуальной документации, специализированного обучения и разового устранения неполадок. С модульностью инженер, который понимает шаблон, может эффективно работать на любом участке.
Основные сетевые модули
Модуль 1: сегмент Internet Edge
Интернет-край - это место, где ваша организация встречается с внешним миром. Этот модуль содержит:
- Схемы WAN/Internet(MPLS, DIA, широкополосный доступ, LTE/5G)
- Крайние маршрутизаторы(BGP пиринг, WAN терминация)
- Брандмауэры(государственный контроль, NAT, VPN терминация)
- Сегментация VLANфункциональное разделение
@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
Ключевые принципы дизайна:
- Избыточные схемы от различных поставщиков
- Пары высокой доступности Firewall
- Четкие границы VLAN между зонами доверия
- L3 связь точка-точка между маршрутизатором и брандмауэром
Модуль 2: Внутренний край / DMZ уровень
Для средних и крупных сайтов Внутренний Край обеспечивает уровень агрегации для служб, которые требуют контролируемого воздействия или служат переходными точками между зонами безопасности.
@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
Услуги, как правило, во внутренней части:
- Беспроводные локальные контроллеры (WLC)
- Веб-прокси и контент-фильтры
- Концентраторы VPN
- Инфраструктура DNS/DHCP
- Балансировщик нагрузки
- Jump hosts / бастионные серверы
Модуль 3: основной слой
Ядро - это высокоскоростная магистраль, которая соединяет все другие модули. Он должен быть оптимизирован для:
- Максимальная пропускная способность
- Минимальная задержка
- Высокая доступность
- Простой, быстрый пересылка
@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
Основные принципы дизайна:
- Нет непосредственно подключенных устройств конечного пользователя
- L3 маршрутизация между переключателями ядра (без пролетного дерева)
- Равноценный мультипат (ECMP) для распределения нагрузки
- Протоколы быстрой конвергенции
Модуль 4: Распределительный уровень
Слой распределения объединяет коммутаторы доступа и обеспечивает соблюдение политики. Именно здесь выбор сетевого дизайна имеет наибольшее разнообразие в зависимости от требований сайта.
Вариации уровня распределения
Вариант 1: L3 Соседний (маршрутный доступ)
В этой конструкции уровни распределения и доступа являютсяL3 смежныйКаждый коммутатор доступа имеет свою собственную подсеть IP и маршруты непосредственно к дистрибуции.
@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
Пример распределения подсети:
Ссылка / Subnet [скрыто] | Распределение по ядру | 10.x.1.0/30, 10.x.1.4/30 | | Dist-A to Access-1 | 10.x.2.0/30 | | Dist-B to Access-1 | 10.x.2.4/30 | | Access-1 User VLAN | 10.x.32.0/24 | Access-2 User VLAN | 10.x.33.0/24
Преимущества:
- Изоляция широковещательного домена в каждом коммутаторе доступа
- Упрощенное устранение неполадок (выпуски, содержащиеся в подсети)
- Нет дерева между распределением и доступом
- Обобщение возможно на уровне распределения
Соображения:
- Коммутаторы доступа с поддержкой L3
- Конфигурация ретранслятора DHCP на каждом переключателе доступа
- Более сложное управление IP-адресами
Вариант 2: MCLAG с LACP Trunks
Этот дизайн используетMulti-Chassis Link Aggregation (MCLAG)при распределении сОблигации LACPдля доступа к коммутаторам, перевозящим VLAN.
Терминология продавцаCisco называет это vPC (Virtual Port Channel), Arista использует MLAG, Juniper использует MC-LAG, а HPE/Aruba использует VSX. Функциональное поведение одинаково у разных поставщиков.
@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 на паре дистрибуции):
- VLAN 100: 10.x.32.1/24
- VLAN 110: 10.x.64.1/24
- VLAN 120: 10.x.96.1/24
Конфигурация VLAN Trunk:
Порт-канал | VLANs | Направление | ----------------------------------------------------------- | Po1 (MCLAG) | 100 110 120 | Access-1 | | Po2 (MCLAG) | 100 110 120 130 | Access-2 | | Po3 (MCLAG) | 100110 | Access-3 | Native VLAN | 999 (неиспользованный)
Преимущества MCLAG:
- Активная пересылка (используются обе восходящие линии связи)
- Субсекундный отказ
- Единый логический переключатель с точки зрения доступа
- Никаких блокировок деревьев
Соображения:
- VLAN охватывают несколько коммутаторов доступа (большие широковещательные домены)
- MCLAG peer-link может стать узким местом
- STP все еще требуется для резервного копирования для предотвращения циклов
Вариация 3: Пограничный лист для позвоночника/Leaf Datacenter
В средах центров обработки данных слой распределения становитсяПограничный листподключение ткани позвоночника/листа к остальной части корпоративной сети.
@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
Datacenter Fabric Details:
Компонент | Функция [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] |Подстилка| eBGP (ASN на переключатель) или OSPF | |НаложениеVXLAN с плоскостью управления EVPN |Пограничный листшлюз VXLAN-to-VLAN, внешние маршруты, маршрутизация Inter-VRF |Листовые рабочие нагрузкиВычисление, хранение, голос/UC, инфраструктура
Преимущества:
- Массивная горизонтальная шкала (добавьте пары листьев по мере необходимости)
- Неблокирующая тканевая архитектура
- Многоквартирный бизнес через VRF/VNI
- Оптимальные схемы движения с востока на запад
Соображения:
- Операционная сложность VXLAN/EVPN
- Специализированные навыки, необходимые
- Более высокие затраты на оборудование
Модуль 5: Уровень доступа
Слой доступа - это место, где подключаются конечные устройства. Независимо от топологии распределения, переключатели доступа обеспечивают:
@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
Функции безопасности уровня доступа:
- 802.1X / MAB аутентификация
- Динамическое назначение VLAN
- Безопасность порта
- DHCP шпионит
- Динамическая инспекция ARP
- IP Source Guard
Полная модульная топология
Вот как все модули соединяются для формирования полной корпоративной сети:
@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-адресации с выделением VRF
Вызов многосегментного, мульти-VRF дизайна
Когда сети расширяются и включают в себя несколько зон безопасности, бизнес-подразделений или границ соответствия,Виртуальная маршрутизация (Virtual Routing and Forwarding)обеспечивает изоляцию таблицы маршрутов. Однако расширение VRF через несколько уровней добавляет сложности:
- Каждый прыжок L3 требует транзитной подсети
- Подинтерфейсы умножают сложность конфигурации
- Устранение неполадок охватывает несколько таблиц маршрутизации
- Документация должна отслеживать членство в VRF на каждом уровне
Стратегия субнетных схем
Хорошо разработанная схема подсети делает паттерны узнаваемыми, уменьшая когнитивную нагрузку и ошибки конфигурации.
Пример: Большая производственная площадка (10.0.0.0/13)
Распределение сайта:10.0.0.0/13 (Производственный сайт Alpha) - 524 286 удобных хостов
@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
Детали сегмента транзита (10.0.0.0/23 - 510 полезных IP):
Subnet - описание ссылки [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] | 10.0.0.0/30 | FW-Inside → Внутренний край A | | 10.0.0.4/30 | FW-Inside → Внутренний край B | | 10.0.0.8/30 | Внутренний край-А → Ядро-А | | 10.0.0.12/30 | Внутренний край-А → Ядро-В | | 10.0.0.16/30 | Внутренний край B → Ядро A | | 10.0.0.20/30 | Внутренний край B → Ядро B | | 10.0.0.24/30 | Core-A → Distribution-A | | 10.0.0.28/30 | Core-A → Distribution-B | | 10.0.0.32/30 | Core-B → Distribution-A | | 10.0.0.36/30 | Core-B → Distribution-B | | 10.0.0.40/30 | Распределение-А → Доступ-SW-1 | | 10.0.0.44/30 | Распределение-B → Доступ-SW-1 | [Перенаправлено с The Pattern Continues]
Примечание:/31 подсети (RFC 3021) также могут использоваться для связи «точка-точка», сохраняя адресное пространство.
Польза от распознавания шаблонов
Когда шаблоны подсетей согласованы между VRF:
Что ты знаешь, что ты можешь сделать -------------------------------------------------- | Транзитная ссылка в Корпоративном использовании 10.0.0.40/30 | Гостевой эквивалент 10.1.0.40/30 | | Пользователи Access-SW-5 находятся на 10.0.36.0/24 | Камеры безопасности на том же переключателе 10.2.36.0/24 | Альфа сайта 10.0.0.0/13 Бета сайта может быть 10.8.0.0/13
Это позволяет инженерам:
- Предсказывать IP-адреса без консультационной документации
- Немедленно распознайте неправильно настроенные подсети
- Создание шаблонов автоматизации, которые работают в VRF
- Обучать новых сотрудников по шаблону, а не запоминать
Шаблоны размера сайта
Шаблон малого сайта (отделение)
@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
Маленькие дизайнерские заметки:
- Разрушенный дизайнВсе функции в минимальном оборудовании
- Подсеть: /24 или /23 на сайте
- Пример: 10.100.1.0/24 (сайт 001)
Средний шаблон сайта (региональный офис)
@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
Средний дизайн сайта:
- Частичная модульностьОтличительные уровни Edge и Access
- Подсеть: /21 на сайт (2 046 IP)
- Пример: 10.50.0.0/21 (сайт 050)
Большой шаблон сайта (штаб-квартира / кампус)
@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
Крупные дизайнерские заметки сайта:
- Полная модульностьВсе уровни физически разделены
- Подсеть: /13 до /15 на сайт (по подсчету VRF)
- Пример: 10.0.0.0/13 (HQ) - 524 286 IP
Сегментация VRF и L3: преимущества и сложность
Преимущества сегментации L3 с подинтерфейсами
- Изоляция безопасностиТрафик между VRF должен проходить через брандмауэр или политическое устройство
- Взрыв Radius ContainmentКомпрометированный сегмент не может напрямую достичь других VRF
- Границы соблюденияPCI, HIPAA или OT сети в отдельных доменах маршрутизации
- МашиностроениеРазличные политики маршрутизации на VRF
Комплектность Tradeoff
Когда сегменты должны проходить через несколько ярусов, каждая граница L3 добавляет конфигурацию над головой:
@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
Накладная конфигурация:
- 5 подинтерфейсов на VRF на пути
- 4 VRF × 5 sub-ints = 20 sub-интерфейсов на переключатель
- Соседства протокола маршрутизации в каждом VRF
- Правила утечки маршрутов или брандмауэра для трафика между VRF
Стратегии смягчения
- Предельный показатель VRFСоздавайте только VRF для реальных требований к изоляции
- Централизовать меж-VRF маршрутизацию: Единая точка политики брандмауэра против распределенной
- Использование VXLAN/EVPNНаложение уменьшает физическое разрастание подинтерфейса
- Автоматическое обеспечениеШаблоны обеспечивают последовательную конфигурацию
- Документировать шаблонКак только вы узнаете, шаблоны быстрее, чем поиск
Оригинальное название: Building a Scalable Network Pattern
Целью проектирования модульной сети является созданиеповторяющийся шаблонэто позволяет:
| Масштаб | Сайты | Паттерн | [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] | Маленький | 10 000 + | Разрушенный UTM + одиночный переключатель, /24 на сайт | | Средний | 1000+ | Распределение Edge + MCLAG + доступ, /21 на сайт | | Большой | 100+ | Полный модульный (Edge, Internal Edge, Core, Distribution variants, DC fabric), /13-/15 на сайт |
Ключевые Takeaways
- Модули создают границыКаждый модуль имеет определенную цель и интерфейс
- Паттерны позволяют масштабироватьОдин и тот же дизайн на каждом сайте уменьшает количество ошибок и тренировок
- VRF обеспечивают изоляциюНо добавьте сложность конфигурации на каждый уровень
- Схемы субсетейПредсказуемая адресация снижает когнитивную нагрузку
- Распределение варьируется в зависимости от потребностиL3 смежный, MCLAG/LACP, или позвоночник/лист
- Правый размер для сайтаНе перегружайте небольшие сайты
Установив эти шаблоны и последовательно применяя их, организации могут создавать сети, которые масштабируются от одного филиала до глобального предприятия, сохраняя при этом простоту работы и безопасность.
Статья версия 2.0 | Опубликовано 2026-02-02 | Обновлено с помощью диаграмм PlantUML nwdiag