La Fibre
Télécom => Réseau => VPN => Discussion démarrée par: oliviertoto92350 le 25 juillet 2018 à 20:32:42
-
Bonsoir,
Je possède une Bbox FTTH en province qui possède une adresse IP fixe publique IPv4 : a.b.x.y
Derrière cette Bbox j'ai installé un serveur OpenVPN sur un RPI3B.
J'ai configuré 2 fichiers de profils OpenVPN
- profil 1 avec adresse IP de la Bbox : IP littérale a.b.x.y
(https://lafibre.info/images/bytel/201807_4g_bytel_profil_ip_litterale.png)
- profil 2 avec adresse dynamique grâce à un DNS No-IP
(https://lafibre.info/images/bytel/201807_4g_bytel_profil_dns.png)
Depuis mon Smartphone Android (acheté chez ByTel) avec dernier FW installés, je possède une puce 4G ByTel, Offre grand public.
Lorsque mon smartphone est configuré en APN IPv6 j'expérimente de nombreux échecs.
J'aurais besoin de votre aide pour essayer de comprendre ce qui coince.
CAS A.
4G APN IPv4 - Fichier OpenVPN adresse IP Bbox serveur littérale a.b.x.y.
Tout fonctionne.
(https://lafibre.info/images/bytel/201807_4g_bytel_a_profil_ipv4_litterale.png)
CAS B.
4G APN IPv4 - Fichier OpenVPN avec utilisation du DNS no-ip.
Tout fonctionne.
(https://lafibre.info/images/bytel/201807_4g_bytel_b_profil_ipv4_dns.png)
CAS C.
4G APN IPv6 - Fichier OpenVPN adresse IP Bbox serveur littérale a.b.x.y.
Connection impossible. Je ne comprends pas pourquoi je n'arrive à me connecter.
En haut à gauche, ca tourne et ca reste 'Jaune' = connecting ....
(https://lafibre.info/images/bytel/201807_4g_bytel_c_profil_ipv4_litterale.png)
CAS D.
4G APN IPv6 - Fichier OpenVPN avec utilisation du DNS64 no-ip..
Le connection est établie, mais lorsque je lance une queconque rechange, à chaque fois je tombe en time out. Je n'arrive meme pas à faire afficher www.google.com /.fr ou www.yahoo.fr /.com
(https://lafibre.info/images/bytel/201807_4g_bytel_d_profil_ipv4_dns_1.png) (https://lafibre.info/images/bytel/201807_4g_bytel_d_profil_ipv4_dns_2.png)
En résumé :
Si je mets 4G APN Ipv4 = tout fonctionne mais il faut que je me prépare à passer en Ipv6.
Si je mets 4G APN Ipv6
- vers adresse IP Ipv4 littérale a.b.x.y = connexion impossible
- vers nom domaine DynDNS = connexion établie en IPv6 coté mobile, mais rien ne passe ensuite
Si vous avez des idées ?
-
Donc en IPv4 tout se passe bien.
Quand ton mobile est en IPv6 only et en utilisant le mécanisme 464XLAT le VPN ne monte pas. Pourquoi pas. 464XLAT n'a pas été conçu pour ça : 464XLAT (RFC 68779) est une technique qui consiste à modifier le système d'exploitation pour que les applications disposent en apparence d'une adresse IPv4 fonctionnelle, alors que la traduction d'adresse est active sur un hôte ne disposant que d'adresses IPv6. Il y a donc un VPN sur un VPN.
Quand ton mobile est en IPv6 only en utilisant le mécanisme du le NAT64 et le DNS64, là cela devrait fonctionner. Je rappelle le principe : Le DNS va modifier à la volée la réponse DNS pour mettre une IPv6 à la place de l'IPv4. C'est pour cela que OpenVPN note qu'il est en IPv6. L'IPv6 est celle d'une plateforme de NAT64 qui va permettre de basculer sur l'Internet IPv4.
Dans la copie d'écran ci-dessous, je suis étonné de la "private IP : 10.8.0.2" je ne comprends pas. L'IP privée de tous les mobiles en 464XLAT est 192.0.0.4 et sans 464XLAT (cas des iPhone qui ne supportent pas 464XLAT, il n'y a tout simplement aucune IPv4 sur le mobile) :
(https://lafibre.info/images/bytel/201807_4g_bytel_d_profil_ipv4_dns_1.png)
-
Serait-il possible de nous donner l'IP locale qui s'affiche sur la page http://ip.lafibre.info/ quand l'APN est en mode IPv6 ?
Je m'attend à avoir 192.0.0.4 et non une IP en 10.0.0.0/8
Copie d'écran que j'ai réalisé sur mon mobile 4G Bouygues l'année dernière :
(https://lafibre.info/images/ipv6/201706_iplafibre_ipv6.png)
-
Voici les informations. 4G APN Ipv6. Sans le VPN
-
Cas APN Ipv6 + VPN
J'ai laissé 5 minutes mais il n'y a rien
-
Dans la copie d'écran ci-dessous, je suis étonné de la "private IP : 10.8.0.2" je ne comprends pas.
C'est l'IP privée dans le VPN, c'est tout.
-
Dans la copie d'écran ci-dessous, je suis étonné de la "private IP : 10.8.0.2" je ne comprends pas. L'IP privée de tous les mobiles en 464XLAT est 192.0.0.4 et sans 464XLAT (cas des iPhone qui ne supportent pas 464XLAT, il n'y a tout simplement aucune IPv4 sur le mobile) :[/size]
C'est l'interface tun, c'est le réseau par défaut dans la configuration d'OpenVPN en mode client/serveur.
Tu ne peux pas récupérer les logs ?
-
Oui bien sûr je peux éditer les logs.
Quelle section serait intéressante à voir ?
-
Oui bien sûr je peux éditer les logs.
Quelle section serait intéressante à voir ?
Le log au complet.
Aussi, utilise l'IPv4 en dure pour faire le diagnostic, sinon OpenVPN va essayer de faire un tunnel en IPv6.
-
@cali
voici le log complet IPv6 avec DynDNS
21:28:51.521 -- ----- OpenVPN Start -----
21:28:51.522 -- EVENT: CORE_THREAD_ACTIVE
21:28:51.568 -- Frame=512/2048/512 mssfix-ctrl=1250
21:28:51.589 -- UNUSED OPTIONS
4 [resolv-retry] [infinite]
5 [nobind]
6 [persist-key]
7 [persist-tun]
10 [verify-x509-name] [server_lE37fKkbWI9eDd28] [name]
14 [verb] [3]
21:28:51.590 -- EVENT: RESOLVE
21:28:51.665 -- Contacting [64:ff9b::12345:12345]:1194 via UDP
21:28:51.667 -- EVENT: WAIT
21:28:51.677 -- Connecting to [toto123456.ddns.net]:1194 (64:ff9b::12345:12345) via UDPv6
21:28:51.716 -- EVENT: CONNECTING
21:28:51.724 -- Tunnel Options:V4,dev-type tun,link-mtu 1570,tun-mtu 1500,proto UDPv4,comp-lzo,cipher AES-256-CBC,auth SHA256,keysize 256,key-method 2,tls-client
21:28:51.726 -- Creds: UsernameEmpty/PasswordEmpty
21:28:51.729 -- Peer Info:
IV_GUI_VER=OC30Android
IV_VER=3.2
IV_PLAT=android
IV_NCP=2
IV_TCPNL=1
IV_PROTO=2
IV_LZ4=1
IV_AUTO_SESS=1
21:28:52.038 -- VERIFY OK : depth=1
cert. version : 3
serial number : ED:11:9D:03:4F:12:34:56
issuer name : CN=ChangeMe
subject name : CN=ChangeMe
issued on : 2018-07-21 13:54:11
expires on : 2028-07-18 13:54:11
signed using : RSA with SHA-256
RSA key size : 4096 bits
basic constraints : CA=true
key usage : Key Cert Sign, CRL Sign
21:28:52.041 -- VERIFY OK : depth=0
cert. version : 3
serial number : 01
issuer name : CN=ChangeMe
subject name : CN=server_lE37fKkbWI91234567
issued on : 2018-07-21 13:54:46
expires on : 2028-07-18 13:54:46
signed using : RSA with SHA-256
RSA key size : 4096 bits
basic constraints : CA=false
key usage : Digital Signature, Key Encipherment
ext key usage : TLS Web Server Authentication
21:28:52.503 -- SSL Handshake: TLSv1.2/TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
21:28:52.505 -- Session is ACTIVE
21:28:52.506 -- EVENT: GET_CONFIG
21:28:52.511 -- Sending PUSH_REQUEST to server...
21:28:52.598 -- OPTIONS:
0 [dhcp-option] [DNS] [194.158.122.10]
1 [dhcp-option] [DNS] [8.8.8.8]
2 [block-outside-dns]
3 [redirect-gateway] [def1]
4 [route-gateway] [10.8.0.1]
5 [topology] [subnet]
6 [ping] [1800]
7 [ping-restart] [3600]
8 [ifconfig] [10.8.0.2] [255.255.255.0]
9 [peer-id] [0]
10 [cipher] [AES-256-GCM]
21:28:52.601 -- PROTOCOL OPTIONS:
cipher: AES-256-GCM
digest: SHA256
compress: LZ4
peer ID: 0
21:28:52.602 -- EVENT: ASSIGN_IP
21:28:52.691 -- Connected via tun
21:28:52.694 -- LZ4 init asym=0
21:28:52.700 -- EVENT: CONNECTED info='@toto123456.ddns.net:1194 (64:ff9b::12345:12345) via /UDPv6 on tun/10.8.0.2/ gw=[10.8.0.1/]' trans=TO_CONNECTED
-
@cali
voici le log complet
Tu peux faire la même chose avec l'IPv4.
Aussi, est-ce que tu peux joindre 10.8.0.1 ?
-
Voici le log APN Ipv4 en DUR
Non, 10.8.0.2 non joignable
idem 10.8.0.1 non joignable
23:00:24.281 -- ----- OpenVPN Start -----
23:00:24.282 -- EVENT: CORE_THREAD_ACTIVE
23:00:24.332 -- Frame=512/2048/512 mssfix-ctrl=1250
23:00:24.360 -- UNUSED OPTIONS
4 [resolv-retry] [infinite]
5 [nobind]
6 [persist-key]
7 [persist-tun]
10 [verify-x509-name] [server_lE37fKkbWI9e123456] [name]
14 [verb] [3]
23:00:24.368 -- EVENT: RESOLVE
23:00:24.372 -- Contacting 176.139.123.456:1194 via UDP
23:00:24.373 -- EVENT: WAIT
23:00:24.378 -- Connecting to [176.139.123.456]:1194 (176.139.123.456) via UDPv4
23:00:24.675 -- EVENT: CONNECTING
23:00:24.681 -- Tunnel Options:V4,dev-type tun,link-mtu 1570,tun-mtu 1500,proto UDPv4,comp-lzo,cipher AES-256-CBC,auth SHA256,keysize 256,key-method 2,tls-client
23:00:24.684 -- Creds: UsernameEmpty/PasswordEmpty
23:00:24.687 -- Peer Info:
IV_GUI_VER=OC30Android
IV_VER=3.2
IV_PLAT=android
IV_NCP=2
IV_TCPNL=1
IV_PROTO=2
IV_LZ4=1
IV_AUTO_SESS=1
23:00:25.012 -- VERIFY OK : depth=1
cert. version : 3
serial number : ED:11:9D:03:4F:12:34:56
issuer name : CN=ChangeMe
subject name : CN=ChangeMe
issued on : 2018-07-21 13:54:11
expires on : 2028-07-18 13:54:11
signed using : RSA with SHA-256
RSA key size : 4096 bits
basic constraints : CA=true
key usage : Key Cert Sign, CRL Sign
23:00:25.014 -- VERIFY OK : depth=0
cert. version : 3
serial number : 01
issuer name : CN=ChangeMe
subject name : CN=server_lE37fKkbWI912345678
issued on : 2018-07-21 13:54:46
expires on : 2028-07-18 13:54:46
signed using : RSA with SHA-256
RSA key size : 4096 bits
basic constraints : CA=false
key usage : Digital Signature, Key Encipherment
ext key usage : TLS Web Server Authentication
23:00:25.471 -- SSL Handshake: TLSv1.2/TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
23:00:25.478 -- Session is ACTIVE
23:00:25.480 -- EVENT: GET_CONFIG
23:00:25.488 -- Sending PUSH_REQUEST to server...
23:00:25.519 -- OPTIONS:
0 [dhcp-option] [DNS] [194.158.122.10]
1 [dhcp-option] [DNS] [8.8.8.8]
2 [block-outside-dns]
3 [redirect-gateway] [def1]
4 [route-gateway] [10.8.0.1]
5 [topology] [subnet]
6 [ping] [1800]
7 [ping-restart] [3600]
8 [ifconfig] [10.8.0.2] [255.255.255.0]
9 [peer-id] [0]
10 [cipher] [AES-256-GCM]
23:00:25.522 -- PROTOCOL OPTIONS:
cipher: AES-256-GCM
digest: SHA256
compress: LZ4
peer ID: 0
23:00:25.527 -- EVENT: ASSIGN_IP
23:00:25.616 -- Connected via tun
23:00:25.619 -- LZ4 init asym=0
23:00:25.622 -- EVENT: CONNECTED info='@176.139.123.456:1194 (176.139.123.456) via /UDPv4 on tun/10.8.0.2/ gw=[10.8.0.1/]' trans=TO_CONNECTED
-
Est-ce que tu peux tcpdump sur le serveur ?
-
la je suis largué, ça dépasse mes compétences ...
-
la je suis largué, ça dépasse mes compétences ...
Est-ce que tu as un Android avec les droits root ?
-
Oui je suis sous Android.
Non je n'ai pas les droits.
Il faudrait que j'installe Open Vpn directement sur un pc portable.
Quelle commande dois-je faire après ?
-
Bonjour
je vois ceci dans le log qui m'intrigue
21:28:51.724 -- Tunnel Options:V4,dev-type tun,link-mtu 1570,tun-mtu 1500,proto UDPv4,comp-lzo,cipher AES-256-CBC,auth SHA256,keysize 256,key-method 2,tls-client
en IPv4 la fragmentation est autorisée et faite par les équipements réseaux
en IPv6 la fragmentation n'est pas autorisée et le paquet est droppé... (avec un ICMPv6 paquet too big en retour pas toujours bien géré)
as tu le moyen d'essayer en passant la MTU d'openVPN à 1400? (coté serveur ou client ?)
Xade
-
en IPv6 la fragmentation n'est pas autorisée et le paquet est droppé...
Pas avec OpenVPN, c’est la fragmentation par des routeurs qui est interdite.
as tu le moyen d'essayer en passant la MTU d'openVPN à 1400? (coté serveur ou client ?)
Il va juste gagner des soucis de MSS comme ça. Mauvaise idée, mieux vaut laisser OpenVPN fragmenter et reconstituer à l’autre bout.
-
Les paquets IPv4 étant encapsulés par le mobile en IPv6 (mécanisme du 464XLAT)
Donc baisser la MTU des paquets UDP envoyés à 1300 pour tester ce que cela fait me semble une bonne idée.
Sinon, un tcpdump sur le serveur, c'est juste un wireshark sur ton Raspberry Pi. Si tu n'a pas d'interface graphique pour faire fonctionner Wireshark, il y a tcpdump en ligne de commande. Cf Mode d'emploi TcpDump (https://lafibre.info/tutoriels-linux/tcpdump-5007/) ou Réaliser une capture Wireshark pas à pas (https://lafibre.info/tcpip/realiser-une-capture-wireshark-pas-a-pas/)
-
je parle bien de l'IPv6 qui transporte le VPN. car le VPN et d'un coté en IPv4 (serveur) et en IPv6 coté client (voir IPv4=>IPv6 aussi s'il passe par Xlat)
de base le transport d'OpenVPN est en UDP donc le Mss n'est pas corrigé par le réseau...
la conf à modifier est celle d'Openvpn (server.conf/client.conf):
de mémoire (car cela fait longtemps que je n'ai plus fais de conf OpenVPN) la commande est de mettre "tun-mtu 1400" ou 1300 dans la conf des 2 cotés. l'idée est de valider que c'est bien ça (ou pas) le problème. (si c'est confirmé tu pourras chercher la bonne valeur voir mettre)
ensuite il y a un autre test à faire : mettre "proto tcp" au lieu de "proto udp" dans la conf OpenVPN pour faire passer le transport d'UDP a TCP ce qui peut être plus efficace dans ce contexte de NAT64.
Xade
-
Oh bah oui, passer juste le client et pas le serveur, quelle brillante idée... ::)
-
Merci pour votre support.
Côté Rpi3 oui je peux y accéder en remote avec RealVnc ou Putty.
Je vais lire et tester durant les prochains jours.
-
Bonsoir à tous
j'ai identifié le fichier à modifier sur le serveur pour ajouter une ligne "tun-mtu 1400"
Je vais tester :)
Ensuite un autre test en changeant le protocole UDP vers TCP
Merci à tous pour vos pistes
-
Bonjour,
Quel est le retour de tes tests avec un MTU plus faible ?
-
En géneral quand tout fonctionne on oublie de faire un feedback...
-
Bonsoir Vivien,
Je n'ai pas réalisé de test avec MTU différent car je n'ai pas voulu modifié ce qui fonctionne en ipV4.
En tous les cas merci pour votre aide.
-
Pour ma part, je rencontre le même souci au détail près que le SSH vers mon Odroid fonctionne au travers du VPN, mais pas le http(s) ni le smb.
La seule solution serait de monter un openVPN en ipv6, ou bien de désactiver l'ipv6 sur l'APN du téléphone ?
Les deux solutions ne sont pas idéales, la première parce qu'ipv6 ne marche qu'à moitié sur mon abonnement fixe (SFR Red), et la seconde parce qu'il faudra bien y passer un jour...
-
Hello,
Mêmes symptômes / même problème ici :
- iPhone iOS 13.1.2, 3G/4G Bouygues Télécoom, IPV6
- VPN L2TP sur un serveur, en FTTH Bouygues Télécom, IPV4
J'ai baissé la MTU du serveur VPN à 1300, cela ne résout pas le problème.
-
je viens de tester le SSH a travers le VPN en 4G, ca ne fonctionne pas. En 3G ca fonctionne.
-
petit update sur le sujet :
Lorsque je me connecte en openVPN via mon domicile sur un odroid, ou bien à celui de mes parents (serveur OpenVPN hébergé sur un NAS qnap), le petit traffic fonctionne : je peux accéder à la page d'authentification de la livebox par exemple. En revanche, une fois authentifié, cela ne marche plus.
Cela me semble étroitement lié à la taille des paquets OpenVPN.
Est-ce que la situation s'est arrangée pour certains d'entre vous ?
Edit : après avoir creusé la question, j'ai découvert que depuis mon smartphone avec le lien VPN établi, un ping vers la gateway de mon réseau local passe sans souci à travers le VPN, en revanche un ping -s 1400 non.
En procédant par dichotomie, j'ai trouvé la valeur s = 1327 comme étant la dernière à fonctionner.
En ajoutant l'option tun-mtu 1287 dans mes fichier de config OpenVPN, tout semble rentrer dans l'ordre.
Je suis étonné que le calcul du MTU ne se fasse pas comme il faut tout seul, j'imagine que c'est lié à l'implémentation 464XLAT de Bouygues qui ne doit pas répondre convenablement lorsqu'un paquet trop gros est reçu ?
-
Moi je n’ai pas réussi à résoudre le problème. Je suis retourné chez orange et la ca fonctionne parfaitement
-
xavax, pourrais-tu m'indiquer si ton smartphone à de l'IPv6 chez Orange ?
http://ip.lafibre.info permet de le vérifier
-
Oui j’ai