- Ajouter page À propos bilingue (FR/EN) avec structure i18n appropriée - Supprimer fichiers presentation.md obsolètes des docs - Mettre à jour navigation : lien À propos dans navbar et footer - Uniformiser et traduire tags dans tout le contenu : - Traduire tags en français si approprié (automation -> automatisation, storage -> stockage, etc.) - Fusionner tags dupliqués (ha/high-availability -> haute-disponibilite, cluster/clustering -> cluster) - Supprimer tag configuration-management - Mettre à jour wifi/wireless/mesh-networking vers wifi/mesh - Mettre à jour networking/tunneling vers reseau/tunnels - Ajouter tags à tous les projets OpenClassrooms - Corriger bouton Documentation page d'accueil pour pointer vers première page doc
211 lines
8.4 KiB
Markdown
211 lines
8.4 KiB
Markdown
---
|
|
sidebar_position: 3
|
|
title: Tunnels GREtap pour VLANs
|
|
tags: [openwrt, gretap, vlan, reseau, tunnels]
|
|
---
|
|
|
|
# Tunnels GREtap pour VLANs à travers le mesh
|
|
|
|
Ce guide explique comment étendre des VLANs à travers le backhaul WiFi mesh en utilisant des tunnels GREtap.
|
|
|
|
## Prérequis
|
|
|
|
- Backhaul WiFi mesh configuré selon le [guide précédent](./backhaul-wifi-mesh.md)
|
|
- Les deux routeurs doivent pouvoir communiquer via l'interface mesh
|
|
- Accès à l'interface LuCI sur les deux routeurs
|
|
|
|
## Pourquoi GREtap plutôt que BATMAN-adv ?
|
|
|
|
Pour un réseau mesh composé de **seulement deux routeurs**, GREtap est préférable à BATMAN-adv pour plusieurs raisons :
|
|
|
|
### Avantages de GREtap dans ce scénario
|
|
|
|
1. **Point-à-point suffisant** : Avec deux routeurs, un tunnel point-à-point simple est suffisant. BATMAN-adv est conçu pour des topologies mesh complexes avec de nombreux nœuds et chemins redondants.
|
|
|
|
2. **Moins d'overhead** : GREtap a un overhead de protocole plus faible que BATMAN-adv. Avec seulement deux nœuds, les fonctionnalités avancées de routage mesh de BATMAN ne sont pas nécessaires.
|
|
|
|
3. **Simplicité de configuration** : GREtap est plus simple à configurer et à déboguer. Pas besoin de gérer les tables de routage mesh, les métriques de chemin, ou les algorithmes de sélection de route.
|
|
|
|
4. **Prévisibilité** : Le trafic emprunte toujours le même chemin (le tunnel direct). Pas de changements dynamiques de route.
|
|
|
|
5. **Support natif** : GREtap est largement supporté et documenté dans OpenWRT sans nécessiter de modules kernel additionnels complexes.
|
|
|
|
:::info BATMAN-adv : quand l'utiliser ?
|
|
BATMAN-adv devient intéressant quand vous avez :
|
|
- 3 nœuds mesh ou plus
|
|
- Plusieurs chemins possibles entre nœuds
|
|
- Besoin de redondance et de basculement automatique
|
|
- Topologie mesh dynamique avec nœuds mobiles
|
|
:::
|
|
|
|
## Installation des packages requis
|
|
|
|
Installez le package nécessaire sur **les deux routeurs** :
|
|
|
|
```bash
|
|
opkg update
|
|
opkg install luci-proto-gre
|
|
```
|
|
|
|
Ou via l'interface LuCI : **System → Software**, recherchez et installez `luci-proto-gre`.
|
|
|
|
## Configuration du tunnel GREtap
|
|
|
|
### Étape 1 : Créer l'interface GREtap
|
|
|
|
Sur **les deux routeurs**, créez une nouvelle interface GREtap :
|
|
|
|
1. Accédez à **Network → Interfaces → Add new interface**
|
|
2. Configurez les paramètres de base
|
|
|
|
**Paramètres de base** :
|
|
- **Name** : nom court (exemple : `gr`)
|
|
- **Protocol** : GRETAP (Ethernet over GRE)
|
|
|
|
:::danger Limitation de longueur des noms d'interface
|
|
OpenWRT créé automatiquement l'interface avec le préfixe `gretap-`. Par exemple, si vous nommez votre interface `trunk`, OpenWRT créera `gretap-trunk`.
|
|
|
|
**Problème** : Pour faire passer des VLANs, la notation sera `gretap-trunk.100`, ce qui fait **16 caractères** et dépasse la limite !
|
|
|
|
**Exemple problématique** :
|
|
- Interface nommée `trunk` → Device créé : `gretap-trunk` (13 caractères)
|
|
- VLAN 100 → `gretap-trunk.100` (16 caractères) ❌ **TROP LONG**
|
|
|
|
**Solution** : Utilisez un nom **très court** comme `gr`, `t`, ou `g`.
|
|
- Interface nommée `gr` → Device créé : `gretap-gr` (9 caractères)
|
|
- VLAN 100 → `gretap-gr.100` (13 caractères) ✅ **OK**
|
|
|
|
:::
|
|
|
|
:::info Origine de cette limitation
|
|
Les noms d'interface réseau sous Linux sont stockés dans une structure qui utilise un tableau de 16 octets. Ce tableau inclut le terminateur nul `\0`, donc la longueur maximale d'un nom d'interface réseau est de **15 caractères** (16 - 1 = 15).
|
|
:::
|
|
|
|
**Paramètres du tunnel (General Settings)** :
|
|
- **Remote IPv4 address or FQDN** : IP de l'autre routeur sur l'interface mesh
|
|
- **Local IPv4 address** : IP de ce routeur sur l'interface mesh
|
|
|
|

