Files
spinifex/docs/vpc-networking/README.md
T
Ben Duncan 48012a4058 refactor: rename all documentation from hive to spinifex
- Rename .claude/rules/hive.md → spinifex.md
- Update CLAUDE.md component description
- Rename doc directories: hive-admin-cli → spinifex-admin-cli, etc.
- Rename doc files: hive-cluster-stats, hive-code-consolidation, etc.
- Bulk update all markdown files across docs/ tree
- Update internal docs: CLUSTER-INSTALL, TESTING, DEVNOTES, BRANCHES
2026-03-18 01:19:05 +00:00

1.9 KiB

title, description, category, tags, resources
title description category tags resources
VPC Networking Create and manage Virtual Private Clouds with subnets, DHCP, and Geneve overlay networking. Environments
vpc
networking
ovn
title url
Spinifex Repository https://github.com/mulgadc/spinifex
title url
OVN Architecture https://www.ovn.org/en/

VPC Networking

Create and manage Virtual Private Clouds with subnets, DHCP, and Geneve overlay networking.

Table of Contents


Overview

Every EC2 instance runs inside a VPC with an isolated virtual network. Spinifex uses OVN (Open Virtual Network) to provide the networking layer.

How it works:

  • VPC becomes an OVN logical router
  • Subnet becomes an OVN logical switch with DHCP
  • Each instance gets an OVN port with automatic IP assignment
  • Cross-host traffic uses Geneve tunnels (UDP 6081)

Instructions

Create VPC

aws ec2 create-vpc --cidr-block 10.200.0.0/16
export SPINIFEX_VPC="vpc-XXX"

Create Subnet

aws ec2 create-subnet --vpc-id $SPINIFEX_VPC --cidr-block 10.200.1.0/24
export SPINIFEX_SUBNET="subnet-XXX"

Verify

aws ec2 describe-vpcs
aws ec2 describe-subnets
sudo ovn-nbctl lr-list
sudo ovn-nbctl ls-list

Troubleshooting

VPC creation fails

Ensure OVN services are running and the vpcd daemon is active:

sudo systemctl is-active ovn-controller

Check the vpcd logs for errors:

cat ~/spinifex/logs/vpcd.log

Instances cannot reach each other

This typically means Geneve tunnels are not established between hosts. Verify tunnel configuration:

sudo ovs-vsctl show | grep -i geneve

Ensure UDP port 6081 is open between all hosts:

sudo ss -ulnp | grep 6081

From inside a VM, check that the private IP was assigned via DHCP:

ip addr show