PS : Ce tuto se base sur un PC routeur Ubuntu avec ce script lancé. Cela implique que j'ai un bridge br0 où il n'y a que IPv6 d'autorisé à transiter. L'interface tap0 du VPN va être ajoutée à ce bridge ce qui veut dire que IPv4 sera bloqué à travers le VPN. Mon but est de permettre à un réseau ne pouvant pas avoir IPv6 de l'obtenir à travers ce VPN.

Pour commencer il faut installer avec ce tuto OpenVPN sur le serveur et le client en mode bridge avec la directive dev tap0

Il faut ensuite installer bridge-utils puis créer l'interface tap0 avec le script suivant du coté serveur :

#!/bin/bash

#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################

# Define Bridge Interface
br="br0"

# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"

# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0" #Wan vers Freebox en IPv6
eth1="eth1" #Lan

for t in $tap; do
openvpn --mktun dev $t
done

brctl addbr $br
brctl addif $br $eth
brctl addif $br $eth1

for t in $tap; do
brctl addif $br $t
done

Puis du côté client :

#!/bin/bash

#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################

#Lancement d'OpenVPN
openvpn /etc/openvpn/client.conf

# Define Bridge Interface
br="br0"

# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"

# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0" #Lan

brctl addbr $br
brctl addif $br $eth

for t in $tap; do
brctl addif $br $t
done
On obtient donc un tunnel IPv6 vers un réseau IPv6 d'une Freebox. Toutes les communications IPv6 vont passer dans le tunnel VPN mais pas l'IPv4.