Communication Matrix

This matrix describes the communication between components in the metal-stack and their respective security properties. Please note that depending on your setup and configuration, some components may not be present, may have different security properties and might communicate differently than described here. The communication processes described here correspond to the standard configuration and setup.

Legend:

  • C: Confidentiality, cryptography, encryption. Marked with an x if the communication is encrypted.
  • I: Integrity of data. Marked with an x if the communication ensures data integrity.
  • Auth: Authentication, ensures the identity of the communicating parties. Marked with an x if authentication is required.
  • Trust: Only trusted networks involved. Marked with an x if the communication is only between trusted networks.

Plain metal-stack

While metal-stack can be used in different environments and setups, the following communication is required by metal-stack components in a standard setup. This includes all components running on the control plane, partition management and machines.

Info

The following table might not be displayed in completeness. Scroll to the right to see all entries.

No.ComponentSource ZoneProtocolDestinationDestination ZonePortCIAuthTrustPurposeNotes
1.1metalctlInternetHTTPSmetal-apiMetal Control Plane443xxxAPI RequestsUsed for management operations.
1.2metalctlInternetHTTPSOIDC Providerunknown443xxxAuthentication & AuthorizationOptional. Needs to be configured.
1.3metalctlInternetHTTPSGitHubInternet443xxUpdaterUsed for updates and version checks.
2.1metal-apiMetal Control PlaneTCPmetal-dbMetal Control Plane28015xxRethinkDBDatabase access.
2.2metal-apiMetal Control PlaneTCPmasterdata-apiMetal Control Plane8443xxPostgresDatabase access.
2.3metal-apiMetal Control PlaneHTTPipamMetal Control Plane9090xAddress ManagementUsed to manage IP addresses.
2.4metal-apiMetal Control PlaneTLSnsqMetal Control Plane4150xxxxMachine OperationUsed for machine operations and notifications.
2.5metal-apiMetal Control PlaneHTTPnsq lookupdMetal Control Plane4161xxMachine OperationUsed for machine operations and notifications.
2.6metal-apiMetal Control PlaneTCPauditing timescaledbMetal Control Plane5432xxAudit LogsLogging of auditing events. Used for compliance.
2.7metal-apiMetal Control PlaneHTTPSheadscaleMetal Control Plane50443xxxxHeadscale APIHeadscale is used for VPN networking.
2.8metal-apiMetal Control PlaneHTTPSS3-compatible Storageunknown443????FirmwareOptional. Needs to be configured.
2.9metal-apiMetal Control PlaneHTTPSOIDC Providerunknown443????Authentication & AuthorizationOptional. Needs to be configured.
3.1metal-apiserverMetal Control PlaneTCPvalkeyMetal Control Plane6379xxBackground JobsUsed for background job processing and caching.
3.2metal-apiserverMetal Control PlaneTCPmetal-dbMetal Control Plane28015xxxxRethinkDBDatabase access.
3.3metal-apiserverMetal Control PlaneTCPmasterdata-apiMetal Control Plane8080xxPostgresDatabase access.
3.4metal-apiserverMetal Control PlaneHTTPipamMetal Control Plane9090xAddress ManagementUsed to manage IP addresses.
3.5metal-apiserverMetal Control PlaneTCPauditing timescaledbMetal Control Plane5432xxAudit LogsLogging of auditing events. Used for compliance.
3.6metal-apiserverMetal Control PlaneHTTPSheadscaleMetal Control Plane50443xxxxHeadscale APIHeadscale is used for VPN networking.
3.7metal-apiserverMetal Control PlaneHTTPSOIDC Providerunknown443xxx?Authentication & AuthorizationOptional. Needs to be configured.
4.1masterdata-apiMetal Control PlaneTCPmasterdata-dbMetal Control Plane5432xxPostgres database accessDatabase access.
5.1ipamMetal Control PlaneTCPipam-dbMetal Control Plane5432xxPostgres database accessDatabase access.
6.1backup-restore-sidecarMetal Control PlaneHTTPSS3-compatible Storageunknown443????Backup & RestoreOptional. Needs to be configured.
6.2backup-restore-sidecarMetal Control PlaneHTTPSGoogle APIInternet443xxxBackup & RestoreOptional. Needs to be configured.
6.3backup-restore-sidecarMetal Control PlaneTCPPostgresMetal Control Plane5432xxBackup & RestoreOptional. Needs to be configured.
6.4backup-restore-sidecarMetal Control PlaneTCPRethinkDBMetal Control Plane28015xxBackup & RestoreOptional. Needs to be configured.
6.5backup-restore-sidecarMetal Control PlaneTCPETCDMetal Control Plane2380xxBackup & RestoreOptional. Needs to be configured.
6.6backup-restore-sidecarMetal Control PlaneTCPRedisMetal Control Plane6379xxBackup & RestoreOptional. Needs to be configured.
6.7backup-restore-sidecarMetal Control PlaneTCPkeydbMetal Control Plane6379xxBackup & RestoreOptional. Needs to be configured.
7.1metal-consolePartition ManagementHTTPmetal-apiMetal Control Plane8080xxAPI RequestsUsed for management operations.
7.2metal-consolePartition ManagementHTTPSmetal-bmcPartition Management3333xxxxMachine ManagementUsed for management operations.
8.1sshunknownTCPmetal-consolePartition Management10001xxx?Machine Access (SSH)Used to access the metal-console via SSH.
9.1pixiecorePartition ManagementHTTPSmetal-apiMetal Control Plane443xxxxAPI RequestsUsed for management operations.
10.1metal-bmcPartition ManagementHTTPSmetal-apiMetal Control Plane443xxxxAPI RequestsUsed for management operations.
10.2metal-bmcPartition ManagementTLSnsqPartition Management4150xxxxMachine OperationUsed for machine operations and notifications.
10.2metal-bmcPartition ManagementIPMImachine BMCMachine623xxMachine OperationUsed for BMC management.
11.1metal-cache-image-syncPartition ManagementHTTPSS3-compatible Storageunknown443???Image Caching and SyncOptional. Needs to be configured.
11.2metal-cache-image-syncPartition ManagementHTTPSmetal-apiMetal Control Plane443xxxAPI RequestsUsed for management operations.
12.1metal-hammerMachineHTTPSmetal-apiMetal Control Plane443xxxxAPI RequestsUsed for management operations.
12.2metal-hammerMachineHTTPSpixiecorePartition Management443xxxMachine ManagementUsed for machine management.
12.3metal-hammerMachineHTTPSPrometheusunknown443xxxxMonitoringActively pushes metrics to Prometheus.
12.4metal-hammerMachineHTTPHAProxyMetal Control Plane9001xxImage Caching and PullingUsed to pull images via HAProxy.
12.5metal-hammerMachineHTTPSContainer Registryinternet443xx?Image and PullingUsed to pull images from the registry.
13.1machine firmwareMachineHTTPSpixiecorePartition Management443xxxMachine ManagementUsed to provision machines with iPXE.
13.2machine firmwareMachineTFTPpixiecorePartition Management69xMachine OS ProvisioningUsed to provision machine firmware.
14.1machine OSMachineDHCPDHCP ServerMachine67/68xMachine OS ProvisioningUsed to obtain an IP address.
14.2machine OSMachineDNSDNS ServerMachine53xMachine OS ResolutionUsed to resolve hostnames.
14.3machine OSMachineNTPNTP ServerMachine123xMachine OS Time SyncUsed to synchronize time with the NTP server.
15.1metal-metrics-exporterMetal Control PlaneHTTPSmetal-apiMetal Control Plane443xxxxMonitoringScrapes metrics from metal-api.
16.1prometheusMetal Control PlaneHTTPSmetal-apiMetal Control Plane443xxxxMonitoringScrapes metrics from metal-api.
16.2prometheusMetal Control PlaneHTTPSmetal-metrics-exporterMetal Control Plane9080xMonitoringScrapes metrics from metal-metrics-exporter.
16.3prometheusMetal Control PlaneHTTPSmetal-apiserverMetal Control Plane443xxxxMonitoringScrapes metrics from metal-apiserver.
16.4prometheusMetal Control PlaneHTTPSmasterdata-apiMetal Control Plane2113xxxxMonitoringScrapes metrics from masterdata-api.

