Wireguard ipv6 und NDP Proxy

Ich habe zu großen Teilen folgende Anleitung verwendet:

https://meet-unix.org/2019-03-21-wireguard-vpn-server.html

Mein Problem

Ich habe einen VPS Server bei netcup, hier werden Router-Advertisements (am Interface eth0) für den gesamten zugewiesenen IPv6-Prefix genutzt.

D.h. die Pakete von einem Wireguard peer mit ipv6 Addresse (wie in der Anleitung konfiguriert) erreichen zwar das Internet, aber Pakete aus dem Internet an den Peer kommen nicht an, da kein Gerät auf die Router-Advertisements (für die globale Peer Adresse) antwortet (eth0 hat ja eine andere Adresse)

Die Lösung: NDP Proxy

Meine Lösung habe ich hier gefunden (englische Seite):

https://quantum5.ca/2019/03/08/ndp-proxy-route-ipv6-vpn-addresses/

Die Idee ist die Neighbour-Discovery (und damit die Router-Advert. Pakete weiterzuleiten (proxy)

NDP Proxy in sysctl aktivieren:

net.ipv6.conf.all.proxy_ndp = 1

Einträge welche weitergeleitet werden hinzufügen

ip -6 neigh add proxy <ip> dev <interface>

z.B. ip -6 neigh add proxy 2001:db8::2 dev eth0

obiger Befehl (bzw. das beispiel) führt dazu, dass eth0 nun auch Discovery-Anfragen für die Adresse 2001:db8::2 annimmt. Damit die Pakete im wireguard-Tunnel landen müssen diese natürlich am Server noch geroutet werden (routing wird in der obigen wireguard ipv6 anleitung aber schon aktiviert, dass sollte also kein Problem sein)