« Kit de dépannage MV2025 » : différence entre les versions
Page créée avec « = 1) Objectif : Kit de dépannage = == Contexte == Un ''Raspberry Pi 3 sous OpenWrt'' est installé chez l’adhérent. Il est connecté directement derrière sa box et obtient une adresse dans : Réseau B : 192.168.1.0/24 La majorité des adhérents utilisent la même plage d’adresses que le dépanneur (192.168.1.x), ce qui entraîne naturellement un conflit d’adressage entre les deux sites. == Besoin == Un PC du réseau A (côté dépanneur) doit pouvoi... » |
|||
| (25 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 5 : | Ligne 5 : | ||
Il est connecté directement derrière sa box et obtient une adresse dans : | Il est connecté directement derrière sa box et obtient une adresse dans : | ||
Réseau | Réseau X : 192.168.1.0/24 | ||
La majorité des adhérents utilisent la même plage d’adresses que le dépanneur (192.168.1.x), ce qui entraîne naturellement un conflit d’adressage entre les deux sites. | La majorité des adhérents utilisent la même plage d’adresses que le dépanneur (192.168.1.x), ce qui entraîne naturellement un conflit d’adressage entre les deux sites. | ||
== Besoin == | == Besoin == | ||
Un PC du réseau | Un PC du réseau MV (côté dépanneur) doit pouvoir accéder à n’importe quelle machine du réseau X (chez l’adhérent), depuis l’extérieur. | ||
Le Pi3 doit établir automatiquement un tunnel VPN (WireGuard) sortant vers le routeur du réseau | Le Pi3 doit établir automatiquement un tunnel VPN (WireGuard) sortant vers le routeur du réseau MV, puisque l’adhérent n’ouvre aucun port entrant sur sa box. | ||
Pour éviter le conflit d’adressage — | Pour éviter le conflit d’adressage — X et MV étant tous deux en 192.168.1.x — une traduction d’adresses est indispensable. | ||
== Solution globale == | == Solution globale == | ||
Mise en place d’un tunnel WireGuard avec deux adresses dédiées : | Mise en place d’un tunnel WireGuard avec deux adresses dédiées : | ||
Pi3 (réseau | Pi3 (réseau X) : 13.0.0.1/24 | ||
Routeur | Routeur MV (dépanneur) : 13.0.0.2/24 | ||
Création d’un réseau virtuel : | Création d’un réseau virtuel : | ||
192.168.7.0/24 = représentation du réseau | 192.168.7.0/24 = représentation du réseau X via le tunnel | ||
Le Pi3 assure une | Le Pi3 assure une traduction d’adresses entre : | ||
192.168.7.x (vu depuis le réseau | 192.168.7.x (vu depuis le réseau MV) | ||
192.168.1.x (réseau réel de l’adhérent) | 192.168.1.x (réseau réel de l’adhérent) | ||
| Ligne 35 : | Ligne 35 : | ||
= 2) Règles générales = | = 2) Règles générales = | ||
== A. NAT de | == A. NAT de traduction pour éviter la confusion d’adresses == | ||
Comme les deux sites utilisent la même plage 192.168.1.0/24, un réseau virtuel 192.168.7.0/24 est créé pour représenter le réseau | Comme les deux sites utilisent la même plage 192.168.1.0/24, un réseau virtuel 192.168.7.0/24 est créé pour représenter le réseau X depuis le réseau MV. | ||
Le Pi3 | Le Pi3 est configuré pour appliquer : | ||
=== 1. DNAT (PREROUTING) === | === 1. DNAT (PREROUTING) === | ||
Lorsque qu’un paquet arrive du tunnel WireGuard vers une destination 192.168.7.x : | Lorsque qu’un paquet arrive du tunnel WireGuard vers une destination 192.168.7.x : | ||
→ il est converti en 192.168.1.x, adresse réelle du réseau | → il est converti en 192.168.1.x, adresse réelle du réseau X. | ||
=== 2. SNAT (POSTROUTING) === | === 2. SNAT (POSTROUTING) === | ||
Lorsqu’une machine du réseau | Lorsqu’une machine du réseau X répond (source 192.168.1.x) : | ||
→ la source est remplacée par 192.168.7.x avant renvoi dans le tunnel. | → la source est remplacée par 192.168.7.x avant renvoi dans le tunnel. | ||
'''Résultat :''' | '''Résultat :''' | ||
Avec cette | Avec cette traduction, toutes les machines du réseau X apparaissent côté réseau MV sous 192.168.7.x, éliminant tout conflit d’adressage. | ||
== B. Routage côté réseau | == B. Routage côté réseau MV == | ||
Pour permettre l’accès au réseau virtuel 192.168.7.x, une route doit être configurée sur le routeur | Pour permettre l’accès au réseau virtuel 192.168.7.x, une route doit être configurée sur le routeur MV : | ||
192.168.7.0/24 → via | 192.168.7.0/24 → via interface wg0 (tunnel Wireguard vers le Pi3) | ||
Cette route | Cette route vaut pour tous les PC connectés au réseau MV. | ||
Autrement, elle peut aussi être définie manuellement sur un PC spécifique connecté au réseau MV. | |||
'''Résultat :''' | '''Résultat :''' | ||
| Ligne 69 : | Ligne 67 : | ||
= 3) Paramétrage = | = 3) Paramétrage = | ||
== A. Pi3 (OpenWrt – réseau | == A. Pi3 (OpenWrt – réseau X) == | ||
=== Interface WireGuard ''wg0'' === | === Interface WireGuard ''wg0'' === | ||
| Ligne 75 : | Ligne 73 : | ||
Adresse tunnel : 13.0.0.1/24 | Adresse tunnel : 13.0.0.1/24 | ||
Établissement du tunnel vers l’adresse publique du routeur | Établissement du tunnel vers l’adresse publique du routeur MV | ||
Keepalive activé pour maintenir le tunnel à travers le NAT | Keepalive activé pour maintenir le tunnel à travers le NAT | ||
| Ligne 83 : | Ligne 81 : | ||
DNAT : conversion des adresses virtuelles (192.168.7.x) vers les adresses réelles (192.168.1.x) | DNAT : conversion des adresses virtuelles (192.168.7.x) vers les adresses réelles (192.168.1.x) | ||
SNAT : conversion inverse pour les réponses du réseau B | SNAT : conversion inverse pour les réponses du réseau X | ||
ATTENTION : il n'est pas possible de définir ces règles de transformation d'adresses dans le firewall. Il faut installer ceci, | |||
<pre> | |||
opkg update | |||
opkg install iptables-legacy iptables-mod-nat-extra | |||
</pre> | |||
Puis créer le fichier de règles, | |||
nano /etc/firewall.user | |||
<pre> | |||
#!/bin/sh | |||
# NAT 1:1 NETMAP WireGuard | |||
# Traduction 192.168.7.0/24 <-> 192.168.1.0/24 | |||
# Vérifie que l'interface wg0 est active | |||
if ip link show wg0 >/dev/null 2>&1; then | |||
# DNAT : trafic entrant sur wg0 vers 192.168.1.0/24 | |||
iptables -t nat -A PREROUTING -i wg0 -d 192.168.7.0/24 -j NETMAP --to 192.168.1.0/24 | |||
# SNAT : trafic sortant vers wg0 depuis 192.168.1.0/24 | |||
iptables -t nat -A POSTROUTING -o wg0 -s 192.168.1.0/24 -j NETMAP --to 192.168.7.0/24 | |||
fi | |||
</pre> | |||
le rendre exécutable | |||
<pre> | |||
chmod +x /etc/firewall.user | |||
</pre> | |||
le lancer et vérifier | |||
<pre> | |||
/etc/firewall.user | |||
iptables -t nat -L -n -v | |||
</pre> | |||
Et ça doit marcher !! | |||
sinon, regarder ce qui se passe avec tcpdump, | |||
<pre> | |||
tcpdump -i wg0 icmp | |||
</pre> | |||
Cela permet d’accéder à tout le réseau X sous l'identité 192.168.7.x. | |||
Il faut rentrer dans les fichiers de conf, Luci ne permet PAS de le faire ici, http://192.168.1.222/cgi-bin/luci/admin/network/firewall/snats | |||
== B. Routeur MV (OpenWrt – réseau du dépanneur) == | |||
=== Firewall === | |||
Définir un transfert du port 51827 vers l'adresse du routeur (192.168.1.1) | |||
=== Interface WireGuard ''wg0'' === | === Interface WireGuard ''wg0'' === | ||
| Ligne 95 : | Ligne 140 : | ||
Port d’écoute : 51827 | Port d’écoute : 51827 | ||
Sur le routeur MV, le Pi3 est configuré comme peer dans WireGuard | |||
=== Route statique === | === Route statique === | ||
| Ligne 101 : | Ligne 146 : | ||
Ajouter : 192.168.7.0/24 via 13.0.0.1 (wg0) | Ajouter : 192.168.7.0/24 via 13.0.0.1 (wg0) | ||
Cela indique explicitement au routeur | <pre> | ||
interface = wg0 | |||
target = 192.168.7.0/24 | |||
gateway non définie (le routeur MV par défaut) | |||
</pre> | |||
http://192.168.1.1/cgi-bin/luci/admin/network/routes | |||
Vérifier les routes installées, | |||
<pre> | |||
ip route show | |||
</pre> | |||
Cela indique explicitement au routeur MV : | |||
« Pour atteindre le réseau virtuel 192.168.7.x, emprunter le tunnel WireGuard. » | « Pour atteindre le réseau virtuel 192.168.7.x, emprunter le tunnel WireGuard. » | ||
Ainsi, tout PC du réseau | Ainsi, tout PC du réseau MV peut atteindre les machines du réseau X sans conflit d’adresses. | ||
= ✔ Résumé final = | = ✔ Résumé final = | ||
Le Pi3 installé chez l’adhérent établit un tunnel WireGuard vers le routeur du dépanneur, effectue une | Le Pi3 installé chez l’adhérent établit un tunnel WireGuard vers le routeur du dépanneur, effectue une traduction entre 192.168.1.x et 192.168.7.x, et le routeur MV annonce ce réseau virtuel aux PC du dépanneur. | ||
Grâce à cette architecture, l’accès à l’ensemble du réseau | Grâce à cette architecture, l’accès à l’ensemble du réseau X est possible malgré l’usage identique de la plage d’adresses 192.168.1.0/24 sur les deux sites. | ||
= Paramétrer OpenWRT sur PI3 = | |||
https://wiki.memoirevive79.mooo.com/index.php/Param%C3%A9trer_OpenWRT_sur_PI3_(ou_autre) | |||
Dernière version du 21 novembre 2025 à 23:33
1) Objectif : Kit de dépannage
Contexte
Un Raspberry Pi 3 sous OpenWrt est installé chez l’adhérent. Il est connecté directement derrière sa box et obtient une adresse dans :
Réseau X : 192.168.1.0/24
La majorité des adhérents utilisent la même plage d’adresses que le dépanneur (192.168.1.x), ce qui entraîne naturellement un conflit d’adressage entre les deux sites.
Besoin
Un PC du réseau MV (côté dépanneur) doit pouvoir accéder à n’importe quelle machine du réseau X (chez l’adhérent), depuis l’extérieur.
Le Pi3 doit établir automatiquement un tunnel VPN (WireGuard) sortant vers le routeur du réseau MV, puisque l’adhérent n’ouvre aucun port entrant sur sa box.
Pour éviter le conflit d’adressage — X et MV étant tous deux en 192.168.1.x — une traduction d’adresses est indispensable.
Solution globale
Mise en place d’un tunnel WireGuard avec deux adresses dédiées :
Pi3 (réseau X) : 13.0.0.1/24
Routeur MV (dépanneur) : 13.0.0.2/24
Création d’un réseau virtuel :
192.168.7.0/24 = représentation du réseau X via le tunnel
Le Pi3 assure une traduction d’adresses entre :
192.168.7.x (vu depuis le réseau MV)
192.168.1.x (réseau réel de l’adhérent)
2) Règles générales
A. NAT de traduction pour éviter la confusion d’adresses
Comme les deux sites utilisent la même plage 192.168.1.0/24, un réseau virtuel 192.168.7.0/24 est créé pour représenter le réseau X depuis le réseau MV.
Le Pi3 est configuré pour appliquer :
1. DNAT (PREROUTING)
Lorsque qu’un paquet arrive du tunnel WireGuard vers une destination 192.168.7.x :
→ il est converti en 192.168.1.x, adresse réelle du réseau X.
2. SNAT (POSTROUTING)
Lorsqu’une machine du réseau X répond (source 192.168.1.x) :
→ la source est remplacée par 192.168.7.x avant renvoi dans le tunnel.
Résultat : Avec cette traduction, toutes les machines du réseau X apparaissent côté réseau MV sous 192.168.7.x, éliminant tout conflit d’adressage.
B. Routage côté réseau MV
Pour permettre l’accès au réseau virtuel 192.168.7.x, une route doit être configurée sur le routeur MV :
192.168.7.0/24 → via interface wg0 (tunnel Wireguard vers le Pi3)
Cette route vaut pour tous les PC connectés au réseau MV.
Autrement, elle peut aussi être définie manuellement sur un PC spécifique connecté au réseau MV.
Résultat : Toute tentative d’accès à 192.168.7.x est automatiquement envoyée dans le tunnel WireGuard.
3) Paramétrage
A. Pi3 (OpenWrt – réseau X)
Interface WireGuard wg0
Adresse tunnel : 13.0.0.1/24
Établissement du tunnel vers l’adresse publique du routeur MV
Keepalive activé pour maintenir le tunnel à travers le NAT
NAT (mapping 192.168.7.x ↔ 192.168.1.x)
DNAT : conversion des adresses virtuelles (192.168.7.x) vers les adresses réelles (192.168.1.x)
SNAT : conversion inverse pour les réponses du réseau X
ATTENTION : il n'est pas possible de définir ces règles de transformation d'adresses dans le firewall. Il faut installer ceci,
opkg update opkg install iptables-legacy iptables-mod-nat-extra
Puis créer le fichier de règles,
nano /etc/firewall.user
#!/bin/sh
# NAT 1:1 NETMAP WireGuard
# Traduction 192.168.7.0/24 <-> 192.168.1.0/24
# Vérifie que l'interface wg0 est active
if ip link show wg0 >/dev/null 2>&1; then
# DNAT : trafic entrant sur wg0 vers 192.168.1.0/24
iptables -t nat -A PREROUTING -i wg0 -d 192.168.7.0/24 -j NETMAP --to 192.168.1.0/24
# SNAT : trafic sortant vers wg0 depuis 192.168.1.0/24
iptables -t nat -A POSTROUTING -o wg0 -s 192.168.1.0/24 -j NETMAP --to 192.168.7.0/24
fi
le rendre exécutable
chmod +x /etc/firewall.user
le lancer et vérifier
/etc/firewall.user iptables -t nat -L -n -v
Et ça doit marcher !!
sinon, regarder ce qui se passe avec tcpdump,
tcpdump -i wg0 icmp
Cela permet d’accéder à tout le réseau X sous l'identité 192.168.7.x.
Il faut rentrer dans les fichiers de conf, Luci ne permet PAS de le faire ici, http://192.168.1.222/cgi-bin/luci/admin/network/firewall/snats
B. Routeur MV (OpenWrt – réseau du dépanneur)
Firewall
Définir un transfert du port 51827 vers l'adresse du routeur (192.168.1.1)
Interface WireGuard wg0
Adresse tunnel : 13.0.0.2/24
Port d’écoute : 51827
Sur le routeur MV, le Pi3 est configuré comme peer dans WireGuard
Route statique
Ajouter : 192.168.7.0/24 via 13.0.0.1 (wg0)
interface = wg0 target = 192.168.7.0/24 gateway non définie (le routeur MV par défaut)
http://192.168.1.1/cgi-bin/luci/admin/network/routes
Vérifier les routes installées,
ip route show
Cela indique explicitement au routeur MV :
« Pour atteindre le réseau virtuel 192.168.7.x, emprunter le tunnel WireGuard. »
Ainsi, tout PC du réseau MV peut atteindre les machines du réseau X sans conflit d’adresses.
✔ Résumé final
Le Pi3 installé chez l’adhérent établit un tunnel WireGuard vers le routeur du dépanneur, effectue une traduction entre 192.168.1.x et 192.168.7.x, et le routeur MV annonce ce réseau virtuel aux PC du dépanneur. Grâce à cette architecture, l’accès à l’ensemble du réseau X est possible malgré l’usage identique de la plage d’adresses 192.168.1.0/24 sur les deux sites.
Paramétrer OpenWRT sur PI3
https://wiki.memoirevive79.mooo.com/index.php/Param%C3%A9trer_OpenWRT_sur_PI3_(ou_autre)