Auteur Sujet: OpenVPN : l'ipv4 est prioritaire  (Lu 4395 fois)

0 Membres et 1 Invité sur ce sujet

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
OpenVPN : l'ipv4 est prioritaire
« le: 07 septembre 2020 à 21:30:06 »
Bonjour,

Pour pouvoir naviguer convenablement sans restrictions et avoir de l'IPV6 n’importe ou (et aussi accéder a mes périphériques locaux). J'ai mis un serveur VPN chez moi, donc tout fonctionne sauf que peut importe l'appareil il semble que l'IPV4 prenne le dessus.

La résolution DNS en Ipv6 marche. Les site en IPV6 Only marche. Mais je trouve pas comment la rendre prioritaire.

Mais par contre quand je suis chez moi sur le même réseaux que le VPN derrière la BBOX tout est OK. L'ipv6 est prioritaire.

Merci.

Extrait de la config client :


client
proto tcp6
explicit-exit-notify
remote 192.168.1.5 443
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_t*** name
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3


thenico

  • Expert.
  • Abonné OVH
  • *
  • Messages: 1 009
  • FTTH >500 Mb/s (13)
OpenVPN : l'ipv4 est prioritaire
« Réponse #1 le: 07 septembre 2020 à 22:38:00 »
Quelle est la plage IPv6 attribué au clients VPN ?

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
OpenVPN : l'ipv4 est prioritaire
« Réponse #2 le: 09 septembre 2020 à 20:37:50 »
Quelle est la plage IPv6 attribué au clients VPN ?

Je ne sais pas quoi te répondre je peux la trouver ou ?

EDIT : L'ipv6 publique est l'IPV6 du serveur qui est derrière la bbox. Le réglage se ferait donc sur le serveur ?

vivien

  • Administrateur
  • *
  • Messages: 47 167
    • Twitter LaFibre.info
OpenVPN : l'ipv4 est prioritaire
« Réponse #3 le: 09 septembre 2020 à 20:44:27 »
Mais sinon aussi bien sous Windows que sous Linux, quand l'IPv6 arrive par un Tunnel-broker, elle n'est pas prioritaire sur IPv4 : Si le site web est en dual-stack IPv4 sera préféré sur IPv6.

Il doit être possible de changer ce comportement, mais je n'ai pas regardé.

thenico

  • Expert.
  • Abonné OVH
  • *
  • Messages: 1 009
  • FTTH >500 Mb/s (13)
OpenVPN : l'ipv4 est prioritaire
« Réponse #4 le: 09 septembre 2020 à 22:54:16 »
La cause peut être le plage IPv6 attribué au tunnel.
Si c'est dans fec0::/10, c'est moins prioritaire qu'une ipv4.

C'est le fichier /etc/gai.conf (sur certaine distribution, il faudra le créé qui définit ce comportement.

Donc tape ip -6 addr dans un terminal pour obtenir les ipv6 configuré.

vivien

  • Administrateur
  • *
  • Messages: 47 167
    • Twitter LaFibre.info
OpenVPN : l'ipv4 est prioritaire
« Réponse #5 le: 10 septembre 2020 à 08:32:08 »
Merci.

Contenu du fichier /etc/gai.conf sous Ubuntu :

# Configuration for getaddrinfo(3).
#
# So far only configuration for the destination address sorting is needed.
# RFC 3484 governs the sorting.  But the RFC also says that system
# administrators should be able to overwrite the defaults.  This can be
# achieved here.
#
# All lines have an initial identifier specifying the option followed by
# up to two values.  Information specified in this file replaces the
# default information.  Complete absence of data of one kind causes the
# appropriate default information to be used.  The supported commands include:
#
# reload  <yes|no>
#    If set to yes, each getaddrinfo(3) call will check whether this file
#    changed and if necessary reload.  This option should not really be
#    used.  There are possible runtime problems.  The default is no.
#
# label   <mask>   <value>
#    Add another rule to the RFC 3484 label table.  See section 2.1 in
#    RFC 3484.  The default is:
#
#label ::1/128       0
#label ::/0          1
#label 2002::/16     2
#label ::/96         3
#label ::ffff:0:0/96 4
#label fec0::/10     5
#label fc00::/7      6
#label 2001:0::/32   7
#
#    This default differs from the tables given in RFC 3484 by handling
#    (now obsolete) site-local IPv6 addresses and Unique Local Addresses.
#    The reason for this difference is that these addresses are never
#    NATed while IPv4 site-local addresses most probably are.  Given
#    the precedence of IPv6 over IPv4 (see below) on machines having only
#    site-local IPv4 and IPv6 addresses a lookup for a global address would
#    see the IPv6 be preferred.  The result is a long delay because the
#    site-local IPv6 addresses cannot be used while the IPv4 address is
#    (at least for the foreseeable future) NATed.  We also treat Teredo
#    tunnels special.
#
# precedence  <mask>   <value>
#    Add another rule to the RFC 3484 precedence table.  See section 2.1
#    and 10.3 in RFC 3484.  The default is:
#
#precedence  ::1/128       50
#precedence  ::/0          40
#precedence  2002::/16     30
#precedence ::/96          20
#precedence ::ffff:0:0/96  10
#
#    For sites which prefer IPv4 connections change the last line to
#
#precedence ::ffff:0:0/96  100

