--- sidebar_position: 3 title: Tunnels GREtap pour VLANs --- # 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 ![Configuration interface GREtap](/img/openwrt/interface-gretap.png) **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`) ![Configuration paramètres avancés GREtap](/img/openwrt/interface_gretap_parametresavance.png) :::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 : `@.` **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) ![Bridge device avec port GREtap](/img/openwrt/bridge_device_lab_avec_port_gretap.png) #### É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`) ![Interface VLAN avec bridge en device](/img/openwrt/interface_vlan_lab_avec_bridge_en_device.png) **Serveur DHCP (DHCP Server)** : Configurez le serveur DHCP pour ce VLAN afin de distribuer des IPs aux clients : ![Configuration DHCP du VLAN](/img/openwrt/interface_vlan_lab_dhcp_sur_routeur_maitre.png) **Firewall Settings** : Assignez l'interface à une zone firewall appropriée (exemple : `homelab_zone` ou créer une nouvelle zone) : ![Configuration firewall zone](/img/openwrt/interface_vlan_lab_firewallzone.png) :::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.