Auteur Sujet: Freebox Pop routeur, Wireguard sur serveur dédié, IPv6 principal vers VPN = ko  (Lu 31 fois)

0 Membres et 1 Invité sur ce sujet

rosperceau

  • Abonné Free fibre
  • *
  • Messages: 1
Bonjour,

J'ai une Freebox Pop en fibre en mode routeur. J'ai branché en ethernet un "single board computer" (odroid, simili-raspberrypi), lequel sert de serveur Wireguard. Mes clients VPN (android) arrivent à accéder à l'Internet public et à mon odroid.
Je cherche en IPv6 à ce que mes clients VPN puissent accéder aux machines du réseau local. Problème: si le trafic (ex: ping) arrive bien d'un client VPN à une machine desktop (en wi-fi), les réponses n'arrivent pas au client VPN. En fait ça semble ne pas passer de l’odroid vers la machine desktop, cela semble se perdre au niveau de la Freebox. Pour le moment je n'ai réussi qu'avec une bidouille, et je cherche si il y a une manière propre.
Je ne suis pas admin réseau de métier.

La topologie de mon réseau (IPs fictives) est:
  • Sous-réseau IPv6 de mon abonnement: 2a01:aaaa:bbbb:cc20:0:0:0:0/61
  • Sous-réseau principal associé à la Freebox: 2a01:aaaa:bbbb:cc20:0:0:0:0/64
    • IP Freebox: 2a01:aaaa:bbbb:cc20::1:
    • Desktop en wi-fi: 2a01:aaaa:bbbb:cc20:1111:222:3333:4444
    • Odroid en ethernet: 2a01:aaaa:bbbb:cc20:5555:6666:7777:8888
  • Sous-réseau dédié à mon routeur: 2a01:aaaa:bbbb:cc21:0:0:0:0
    • Odroid sur ce 2nd réseau: 2a01:aaaa:bbbb:cc21::1
    • Client-VPN-1 sur ce 2nd réseau: 2a01:aaaa:bbbb:cc21::1:1

    Problème:
    • Si je fais un ping de mon téléphone (en 5G) vers "Desktop", ça répond
    • Si j'active le client Wireguard sur le téléphone, alors je n'ai pas de réponse. Avec Wireshark sur ce Desktop, je vois que les packets ICMP6 arrivent et que des réponses sont envoyées.
    • Bidouille crade et pas générique pour que ça marche: sur Desktop, exécuter /sbin/ip -6 route add SOUS_RESEAU_VPN/64 via IPV6_PUBLIQUE_DU_ODROID (et pour être honnête, je ne comprends que superficiellement ce que je fais)
    .
Ma conf:
  • Dans l'admin Freebox, pour la conf IPv6, pour le 1er préfixe secondaire (2a01:aaaa:bbbb:cc21:0:0:0:0), j'ai mis l'IPv6 link-local de mon odroid (fe80::…)
  • Dans /etc/sysctl.conf:
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.wg0.proxy_ndp=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.wg0.accept_ra=2
  • Dans /etc/wireguard/wg0.conf
[Interface]
# private address for my vpn-server, on the interface wg0 dedicated to it
Address = 172.16.0.1/24
Address = 2a01:aaaa:bbbb:cc21::1/64
Table = off
SaveConfig = false
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ufw route allow in on %i to any
PostUp = ip6tables -A FORWARD -i wg0 -o %i -j ACCEPT;
PostUp = ip6tables -A FORWARD -i %i -j ACCEPT;
PostUp = ip -6 neighbor add proxy 2a01:aaaa:bbbb:cc21::1:1 dev wg0
PostUp = ip -6 neighbor add proxy 2a01:aaaa:bbbb:cc21::1:2 dev wg0
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ufw route delete allow in on %i to any
PostDown = ip6tables -D FORWARD -i wg0 -o %i -j ACCEPT;
PostDown = ip6tables -D FORWARD -i %i -j ACCEPT;
PostDown = ip -6 neighbor del proxy 2a01:aaaa:bbbb:cc21::1:1 dev wg0
PostDown = ip -6 neighbor del proxy 2a01:aaaa:bbbb:cc21::1:2 dev wg0
ListenPort = 51820
PrivateKey = THE_SERVER_PRIVATE_KEY

[Peer]
PublicKey = PEER_1_PUBLIC_KEY
AllowedIPs = 172.16.0.2/32, 2a01:aaaa:bbbb:cc21::1:1/128

[Peer]
PublicKey = PEER_2_PUBLIC_KEY
AllowedIPs = 172.16.0.3/32, 2a01:aaaa:bbbb:cc21::1:2/128
  • Dans mon client
[Interface]
Address = 172.16.0.2/32, 2a01:aaaa:bbbb:cc21::1:1/128
DNS = 192.168.1.254
ListenPort = 51820
PrivateKey = PEER_1_PRIVATE_KEY

[Peer]
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = MY_PUBLIC_FREEBOX_IPV4:VPN_PORT
PublicKey = THE_SERVER_PUBLIC_KEY

Je suis un débutant de l'IPv6, et j'essaie d'interpréter ce qui se passe:
  • Si mon téléphone est sur l'Internet public, lorsqu'il communique avec Desktop, le trafic arrive bien jusqu'à la Freebox, qui le relaie sur le sous-réseau qu'elle gère et donc vers Desktop. Et quand le trafic repart (ex: réponse à un ping), la Freebox sait vers où le renvoyer
  • Si mon téléphone est sur l'Internet public, lorsqu'il communique avec un client VPN, le trafic arrive bien jusqu'à la Freebox, qui le relaie sur le sous-réseau du VPN via mon odroid, qui le relaie vers le client VPN. Et quand le trafic repart, le trafic trouve son chemin jusqu'au téléphone
  • Mais quand c'est un client VPN qui fait un ping vers Desktop, les packets ICMP6 (idem avec ssh), le client envoie à d’odroid, qui l’envoie à la Freebox, qui voit qu’il faut l’envoyer vers une machine Ethernet du réseau principal. Et quand le desktop répond, je suppose que ça passe par la Freebox, mais ça n’arrive pas ensuite à l’odroid. Sur mon desktop, je vois avec Wireshark que les paquets arrivent et que les réponses sont envoyées sur la liaison Wi-Fi. Mais sur l’odroid, avec tcpdump, je ne vois pas de réponse arriver.
  • J’ai 2 hypothèses: soit la Freebox n’arrive pas à router depuis le réseau principal vers un réseau secondaire IPv6. Ou alors (plausible car je ne suis pas connaisseur) c’est moi qui ignore un concept d’IPv6 et de routage et donc qui ait mal configuré
Verriez-vous si j’ai loupé un concept basique dans ma config?
(en vrai, je vivrais très bien sans, c’est principalement pour expérimenter)