Extend IPv6 subnetworking
Closed this issue · 1 comments
Short
Transition the networking to IPv6 in order to solve the possible network address space exhaustion.
Proposal
Move the networking to IPv6 for more addresses, as well as semantic addressing.
The Oakestra platform then uses the reserved private IPv6 subnet fc00::/7
.
This private subnet is further divided reserving the last 16 bit subnetwork block fdff::/16
for a Service IP subnet, which is needed in order to give addresses to Instances and the (up to) 30 balancing strategies per Instance. We divide the Service IP subnet into 32 equal sized subnetworks with up to 30 balancing strategy subnets and 2 Instance IP subnets, using a prefix of /21
. The fdfe::/16
I would propose to keep reserved for future use. The remainder of the address space is used to hand out subnetworks for worker nodes, using a /120
prefix. This leaves a worker subnetwork with 8 bits for namespace IPs for the containers inside a worker subnetwork.
To sum up the subnetwork division with subnet specification:
Subnet | Subnet description |
---|---|
fc00::/7 |
full Oakestra subnetwork |
fc00::/120 - fdfd:ffff:ffff:ffff:ffff:ffff:ffff:0/120 |
Worker subnets |
fdfe::/16 |
reserved for future use |
fdff::/16 |
Service IP subnet |
fdff:0000::/21 |
Instance IP subnet 1 |
fdff:1000::/21 |
Balancing 1 |
fdff:2000::/21 |
Balancing 2 |
... | ... |
fdff:f000::/21 |
Balancing 15 |
fdff:0800::/21 |
Instance IP subnet 2 |
fdff:1800::/21 |
Balancing 16 |
fdff:2800::/21 |
Balancing 17 |
... | ... |
fdff:f800::/21 |
Balancing 30 |
The Oakestra components are also required to support IPv6.
The net-manager should support to forward both IPv4 and IPv6 traffic. The service managers will additionally have to manage IPv6 entries in the databases.
Ratio
This solves the address space limitations IPv4 has with growing worker nodes. So far the limit is ~65535 workers, which would grow into a very large, unimaginable number with IPv6 subnetworking.
Impact
cluster/root service managers and netmanager
Status
Testing
Checklist
- Discussed
- Documented
- Implemented
- Tested