# add this to /etc/sysctl.conf
net.ipv6.conf.all.forwarding=1
# then
sysctl -p
ip -6 route add default via fe80::external_gateway_ll%<IFACE>
ip -6 addr add 2001:db8:1::1/64 dev <VM_IFACE>
2001:db8:1::1
is a placeholder for whatever the Global Unicast Address of the PVE host is.ip -6 addr show dev <IFACE>
ip -6 addr add 2001:db8:1::1/64 dev <VM_IFACE>
ip -6 addr add 2001:db8:1::1/64 dev <VM_IFACE>
is to set the VMs gateway to be the PVE host. Maybe I am missing something?6 route add default via fe
The VMs keep the CIDR and IPs you want them to have, the idea is just to tell them to route their traffic through the PVE host, you could also use the hosts link-local address it has on the bridge. And the host then forwards everything to the gateway using the gateways link-local address.
ip -6 addr add 2001:db8:1::1/64 dev <VM_IFACE>
is to set the VMs gateway to be the PVE host. Maybe I am missing something?
ip -6 route add default via <PVE_HOST_IPV6_LL_ADDRESS>%<VM_IFACE>
<VM_IFACE>
may be different for each VM. # in /etc/sysctl.conf
net.ipv6.conf.all.proxy_ndp=1
# reload
sysctl -p
ip -6 neigh add proxy <VM_IPV6_ADDRESS> dev <BRIDGE_IFACE>
# in /etc/sysctl.conf
net.ipv6.conf.all.forwarding=1
ip -6 route add default via fe80::external_gateway_ll%<IFACE>