Used Technologies

TechnologyPartiesNotes
DHCPAllUsed for obtaining IP addresses and boot configurations.
NTPAllUsed for synchronizing time across all components.
iPXEMachinesUsed for network-based bootstrapping of machines.
TFTPMachinesUsed for transferring boot files to machines.
HTTPMultipleCommunication in trusted networks.
HTTPSMultipleCross-network communication.
DNSMultipleUsed for resolving hostnames to IP addresses.
KubernetesClusterMetal-stack components running in pods. Optional, but recommended.
Container Network Interface (CNI)KubernetesProvides networking capabilities for pods in a cluster. Required for Kubernetes.

With SONiC

While metal-stack does not directly depend on SONiC, it is the only actively maintained implementation of our networking stack. Therefore, the following communication is required by metal-stack components to interact with SONiC. Please note that every networking setup has its own requirements and configurations, so the following table might not be complete for your setup.

No.ComponentSource ZoneProtocolDestinationDestination ZonePortCIAuthTrustPurposeNotes
S1.1metal-coreLeaf SwitchesHTTPSmetal-apiMetal Control Plane443xxxxAPI RequestsUsed for management operations.
S1.2metal-coreLeaf SwitchesTCPSONiC ConfigDB RedisSwitch6379xAPI RequestsUsed for management operations.
S2.1DHCP RelayLeaf SwitchesTCP/UDPDHCP ServerManagement Server67/68xDHCP RequestsUsed to forward DHCP requests.
S3.1ssh clientunknownSSHssh daemonManagement Server22xxxSSH AccessUsed to access the management server via SSH.
S3.2ssh clientManagement ServerSSHssh daemonSwitch22xxxxSSH AccessUsed to access the SONiC switch via SSH.
S4.1FRRoutingFirewallBGPFRRoutingSwitches179xRoutingUsed for dynamic routing.
S4.2FRRoutingMachineBGPFRRoutingFirewall179xRoutingUsed for dynamic routing.
S4.3FRRoutingSwitchesBGPFRRoutingSwitches179xRoutingUsed for dynamic routing.
S5.1tailscaleFirewallHTTPSHeadscaleMetal Control Plane443xxxxVPN AccessUsed for Wireguard VPN access via Headscale.

