# Network Topology Diagram **Document Version:** 1.0 **Last Updated:** 2025-12-10 ## Physical Network Layout ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ Physical Datacenter Layout │ └─────────────────────────────────────────────────────────────────────────┘ Internet │ │ ┌──────┴──────┐ │ Firewall │ │ Router │ └──────┬──────┘ │ ┌──────────────┴──────────────┐ │ Core Switch (L3) │ │ - VLANs: 10,100,200,300,400│ │ - Routing between VLANs │ │ - 10/25/100 Gbps uplinks │ └───────────┬─────────────────┘ │ ┌───────────────────┼───────────────────┬──────────────────┐ │ │ │ │ ┌─────┴─────┐ ┌──────┴──────┐ ┌────┴────┐ ┌─────┴─────┐ │ ToR │ │ ToR │ │ ToR │ │ PXE/Mgmt │ │ Switch 1 │ │ Switch 2 │ │ Switch 3│ │ Switch │ │ (Rack 1) │ │ (Rack 2) │ │ (Rack 3)│ │ │ └─────┬─────┘ └──────┬──────┘ └────┬────┘ └─────┬─────┘ │ │ │ │ ┌───┴───┐ ┌───┴───┐ ┌───┴───┐ ┌─────┴─────┐ │node01 │ │node04 │ │node07 │ │PXE Server │ │node02 │ │node05 │ │node08 │ │10.0.100.10│ │node03 │ │node06 │ │node09 │ └───────────┘ │ │ │ │ │ │ │(BMC) │ │(BMC) │ │(BMC) │ │10.0. │ │10.0. │ │10.0. │ │10.5x │ │10.5x │ │10.5x │ └───────┘ └───────┘ └───────┘ Legend: node01-03: Control plane (3-node Raft cluster) node04-09: Worker nodes (compute + storage) BMC: Baseboard Management Controller (IPMI/iDRAC/iLO) ``` ## Logical VLAN Layout ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ VLAN Segmentation │ └─────────────────────────────────────────────────────────────────────────┘ VLAN 10: Management (10.0.10.0/24) ═══════════════════════════════════════════════════════════════════════════ ┌────────────────────────────────────────────────────────────────────────┐ │ Purpose: BMC/IPMI access, administrative SSH, monitoring │ │ Access: Restricted to admin workstations only │ └────────────────────────────────────────────────────────────────────────┘ 10.0.10.1 10.0.10.5 10.0.10.10 10.0.10.50-99 ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌──────────────┐ │ Gateway │ │Monitoring│ │Admin │ │ BMC/IPMI │ │ │ │ Server │ │Workstation│ │ (node01-09) │ └─────────┘ └─────────┘ └─────────┘ └──────────────┘ VLAN 100: Provisioning (10.0.100.0/24) ═══════════════════════════════════════════════════════════════════════════ ┌────────────────────────────────────────────────────────────────────────┐ │ Purpose: PXE boot network, temporary during installation │ │ Access: Nodes during PXE boot only │ └────────────────────────────────────────────────────────────────────────┘ 10.0.100.1 10.0.100.10 10.0.100.50-99 10.0.100.100-200 ┌─────────┐ ┌─────────┐ ┌──────────┐ ┌───────────────┐ │ Gateway │ │PXE Server│ │Static │ │DHCP Pool │ │ │ │DHCP/TFTP │ │Reservations│ │(temp assign) │ │ │ │HTTP │ │ │ │ │ └─────────┘ └─────────┘ └──────────┘ └───────────────┘ VLAN 200: Production Cluster (10.0.200.0/24) ═══════════════════════════════════════════════════════════════════════════ ┌────────────────────────────────────────────────────────────────────────┐ │ Purpose: Inter-node cluster communication, Raft, gossip │ │ Access: Cluster nodes only, fully isolated │ └────────────────────────────────────────────────────────────────────────┘ 10.0.200.1 10.0.200.10-12 10.0.200.20-29 10.0.200.100-199 ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ Gateway │ │Control │ │Worker │ │Service VIPs │ │ │ │Plane │ │Nodes │ │(load balanced)│ │ │ │node01-03 │ │node04-09 │ │ │ └─────────┘ └──────────┘ └──────────┘ └──────────────┘ VLAN 300: Client Access (10.0.300.0/24) ═══════════════════════════════════════════════════════════════════════════ ┌────────────────────────────────────────────────────────────────────────┐ │ Purpose: External client access to APIs (IAM, PlasmaVMC, etc.) │ │ Access: External clients, applications │ └────────────────────────────────────────────────────────────────────────┘ 10.0.300.1 10.0.300.10-19 10.0.300.100 ┌─────────┐ ┌──────────┐ ┌──────────┐ │ Gateway │ │FiberLB │ │Client │ │NAT │ │(L4/L7 LB)│ │VIP │ └─────────┘ └──────────┘ └──────────┘ VLAN 400: Storage (10.0.400.0/24) ═══════════════════════════════════════════════════════════════════════════ ┌────────────────────────────────────────────────────────────────────────┐ │ Purpose: iSCSI, NFS, block storage traffic │ │ Access: Worker nodes and storage nodes only │ └────────────────────────────────────────────────────────────────────────┘ 10.0.400.1 10.0.400.10-19 10.0.400.20-29 ┌─────────┐ ┌──────────┐ ┌──────────┐ │ Gateway │ │Storage │ │Worker │ │ │ │Nodes │ │Nodes │ └─────────┘ └──────────┘ └──────────┘ ``` ## Node Network Interface Layout ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ Control Plane Node (node01) │ └─────────────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────┐ │ Physical Server │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ BMC Port (IPMI/iDRAC/iLO) │ │ │ │ ├─ 10.0.10.50 (VLAN 10) │ │ │ │ └─ Dedicated management network │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ eth0 (1 GbE or 10 GbE) │ │ │ │ ├─ 10.0.100.50 (VLAN 100, untagged) - PXE boot only │ │ │ │ └─ Removed after provisioning or reassigned │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ eth1 (10 GbE or 25 GbE) - PRODUCTION │ │ │ │ ├─ VLAN 200: 10.0.200.10/24 (cluster communication) │ │ │ │ ├─ VLAN 300: 10.0.300.10/24 (client access) │ │ │ │ └─ 802.1Q trunking enabled │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ eth2 (10 GbE or 25 GbE) - STORAGE (optional) │ │ │ │ └─ VLAN 400: 10.0.400.10/24 (storage traffic) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────────┐ │ Worker Node (node04) │ └─────────────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────┐ │ Physical Server │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ BMC Port │ │ │ │ └─ 10.0.10.54 (VLAN 10) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ eth0 (1 GbE or 10 GbE) │ │ │ │ └─ 10.0.100.60 (VLAN 100, PXE boot only) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ eth1 (25 GbE or 100 GbE) - PRODUCTION │ │ │ │ ├─ VLAN 200: 10.0.200.20/24 (cluster communication) │ │ │ │ └─ VLAN 300: 10.0.300.20/24 (client workload traffic) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ eth2 (25 GbE or 100 GbE) - STORAGE │ │ │ │ └─ VLAN 400: 10.0.400.20/24 (iSCSI, NFS) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────────────┘ ``` ## Traffic Flow Patterns ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ Traffic Flow by Service │ └─────────────────────────────────────────────────────────────────────────┘ Chainfire Raft Replication (VLAN 200) ═══════════════════════════════════════════════════════════════════════════ ┌──────────┐ Raft heartbeats ┌──────────┐ Raft log ┌──────────┐ │ node01 │ (2380) every 50ms │ node02 │ replication │ node03 │ │ (Leader) ├───────────────────>│(Follower)│<───────────────┤(Follower)│ │ │<───────────────────┤ │────────────────>│ │ └──────────┘ ACK responses └──────────┘ Vote requests └──────────┘ Client API Requests (VLAN 300 → VLAN 200) ═══════════════════════════════════════════════════════════════════════════ ┌──────────┐ HTTPS (8080) ┌──────────┐ Internal ┌──────────┐ │ Client ├──────────────────>│ FiberLB │ routing │ IAM │ │ │ 10.0.300.100:8080 │ ├──────────────>│(node01) │ └──────────┘ └──────────┘ 10.0.200.10 └──────────┘ Gossip Protocol (VLAN 200) ═══════════════════════════════════════════════════════════════════════════ All nodes exchange cluster membership and health status ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │node01│◄──────┤node02│◄──────┤node03│◄──────┤node04│ └──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘ │ │ │ │ └──────────────┴──────────────┴──────────────┘ UDP port 2381, multicast or unicast gossip Storage Traffic (VLAN 400) ═══════════════════════════════════════════════════════════════════════════ ┌──────────┐ iSCSI (3260) ┌──────────┐ │ Worker ├──────────────────>│ Storage │ │ Node │ Block I/O │ Node │ │(node04) │<───────────────────┤(node01) │ └──────────┘ 10.0.400.20 └──────────┘ <─> 10.0.400.10 VM-to-VM Overlay Network (VXLAN on VLAN 200) ═══════════════════════════════════════════════════════════════════════════ ┌──────────────────────────────────────────────────────────────────────────┐ │ VM on node04 VXLAN Tunnel (4789) VM on node05 │ │ ┌────────┐ ──────────────────────── ┌────────┐ │ │ │VM-101 │ Overlay: 10.100.0.10 │VM-102 │ │ │ │10.100. │◄─────────────────────────────────────┤10.100. │ │ │ │ 0.10 │ Underlay: 10.0.200.20 → 10.0.200.21 │ 0.20 │ │ │ └────────┘ UDP encapsulation └────────┘ │ └──────────────────────────────────────────────────────────────────────────┘ ``` ## Bandwidth Allocation ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ Bandwidth Reservation by VLAN │ └─────────────────────────────────────────────────────────────────────────┘ Control Plane Node (25 GbE total on eth1) ═══════════════════════════════════════════════════════════════════════════ │ ├─ VLAN 200 (Cluster): 15 Gbps reserved │ ├─ Raft replication: 5 Gbps │ ├─ Gossip protocol: 1 Gbps │ └─ Inter-service communication: 9 Gbps │ ├─ VLAN 300 (Client): 10 Gbps reserved │ ├─ API requests: 8 Gbps │ └─ Ingress traffic: 2 Gbps │ └─ Burst capacity: Up to 25 Gbps (shared) Worker Node (100 GbE total on eth1 + eth2) ═══════════════════════════════════════════════════════════════════════════ │ ├─ eth1 (25 GbE): │ ├─ VLAN 200 (Cluster): 10 Gbps │ └─ VLAN 300 (Client): 15 Gbps (VM traffic) │ └─ eth2 (25 GbE): └─ VLAN 400 (Storage): 25 Gbps (iSCSI, block I/O) ``` ## Firewall Zones ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ Firewall Zone Model │ └─────────────────────────────────────────────────────────────────────────┘ Internet (Untrusted) │ │ Firewall + NAT │ (stateful inspection) v ┌──────────────────────┐ │ DMZ / Edge Zone │ │ (VLAN 300) │ │ • FiberLB │ │ • Public APIs │ │ • Rate limiting │ └──────────┬───────────┘ │ │ Internal Firewall │ (API gateway, mTLS) v ┌────────────────────┴────────────────────┐ │ Internal Zone (Trusted) │ │ (VLAN 200) │ │ • Control plane │ │ • Worker nodes │ │ • Cluster communication │ │ • No direct external access │ └─────────────┬───────────────────────────┘ │ │ Storage Firewall │ (port-based ACLs) v ┌─────────────────────────────────┐ │ Storage Zone (Isolated) │ │ (VLAN 400) │ │ • iSCSI targets │ │ • NFS servers │ │ • Only accessible from workers │ └─────────────────────────────────┘ Management Zone (Separate) ════════════════════════════════════ ┌─────────────────────────────────┐ │ VLAN 10: Management │ │ • BMC/IPMI (out-of-band) │ │ • Admin SSH (bastion host) │ │ • Monitoring agents │ │ • Isolated from production │ └─────────────────────────────────┘ ``` ## Multi-Site Topology (Advanced) ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ Multi-Datacenter Topology │ └─────────────────────────────────────────────────────────────────────────┘ Site A (Primary) Site B (Secondary) Site C (DR) ┌────────────────┐ ┌────────────────┐ ┌──────────┐ │ node01-03 │ │ node04-06 │ │ node07-09│ │ Control Plane │◄────────────┤ Worker Nodes │◄─────────────┤ Backup │ │ 10.0.200.10-12 │ WAN Link │ 10.1.200.20-22 │ WAN Link │ 10.2.200.│ └────────────────┘ (10 Gbps) └────────────────┘ (10 Gbps) └──────────┘ │ │ │ │ Raft sync (async) │ Raft sync (async) │ └───────────────────────────────┴─────────────────────────────┘ Global Cluster State (distributed consensus) Considerations: • Latency: <5ms for synchronous replication, <100ms for async • Bandwidth: Dedicated inter-site links for cluster traffic • Failure modes: Site failure triggers leader election in remaining sites • Split-brain prevention: Requires odd number of sites (3/5/7) ``` --- **Document End**