Skip to main content

Network Planning

IP addressing, DNS design, and network layout for all three environments.

CIDRs

EnvironmentCIDRIP Prefix
Community10.0.0.0/2210.0.0
Carbide10.10.12.0/2210.10.12
Enclave10.10.12.0/2210.10.12

All IPs are derived from ${IP_PREFIX} set in Scripts/env.sh. Carbide and Enclave share the same CIDR — they are never deployed simultaneously.

IP Assignments

Last OctetHostnamePurpose
.1gatewayDefault gateway / router
.8nuc-00-01DNS primary + DHCP + TFTP (infra VM on nuc-00)
.9nuc-00-02DNS secondary (infra VM on nuc-00)
.10nuc-00Admin host (Apache + KVM)
.12librenmsNetwork monitoring (VM, optional)
.93nuc-00-03HAProxy load balancer (infra VM on nuc-00)
.100harvesterHarvester cluster VIP
.101nuc-01Harvester node 1
.102nuc-02Harvester node 2
.103nuc-03Harvester node 3
.111–.113nuc-0x-kvmKVM copy IPs (reserved)
.193nuc-00-03-vipHAProxy Keepalived VIP
.210rancherRancher Manager cluster VIP
.211–.213rancher-01/02/03Rancher Manager nodes
.220observabilityObservability cluster VIP
.221–.223observability-01/02/03Observability nodes
.230appsApplications cluster VIP
.231–.233apps-01/02/03Applications cluster nodes
.251spark-eOptional hardware
.3.1–.3.254(dynamic)DHCP pool (last /24 of the /22)

Wildcard DNS: *.apps.${ENVIRONMENT}.kubernerdes.com${IP_PREFIX}.230

DNS Design

DNS is served by two BIND instances running as KVM VMs on nuc-00:

HostRoleIP
nuc-00-01DNS primary, DHCP, TFTP${IP_PREFIX}.8
nuc-00-02DNS secondary${IP_PREFIX}.9

The DNS zone covers ${BASE_DOMAIN} (e.g., community.kubernerdes.com). All cluster hostnames, VIPs, and wildcard entries must resolve correctly before Harvester installation begins.

HAProxy and Keepalived

HAProxy runs on nuc-00-03 and provides load balancing for:

  • Harvester API/UI — forward to ${IP_PREFIX}.101–103
  • Rancher Manager — forward to ${IP_PREFIX}.211–213

Keepalived provides a VIP (${IP_PREFIX}.193) that floats between nuc-00-03 and a standby, ensuring the load balancer survives a single-node failure.

DHCP and PXE

ISC dhcpd on nuc-00-01 handles:

  • Static leases for all named hosts (bound by MAC address)
  • Dynamic pool in the last /24 of the /22 for temporary/unknown hosts
  • PXE boot coordination — when it detects the iPXE user-class in the DHCP request, it returns the iPXE menu URL instead of ipxe.efi

See PXE Boot for the full boot flow.

Kubernetes Internal Networks

Kubernetes (via RKE2) uses two internal networks that are entirely software-defined and never appear on the physical switch. You must ensure these CIDRs do not overlap with any physical network segment — including your home/lab router's subnet, the management CIDR above, or any VPN ranges in use.

NetworkPurposeDefault CIDR
Pod Network (CNI)Routable address space for every pod across all nodes10.42.0.0/16 (RKE2 default)
Service Network (ClusterIP)Virtual IPs assigned to Kubernetes Services10.43.0.0/16 (RKE2 default)

Harvester note: The embedded Harvester management cluster uses 10.52.0.0/16 (pod) and 10.53.0.0/16 (service) to avoid colliding with downstream cluster defaults. Downstream clusters provisioned by Rancher Manager on top of Harvester use the RKE2 defaults above unless overridden.

Avoiding Overlap With Your Physical Network

If your home or lab router already uses 10.42.x.x or 10.43.x.x address space, you must choose alternate CIDRs before installation — these values cannot be changed after a cluster is bootstrapped.

Common conflict scenarios and suggested alternates:

Conflicting physical rangeSuggested pod CIDRSuggested service CIDR
10.42.0.0/16 in use172.20.0.0/16172.21.0.0/16
10.0.0.0/8 fully in use192.168.128.0/17192.168.64.0/18

To override during cluster provisioning, set cluster-cidr and service-cidr in the RKE2 config before the first node joins.

Summary of All CIDRs to Plan

LayerCIDRNotes
Physical / management10.0.0.0/22 (Community)Set in env.sh — must be routable on your switch
Harvester pod network10.52.0.0/16Internal only; never leave the host
Harvester service network10.53.0.0/16Internal only; virtual IPs inside Harvester
Downstream pod network10.42.0.0/16Adjust if conflict exists
Downstream service network10.43.0.0/16Adjust if conflict exists

Pre-Deployment Checklist

  • Uplink internet access is available on port 16 of the switch
  • All NUCs are cabled according to the switch layout in Hardware
  • Your router/gateway assigns ${IP_PREFIX}.1 as the default gateway
  • No existing DHCP server is active on the network segment
  • DNS for ${BASE_DOMAIN} will be served by nuc-00-01 (not delegated externally)
  • Pod CIDR (10.42.0.0/16) and Service CIDR (10.43.0.0/16) do not overlap with any physical network, VPN, or home-router subnet in your environment