Used Technologies

TechnologyPartiesNotes
VRFSwitches, FirewallsIsolation of network segments, e.g. for management and data traffic.
VLANSwitches, FirewallsLayer 2 traffic segmentation.
VXLANSwitches, FirewallsEncapsulate Layer 2 frames in Layer 3 packets for network virtualization.
EVPNSwitches, FirewallsOverlay network technology for scalable and flexible network architectures.
VPNFirewallsManagement access without open SSH ports.
BGPMultipleRouting protocol for dynamic routing and network management.
SSHManagement Server, SwitchesSecure shell access for management and configuration.
LLDPSwitches, MachinesLink Layer Discovery Protocol for network device discovery.
ICMPMultipleUsed for network diagnostics and reachability testing.

With Gardener

When using metal-stack in conjunction with Gardener, the following communications will additionally be used by metal-stack components.

Info

The following table might not be displayed in completeness. Scroll to the right to see all entries.

No.ComponentSource ZoneProtocolDestinationDestination ZonePortCIAuthTrustPurposeNotes
G1.1metal-ccmSeed ClusterHTTPSmetal-apiMetal Control Plane443xxxxAPI RequestsUsed for management operations.
G1.2metal-ccmSeed ClusterHTTPSkube-apiserverShoot Cluster443xxxxAPI RequestsUsed for management operations.
G2.1firewall-controller-managerSeed ClusterHTTPSmetal-apiMetal Control Plane443xxxxAPI RequestsUsed for firewall management.
G2.2firewall-controller-managerSeed ClusterHTTPSkube-apiserverSeed Cluster443xxxxAPI RequestsUsed for firewall management.
G2.3firewall-controller-managerSeed ClusterHTTPSkube-apiserverShoot Cluster443xxxxAPI RequestsUsed for firewall management.
G3.1firewall-controllerFirewallHTTPSkube-apiserverSeed Cluster443xxxxAPI RequestsUsed for firewall management.
G3.2firewall-controllerFirewallHTTPSkube-apiserverShoot Cluster443xxxxAPI RequestsUsed for firewall management.
G3.3firewall-controllerFirewallHTTPSController URLInternet443xxSelf-UpdateController URL and version provided by FCM.
G4.1machine-controller-manager-provider-metalSeed ClusterHTTPSmetal-apiMetal Control Plane443xxxAPI RequestsUsed for management operations.
G5.1gardener-extension-provider-metalSeed ClusterHTTPSmetal-apiMetal Control Plane443xxxAPI RequestsUsed for management operations.
G5.2gardener-extension-provider-metalSeed ClusterHTTPSkube-apiserverGarden Cluster443xxxAPI RequestsUsed for management operations.
G5.3gardener-extension-provider-metalSeed ClusterHTTPSkube-apiserverSeed Cluster443xxxAPI RequestsUsed for management operations.
G5.4gardener-extension-provider-metalSeed ClusterHTTPSkube-apiserverShoot Cluster443xxxAPI RequestsUsed for management operations.

