Trapezium Support & Avoidance
Routing to native IPv6 ranges is always going to pass through the 6bed4router
, but the typical addresses TBD1::/32
and fc64::/32
can be routed more directly. However, if a 6bed4peer
approaches any party that is not its own 6bed4router
, then its NAT may change its address. This also happens when addressing the range of another 6bed4router
under another /64 prefix.
- Support trapezium-routing, through two
6bed4router
processes, as a last/safe resort - Try routing to another
6bed4router
directly; when told off with a Router Advertisement take note of the external IPv4/UDP address and the fact that/if it is different - By default, traffic should not be source-address-translated, though it makes some sense in the more agressively peering approaches
- Whether traffic may be source-address-translated depends can be decided per package; the Traffic Class can help out there
- Upon arrival, the address (or the lower half's bits after /64 and up to /114) can be recovered from the own
6bed4router
prefix, and the result delivered as the destination address for the6bed4peer
local side. - The "Seen" bit is only meaningful after traffic passes through the
6bed4peer
; until that point the bit may be used to signal source address translation support for a packet. - As this support for source address translation mostly makes sense with the higher-up peering policies, the Traffic Class is already being set explicitly, so adding this bit makes bundles of sense.
A consequence of permitting this is that the non-default routable prefix is not just the /64 of the router, but actually the /32 for the TBD1::/32
and fc64::/32
prefixes. For native/local/other IPv6 prefixes, the non-default routable prefix continues to be /64 only. (On top of that, any explicit routes that were -R
specified on the 6bedrouter
of course.)
Edited by Rick van Rein