« Kit de dépannage MV2025 » : différence entre les versions

De Wiki de Mémoire Vive
Aller à la navigation Aller à la recherche
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 B : 192.168.1.0/24
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 A (côté dépanneur) doit pouvoir accéder à n’importe quelle machine du réseau B (chez l’adhérent), depuis l’extérieur.
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 A, puisque l’adhérent n’ouvre aucun port entrant sur sa box.
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 — A et B étant tous deux en 192.168.1.x — une translation d’adresses est indispensable.
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 B) : 13.0.0.1/24
Pi3 (réseau X) : 13.0.0.1/24


Routeur A (dépanneur) : 13.0.0.2/24
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 B via le tunnel
192.168.7.0/24 = représentation du réseau X via le tunnel


Le Pi3 assure une translation d’adresses entre :
Le Pi3 assure une traduction d’adresses entre :


192.168.7.x (vu depuis le réseau A)
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 translation pour éviter la confusion d’adresses ==
== 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 B depuis le réseau A.
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 applique :
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 B.
→ 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 B répond (source 192.168.1.x) :
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 translation, toutes les machines du réseau B apparaissent côté réseau A sous 192.168.7.x, éliminant tout conflit d’adressage.
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 A ==
== 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 A :
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 13.0.0.1 (Pi3, interface wg0)
192.168.7.0/24 → via interface wg0 (tunnel Wireguard vers le Pi3)


Cette route peut être :
Cette route vaut pour tous les PC connectés au réseau MV.


diffusée automatiquement aux PC du réseau A via DHCP,
Autrement, elle peut aussi être définie manuellement sur un PC spécifique connecté au réseau MV.
 
ou définie manuellement sur un PC spécifique.


'''Résultat :'''
'''Résultat :'''
Ligne 69 : Ligne 67 :
= 3) Paramétrage =
= 3) Paramétrage =


== A. Pi3 (OpenWrt – réseau B) ==
== 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 A
É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) ==


Cela permet d’accéder à tout le réseau B sous l'identité 192.168.7.x.
=== Firewall ===


== B. Routeur A (OpenWrt – réseau du dépanneur) ==
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 A, le Pi3 est configuré comme peer WireGuard
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 A :
<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 A peut atteindre les machines du réseau B sans conflit d’adresses.
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 translation entre 192.168.1.x et 192.168.7.x, et le routeur A annonce ce réseau virtuel aux PC du dépanneur.
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 B est possible malgré l’usage identique de la plage d’adresses 192.168.1.0/24 sur les deux sites.
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)