Used Technologies

TechnologyPartiesNotes
GardenerContains of multiple components.Cluster management system for many Kubernetes.

With Cluster API

By using the Cluster API provider for metal-stack, the following communictations are required by metal-stack components.

Info

The following table might not be displayed in completeness. Scroll to the right to see all entries.

No.ComponentSource ZoneProtocolDestinationDestination ZonePortCIAuthTrustPurposeNotes
C1.1metal-ccmWorkload ClusterHTTPSmetal-apiMetal Control Plane443xxxAPI RequestsUsed for management operations.
C1.2metal-ccmWorkload ClusterHTTPSkube-apiserverWorkload Cluster443xxxxAPI RequestsUsed for management operations.
C2.1cluster-api-provider-metal-stackManagement ClusterHTTPSmetal-apiMetal Control Plane443xxxAPI RequestsUsed for management operations.

Used Technologies

TechnologyPartiesNotes
Cluster APIContains of multiple components and additional providers.Cluster management system for single Kubernetes clusters.

With Lightbits

In order to use Lightbits as a storage solution, the following communications are required by metal-stack components.

Info

The following table might not be displayed in completeness. Scroll to the right to see all entries.

No.ComponentSource ZoneProtocolDestinationDestination ZonePortCIAuthTrustPurposeNotes
L1.1duros-controllerSeed ClusterHTTPSduros-apiLightbits Cluster443xxxxStorageUsed for management operations.
L1.2duros-controllerSeed ClusterHTTPSkube-apiserverShoot Cluster443xxxxKubernetesUsed for management operations.
L2.1lb-csi-controllerShoot ClusterHTTPSduros-apiLightbits Cluster443xxxStorageUsed for management operations.
L2.2lb-csi-controllerShoot ClusterHTTPSkube-apiserverShoot Cluster443xxxxKubernetesUsed for management operations.
L3.1lb-csi-nodeShoot ClusterTCPduros-apiLightbits Cluster4420xxxStorageUsed for management operations.
L3.2lb-csi-nodeShoot ClusterTCPduros-apiLightbits Cluster8009xxxStorageUsed for management operations.

Used Technologies

TechnologyPartiesNotes
LightbitsStorageUsed for storage solutions.