J'ai trouvé ce script 99-vpn-ipv6-switch à placer dans /etc/NetworkManager/dispatcher.d qui fait bien le job:
#!/bin/sh
# Network Manager Dispatcher Hook:
# enables/disables ipv6 on vpn-down/vpn-up respectively
#
# Copyright (c) 2017 ooknosi
# Apache License 2.0
# Args
INTERFACE="$1"
ACTION="$2"
case $ACTION in
vpn-up)
# vpn connected; disable ipv6
sysctl -w net.ipv6.conf.all.disable_ipv6=1
### UNCOMMENT AND EDIT BELOW IF NECESSARY
## add pi-hole nameserver
#echo -n "nameserver 192.168.1.1" | /sbin/resolvconf -a "tun0.openvpn"
### UNCOMMENT AND EDIT ABOVE IF NECESSARY
;;
vpn-down)
# vpn disconnected; enable ipv6
sysctl -w net.ipv6.conf.all.disable_ipv6=0
### UNCOMMENT AND EDIT BELOW IF NECESSARY
## remove pi-hole nameserver
#/sbin/resolvconf -d "tun0.openvpn"
### UNCOMMENT AND EDIT ABOVE IF NECESSARY
;;
esac
exit 0
La commande
$ ip a
et une visite du site https://test-ipv6.com/ permettent de s'assurer que ce script fait bien son job.