Understanding the docs:
I blogged about IPv6 with systemd-networkd in Arch Linux step by step installation guide and provided a hacky workaround to get a working IPv6 address configured. I read through the docs again and hand a longer discussion with Silvio Knizek (systemd guru). We noticed that the documentation isn’t very clear about the correct setup for dualstack with static addresses. The manpage says about the the [Address] section that it can contain an Address= option, for more infos you are advised to check out the docs about the [Network] section. Also you can have multiple [Address] sections. Docs about [Network] say that you can have multiple Address= attributes, however having them in one [Address] block as well doesn’t work.
TL;DR: docs are complicated, here is a working setup:
[Match] Name=enp0s5 [Address] Address=220.127.116.11/32 Peer=18.104.22.168/32 [Address] Address=2a01:488:67:1000:253d:ca9a:0:1/128 [Network] Gateway=22.214.171.124 Gateway=fe80::1 DHCP=no DNS=126.96.36.199 DNS=188.8.131.52