IP Prefix#
In Kuid’s IPAM system, IP addresses are managed within a hierarchical structure of IP Prefixes within an IPIndex. The system supports two prefixTypes:
Network Prefixes:
- Used for device interfaces with physical or virtual NICs.
- Network and broadcast addresses are pre-allocated in the IPAM backend (except for IPv4 /31 and IPv6 /127 prefixes).
- Cannot be nested
Regular Prefixes:
- Used for IP prefix hierarchies, IP pools, etc.
- Network and broadcast addresses are NOT pre-allocated in the IPAM backend.
- Can be nested
Static IP Prefix#
Static IP Prefixes
are managed via an IPClaim
resource with an explicitly defined prefix within an index.
Example static IP Prefix with prefixType = network#
A static IP Prefix
is configured by specifying the index
, setting the prefixType
to network
, and providing the static prefix
in the IPClaim
resource. Optionally, a defaultGateway
can be assigned, and user-defined labels
can be added for additional context.
For prefixType
= network, the IPAM backend pre-allocates the network and broadcast addresses, unless the prefix length is IPv4 /31 or IPv6 /127.
apiVersion: ipam.be.kuid.dev/v1alpha1
kind: IPClaim
metadata:
name: vpc1.10.0.0.1-24
namespace: default
spec:
index: vpc1
prefixType: network
prefix: 10.0.0.1/24
defaultGateway: true
labels:
inv.kuid.dev/network: net1
Example static IPPrefix with no prefixType#
A static IP prefix
can also be configured without specifying a prefixType
. User-defined labels can be added for additional context.
apiVersion: ipam.be.kuid.dev/v1alpha1
kind: IPClaim
metadata:
name: vpc1.172.0.0.0-16
namespace: default
spec:
index: vpc1
prefix: 172.0.0.0/16
Expected behavior#
Once the prefix based IPCLaim
is created, the status should indicate a True
Ready condition. This confirms that the IPCLaim
has been successfully provisioned and is ready for use.
Dynamic IP Prefix#
Dynamic IP Prefix
are prefixes that are automatically assigned by the system and managed through the IPClaim
resource without specifying a prefix. Optionally, dynamic prefixes can be restricted to specific prefixes using label selectors.
Example dynamic IP Prefix#
A dynamic IP prefix is created by specifying the index
, createPrefix
(set to true), and prefixLength
in the IPClaim
resource. Optionally, you can specify prefixType
, labels
, or selector
for further customization.
apiVersion: ipam.be.kuid.dev/v1alpha1
kind: IPClaim
metadata:
name: vpc1.prefix-claim1
namespace: default
spec:
index: vpc1
prefixType: network
createPrefix: true
prefixLength: 24
labels:
inv.kuid.dev/network: dyn-net1
# selector:
# matchLabels:
# inv.kuid.dev/test: a
Expected behavior#
Once the prefix based IPCLaim
is created, the status should indicate a True
Ready condition. This confirms that the IPCLaim
has been successfully provisioned and is ready for use.
Status#
The status of the IPClaim
is indicated by the READY
condition. A True
READY
condition confirms successful provisioning of the IPClaim
. If the READY
condition is False
, the status includes a reason and message that provide additional context and troubleshooting information.
To check the status of all IPClaims, use the following command:
Example output:
NAME READY INDEX CLAIMTYPE PREFIXTYPE CLAIMREQ CLAIMRSP DEFAULTGATEWAY
vpc1.10.0.0.0-8 True vpc1 staticPrefix other 10.0.0.0/8 10.0.0.0/8
vpc1.10.0.0.1-24 True vpc1 staticPrefix network 10.0.0.1/24 10.0.0.1/24 10.0.0.1
vpc1.172.0.0.0-8 True vpc1 staticPrefix other 172.0.0.0/8 172.0.0.0/8
vpc1.prefix-claim1 True vpc1 dynamicPrefix network 10.0.1.0/24