#
# scopev4  <mask>  <value>
#    Add another rule to the RFC 6724 scope table for IPv4 addresses.
#    By default the scope IDs described in section 3.2 in RFC 6724 are
#    used.  Changing these defaults should hardly ever be necessary.
#    The defaults are equivalent to:
#
#scopev4 ::ffff:169.254.0.0/112  2
#scopev4 ::ffff:127.0.0.0/104    2
#scopev4 ::ffff:0.0.0.0/96       14

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
OpenVPN : l'ipv4 est prioritaire
« Réponse #6 le: 11 septembre 2020 à 10:47:03 »
La cause peut être le plage IPv6 attribué au tunnel.
Si c'est dans fec0::/10, c'est moins prioritaire qu'une ipv4.

C'est le fichier /etc/gai.conf (sur certaine distribution, il faudra le créé qui définit ce comportement.

Donc tape ip -6 addr dans un terminal pour obtenir les ipv6 configuré.

Sur Windows je peux voir ça comment ?

thenico

  • Expert.
  • Abonné OVH
  • *
  • Messages: 1 009
  • FTTH >500 Mb/s (13)
OpenVPN : l'ipv4 est prioritaire
« Réponse #7 le: 12 septembre 2020 à 04:30:47 »
ipconfig /all dans cmd.exe ou powershell.exe

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
OpenVPN : l'ipv4 est prioritaire
« Réponse #8 le: 14 septembre 2020 à 21:18:38 »
Voilà c'était long je l'ai mis sur un pastbin : http://pastebin.fr/65161

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
OpenVPN : l'ipv4 est prioritaire
« Réponse #9 le: 14 septembre 2020 à 21:48:23 »
sous Windows c'est

netsh interface ipv6 show prefixpolicies("netsh int ipv6 sh pre" version courte)

c'est normal qu'une ULA (adresse IPv6 privée) soit moins prioritaire qu'une IPv4.

Si tu donnes des ULA pour ton VPN c'est normal donc.

Si tu veux que ceux qui entre entre VPN sortent aussi en IPv6 vers Internet il faut leur donner une IPv6 de ton /64 public (= une GUA).

Si tu rend prioritaire les ULA en changeant l'ordre par défaut çela ne sortira pas sur Internet sauf si tu NAT les ULA vers des GUA quelque part...

lexique:
GUA = Global Unicast Address  = IPv6 public routable sur Internet (commencent par 200x en général) = équivalent d'une IPv4 public
ULA = Unique Local Address = IPv6 privé non routable sur Internet  (dans le bloc fc00::/7) = équivalent d'une IPv4 privée

D'apres ton pastebin, tu as les 2 types d'IPv6

fdaa:bbcc:ddee:0... -> LUA -> ne peut sortir sur Internet donc moins prio qu'IPv4
2001:861:xxx:xxx:...-> GUA -> peut sortir sur Internet

Mais ton pastebin n'aide pas ca n'a pas l'air d'être un PC connecté en VPN...

