While setting up a Matrix server on @ungleich, I have chosen to use a 3 node setup to maximize on ipv6 only servers (which are more affordable - and Matrix won't be the only one) and isolating the bridges from the central synapse server:

1. Gateway
2. Synapse
3. Bridges

BUT if you only care about Matrix I would recommend you to use just one ipv4 & ipv6 server (with around 4GB) it's been a headache of 2h for me to connect even just the gateway and the synapse servers with each other...

If you want to use this 3 node setup though (eg. because you want to also use more (ipv6 only servers), here's my key lessons learnt:

1. IPv6-only VMs need the correct NAT64 prefix
ungleich doesn't use the standard 64:ff9b::/96 — their actual prefix is 2a0a:e5c0:10:10::/96. Convert gateway IPv4 to NAT64

2. Add both keys at VM creation time

local (eg. Fedora) key → so you can reach it via tunnel
Gateway key → so gateway can SSH in directly

3. IP forwarding must be enabled on gateway