|
|
|
|
**Options avancées (Advanced Settings)** :
|
|
|
|
Il est important de configurer les options avancées correctement :
|
|
|
|
- ⬜ **Use TTL on tunnel interface** : laisser décoché
|
|
- ⬜ **Use PMTU discovery** : laisser décoché (équivalent à **Don't fragment**)
|
|
- ⬜ **Default gateway** : DÉCOCHER cette option (important !)
|
|
- **Bind interface** : sélectionner l'interface mesh (par exemple `lan`)
|
|
|
|

|
|
|
|
:::tip Pourquoi décocher ces options ?
|
|
- **PMTU discovery / Don't fragment** : Le trafic WiFi mesh peut nécessiter de la fragmentation. Autoriser la fragmentation évite les pertes de paquets.
|
|
- **Default gateway** : Le tunnel GREtap ne doit pas devenir la passerelle par défaut du routeur.
|
|
:::
|
|
|
|
## Extension des VLANs à travers le tunnel
|
|
|
|
### Principe
|
|
|
|
Pour faire passer un VLAN à travers le tunnel GREtap, il faut créer un **bridge device** qui contient :
|
|
- Le port physique ou l'interface VLAN locale
|
|
- Le port GREtap VLAN correspondant
|
|
|
|
La notation utilisée pour un port GREtap VLAN est : `@<nom_device_gretap>.<numero_vlan>`
|
|
|
|
**Exemple** : Pour le VLAN 100 avec un tunnel nommé `gr` (device : `gretap-gr`) → `@gretap-gr.100`
|
|
|
|
### Configuration sur le routeur principal
|
|
|
|
#### Étape 1 : Créer le bridge device pour le VLAN
|
|
|
|
1. Accédez à **Network → Interfaces → Devices → Add device configuration**
|
|
2. Créez un **Bridge device** :
|
|
|
|
**Configuration du bridge** :
|
|
- **Device type** : Bridge device
|
|
- **Device name** : `br-lab` (ou nom descriptif pour votre VLAN)
|
|
- **Bridge ports** : Ajouter les ports suivants :
|
|
- Le port physique ou VLAN local (exemple : `lan3` pour un port physique)
|
|
- Le port GREtap VLAN : `@gretap-gr.100` (adapter selon votre device et numéro VLAN)
|
|
|
|

|
|
|
|
#### Étape 2 : Créer l'interface réseau pour le VLAN
|
|
|
|
1. **Network → Interfaces → Add new interface**
|
|
2. Configurez l'interface :
|
|
|
|
**Paramètres (General Settings)** :
|
|
- **Name** : `LAB` (ou nom descriptif)
|
|
- **Protocol** : Static address
|
|
- **Device** : Sélectionner le bridge créé précédemment (`br-lab`)
|
|
- **IPv4 address** : L'adresse IP de ce routeur sur le VLAN (exemple : `192.168.100.1`)
|
|
- **IPv4 netmask** : Le masque du VLAN (exemple : `255.255.255.0`)
|
|
|
|

|
|
|
|
**Serveur DHCP (DHCP Server)** :
|
|
|
|
Configurez le serveur DHCP pour ce VLAN afin de distribuer des IPs aux clients :
|
|
|
|

|
|
|
|
**Firewall Settings** :
|
|
|
|
Assignez l'interface à une zone firewall appropriée (exemple : `homelab_zone` ou créer une nouvelle zone) :
|
|
|
|

|
|
|
|
:::tip Static DHCP Leases
|
|
Une fois que le Dumb AP récupère une IP via DHCP sur ce VLAN, vous pouvez configurer un **static DHCP lease** pour lui assigner une IP fixe.
|
|
|
|
Exemple : mettre le Dumb AP à l'IP `.2` sur chaque VLAN pour une configuration cohérente (exemple : `192.168.100.2`).
|
|
:::
|
|
|
|
Répétez cette configuration pour chaque VLAN à étendre à travers le tunnel.
|
|
|
|
### Configuration sur le Dumb AP
|
|
|
|
Sur le second routeur (Dumb AP), les interfaces VLAN doivent être configurées en **DHCP client** pour récupérer automatiquement une IP sur chaque VLAN.
|
|
|
|
1. **Network → Interfaces → Add new interface**
|
|
2. Configurez l'interface :
|
|
- **Name** : `vlan100` (ou nom descriptif)
|
|
- **Protocol** : DHCP client
|
|
- **Device** : `@gretap-gr.100` (le port GREtap VLAN)
|
|
|
|
Le Dumb AP récupérera automatiquement une adresse IP du serveur DHCP du routeur principal sur ce VLAN.
|
|
|
|
### Exemple de configuration multi-VLAN
|
|
|
|
**Configuration typique** :
|
|
- VLAN 10 (Management) → `@gretap-gr.10`
|
|
- VLAN 100 (Homelab) → `@gretap-gr.100`
|
|
- VLAN 200 (IoT) → `@gretap-gr.200`
|
|
|
|
Chaque VLAN traverse le tunnel GREtap de manière transparente et isolée.
|
|
|
|
## Vérification et tests
|
|
|
|
### Tests de connectivité
|
|
|
|
Depuis le Dumb AP, testez la connectivité sur chaque VLAN :
|
|
|
|
```bash
|
|
# Ping vers la passerelle du VLAN 100
|
|
ping -I vlan100 192.168.100.1
|
|
|
|
# Vérifier l'obtention d'une IP via DHCP
|
|
ip addr show dev gretap-gr.100
|
|
```
|
|
|
|
Depuis le routeur principal, vérifiez que le Dumb AP apparaît dans les baux DHCP :
|
|
|
|
- **Network → Interfaces → LAB → DHCP Server → Active DHCP Leases**
|
|
|
|
## Conclusion
|
|
|
|
Avec GREtap, vous pouvez étendre efficacement vos VLANs à travers un backhaul WiFi mesh entre deux routeurs OpenWRT. Cette solution offre un bon compromis entre simplicité, performance et fonctionnalité pour des topologies point-à-point.
|
|
|
|
Pour des réseaux mesh plus complexes avec 3 nœuds ou plus, considérez l'utilisation de BATMAN-adv qui offre des fonctionnalités de routage mesh plus avancées.
|