some updates to how i handle address allocation for he_ipv6

This commit is contained in:
2020-05-13 13:31:16 -04:00
parent 71df39ca11
commit fc8eda8198
5 changed files with 253 additions and 27 deletions

View File

@@ -45,41 +45,76 @@
-->
<server>192.0.2.1</server>
<!--
Allocations that are handed to your tunnel.
-->
<!--
Section: Routed IPv6 Prefixes
-->
<allocs>
<!--
Each alloc has (in addition to a "prefix" attribute) an "iface" attribute. This is the network interface on
this machine that the allocation should be added to.
Value Name: Routed /64
-->
<alloc prefix="64" iface="eth0">2001:DB8:1:2::</alloc>
<!--
You may not have a /48 as it's opt-in.
Value Name: Routed /48
-->
<alloc prefix="48" iface="eth0">2001:DB8:2::</alloc>
</allocs>
<!--
The "client" element is the local SIT endpoint.
Section: IPv6 Tunnel Endpoints
Value Name: Client IPv6 Address
-->
<client prefix="64">2001:DB8:3::2</client>
<!--
Allocations that are handed to your tunnel.
Section: Routed IPv6 Prefixes
-->
<allocations>
<!--
Each alloc has the following attributes:
* "prefix" - the prefix size specified by your tunnelbroker.
* "id" - an identifier for each allocation to be used in assignments/assign items.
Value Name: Routed /64
-->
<alloc prefix="64" id="lan">2001:DB8:1:2::</alloc>
<!--
You may not have a /48 as it's opt-in. It's highly recommended, though, so you can provide global IPv6 addresses
to the rest of your LAN(s).
Value Name: Routed /48
-->
<alloc prefix="48" id="multilan">2001:DB8:2::</alloc>
</allocations>
<!--
Where to assign the allocations. The default allocation prefix is a /64 (prefix="64"), since that's what SLAAC
recommends.
Note that if you use your /64 allocation, and don't specify a longer prefix to it, you can only have one
assignment.
It has two optional attributes:
* "radvd" - a boolean; if true, /etc/radvd.conf will be automatically.
* "radvdDns" - a boolean, only used if radvd is true; if true, will specify the server's IP as an RDSS.
generated and restarted.
-->
<assignments radvd="true" radvdDns="true">
<!--
Each assignment has the following required attributes:
* "prefix" - the size of the subnet, "64" (/64) by default since that's what SLAAC recommends. Note that if
you use your /64 allocation and don't specify a longer prefix, you can only have one assignment
for that allocation.
* "alloc" - this should match an "id" attribute of an allocations/alloc item.
* "iface" - which network interface on the machine that the allocation should be added to.
Sections of the alloc referenced in the "alloc" attribute will then be carved out. Make sure you don't exceed
your allocation size! (A /48 has 65536 /64s in it.)
The interface will be assigned :1 (the first host in the subnet) as well, so it is recommended that you do not
assign a /128.
-->
<assign prefix="64" alloc="lan" iface="eth0"/>
<assign prefix="64" alloc="multilan" iface="eth0"/>
<assign prefix="64" alloc="multilan" iface="eth1"/>
<assign prefix="64" alloc="multilan" iface="eth2"/>
</assignments>
</tunnel>
<!--
And you can, of course, specify multiple tunnels.
-->
<tunnel id="54321" creds="ipv6user">
<server>192.0.2.1</server>
<allocs>
<alloc prefix="64" iface="eth1">2001:DB8:4:2:</alloc>
<alloc prefix="48" iface="eth1">2001:DB8:5::</alloc>
</allocs>
<client prefix="64">2001:DB8:6::2</client>
<allocations>
<alloc prefix="64" id="lan">2001:DB8:4:2:</alloc>
<alloc prefix="48" id="biglan">2001:DB8:5::</alloc>
</allocations>
<assignments>
<!-- Uses the default prefix of /64 each. -->
<assign alloc="lan" iface="eth0"/>
<assign alloc="biglan" iface="eth1"/>
<assign alloc="biglan" iface="eth1"/>
<assign alloc="biglan" iface="eth1"/>
</assignments>
</tunnel>
</tunnels>
</heIPv6>