Il faudrait ton pastebin mais quand connecté en VPN. ou avoir la config du serveur VPN (c'est quoi ton serveur VPN)?

thenico

  • Expert.
  • Abonné OVH
  • *
  • Messages: 1 009
  • FTTH >500 Mb/s (13)
OpenVPN : l'ipv4 est prioritaire
« Réponse #10 le: 14 septembre 2020 à 21:57:24 »
Si si, son paste est pendant une connexion VPN:
Carte inconnue Connexion au réseau local :
 
   Suffixe DNS propre à la connexion. . . :
   Description. . . . . . . . . . . . . . : TAP-Windows Adapter V9 for OpenVPN Connect
   Adresse physique . . . . . . . . . . . : 00-FF-FC-FC-08-68
   DHCP activé. . . . . . . . . . . . . . : Non
   Configuration automatique activée. . . : Oui
   Adresse IPv6. . . . . . . . . . . . . .: fd42:42:42:42::1000(préféré)
   Adresse IPv6 de liaison locale. . . . .: fe80::8c19:2d3d:9368:7127%22(préféré)
   Adresse IPv4. . . . . . . . . . . . . .: 10.8.0.2(tentative)
   Masque de sous-réseau. . . . . . . . . : 255.255.255.0
   Passerelle par défaut. . . . . . . . . : 10.8.0.1
   IAID DHCPv6 . . . . . . . . . . . : 167837692
   DUID de client DHCPv6. . . . . . . . : 00-01-00-01-26-BE-03-BB-4C-CC-6A-DF-3E-5E
   Serveurs DNS. . .  . . . . . . . . . . : 1.0.0.1
                                       1.1.1.1
   NetBIOS sur Tcpip. . . . . . . . . . . : Activé


Ton VPN fournit une plage en fd42:42:42:42::/64 et c'est bien une ULA.
Elle est moins prioritaire que les IPv6 associé à ta carte WiFi en plus.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
OpenVPN : l'ipv4 est prioritaire
« Réponse #11 le: 14 septembre 2020 à 23:52:46 »
Si si, son paste est pendant une connexion VPN:
Carte inconnue Connexion au réseau local :
 
   Suffixe DNS propre à la connexion. . . :
   Description. . . . . . . . . . . . . . : TAP-Windows Adapter V9 for OpenVPN Connect
   Adresse physique . . . . . . . . . . . : 00-FF-FC-FC-08-68
   DHCP activé. . . . . . . . . . . . . . : Non
   Configuration automatique activée. . . : Oui
   Adresse IPv6. . . . . . . . . . . . . .: fd42:42:42:42::1000(préféré)
   Adresse IPv6 de liaison locale. . . . .: fe80::8c19:2d3d:9368:7127%22(préféré)
   Adresse IPv4. . . . . . . . . . . . . .: 10.8.0.2(tentative)
   Masque de sous-réseau. . . . . . . . . : 255.255.255.0
   Passerelle par défaut. . . . . . . . . : 10.8.0.1
   IAID DHCPv6 . . . . . . . . . . . : 167837692
   DUID de client DHCPv6. . . . . . . . : 00-01-00-01-26-BE-03-BB-4C-CC-6A-DF-3E-5E
   Serveurs DNS. . .  . . . . . . . . . . : 1.0.0.1
                                       1.1.1.1
   NetBIOS sur Tcpip. . . . . . . . . . . : Activé


Ton VPN fournit une plage en fd42:42:42:42::/64 et c'est bien une ULA.
Elle est moins prioritaire que les IPv6 associé à ta carte WiFi en plus.

ah oui t'as l'oeil je n'avais pas vu ;)

effectivement.

Si tu accède aux 'sites ipv6 only' via le VPN c'est que le serveur fait du NAT (toutes les fd42... des clients VPN sont NATés sur son IPv6 GUA).
Les sites mixtes marchent en IPv4 car localement le poste préfère utiliser une IPv4 a une adresse IPv6 ULA.

Si tu veux vraiment que les postes clients VPN accèdent a IPv6 via le tunnel. Il y a plusieurs solutions.
La plus simple mais la moins recommandée est de changer la priorité de décision sur les postes clients.
Sur Windows ca se fait avec
netsh interface ipv6 set prefixpolicy fc00::/7 37 13
ca devrait mettre les ULA devant les IPv4. Je ne recommande pas vraiment a moins de comprendre toutes les conséquences.
Sur un client Linux c'est possible aussi (cf "man gai.conf").
Mais les OS mobiles comme iOs ou Android ca ne va pas le faire.

La solution propre c'est d'apporter des GUA aux clients via le tunnel  plutot que des ULA.

Vu le client utilisé, https://community.openvpn.net/openvpn/wiki/IPv6
Explique assez bien ce qu'il faut faire pour apporter des GUA aux clients VPN.
En gros il faut un bloc /64 en plus qu'on va utiliser pour les clients VPN.

Malheureusement les FAI français sont a la ramasse niveau IPv6. Aucune box ne supportent DHCPv6-PD sur le lan pour qu'un serveur VPN puisse demander un bloc /64 routable.
La Freebox s'en sort le mieux car on peut a la main router un /64 vers une machine de son choix.

Pour les autres FAI, a moins de remplacer la box par son propre routeur on est obligé de 'couper' le /64 en 2 pour faire du VPN ou d'utiliser un script 'client connect' pour faire du NDP proxy. Dans les 2 cas cela fait une configuration relativement complexe à mettre en oeuvre (et j'ai pas de tuto sous la main pour ca).

De toute facon, NDP Proxy est recommandé plutôt que de couper le /64. 
Avec Wireguard c'est assez simple:
par exemple https://github.com/burghardt/easy-wg-quick#enabling-ndp-proxy-instead-of-default-ipv6-masquerading

du coup c'est peut-être l'occasion abandonner OpenVPN et d'utiliser Wireguard :)