IPv6 Route Blocks
An IPv6 route block gives each IPv6 subnet a small transit network of its own, so the subnet can be routed to the server instead of every server sharing one large on-link network.
Without a route block, every server holding addresses from an IPv6 block shares that block's network. The router in front of the hypervisors keeps a neighbour entry for each address in use, and a large block can exhaust its neighbour cache. With a route block, each server is given one address from a separate, much smaller network, and the server's own IPv6 subnet is routed to that address. The router then holds one neighbour entry per server rather than one per address.
Route blocks only work if you can route each IPv6 subnet to its transit address on your own switching and routing equipment. VirtFusion hands out the transit networks and configures the servers; it does not configure your network. Nothing reaches a server until those routes exist.
If the problem described above is not one you recognise from your own network, you almost certainly do not need this feature. A standard IPv6 block, with its subnets on-link, is the normal way to run VirtFusion.
This feature can also be used in conjunction with the server.assign.ipv6 and server.unassign.ipv6
webhooks, which carry the route block and the output subnet alongside the IPv6 block and subnet.
How it works
A route block has a source subnet, such as 2001:db8:ffff::/48, which VirtFusion splits into output subnets
of /128, /127 or /126. Each output subnet becomes the transit network for one IPv6 subnet.
A route block is attached to an IPv6 block. When a subnet from that block is assigned to a server:
- If the subnet already has an output subnet, the same one is used again.
- If it does not, the next free output subnet in the route block is mapped to it.
- If no output subnets are free, VirtFusion generates more and takes one of those.
The server's interface is then configured with the address of its output subnet and the gateway that goes with it, plus the addresses from its own IPv6 subnet, which carry no gateway of their own. Traffic for the subnet reaches the server only once you have routed the subnet to its output subnet address on your own network equipment, which is a step you take for each subnet outside VirtFusion.
The mapping between an IPv6 subnet and its output subnet is permanent. It is not released when the server is destroyed or the subnet is unassigned, so the subnet keeps the same transit network the next time it is used, and the routes you have configured stay correct.
Creating a route block
In the administration area, go to Network, then IPv6, then Route Blocks, and add a block.
| Field | What it does |
|---|---|
| Name | What the block is called in the administration area. |
| Gateway | The gateway given to servers using this block. |
| Set Gateway & First IP on Intermediate /126 | For a /126 output subnet, the server is given the second address in the subnet and the first address becomes its gateway. Without this, the server is given the subnet's own address and the gateway above. |
| Use Source CIDR for Output Subnet | The server is configured with the source subnet's prefix length instead of the output subnet's. |
| Source Subnet | The subnet the output subnets are generated from. |
| Source Subnet CIDR | The prefix length of the source subnet, from /27 to /120. |
| Intermediate Subnet CIDR | Optional. The source subnet is split into intermediate subnets of this size first, and one output subnet is taken from the start of each. |
| Output Subnet CIDR | The size of each output subnet: /128, /127 or /126. |
| Enabled | A disabled route block is not used for new assignments. |
A route block is not used until it is enabled and attached to an IPv6 block.
Generating output subnets
Output subnets are not created with the block. Use Generate Output Subnets on the block's page to create them, up to 500 at a time. VirtFusion also generates more on demand when a subnet is assigned and none are free, so generating them by hand is optional.
The source subnet and the three prefix lengths cannot be changed once any output subnet is mapped to an IPv6 subnet. While none are mapped, changing any of them deletes every output subnet already generated, and they are generated again from the new settings.
Attaching a route block to an IPv6 block
Open the IPv6 block under Network, then IP Blocks, and choose the route block under Route Block. From then on, every subnet from that block is given an output subnet as it is assigned to a server.
A block's route block cannot be changed while subnets of that block are mapped into its current route block.
Existing subnets
Subnets that were assigned before the route block was attached keep working as they were. To give unassigned subnets their output subnets ahead of time, select them on the block's subnet list and use Assign Route Block.
The block's own page lists its output subnets with the server and IPv6 subnet each is mapped to, where a mapping can also be made or removed by hand.
What the server receives
The output subnet reaches the server the next time its configuration is written, which is at its next start or rebuild. A server that is already running keeps the networking it was started with.