Tunnel IP
En cours de rédaction
Définitions
Nous allons ici définir les termes et concepts utilisés sur Tunnel-IP.com.
Tunnel
Un tunnel est une connexion virtuelle entre deux sites distants. Il encapsule les paquets de données d'un protocole réseau dans un autre, créant un lien point-à-point à travers Internet.
Sur Tunnel-IP.com, les tunnels permettent de router des adresses IP publiques vers votre infrastructure, comme si vos machines étaient directement connectées à Internet avec leurs propres IPs.
Tunnel Layer 3 (L3)
Un tunnel L3 transporte des paquets IP. Chaque côté du tunnel possède une IP interne (ex : 100.64.0.5 côté plateforme, 100.64.0.6 côté client). Les subnets publics sont routés à travers le tunnel.
Protocoles disponibles : GRE, IPIP, Wireguard...
Cas d'usage : attribution d'IPs publiques via routage, NAT 1:1, sessions BGP.
Tunnel Layer 2 (L2)
Un tunnel L2 transporte des trames Ethernet complètes, comme un câble Ethernet virtuel entre deux sites. Les machines de chaque côté sont sur le même réseau local.
Protocoles disponibles : VXLAN, GRETAP, L2TPv3...
Cas d'usage : bridging de réseaux distants, attribution directe d'IPs publiques aux machines sans NAT ni routage complexe.
Endpoint
L'endpoint est l'IP publique de votre routeur (ou de votre box). C'est l'adresse à laquelle la plateforme Tunnel-IP.com envoie les paquets encapsulés. Si votre routeur est derrière un NAT, l'endpoint est l'IP publique de la box, et vous devez configurer une redirection (port ou DMZ) selon le protocole utilisé.
Subnet
Un subnet (sous-réseau) est un bloc d'adresses IP publiques attribué à votre compte.
Sur Tunnel-IP.com, un subnet est assigné à un tunnel L3 ou à un bridge (pour les tunnels L2). Vous pouvez diviser un subnet en blocs plus petits afin de les répartir sur différents tunnels ou bridges.
Pour les tunnels L3
Le subnet est routé vers l'IP interne de votre côté du tunnel. Vous devez ensuite configurer le routage côté client (LAN public, NAT 1:1, ou routage en /32).
Pour les tunnels L2 (via un bridge)
Le subnet est assigné au bridge. La première IP du subnet est automatiquement utilisée comme gateway côté plateforme. Vos machines utilisent les IPs restantes directement, comme sur un réseau local classique.
Exemple : pour le subnet 198.51.100.0/29 :
| Adresse | Rôle |
|---|---|
198.51.100.0 |
Adresse réseau (inutilisable) |
198.51.100.1 |
Gateway plateforme (réservée) |
198.51.100.2 à .6 |
IPs utilisables pour vos machines |
198.51.100.7 |
Adresse broadcast (inutilisable) |
Bridge
Un bridge est un switch virtuel sur la plateforme Tunnel-IP.com. Il permet de connecter et regrouper plusieurs tunnels de type Layer 2 (VXLAN, GRETAP, L2TPv3) au sein d'un même réseau Ethernet.
Lorsque vous créez un bridge, tous les tunnels L2 qui y sont rattachés peuvent communiquer entre eux comme s'ils étaient branchés sur le même switch physique. Les subnets sont également assignés au bridge, et la première IP sert de gateway.
Exemple d'architecture :
[Machine Paris] ← VXLAN → [Bridge plateforme] ← GRETAP → [Machine Lyon]
↑
Subnet public
GW: 198.51.100.1
Les machines à Paris et Lyon sont sur le même réseau L2 et partagent le même subnet public.
ASN (Autonomous System Number)
Un ASN est un numéro unique attribué par un RIR (RIPE, ARIN, APNIC, etc.) qui identifie votre réseau sur Internet dans le cadre du protocole BGP.
Sur Tunnel-IP.com, vous pouvez enregistrer votre ASN sur panel.tunnel-ip.com/asn/ en renseignant votre AS-SET (ensemble de préfixes autorisés). Cela permet à la plateforme de valider automatiquement les préfixes que vous êtes autorisé à annoncer.
Si vous n'avez pas d'ASN, vous pouvez utiliser celui de Tunnel-IP.com dans le cadre d'une session BGP autogérée.
Session BGP
BGP (Border Gateway Protocol) est le protocole de routage utilisé sur Internet pour échanger des préfixes IP entre systèmes autonomes. Sur Tunnel-IP.com, une session BGP vous permet d'annoncer vos propres préfixes IP à travers notre infrastructure.
Session normale
Une session BGP classique établie à travers un tunnel L3. Vous configurez un démon BGP (BIRD, FRR, etc.) sur votre routeur, et vous échangez des préfixes directement avec les routeurs de Tunnel-IP.com via les IPs internes du tunnel (ex : 100.64.0.5 ↔ 100.64.0.6).
→ Vous avez un contrôle total sur vos annonces.
Session autogérée
Un routeur virtuel entièrement géré par Tunnel-IP.com. Nous annonçons vos préfixes avec votre ASN (ou le nôtre) et les routons statiquement vers le tunnel de votre choix. Aucune configuration BGP n'est nécessaire de votre côté.
→ Idéal si vous souhaitez annoncer vos IPs simplement, sans gérer BGP.
Les sessions BGP sont créées sur demande via ticket. Consultez la documentation BGP pour plus de détails.
Route Object
Un route object est un enregistrement dans une base IRR (Internet Routing Registry, comme RIPE DB ou RADB) qui déclare qu'un ASN est autorisé à annoncer un préfixe IP donné. C'est un prérequis indispensable pour toute annonce BGP.
Exemple : un route object déclarant que AS211615 est autorisé à annoncer 203.0.113.0/24.
LOA (Letter of Authorization)
Une LOA est un document signé par le titulaire d'un bloc d'IPs autorisant un tiers (vous ou Tunnel-IP.com) à annoncer ses préfixes. Elle est nécessaire lorsque les préfixes que vous souhaitez annoncer ne vous appartiennent pas directement.
MTU (Maximum Transmission Unit)
La MTU est la taille maximale d'un paquet pouvant être transmis sans fragmentation. Chaque type de tunnel ajoute un overhead (en-têtes supplémentaires), ce qui réduit la MTU effective :
| Protocole | Overhead | MTU recommandée |
|---|---|---|
| IPIP | 20 octets | 1480 |
| GRE | 24 octets | 1476 |
| GRETAP | 38 octets | 1462 |
| VXLAN | 50 octets | 1450 |
| Wireguard | 80 octets | 1420 |
| L2TPv3 (UDP) | ~36 octets | ~1464 |
| L2TPv3 (IP) | ~12 octets | ~1488 |
Sur Tunnel-IP.com, vous pouvez définir la MTU lors de la création du tunnel, ou laisser la plateforme la choisir automatiquement (-1).
L'interface
L'interface de Tunnel-IP.com
Ici nous allons vous apprendre à utiliser l'interface de Tunnel-IP.com pour gérer vos tunnels.
Le dashboard :
Sur cette page vous avez une visualisation complète de votre infrastructure tunnel.
Vous y retrouverez en #1 le nombre de tunnels utilisé par rapport à votre souscription, et en #2, #3 et #4 la même chose pour les subnets, sessions BGP et bridges
En #5, #6 et #7 vous avez finalement la liste succinte de vos tunnels, subnets & bridges
Page Tunnels :
Sur cette page vous retrouvez la création et la visualisation de vos tunnels, en #1 la liste de vos tunnels et la possiblité d'accéder aux informations concernant ce tunnel ainsi que de le modifier
Vous avez ensuite en #2 la possibilité d'ajouter un nouveau tunnel, il vous suffit de choisir le type de tunnel désiré avec #3
Page Subnets :
Sur cette page, vous avez toujours la liste des subnets (#1) ainsi que l'ajout (#2), mais vous avez aussi la liste des subnets que vous avez le droit d'utiliser (#3)
Page BGP :
Page Bridges :
Configuration
Tunnel L3 - GRE
1. Introduction : Pourquoi utiliser GRE ?
1.1. À quoi sert un tunnel GRE ?
Un tunnel GRE (Generic Routing Encapsulation) permet de créer un lien direct et sécurisé entre deux réseaux distants, comme si ils étaient connectés localement. Exemple concret :
- Vous avez un réseau local derrière une box opérateur standard.
- Vous voulez une IP publique sur une ou des machines sur votre réseau local
1.2. Avantages de GRE
- Simple à configurer.
- Protocole léger
- Compatible avec presque tous les routeurs.
1.3. Inconvénients
- Pas de chiffrement natif.
- Nécessite une configuration manuelle du routage.
2. Prérequis
2.1. Ce dont vous avez besoin
- Une IP publique (ou une redirection de port si derrière une box).
- Un routeur compatible GRE (Linux, MikroTik, Cisco, etc.).
- Un service Tunnel-IP.
2.2. Ports et NAT
- GRE n'est ni UDP, ni TCP (protocole 47).
- Si le routeur final est derrière une box / NAT, il faut rediriger le GRE vers le routeur final, certaines box ont des ALG automatiques, mais il est souvent préférable de configurer une DMZ.
3. Étape 1 : Créer le tunnel sur Tunnel-IP.com
3.1. Accéder au tableau de bord
- Connectez-vous à panel.tunnel-ip.com
- Allez dans "Tunnels" > "GRE".
- Remplissez les informations :
- Validez. La plateforme s'occupera de choisir les IPs et de configurer le tunnel côté Tunnel-IP.com.
- Attendez que le tunnel soit créé
- Cliquez sur "Accéder" pour récupérer les détails du tunnel
3.2. Créer le subnet (Route côté plateforme)
1. Allez dans "Subnets"
2. Copiez le bloc d'IP publique et collez le dans le formulaire
3. Cliquez sur Créer
4. Une fois son statut à "Actif", la route est correctement installée sur les routeurs de la plateforme, il ne vous reste plus qu'à configurer le tunnel
4. Étape 2 : Configurer le tunnel
4.1. Exemple pour Linux (Ubuntu/Debian)
Étapes :
- Activer le forwarding IP (pour permettre le routage) :
echo 1 > /proc/sys/net/ipv4/ip_forward
(Pour rendre permanent, ajouteznet.ipv4.ip_forward=1dans/etc/sysctl.conf.) - Créer l’interface tunnel :
ip tunnel add tunnel0 mode gre remote 172.16.126.33 ip link set tunnel0 uptunnel0: Nom de l’interface tunnel.remote 172.16.126.33: IP distante (Tunnel-IP.com).
- Assigner une IP au tunnel :
ip addr add 100.64.0.6/30 dev tunnel0 ip -6 addr add fd00:42:cafe:1::2/64 dev tunnel0100.64.0.6/30: IP locale du tunnel (ex :100.64.0.5/30est côté plateforme).fd00:42:cafe:1::2/64: IPv6 Interne client
4.2. Exemple pour MikroTik
Étapes :
- Créer l’interface GRE :
/interface/gre/add remote-address=172.16.126.33 name=tun4 - Assigner une IP au tunnel :
/ip/address/add address=100.64.0.6/30 interface=tun4 /ipv6/address/add address=fd00:42:cafe:1::2/64 interface=tun4
4.3. Exemple pour Cisco (IOS/XE)
Étapes :
- Accéder au mode configuration :
enable configure terminal - Créer l’interface tunnel :
interface Tunnel0 tunnel source 192.168.1.1 # IP locale du routeur tunnel destination 172.16.126.33 # IP distante tunnel mode gre ip ip address 100.64.0.5 255.255.255.252 # IP locale du tunnelTunnel0: Nom de l’interface tunnel.tunnel mode gre ip: Active le mode GRE pour IPv4.
- Activer l’interface :
no shutdown exit - Sauvegarder la configuration :
write memory
4.4. Exemple pour Arista (EOS)
Étapes :
- Accéder au mode configuration :
enable configure terminal - Créer l’interface tunnel :
interface Tunnel0 tunnel source 192.168.1.1 # IP locale du routeur tunnel destination 172.16.126.33 # IP distante tunnel mode gre ip ip address 100.64.0.5/30 # IP locale du tunnel- La syntaxe est très proche de Cisco, mais EOS est plus réactif pour les changements dynamiques.
- Activer l’interface :
no shutdown exit - Sauvegarder la configuration :
write memory
4.5. Exemple pour Juniper (JunOS)
Étapes :
- Accéder au mode configuration :
edit - Créer l’interface tunnel :
set interfaces gr-0/0/0 tunnel source 192.168.1.1 set interfaces gr-0/0/0 tunnel destination 172.16.126.33 set interfaces gr-0/0/0 family inet address 100.64.0.6/30gr-0/0/0: Nom de l’interface GRE (peut varier selon le modèle).- Juniper utilise une syntaxe hiérarchique et des "commit" pour appliquer les changements.
- Activer l’interface :
commit
5. Étape 3 : Router les IP publiques vers le tunnel
5.1. Pourquoi ?
La plateforme vous route un bloc d’IP publiques (ex : 198.51.100.0/30) sur votre IP interne du tunnel, afin que ces IPs fonctionnent correctement, vous devez router ce bloc d'IP sur votre réseau et le trafic sortant par le tunnel.
Pour cela, 3 principales méthodes d'offrent à vous :
- NAT 1:1 (1 IP publique → 1 IP privée)
- LAN public (utilisation directe des IPs publiques)
- Routage en /32 (1 IP publique par machine)
5.2. Rappel : Architecture du Tunnel
Internet → [Infrastructure Tunnel-IP.com] → (Tunnel GRE) → [Votre Routeur] → [Votre Réseau]
- La plateforme vous route un bloc public (ex:
198.51.100.0/30). - Votre routeur doit gérer ce bloc pour exposer vos services.
5.3. Cas d’Usage du Bloc /30
Un /30 contient 4 adresses IP :
198.51.100.0: Adresse réseau (inutilisable en LAN).198.51.100.1: IP Utilisable198.51.100.2: IP Utilisable198.51.100.3: Adresse broadcast (inutilisable en LAN).
5.4. Méthode 1 : NAT 1:1 (Translation 1 IP publique → 1 IP privée)
Avantages principaux : Permet de ne pas avoir à modifier l'adressage privé de votre réseau, et permet d'utiliser l'IP de réseau et broadcast.
Inconvénients : Adressage moins clair (Conversion IP publique -> privée), charge plus lourde sur le routeur (Le routeur est en charge de la translation NAT)
Schéma :
Internet → Infrastructure Tunnel-IP.com → [Votre Routeur] 198.51.100.0 → 192.168.1.100 (Privée)
Configurations :
Linux :
# Activer l'IP Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Ajouter l'IP sur une interface (on utilise la loopback par exemple)
ip a add 198.51.100.0/32 dev lo
# 1:1 Static NAT
iptables -t nat -A PREROUTING -d 198.51.100.0 -j DNAT --to-destination 192.168.1.100
iptables -t nat -A POSTROUTING -s 192.168.1.100 -j SNAT --to-source 198.51.100.0
MikroTik :
/ip address add address=198.51.100.0/32 interface=eth0
/ip firewall nat add chain=dstnat dst-address=198.51.100.0 action=dst-nat to-addresses=192.168.1.100
/ip firewall nat add chain=srcnat src-address=192.168.1.100 action=src-nat to-addresses=198.51.100.0
Cisco :
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.0
ip nat inside
interface GigabitEthernet0/1
ip address 198.51.100.0 255.255.255.255
ip nat outside
ip nat inside source static 192.168.1.100 198.51.100.0
Arista :
interface Ethernet1
ip address 192.168.1.1/24
ip nat inside
interface Ethernet2
ip address 198.51.100.0/32
ip nat outside
ip nat inside source static 192.168.1.100 198.51.100.0
Juniper :
set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/24
set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.0/32
set security nat source rule-set OUTBOUND rule NAT1 match source-address 192.168.1.100/32
set security nat source rule-set OUTBOUND rule NAT1 then source-nat address 198.51.100.0
set security nat destination pool DNAT_POOL address 192.168.1.100/32
set security nat destination rule-set INBOUND rule NAT1 match destination-address 198.51.100.0/32
set security nat destination rule-set INBOUND rule NAT1 then destination-nat pool DNAT_POOL
5.5 Méthode 2 : LAN Public (Utilisation directe des IPs publiques)
Avantages principaux : Adressage propre, explicite
Inconvénients : Perte de 2 IPs utilisables (IP de réseau et IP de broadcast) + 1 IP est forcément assignée au routeur.
(Attention : Avec un /30 en LAN, vous n’avez qu’une seule IP utilisable. Pour plus d’IPs, prenez un bloc plus grand, ex: /29. ou faites du NAT 1:1 ou attribution en /32)
Configurations :
Linux :
# Assigner l’IP de la passerelle (votre routeur)
ip addr add 198.51.100.1/30 dev eth1
MikroTik :
/ip address add address=198.51.100.1/30 interface=ether1
Cisco :
interface GigabitEthernet0/1
ip address 98.51.100.1 255.255.255.252
no shutdown
Juniper :
set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.1/30
5.6. Méthode 3 : Routage en /32 (1 IP publique par machine)
Avantages principaux : Adressage propre, explicite, aucune perte d'IP
Inconvénients : Non supporté par Windows, mal supporté par certains routeurs / OS, 100% du trafic passe par le routeur
Configurations :
Linux :
# Sur le routeur :
ip route add 198.51.100.0/30 dev eth0 # eth0 = interface vers la Machine A
# Sur la Machine A :
ip addr add 203.0.113.1/32 dev eth0
ip route add default via 192.168.1.100 dev eth0 # IP de votre routeur local
# Si error lors de l'ajout de la route, il faut ajouter une règle :
# ip route add 192.168.1.100 dev eth0
MikroTik :
/ip route add dst-address=198.51.100.0/30 interface=LAN
# Sur la Machine A :
# Pareil que pour Linux, IP : 198.51.100.1 Gateway 192.168.1.100
Cisco :
ip route 198.51.100.0 255.255.255.252 GigabitEthernet0/0/1
Juniper :
set routing-options static route 198.51.100.0/30 interface ge-0/0/1
5.7. Router le trafic sortant par le tunnel
Si vous ne faites pas cette étape, les IPs ne fonctionneront pas
Linux (ip route + policy routing)
# Création d'une table de routage
echo "142 tunnel" >> /etc/iproute2/rt_tables
# Routage vers l'extérieur via l'IP locale de la plateforme
ip route add default via 100.64.0.5 table tunnel
# Tout le trafic en provenance de nos IPs publiques, sortent via le tunnel
ip rule add from 198.51.100.0/30 table tunnel
Effet :
Tout hôte du réseau 198.51.100.0/30 sort par le tunnel, les autres via la gateway par défaut.
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec :
ip link add vrf-GRE type vrf table 142 # On créer la VRF
ip link set dev tunnel0 master vrf-GRE # On ajoute le tunnel dans la VRF
ip route add default via 100.64.0.5 table 142 # On ajoute la route par défaut
ip link set dev eth0 master vrf-GRE # On ajoute notre interface LAN dans la VRF (Attention si elle est partagée avec votre réseau local, le réseau local ne marchera plus, pour cela vous pouvez créer une interface dummy ou utiliser une interface séparée)
MikroTik
/routing/table/add name=GRE-OUT fib
/routing/rule/add action=lookup-only-in-table table=GRE-OUT src-address=198.51.100.0/30
/ip route add dst-address=0.0.0.0/0 gateway=100.64.0.5 routing-table=GRE-OUT
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec :
/ip/vrf add name=GRE-VRF interfaces=gre1,ether1
/ip route add routing-table=GRE-VRF dst-address=0.0.0.0/0 gateway=100.64.0.5
Cisco
ip access-list extended GRE-OUT
permit ip 198.51.100.0 0.0.0.3 any
route-map GRE-ROUTE permit 10
match ip address GRE-OUT
set ip next-hop 100.64.0.5
interface GigabitEthernet0/0
ip policy route-map GRE-ROUTE
📌 On applique l’ACL sur l’interface LAN → tout ce bloc sort vers Tunnel0.
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec
vrf definition OUT-GRE
rd 100:1
!
address-family ipv4
exit-address-family
!
interface Tunnel0
vrf forwarding OUT-GRE
!
interface GigabitEthernet0/0/1
vrf forwarding OUT-GRE
!
! Default route de la VRF vers le vrai Next-Hop
ip route vrf OUT-GRE 0.0.0.0 0.0.0.0 100.64.0.5
La syntaxe Cisco peux varier selon les versions de l'OS
Arista
ip access-list GRE-OUT
10 permit ip 198.51.100.0/30 any
route-map GRE-PBR permit 10
match ip address GRE-OUT
set ip next-hop 100.64.0.5 # IP tunnel remote
interface Ethernet1
ip policy route-map GRE-PBR
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec
vrf instance GRE-VRF
interface Tunnel0
vrf GRE-VRF
interface Eth1
vrf GRE-VRF
ip route vrf GRE-VRF 0.0.0.0/0 10.64.0.5
Juniper
set routing-instances GRE-VRF instance-type virtual-router
set routing-instances GRE-VRF interface gr-0/0/0.0
set routing-instances GRE-VRF routing-options static route 0.0.0.0/0 next-hop 100.64.0.5
set firewall family inet filter PBR term GRE from source-address 198.51.100.0/30
set firewall family inet filter PBR term GRE then routing-instance GRE-VRF
set firewall family inet filter PBR term DEFAULT then accept
set interfaces ge-0/0/1 unit 0 family inet filter input PBR
📌 Le trafic matché bascule dans la VRF = sortie via GRE.
6. Commandes spécifiques par constructeur
Constructeur | Commande pour vérifier le tunnel | Commande pour vérifier le routage |
|---|---|---|
Cisco |
|
|
Arista |
|
|
Juniper |
|
|
Linux |
|
|
MikroTik |
|
|
7. Vérification et Dépannage
7.1. Tester la connectivité
- Depuis votre routeur :
ping 100.64.0.5 # Ping de l'ip distante du tunnel- Depuis une machine locale :
ping 8.8.8.8 # Vérification internet curl -4 ifconfig.me # Vérification de l'IP sortante
7.2. Problèmes courants
Symptôme | Cause Possible | Solution |
|---|---|---|
Le tunnel ne répond pas | Port 47 bloqué | Vérifiez la redirection sur votre box |
Les IPs publiques ne pingent pas | Route manquante ou NAT mal configuré | Vérifiez |
Latence élevée / Pertes de paquets | MTU trop grande | Réduisez la MTU : |
8. Bonnes Pratiques
- Sécurité :
- Filtrez le trafic entrant avec un pare-feu (ex:
iptablesou ACL Cisco).
- Filtrez le trafic entrant avec un pare-feu (ex:
- Performance :
- Réduisez la MTU à
1476pour éviter la fragmentation. - Activez le keepalive sur le tunnel (ex:
keepalive 10 3sur Cisco).
- Réduisez la MTU à
- Redondance :
- Configurez un deuxième tunnel GRE pour le failover.
9. Prochaines Étapes
- XXXXX
Tunnel L3 - IPIP
1. Introduction : Pourquoi utiliser IPIP ?
1.1. À quoi sert un tunnel IPIP ?
Un tunnel IPIP (IP-in-IP) permet de créer un lien direct entre deux réseaux distants en encapsulant des paquets IP dans d'autres paquets IP. C'est le tunnel le plus simple et le plus léger qui existe. Exemple concret :
- Vous avez un réseau local derrière une box opérateur standard.
- Vous voulez une IP publique sur une ou des machines sur votre réseau local
1.2. Avantages de IPIP
- Extrêmement simple à configurer.
- Overhead minimal (seulement 20 octets d'en-tête supplémentaire).
- Compatible avec la plupart des routeurs et systèmes d'exploitation.
1.3. Inconvénients
- Pas de chiffrement natif.
- Pas de support de clé (contrairement à GRE).
- Supporte uniquement IPv4-in-IPv4 (pour IPv6-in-IPv4, utilisez SIT).
- Nécessite une configuration manuelle du routage.
2. Prérequis
2.1. Ce dont vous avez besoin
- Une IP publique (ou une redirection de port si derrière une box).
- Un routeur compatible IPIP (Linux, MikroTik, Cisco, etc.).
- Un service Tunnel-IP.
2.2. Ports et NAT
- IPIP n'est ni UDP, ni TCP (protocole 4).
- Si le routeur final est derrière une box / NAT, il faut rediriger le protocole IPIP vers le routeur final, certaines box ont des ALG automatiques, mais il est souvent préférable de configurer une DMZ.
3. Étape 1 : Créer le tunnel sur Tunnel-IP.com
3.1. Accéder au tableau de bord
- Connectez-vous à panel.tunnel-ip.com
- Allez dans "Tunnels" > "IPIP".
- Remplissez les informations :
- Nom du tunnel (ex :
Tunnel_X). - Endpoint (IP publique du routeur / box, ex :
203.0.113.1).
- Nom du tunnel (ex :
- Validez. La plateforme s'occupera de choisir les IPs et de configurer le tunnel côté Tunnel-IP.com.
- Attendez que le tunnel soit créé
- Cliquez sur "Accéder" pour récupérer les détails du tunnel
3.2. Créer le subnet (Route côté plateforme)
1. Allez dans "Subnets"
2. Copiez le bloc d'IP publique et collez le dans le formulaire
3. Cliquez sur Créer
4. Une fois son statut à "Actif", la route est correctement installée sur les routeurs de la plateforme, il ne vous reste plus qu'à configurer le tunnel
4. Étape 2 : Configurer le tunnel
4.1. Exemple pour Linux (Ubuntu/Debian)
Étapes :
-
Activer le forwarding IP (pour permettre le routage) :
echo 1 > /proc/sys/net/ipv4/ip_forward(Pour rendre permanent, ajoutez
net.ipv4.ip_forward=1dans/etc/sysctl.conf*.)* -
Créer l'interface tunnel :
ip tunnel add tunnel0 mode ipip remote 172.16.126.33 ip link set tunnel0 uptunnel0: Nom de l'interface tunnel.remote 172.16.126.33: IP distante (Tunnel-IP.com).
-
Assigner une IP au tunnel :
ip addr add 100.64.0.6/30 dev tunnel0100.64.0.6/30: IP locale du tunnel (ex :100.64.0.5/30est côté plateforme).
4.2. Exemple pour MikroTik
Étapes :
- Créer l'interface IPIP :
/interface/ipip/add remote-address=172.16.126.33 name=tun4 - Assigner une IP au tunnel :
/ip/address/add address=100.64.0.6/30 interface=tun4
4.3. Exemple pour Cisco (IOS/XE)
Étapes :
-
Accéder au mode configuration :
enable configure terminal -
Créer l'interface tunnel :
interface Tunnel0 tunnel source 192.168.1.1 # IP locale du routeur tunnel destination 172.16.126.33 # IP distante tunnel mode ipip ip address 100.64.0.6 255.255.255.252 # IP locale du tunnelTunnel0: Nom de l'interface tunnel.tunnel mode ipip: Active le mode IPIP.
-
Activer l'interface :
no shutdown exit -
Sauvegarder la configuration :
write memory
4.4. Exemple pour Arista (EOS)
Étapes :
-
Accéder au mode configuration :
enable configure terminal -
Créer l'interface tunnel :
interface Tunnel0 tunnel source 192.168.1.1 # IP locale du routeur tunnel destination 172.16.126.33 # IP distante tunnel mode ipip ip address 100.64.0.6/30 # IP locale du tunnel- La syntaxe est très proche de Cisco, mais EOS est plus réactif pour les changements dynamiques.
-
Activer l'interface :
no shutdown exit -
Sauvegarder la configuration :
write memory
4.5. Exemple pour Juniper (JunOS)
Étapes :
-
Accéder au mode configuration :
edit -
Créer l'interface tunnel :
set interfaces ip-0/0/0 tunnel source 192.168.1.1 set interfaces ip-0/0/0 tunnel destination 172.16.126.33 set interfaces ip-0/0/0 family inet address 100.64.0.6/30ip-0/0/0: Nom de l'interface IPIP (peut varier selon le modèle).- Juniper utilise une syntaxe hiérarchique et des "commit" pour appliquer les changements.
-
Activer l'interface :
commit
5. Étape 3 : Router les IP publiques vers le tunnel
5.1. Pourquoi ?
La plateforme vous route un bloc d'IP publiques (ex : 198.51.100.0/30) sur votre IP interne du tunnel, afin que ces IPs fonctionnent correctement, vous devez router ce bloc d'IP sur votre réseau et le trafic sortant par le tunnel.
Pour cela, 3 principales méthodes s'offrent à vous :
- NAT 1:1 (1 IP publique → 1 IP privée)
- LAN public (utilisation directe des IPs publiques)
- Routage en /32 (1 IP publique par machine)
5.2. Rappel : Architecture du Tunnel
Internet → [Infrastructure Tunnel-IP.com] → (Tunnel IPIP) → [Votre Routeur] → [Votre Réseau]
- La plateforme vous route un bloc public (ex:
198.51.100.0/30). - Votre routeur doit gérer ce bloc pour exposer vos services.
5.3. Cas d'Usage du Bloc /30
Un /30 contient 4 adresses IP :
198.51.100.0: Adresse réseau (inutilisable en LAN).198.51.100.1: IP Utilisable198.51.100.2: IP Utilisable198.51.100.3: Adresse broadcast (inutilisable en LAN).
5.4. Méthode 1 : NAT 1:1 (Translation 1 IP publique → 1 IP privée)
Avantages principaux : Permet de ne pas avoir à modifier l'adressage privé de votre réseau, et permet d'utiliser l'IP de réseau et broadcast.
Inconvénients : Adressage moins clair (Conversion IP publique -> privée), charge plus lourde sur le routeur (Le routeur est en charge de la translation NAT)
Schéma :
Internet → Infrastructure Tunnel-IP.com → [Votre Routeur] 198.51.100.0 → 192.168.1.100 (Privée)
Configurations :
Linux :
# Activer l'IP Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Ajouter l'IP sur une interface (on utilise la loopback par exemple)
ip a add 198.51.100.0/32 dev lo
# 1:1 Static NAT
iptables -t nat -A PREROUTING -d 198.51.100.0 -j DNAT --to-destination 192.168.1.100
iptables -t nat -A POSTROUTING -s 192.168.1.100 -j SNAT --to-source 198.51.100.0
MikroTik :
/ip address add address=198.51.100.0/32 interface=eth0
/ip firewall nat add chain=dstnat dst-address=198.51.100.0 action=dst-nat to-addresses=192.168.1.100
/ip firewall nat add chain=srcnat src-address=192.168.1.100 action=src-nat to-addresses=198.51.100.0
Cisco :
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.0
ip nat inside
interface GigabitEthernet0/1
ip address 198.51.100.0 255.255.255.255
ip nat outside
ip nat inside source static 192.168.1.100 198.51.100.0
Arista :
interface Ethernet1
ip address 192.168.1.1/24
ip nat inside
interface Ethernet2
ip address 198.51.100.0/32
ip nat outside
ip nat inside source static 192.168.1.100 198.51.100.0
Juniper :
set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/24
set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.0/32
set security nat source rule-set OUTBOUND rule NAT1 match source-address 192.168.1.100/32
set security nat source rule-set OUTBOUND rule NAT1 then source-nat address 198.51.100.0
set security nat destination pool DNAT_POOL address 192.168.1.100/32
set security nat destination rule-set INBOUND rule NAT1 match destination-address 198.51.100.0/32
set security nat destination rule-set INBOUND rule NAT1 then destination-nat pool DNAT_POOL
5.5 Méthode 2 : LAN Public (Utilisation directe des IPs publiques)
Avantages principaux : Adressage propre, explicite
Inconvénients : Perte de 2 IPs utilisables (IP de réseau et IP de broadcast) + 1 IP est forcément assignée au routeur.
**(Attention : Avec un /30 en LAN, vous n'avez qu'une seule IP utilisable. Pour plus d'IPs, prenez un bloc plus grand, ex:** `/29`**. ou faites du NAT 1:1 ou attribution en /32)**
Configurations :
Linux :
# Assigner l'IP de la passerelle (votre routeur)
ip addr add 198.51.100.1/30 dev eth1
MikroTik :
/ip address add address=198.51.100.1/30 interface=ether1
Cisco :
interface GigabitEthernet0/1
ip address 198.51.100.1 255.255.255.252
no shutdown
Juniper :
set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.1/30
5.6. Méthode 3 : Routage en /32 (1 IP publique par machine)
Avantages principaux : Adressage propre, explicite, aucune perte d'IP
Inconvénients : Non supporté par Windows, mal supporté par certains routeurs / OS, 100% du trafic passe par le routeur
Configurations :
Linux :
# Sur le routeur :
ip route add 198.51.100.0/30 dev eth0 # eth0 = interface vers la Machine A
# Sur la Machine A :
ip addr add 203.0.113.1/32 dev eth0
ip route add default via 192.168.1.100 dev eth0 # IP de votre routeur local
# Si error lors de l'ajout de la route, il faut ajouter une règle :
# ip route add 192.168.1.100 dev eth0
MikroTik :
/ip route add dst-address=198.51.100.0/30 interface=LAN
# Sur la Machine A :
# Pareil que pour Linux, IP : 198.51.100.1 Gateway 192.168.1.100
Cisco :
ip route 198.51.100.0 255.255.255.252 GigabitEthernet0/0/1
Juniper :
set routing-options static route 198.51.100.0/30 interface ge-0/0/1
5.7. Router le trafic sortant par le tunnel
Si vous ne faites pas cette étape, les IPs ne fonctionneront pas
Linux (ip route + policy routing)
# Création d'une table de routage
echo "143 tunnel" >> /etc/iproute2/rt_tables
# Routage vers l'extérieur via l'IP locale de la plateforme
ip route add default via 100.64.0.5 table tunnel
# Tout le trafic en provenance de nos IPs publiques, sortent via le tunnel
ip rule add from 198.51.100.0/30 table tunnel
Effet :
Tout hôte du réseau 198.51.100.0/30 sort par le tunnel, les autres via la gateway par défaut.
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec :
ip link add vrf-IPIP type vrf table 143 # On créer la VRF
ip link set dev tunnel0 master vrf-IPIP # On ajoute le tunnel dans la VRF
ip route add default via 100.64.0.5 table 143 # On ajoute la route par défaut
ip link set dev eth0 master vrf-IPIP # On ajoute notre interface LAN dans la VRF (Attention si elle est partagée avec votre réseau local, le réseau local ne marchera plus, pour cela vous pouvez créer une interface dummy ou utiliser une interface séparée)
MikroTik
/routing/table/add name=IPIP-OUT fib
/routing/rule/add action=lookup-only-in-table table=IPIP-OUT src-address=198.51.100.0/30
/ip route add dst-address=0.0.0.0/0 gateway=100.64.0.5 routing-table=IPIP-OUT
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec :
/ip/vrf add name=IPIP-VRF interfaces=ipip1,ether1
/ip route add routing-table=IPIP-VRF dst-address=0.0.0.0/0 gateway=100.64.0.5
Cisco
ip access-list extended IPIP-OUT
permit ip 198.51.100.0 0.0.0.3 any
route-map IPIP-ROUTE permit 10
match ip address IPIP-OUT
set ip next-hop 100.64.0.5
interface GigabitEthernet0/0
ip policy route-map IPIP-ROUTE
📌 On applique l'ACL sur l'interface LAN → tout ce bloc sort vers Tunnel0.
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec :
vrf definition OUT-IPIP
rd 100:1
!
address-family ipv4
exit-address-family
!
interface Tunnel0
vrf forwarding OUT-IPIP
!
interface GigabitEthernet0/0/1
vrf forwarding OUT-IPIP
!
! Default route de la VRF vers le vrai Next-Hop
ip route vrf OUT-IPIP 0.0.0.0 0.0.0.0 100.64.0.5
La syntaxe Cisco peux varier selon les versions de l'OS
Arista
ip access-list IPIP-OUT
10 permit ip 198.51.100.0/30 any
route-map IPIP-PBR permit 10
match ip address IPIP-OUT
set ip next-hop 100.64.0.5 # IP tunnel remote
interface Ethernet1
ip policy route-map IPIP-PBR
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec :
vrf instance IPIP-VRF
interface Tunnel0
vrf IPIP-VRF
interface Eth1
vrf IPIP-VRF
ip route vrf IPIP-VRF 0.0.0.0/0 100.64.0.5
Juniper
set routing-instances IPIP-VRF instance-type virtual-router
set routing-instances IPIP-VRF interface ip-0/0/0.0
set routing-instances IPIP-VRF routing-options static route 0.0.0.0/0 next-hop 100.64.0.5
set firewall family inet filter PBR term IPIP from source-address 198.51.100.0/30
set firewall family inet filter PBR term IPIP then routing-instance IPIP-VRF
set firewall family inet filter PBR term DEFAULT then accept
set interfaces ge-0/0/1 unit 0 family inet filter input PBR
📌 Le trafic matché bascule dans la VRF = sortie via IPIP.
6. Commandes spécifiques par constructeur
| Constructeur | Commande pour vérifier le tunnel | Commande pour vérifier le routage |
|---|---|---|
| Cisco | show interface Tunnel0 |
show ip route |
| Arista | show interface Tunnel0 |
show ip route |
| Juniper | show interfaces ip-0/0/0 |
show route |
| Linux | ip tunnel show |
ip route |
| MikroTik | /interface ipip print |
/ip route print |
7. Vérification et Dépannage
7.1. Tester la connectivité
- Depuis votre routeur :
ping 100.64.0.5 # Ping de l'ip distante du tunnel - Depuis une machine locale :
ping 8.8.8.8 # Vérification internet curl -4 ifconfig.me # Vérification de l'IP sortante
7.2. Problèmes courants
| Symptôme | Cause Possible | Solution |
|---|---|---|
| Le tunnel ne répond pas | Protocole 4 bloqué | Vérifiez la redirection sur votre box / configurez une DMZ |
| Les IPs publiques ne pingent pas | Route manquante ou NAT mal configuré | Vérifiez ip route ou show ip route |
| Latence élevée / Pertes de paquets | MTU trop grande | Réduisez la MTU : ip link set mtu 1480 dev tunnel0 |
8. Bonnes Pratiques
- Sécurité :
- Filtrez le trafic entrant avec un pare-feu (ex:
iptablesou ACL Cisco). - IPIP n'offre aucun chiffrement. Envisagez IPsec si le chiffrement est nécessaire.
- Filtrez le trafic entrant avec un pare-feu (ex:
- Performance :
- Réduisez la MTU à
1480pour éviter la fragmentation (overhead IPIP = 20 octets). - Activez le keepalive sur le tunnel (ex:
keepalive 10 3sur Cisco).
- Réduisez la MTU à
- Redondance :
- Configurez un deuxième tunnel IPIP pour le failover.
Tunnel L3 - Wireguard
1. Introduction : Pourquoi utiliser Wireguard ?
1.1. À quoi sert un tunnel Wireguard ?
Un tunnel Wireguard permet de créer un lien direct et sécurisé entre deux réseaux distants. Wireguard est un protocole VPN moderne, rapide et simple à configurer. Exemple concret :
- Vous avez un réseau local derrière une box opérateur standard.
- Vous voulez une IP publique sur une ou des machines sur votre réseau local
1.2. Avantages de Wireguard
- Extrêmement simple à configurer.
- Chiffrement intégré (pas besoin d'IPsec en complément).
- Connexion possible en IPv4 & IPv6.
- Règles de routage ajoutées automatiquement.
- Aucun port à ouvrir côté client (traverse le NAT nativement).
- Protocole léger et performant.
1.3. Inconvénients
- Moins de support natif sur certains routeurs (Cisco, Juniper...).
- Protocole plus récent que GRE ou IPIP.
2. Prérequis
2.1. Ce dont vous avez besoin
- Un routeur compatible Wireguard (Linux, MikroTik, etc.).
- Un service Tunnel-IP.
2.2. Ports et NAT
- Wireguard utilise UDP (port par défaut : 51820).
- Contrairement à GRE et IPIP, aucune redirection de port n'est nécessaire côté client. Wireguard traverse le NAT nativement grâce au mécanisme de keepalive.
3. Étape 1 : Créer le tunnel sur Tunnel-IP.com
3.1. Accéder au tableau de bord
- Connectez-vous à panel.tunnel-ip.com
- Allez dans "Tunnels" > "Wireguard".
- Remplissez les informations :
- Nom du tunnel (ex :
Tunnel_X). - Endpoint (IP publique du routeur / box, ex :
203.0.113.1).
- Nom du tunnel (ex :
- Validez. La plateforme s'occupera de choisir les IPs et de configurer le tunnel côté Tunnel-IP.com.
- Attendez que le tunnel soit créé
- Cliquez sur "Accéder" pour récupérer les détails du tunnel
Il vous suffit de configurer votre wireguard avec les paramètres indiqués en 1, pour linux vous pouvez suivre ce tutoriel
3.2. Créer le subnet (Route côté plateforme)
1. Allez dans "Subnets"
2. Copiez le bloc d'IP publique et collez le dans le formulaire
3. Cliquez sur Créer
4. Une fois son statut à "Actif", la route est correctement installée sur les routeurs de la plateforme, il ne vous reste plus qu'à configurer le tunnel
4. Étape 2 : Configurer le tunnel
4.1. Exemple pour Linux (Ubuntu/Debian) avec wg-quick
Étapes :
- Installer Wireguard :
apt update && apt install wireguard -y - Créer le fichier de configuration :
nano /etc/wireguard/wg0.conf
Contenu du fichier (à adapter avec les paramètres fournis par la plateforme) :[Interface] PrivateKey = <votre_clé_privée> Address = 100.64.0.6/30 Address = fd00:42:cafe:1::2/64 [Peer] PublicKey = <clé_publique_plateforme> Endpoint = 172.16.126.33:51820 AllowedIPs = 0.0.0.0/0, ::/0 PersistentKeepalive = 25PrivateKey: Votre clé privée (générée automatiquement ou manuellement avecwg genkey).Address: IPs internes du tunnel (fournies par la plateforme).PublicKey: Clé publique du serveur Tunnel-IP.com.Endpoint: Adresse et port du serveur distant.AllowedIPs: Plages d'IPs autorisées à passer par le tunnel.PersistentKeepalive: Envoie un paquet toutes les 25 secondes pour maintenir la connexion à travers le NAT.
- Activer le tunnel :
wg-quick up wg0 - Activer au démarrage :
systemctl enable wg-quick@wg0 - Activer le forwarding IP (pour permettre le routage) :
echo 1 > /proc/sys/net/ipv4/ip_forward
(Pour rendre permanent, ajouteznet.ipv4.ip_forward=1dans/etc/sysctl.conf.)
4.2. Exemple pour MikroTik
Étapes :
- Créer l'interface Wireguard :
/interface/wireguard/add name=wg0 listen-port=51820 - Récupérer la clé publique (à fournir à la plateforme) :
/interface/wireguard/print - Ajouter le peer (serveur Tunnel-IP.com) :
/interface/wireguard/peers/add interface=wg0 \ public-key="<clé_publique_plateforme>" \ endpoint-address=172.16.126.33 \ endpoint-port=51820 \ allowed-address=0.0.0.0/0,::/0 \ persistent-keepalive=25 - Assigner une IP au tunnel :
/ip/address/add address=100.64.0.6/30 interface=wg0 /ipv6/address/add address=fd00:42:cafe:1::2/64 interface=wg0
4.3. Note pour Cisco, Arista et Juniper
Wireguard n'est pas nativement supporté sur la plupart des routeurs Cisco (IOS/XE), Arista (EOS) et Juniper (JunOS). Si vous devez utiliser l'un de ces équipements, vous pouvez :
- Utiliser un serveur Linux comme point de terminaison Wireguard, puis router le trafic vers votre routeur.
- Utiliser un autre type de tunnel (GRE, IPIP, IPsec) nativement supporté par ces équipements.
5. Étape 3 : Router les IP publiques vers le tunnel
5.1. Pourquoi ?
La plateforme vous route un bloc d'IP publiques (ex : 198.51.100.0/30) sur votre IP interne du tunnel, afin que ces IPs fonctionnent correctement, vous devez router ce bloc d'IP sur votre réseau et le trafic sortant par le tunnel.
Pour cela, 3 principales méthodes s'offrent à vous :
- NAT 1:1 (1 IP publique → 1 IP privée)
- LAN public (utilisation directe des IPs publiques)
- Routage en /32 (1 IP publique par machine)
5.2. Rappel : Architecture du Tunnel
Internet → [Infrastructure Tunnel-IP.com] → (Tunnel Wireguard) → [Votre Routeur] → [Votre Réseau]
- La plateforme vous route un bloc public (ex:
198.51.100.0/30). - Votre routeur doit gérer ce bloc pour exposer vos services.
5.3. Cas d'Usage du Bloc /30
Un /30 contient 4 adresses IP :
198.51.100.0: Adresse réseau (inutilisable en LAN).198.51.100.1: IP Utilisable198.51.100.2: IP Utilisable198.51.100.3: Adresse broadcast (inutilisable en LAN).
5.4. Méthode 1 : NAT 1:1 (Translation 1 IP publique → 1 IP privée)
Avantages principaux : Permet de ne pas avoir à modifier l'adressage privé de votre réseau, et permet d'utiliser l'IP de réseau et broadcast.
Inconvénients : Adressage moins clair (Conversion IP publique -> privée), charge plus lourde sur le routeur (Le routeur est en charge de la translation NAT)
Schéma :
Internet → Infrastructure Tunnel-IP.com → [Votre Routeur] 198.51.100.0 → 192.168.1.100 (Privée)
Configurations :
Linux :
# Activer l'IP Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Ajouter l'IP sur une interface (on utilise la loopback par exemple)
ip a add 198.51.100.0/32 dev lo
# 1:1 Static NAT
iptables -t nat -A PREROUTING -d 198.51.100.0 -j DNAT --to-destination 192.168.1.100
iptables -t nat -A POSTROUTING -s 192.168.1.100 -j SNAT --to-source 198.51.100.0
MikroTik :
/ip address add address=198.51.100.0/32 interface=eth0
/ip firewall nat add chain=dstnat dst-address=198.51.100.0 action=dst-nat to-addresses=192.168.1.100
/ip firewall nat add chain=srcnat src-address=192.168.1.100 action=src-nat to-addresses=198.51.100.0
5.5 Méthode 2 : LAN Public (Utilisation directe des IPs publiques)
Avantages principaux : Adressage propre, explicite
Inconvénients : Perte de 2 IPs utilisables (IP de réseau et IP de broadcast) + 1 IP est forcément assignée au routeur.
(Attention : Avec un /30 en LAN, vous n'avez qu'une seule IP utilisable. Pour plus d'IPs, prenez un bloc plus grand, ex: /29. ou faites du NAT 1:1 ou attribution en /32)
Configurations :
Linux :
# Assigner l'IP de la passerelle (votre routeur)
ip addr add 198.51.100.1/30 dev eth1
MikroTik :
/ip address add address=198.51.100.1/30 interface=ether1
5.6. Méthode 3 : Routage en /32 (1 IP publique par machine)
Avantages principaux : Adressage propre, explicite, aucune perte d'IP
Inconvénients : Non supporté par Windows, mal supporté par certains routeurs / OS, 100% du trafic passe par le routeur
Configurations :
Linux :
# Sur le routeur :
ip route add 198.51.100.0/30 dev eth0 # eth0 = interface vers la Machine A
# Sur la Machine A :
ip addr add 203.0.113.1/32 dev eth0
ip route add default via 192.168.1.100 dev eth0 # IP de votre routeur local
# Si error lors de l'ajout de la route, il faut ajouter une règle :
# ip route add 192.168.1.100 dev eth0
MikroTik :
/ip route add dst-address=198.51.100.0/30 interface=LAN
# Sur la Machine A :
# Pareil que pour Linux, IP : 198.51.100.1 Gateway 192.168.1.100
5.7. Router le trafic sortant par le tunnel
Si vous ne faites pas cette étape, les IPs ne fonctionneront pas
Si vous avez configuré AllowedIPs = 0.0.0.0/0 dans votre configuration Wireguard, tout le trafic passe déjà par le tunnel. Cependant, si vous souhaitez un routage plus fin (uniquement le trafic des IPs publiques), utilisez les méthodes ci-dessous :
Linux (ip route + policy routing)
# Création d'une table de routage
echo "144 tunnel" >> /etc/iproute2/rt_tables
# Routage vers l'extérieur via l'IP locale de la plateforme
ip route add default via 100.64.0.5 table tunnel
# Tout le trafic en provenance de nos IPs publiques, sortent via le tunnel
ip rule add from 198.51.100.0/30 table tunnel
Effet : Tout hôte du réseau 198.51.100.0/30 sort par le tunnel, les autres via la gateway par défaut.
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec :
ip link add vrf-WG type vrf table 144 # On créer la VRF
ip link set dev wg0 master vrf-WG # On ajoute le tunnel dans la VRF
ip route add default via 100.64.0.5 table 144 # On ajoute la route par défaut
ip link set dev eth0 master vrf-WG # On ajoute notre interface LAN dans la VRF (Attention si elle est partagée avec votre réseau local, le réseau local ne marchera plus, pour cela vous pouvez créer une interface dummy ou utiliser une interface séparée)
MikroTik
/routing/table/add name=WG-OUT fib
/routing/rule/add action=lookup-only-in-table table=WG-OUT src-address=198.51.100.0/30
/ip route add dst-address=0.0.0.0/0 gateway=100.64.0.5 routing-table=WG-OUT
Si vous êtes à l'aise avec les VRF, il est aussi possible de faire avec :
/ip/vrf add name=WG-VRF interfaces=wg0,ether1
/ip route add routing-table=WG-VRF dst-address=0.0.0.0/0 gateway=100.64.0.5
6. Commandes spécifiques par constructeur
Constructeur | Commande pour vérifier le tunnel | Commande pour vérifier le routage |
|---|---|---|
Linux |
|
|
MikroTik |
|
|
7. Vérification et Dépannage
7.1. Tester la connectivité
- Depuis votre routeur :
ping 100.64.0.5 # Ping de l'ip distante du tunnel wg show # Vérifier l'état du handshake - Depuis une machine locale :
ping 8.8.8.8 # Vérification internet curl -4 ifconfig.me # Vérification de l'IP sortante
7.2. Problèmes courants
| Symptôme | Cause Possible | Solution |
|---|---|---|
Le tunnel ne s'établit pas (pas de handshake) | Clé publique/privée incorrecte | Vérifiez les clés avec
et comparez avec la plateforme |
Le tunnel ne s'établit pas | Endpoint incorrect ou port UDP bloqué | Vérifiez l'endpoint et que le port UDP est accessible |
Les IPs publiques ne pingent pas | Route manquante ou NAT mal configuré | Vérifiez
ou
|
Latence élevée / Pertes de paquets | MTU trop grande | Réduisez la MTU :
|
Connexion perdue derrière NAT | PersistentKeepalive non configuré | Ajoutez
dans la configuration du peer |
8. Bonnes Pratiques
- Sécurité :
- Wireguard intègre le chiffrement nativement (ChaCha20, Poly1305, Curve25519).
- Filtrez le trafic entrant avec un pare-feu (ex:
iptables). - Protégez vos clés privées et ne les partagez jamais.
- Performance :
- La MTU par défaut de Wireguard est
1420. Ajustez si nécessaire en fonction de votre connexion. - Activez le PersistentKeepalive (ex:
25secondes) si vous êtes derrière un NAT.
- La MTU par défaut de Wireguard est
- Redondance :
- Configurez un deuxième tunnel Wireguard pour le failover.
Tunnel L2 - GRETAP
1. Introduction : Pourquoi utiliser GRETAP ?
1.1. À quoi sert un tunnel GRETAP ?
Un tunnel GRETAP (GRE Tunnel Access Point) est une variante Layer 2 du tunnel GRE classique. Contrairement au GRE standard qui transporte des paquets IP (Layer 3), GRETAP transporte des trames Ethernet complètes, ce qui permet de bridger des réseaux distants comme s'ils étaient connectés au même switch. Exemple concret :
- Vous avez un réseau local derrière une box opérateur standard.
- Vous voulez une ou des IPs publiques directement accessibles sur vos machines, comme si elles étaient sur le même réseau que la plateforme.
1.2. Avantages de GRETAP
- Transport Layer 2 complet (trames Ethernet).
- Simple à configurer (même syntaxe que GRE classique).
- Compatible avec la plupart des équipements réseau.
- Protocole léger.
- Peut être combiné avec d'autres tunnels L2 via un bridge.
1.3. Inconvénients
- Pas de chiffrement natif.
- Utilise le protocole 47 (comme GRE) : nécessite une redirection spécifique ou DMZ si derrière un NAT.
- Overhead de 38 octets (en-tête GRE + en-tête Ethernet interne).
2. Prérequis
2.1. Ce dont vous avez besoin
- Une IP publique (ou une DMZ si derrière une box).
- Un routeur ou serveur compatible GRETAP (Linux, MikroTik, etc.).
- Un service Tunnel-IP.
2.2. Ports et NAT
- GRETAP utilise le protocole 47 (comme GRE classique), ce n'est ni UDP ni TCP.
- Si le routeur final est derrière une box / NAT, il faut rediriger le protocole GRE (47) vers le routeur final. Certaines box ont des ALG automatiques, mais il est souvent préférable de configurer une DMZ.
3. Étape 1 : Créer le bridge et le tunnel sur Tunnel-IP.com
Les tunnels L2 fonctionnent avec des **bridges** sur la plateforme. Un bridge est un switch virtuel qui regroupe vos tunnels L2 et vos subnets. Vous devez d'abord créer un bridge, puis créer le tunnel en l'associant à ce bridge.
3.1. Créer le bridge
- Connectez-vous à panel.tunnel-ip.com
- Allez dans "Bridges".
- Cliquez sur "Ajouter un Bridge" et donnez-lui un nom.
- Validez. Le bridge sera créé sur la plateforme.
3.2. Créer le tunnel GRETAP
- Allez dans "Tunnels" > "GRETAP".
- Remplissez les informations :
- Nom du tunnel (ex :
<span class="editor-theme-code">GRETAP_Tunnel</span>). - Endpoint (IP publique du routeur / box, ex :
<span class="editor-theme-code">203.0.113.1</span>). - Bridge : Sélectionnez le bridge créé précédemment.
- MTU : Taille maximale des paquets (-1 pour laisser la plateforme choisir).
- Clé (si applicable).
- Nom du tunnel (ex :
- Validez. La plateforme s'occupera de configurer le tunnel côté Tunnel-IP.com.
- Attendez que le tunnel soit créé
- Cliquez sur "Accéder" pour récupérer les détails du tunnel
3.3. Créer le subnet
1. Allez dans "Subnets"
2. Copiez le bloc d'IP publique et collez le dans le formulaire
3. Sélectionnez le bridge (et non un tunnel directement) comme destination
4. Cliquez sur Créer
5. Une fois son statut à "Actif", la route est correctement installée sur les routeurs de la plateforme
**Important :** La première IP du subnet sera utilisée comme **gateway** sur le bridge côté plateforme. Par exemple, pour le subnet `198.51.100.0/29`, la gateway sera `198.51.100.1`.
4. Étape 2 : Configurer le tunnel
Contrairement au GRE classique (L3), GRETAP transporte des trames Ethernet (Layer 2). Côté client, vous devez créer l'interface GRETAP puis la **bridger** avec votre interface LAN (ou lui assigner directement une IP du subnet).
4.1. Exemple pour Linux (Ubuntu/Debian)
Étapes :
-
Créer l'interface GRETAP :
ip link add gretap0 type gretap remote 172.16.126.33 ip link set gretap0 upgretap0: Nom de l'interface GRETAP.remote 172.16.126.33: IP distante (Tunnel-IP.com).
-
Option A : Assigner directement une IP publique :
Si vous souhaitez que le routeur lui-même ait une IP publique :
ip addr add 198.51.100.2/29 dev gretap0 ip route add default via 198.51.100.1 dev gretap0198.51.100.2/29: Une IP du subnet (la première IP .1 est la gateway côté plateforme).198.51.100.1: Gateway (première IP du subnet, côté plateforme).
-
Option B : Bridger avec une interface LAN :
Si vous souhaitez que des machines sur votre LAN aient directement les IPs publiques :
ip link add br0 type bridge ip link set br0 up ip link set gretap0 master br0 ip link set eth1 master br0 # Interface LAN vers vos machinesLes machines connectées à
eth1pourront alors utiliser les IPs du subnet directement, avec198.51.100.1comme gateway. -
Activer le forwarding (si nécessaire) :
echo 1 > /proc/sys/net/ipv4/ip_forward(Pour rendre permanent, ajoutez
net.ipv4.ip_forward=1dans/etc/sysctl.conf*.)*
4.2. Exemple pour MikroTik
MikroTik ne supporte pas nativement le GRETAP en tant que tel. Cependant, l'interface EoIP de MikroTik remplit la même fonction (tunnel GRE Layer 2). Si vous souhaitez interopérer avec un GRETAP Linux/Cisco, vous pouvez utiliser un EoIP côté MikroTik avec les mêmes paramètres, ou utiliser un bridge avec un tunnel GRE classique.
Alternative avec EoIP :
- Créer l'interface EoIP :
/interface/eoip/add remote-address=172.16.126.33 tunnel-id=100 name=eoip-tunnel - Bridger avec une interface LAN :
/interface/bridge/add name=br-gretap /interface/bridge/port/add bridge=br-gretap interface=eoip-tunnel /interface/bridge/port/add bridge=br-gretap interface=ether2 # Interface LAN - Option : Assigner une IP au bridge :
/ip/address/add address=198.51.100.2/29 interface=br-gretap /ip/route/add dst-address=0.0.0.0/0 gateway=198.51.100.1
4.3. Exemple pour Cisco (IOS/XE)
Étapes :
- Accéder au mode configuration :
enable configure terminal - Créer l'interface tunnel en mode GRETAP :
interface Tunnel0 tunnel source 192.168.1.1 # IP locale du routeur tunnel destination 172.16.126.33 # IP distante tunnel mode gre multipoint no shutdown - Créer le Bridge Domain et l'associer :
bridge-domain 100 member Tunnel0 service-instance 1 member Vlan100 - Configurer l'interface VLAN :
interface Vlan100 ip address 198.51.100.2 255.255.255.248 no shutdown - Sauvegarder la configuration :
write memory
La configuration de bridge L2 sur Cisco varie fortement selon la plateforme (IOS, IOS-XE, NX-OS). Consultez la documentation de votre modèle.
4.4. Exemple pour Arista (EOS)
Étapes :
- Accéder au mode configuration :
enable configure terminal - Créer l'interface tunnel GRE en mode bridge :
interface Tunnel0 tunnel source 192.168.1.1 tunnel destination 172.16.126.33 tunnel mode gre no shutdown - Bridger le tunnel avec un VLAN :
interface Tunnel0 switchport access vlan 100 interface Vlan100 ip address 198.51.100.2/29 no shutdown - Sauvegarder la configuration :
write memory
4.5. Exemple pour Juniper (JunOS)
Étapes :
- Accéder au mode configuration :
edit - Créer l'interface GRE et le bridge domain :
set interfaces gr-0/0/0 tunnel source 192.168.1.1 set interfaces gr-0/0/0 tunnel destination 172.16.126.33 set interfaces gr-0/0/0 family bridge interface-mode trunk set interfaces gr-0/0/0 family bridge vlan-id-list 100 set bridge-domains GRETAP-BD vlan-id 100 set bridge-domains GRETAP-BD routing-interface irb.100 set interfaces irb unit 100 family inet address 198.51.100.2/29 - Appliquer la configuration :
commit
5. Étape 3 : Configurer les IPs publiques
5.1. Architecture L2
Internet → [Infrastructure Tunnel-IP.com] → [Bridge plateforme] → (Tunnel GRETAP) → [Votre Bridge/Interface] → [Vos Machines]
- La plateforme met la première IP du subnet comme gateway sur le bridge (ex:
198.51.100.1). - Vos machines utilisent les autres IPs du subnet.
- Comme le tunnel est L2, les trames Ethernet passent directement, pas besoin de NAT ni de routage complexe.
5.2. Attribution des IPs
Un /29 contient 8 adresses IP :
198.51.100.0: Adresse réseau (inutilisable).198.51.100.1: Gateway plateforme (réservée automatiquement).198.51.100.2à198.51.100.6: IPs utilisables pour vos machines.198.51.100.7: Adresse broadcast (inutilisable).
5.3. Configuration sur les machines
Sur chaque machine qui doit utiliser une IP publique :
Linux :
ip addr add 198.51.100.2/29 dev eth0
ip route add default via 198.51.100.1
MikroTik :
/ip/address/add address=198.51.100.2/29 interface=ether1
/ip/route/add dst-address=0.0.0.0/0 gateway=198.51.100.1
Si vous avez bridgé l'interface GRETAP avec votre LAN, les machines peuvent être configurées directement avec les IPs publiques et la gateway `198.51.100.1`, comme si elles étaient sur un réseau local classique.
6. Commandes spécifiques par constructeur
| Constructeur | Commande pour vérifier le tunnel | Commande pour vérifier le bridge |
|---|---|---|
| Linux | ip -d link show gretap0 |
bridge link show |
| MikroTik | /interface eoip print |
/interface bridge port print |
| Cisco | show interface Tunnel0 |
show bridge-domain |
| Arista | show interface Tunnel0 |
show vlan |
| Juniper | show interfaces gr-0/0/0 |
show bridge-domain |
7. Vérification et Dépannage
7.1. Tester la connectivité
- Depuis votre routeur / machine :
ping 198.51.100.1 # Ping de la gateway plateforme - Vérifier l'interface GRETAP (Linux) :
ip -d link show gretap0 # Vérifier les paramètres bridge fdb show dev gretap0 # Vérifier la table MAC - Depuis une machine locale :
ping 8.8.8.8 # Vérification internet curl -4 ifconfig.me # Vérification de l'IP sortante
7.2. Problèmes courants
| Symptôme | Cause Possible | Solution |
|---|---|---|
| Le tunnel ne répond pas | Protocole 47 bloqué | Vérifiez la redirection sur votre box / configurez une DMZ |
| Pas de connectivité L2 | Clé GRE incorrecte | Vérifiez que la clé correspond à celle fournie par la plateforme |
| La gateway ne répond pas | Subnet non associé au bridge | Vérifiez que le subnet est bien associé au bridge sur la plateforme |
| Latence élevée / Pertes de paquets | MTU trop grande | Réduisez la MTU : ip link set mtu 1462 dev gretap0 (overhead GRETAP = 38 octets) |
| Les IPs publiques ne fonctionnent pas | Mauvaise gateway | Utilisez la première IP du subnet comme gateway (ex: 198.51.100.1) |
8. Bonnes Pratiques
- Sécurité :
- Filtrez le trafic entrant avec un pare-feu (ex:
iptablesou ACL). - GRETAP n'offre aucun chiffrement natif. Envisagez IPsec ou Wireguard en complément si le chiffrement est nécessaire.
- Filtrez le trafic entrant avec un pare-feu (ex:
- Performance :
- Réduisez la MTU à
1462pour éviter la fragmentation (overhead GRETAP = 38 octets). - Vérifiez que la MTU de votre lien WAN est suffisante pour encapsuler les trames.
- Réduisez la MTU à
- Bridging :
- Vous pouvez combiner plusieurs tunnels L2 (VXLAN, EoIP, GRETAP) sur le même bridge, aussi bien sur la plateforme que côté client.
- Attention aux boucles de bridge : activez le STP si nécessaire.
Tunnel L2 - VXLAN
1. Introduction : Pourquoi utiliser VXLAN ?
1.1. À quoi sert un tunnel VXLAN ?
Un tunnel VXLAN (Virtual Extensible LAN) permet de créer un réseau Ethernet virtuel (Layer 2) entre deux sites distants, comme s'ils étaient connectés au même switch. Contrairement aux tunnels L3 (GRE, IPIP), VXLAN transporte des trames Ethernet complètes, ce qui permet de bridger des réseaux distants. Exemple concret :
- Vous avez un réseau local derrière une box opérateur standard.
- Vous voulez une ou des IPs publiques directement accessibles sur vos machines, comme si elles étaient sur le même réseau que la plateforme.
1.2. Avantages de VXLAN
- Transport Layer 2 complet (trames Ethernet).
- Supporte jusqu'à 16 millions de réseaux virtuels (VNI 24 bits).
- Compatible avec la plupart des équipements réseau modernes.
- Fonctionne en UDP, facilement NAT-able.
- Peut être combiné avec d'autres tunnels L2 via un bridge.
1.3. Inconvénients
- Pas de chiffrement natif.
- Overhead plus important que GRE/IPIP (50 octets d'en-tête).
- Nécessite une configuration manuelle du bridging côté client.
2. Prérequis
2.1. Ce dont vous avez besoin
- Une IP publique (ou une redirection de port si derrière une box).
- Un routeur ou serveur compatible VXLAN (Linux, MikroTik, Cisco, Arista, Juniper, etc.).
- Un service Tunnel-IP.
2.2. Ports et NAT
- VXLAN utilise UDP (port par défaut : 4789).
- Si le routeur final est derrière une box / NAT, il faut rediriger le port UDP 4789 vers le routeur final.
3. Étape 1 : Créer le bridge et le tunnel sur Tunnel-IP.com
Les tunnels L2 fonctionnent avec des **bridges** sur la plateforme. Un bridge est un switch virtuel qui regroupe vos tunnels L2 et vos subnets. Vous devez d'abord créer un bridge, puis créer le tunnel en l'associant à ce bridge.
3.1. Créer le bridge
- Connectez-vous à panel.tunnel-ip.com
- Allez dans "Bridges".
- Cliquez sur "Ajouter un Bridge" et donnez-lui un nom.
- Validez. Le bridge sera créé sur la plateforme.
3.2. Créer le tunnel VXLAN
- Allez dans "Tunnels" > "VXLAN".
- Remplissez les informations :
- Nom du tunnel (ex :
<span class="editor-theme-code">VXLAN_Tunnel</span>). - Endpoint (IP publique du routeur / box, ex :
<span class="editor-theme-code">203.0.113.1</span>). - Bridge : Sélectionnez le bridge créé précédemment.
- MTU : Taille maximale des paquets (-1 pour laisser la plateforme choisir).
- Nom du tunnel (ex :
- Validez. La plateforme s'occupera de choisir le VNI et de configurer le tunnel côté Tunnel-IP.com.
- Attendez que le tunnel soit créé
- Cliquez sur "Accéder" pour récupérer les détails du tunnel
3.3. Créer le subnet
1. Allez dans "Subnets"
2. Copiez le bloc d'IP publique et collez le dans le formulaire
3. Sélectionnez le bridge (et non un tunnel directement) comme destination
4. Cliquez sur Créer
5. Une fois son statut à "Actif", la route est correctement installée sur les routeurs de la plateforme
**Important :** La première IP du subnet sera utilisée comme **gateway** sur le bridge côté plateforme. Par exemple, pour le subnet `198.51.100.0/29`, la gateway sera `198.51.100.1`.
4. Étape 2 : Configurer le tunnel
Contrairement aux tunnels L3, un tunnel VXLAN transporte des trames Ethernet (Layer 2). Côté client, vous devez créer l'interface VXLAN puis la **bridger** avec votre interface LAN (ou lui assigner directement une IP du subnet).
4.1. Exemple pour Linux (Ubuntu/Debian)
Étapes :
-
Créer l'interface VXLAN :
ip link add vxlan0 type vxlan id 100 remote 172.16.126.33 dstport 4789 ip link set vxlan0 upvxlan0: Nom de l'interface VXLAN.id 100: VNI (Virtual Network Identifier), fourni par la plateforme.remote 172.16.126.33: IP distante (Tunnel-IP.com).dstport 4789: Port UDP de destination.
-
Option A : Assigner directement une IP publique :
Si vous souhaitez que le routeur lui-même ait une IP publique :
ip addr add 198.51.100.2/29 dev vxlan0 ip route add default via 198.51.100.1 dev vxlan0198.51.100.2/29: Une IP du subnet (la première IP .1 est la gateway côté plateforme).198.51.100.1: Gateway (première IP du subnet, côté plateforme).
-
Option B : Bridger avec une interface LAN :
Si vous souhaitez que des machines sur votre LAN aient directement les IPs publiques :
ip link add br0 type bridge ip link set br0 up ip link set vxlan0 master br0 ip link set eth1 master br0 # Interface LAN vers vos machinesLes machines connectées à
eth1pourront alors utiliser les IPs du subnet directement, avec198.51.100.1comme gateway. -
Activer le forwarding (si nécessaire) :
echo 1 > /proc/sys/net/ipv4/ip_forward(Pour rendre permanent, ajoutez
net.ipv4.ip_forward=1dans/etc/sysctl.conf*.)*
4.2. Exemple pour MikroTik
Étapes :
- Créer l'interface VXLAN :
/interface/vxlan/add name=vxlan0 vni=100 port=4789 - Ajouter le VTEP distant (Tunnel-IP.com) :
/interface/vxlan/vteps/add interface=vxlan0 remote-ip=172.16.126.33 port=4789 - Option A : Assigner une IP publique directement :
/ip/address/add address=198.51.100.2/29 interface=vxlan0 /ip/route/add dst-address=0.0.0.0/0 gateway=198.51.100.1 - Option B : Bridger avec une interface LAN :
/interface/bridge/add name=br-vxlan /interface/bridge/port/add bridge=br-vxlan interface=vxlan0 /interface/bridge/port/add bridge=br-vxlan interface=ether2 # Interface LAN
4.3. Exemple pour Cisco (IOS/XE - NX-OS)
Étapes :
- Accéder au mode configuration :
enable configure terminal - Créer le NVE (Network Virtualization Edge) :
interface nve1 source-interface Loopback0 member vni 100 ingress-replication protocol static peer-ip 172.16.126.33 no shutdown - Créer le VLAN et l'associer au VNI :
vlan 100 vn-segment 100 interface Vlan100 ip address 198.51.100.2 255.255.255.248 no shutdown - Sauvegarder la configuration :
write memory
La configuration VXLAN sur Cisco est principalement disponible sur **NX-OS** (Nexus). Sur IOS-XE, le support VXLAN est limité à certains modèles (CSR1000v, Catalyst 9000, etc.).
4.4. Exemple pour Arista (EOS)
Étapes :
- Accéder au mode configuration :
enable configure terminal - Créer l'interface VXLAN :
interface Vxlan1 vxlan source-interface Loopback0 vxlan udp-port 4789 vxlan vlan 100 vni 100 vxlan flood vtep add 172.16.126.33 - Créer le VLAN et l'associer :
vlan 100 interface Vlan100 ip address 198.51.100.2/29 no shutdown - Sauvegarder la configuration :
write memory
4.5. Exemple pour Juniper (JunOS)
Étapes :
- Accéder au mode configuration :
edit - Créer l'interface VXLAN et le bridge domain :
set bridge-domains VXLAN-BD vlan-id 100 set bridge-domains VXLAN-BD vxlan vni 100 set bridge-domains VXLAN-BD vxlan ingress-node-replication set interfaces lo0 unit 0 family inet address 10.0.0.1/32 set switch-options vtep-source-interface lo0.0 set switch-options remote-vtep 172.16.126.33 set bridge-domains VXLAN-BD routing-interface irb.100 set interfaces irb unit 100 family inet address 198.51.100.2/29 - Appliquer la configuration :
commit
5. Étape 3 : Configurer les IPs publiques
5.1. Architecture L2
Internet → [Infrastructure Tunnel-IP.com] → [Bridge plateforme] → (Tunnel VXLAN) → [Votre Bridge/Interface] → [Vos Machines]
- La plateforme met la première IP du subnet comme gateway sur le bridge (ex:
198.51.100.1). - Vos machines utilisent les autres IPs du subnet.
- Comme le tunnel est L2, les trames Ethernet passent directement, pas besoin de NAT ni de routage complexe.
5.2. Attribution des IPs
Un /29 contient 8 adresses IP :
198.51.100.0: Adresse réseau (inutilisable).198.51.100.1: Gateway plateforme (réservée automatiquement).198.51.100.2à198.51.100.6: IPs utilisables pour vos machines.198.51.100.7: Adresse broadcast (inutilisable).
5.3. Configuration sur les machines
Sur chaque machine qui doit utiliser une IP publique :
Linux :
ip addr add 198.51.100.2/29 dev eth0
ip route add default via 198.51.100.1
MikroTik :
/ip/address/add address=198.51.100.2/29 interface=ether1
/ip/route/add dst-address=0.0.0.0/0 gateway=198.51.100.1
Si vous avez bridgé l'interface VXLAN avec votre LAN, les machines peuvent être configurées directement avec les IPs publiques et la gateway `198.51.100.1`, comme si elles étaient sur un réseau local classique.
6. Commandes spécifiques par constructeur
| Constructeur | Commande pour vérifier le tunnel | Commande pour vérifier le bridge |
|---|---|---|
| Linux | ip -d link show vxlan0 |
bridge link show |
| MikroTik | /interface vxlan print |
/interface bridge port print |
| Cisco | show nve peers |
show vlan |
| Arista | show interfaces Vxlan1 |
show vlan |
| Juniper | show bridge-domain |
show interfaces irb |
7. Vérification et Dépannage
7.1. Tester la connectivité
- Depuis votre routeur / machine :
ping 198.51.100.1 # Ping de la gateway plateforme - Vérifier l'interface VXLAN (Linux) :
ip -d link show vxlan0 # Vérifier les paramètres VXLAN bridge fdb show dev vxlan0 # Vérifier la table MAC - Depuis une machine locale :
ping 8.8.8.8 # Vérification internet curl -4 ifconfig.me # Vérification de l'IP sortante
7.2. Problèmes courants
| Symptôme | Cause Possible | Solution |
|---|---|---|
| Le tunnel ne répond pas | Port UDP 4789 bloqué | Vérifiez la redirection du port sur votre box |
| Pas de connectivité L2 | VNI incorrect | Vérifiez que le VNI correspond à celui fourni par la plateforme |
| La gateway ne répond pas | Subnet non associé au bridge | Vérifiez que le subnet est bien associé au bridge sur la plateforme |
| Latence élevée / Pertes de paquets | MTU trop grande | Réduisez la MTU : ip link set mtu 1450 dev vxlan0 (overhead VXLAN = 50 octets) |
| Les IPs publiques ne fonctionnent pas | Mauvaise gateway | Utilisez la première IP du subnet comme gateway (ex: 198.51.100.1) |
8. Bonnes Pratiques
- Sécurité :
- Filtrez le trafic entrant avec un pare-feu (ex:
iptablesou ACL). - VXLAN n'offre aucun chiffrement natif. Envisagez IPsec ou Wireguard en complément si le chiffrement est nécessaire.
- Filtrez le trafic entrant avec un pare-feu (ex:
- Performance :
- Réduisez la MTU à
1450pour éviter la fragmentation (overhead VXLAN = 50 octets). - Vérifiez que la MTU de votre lien WAN est suffisante pour encapsuler les paquets VXLAN.
- Réduisez la MTU à
- Bridging :
- Vous pouvez combiner plusieurs tunnels L2 (VXLAN, EoIP, GRETAP) sur le même bridge, aussi bien sur la plateforme que côté client.
- Attention aux boucles de bridge : activez le STP si nécessaire.
Tunnel L2 - L2TPv3
1. Introduction : Pourquoi utiliser L2TPv3 ?
1.1. À quoi sert un tunnel L2TPv3 ?
Un tunnel L2TPv3 (Layer 2 Tunneling Protocol version 3) permet de créer un lien Ethernet virtuel (Layer 2) entre deux sites distants, transportant des trames Ethernet complètes. L2TPv3 est une évolution de L2TP, spécifiquement conçue pour le transport L2 avec de nombreuses options de configuration (encapsulation UDP ou IP, IDs de session/tunnel configurables). Exemple concret :
- Vous avez un réseau local derrière une box opérateur standard.
- Vous voulez une ou des IPs publiques directement accessibles sur vos machines, comme si elles étaient sur le même réseau que la plateforme.
1.2. Avantages de L2TPv3
- Transport Layer 2 complet (trames Ethernet).
- Supporte l'encapsulation UDP (facilement NAT-able) ou IP (protocole 115, plus léger).
- IDs de session et tunnel configurables, permettant plusieurs tunnels vers le même endpoint.
- Compatible avec de nombreux équipements réseau (Linux, MikroTik, Cisco, Juniper).
- Peut être combiné avec d'autres tunnels L2 via un bridge.
1.3. Inconvénients
- Pas de chiffrement natif.
- Configuration plus complexe que VXLAN ou GRETAP (IDs de session/tunnel à configurer).
- En mode IP (protocole 115), nécessite une DMZ si derrière un NAT.
2. Prérequis
2.1. Ce dont vous avez besoin
- Une IP publique (ou une redirection de port si encapsulation UDP, ou une DMZ si encapsulation IP).
- Un routeur ou serveur compatible L2TPv3 (Linux, MikroTik, Cisco, Juniper, etc.).
- Un service Tunnel-IP.
2.2. Ports et NAT
- Encapsulation UDP : L2TPv3 utilise un port UDP configurable. Si vous êtes derrière un NAT, il suffit de rediriger ce port.
- Encapsulation IP : L2TPv3 utilise le protocole 115. Ce n'est ni UDP ni TCP, il faut donc configurer une DMZ si vous êtes derrière un NAT.
3. Étape 1 : Créer le bridge et le tunnel sur Tunnel-IP.com
Les tunnels L2 fonctionnent avec des **bridges** sur la plateforme. Un bridge est un switch virtuel qui regroupe vos tunnels L2 et vos subnets. Vous devez d'abord créer un bridge, puis créer le tunnel en l'associant à ce bridge.
3.1. Créer le bridge
- Connectez-vous à panel.tunnel-ip.com
- Allez dans "Bridges".
- Cliquez sur "Ajouter un Bridge" et donnez-lui un nom.
- Validez. Le bridge sera créé sur la plateforme.
3.2. Créer le tunnel L2TPv3
- Allez dans "Tunnels" > "L2TPv3".
- Remplissez les informations :
- Endpoint (IP publique du routeur / box, ex :
<span class="editor-theme-code">203.0.113.1</span>). - Zone : Zone géographique du serveur.
- Nom (ex :
<span class="editor-theme-code">L2TPv3_Tunnel</span>). - MTU : Taille maximale des paquets (-1 pour laisser la plateforme choisir).
- Bridge : Sélectionnez le bridge créé précédemment.
- Encapsulation : Choisissez UDP ou IP selon votre configuration réseau.
- Peer session id : ID de session du côté distant (votre côté). Doit correspondre au
session_idque vous configurerez sur votre routeur. - Peer tunnel id : ID de tunnel du côté distant (votre côté). Doit correspondre au
tunnel_idque vous configurerez sur votre routeur. - Peer udp port : Port UDP de l'autre côté du tunnel. Laisser vide si encapsulation IP.
- Endpoint (IP publique du routeur / box, ex :
- Validez. La plateforme s'occupera de configurer le tunnel côté Tunnel-IP.com.
- Attendez que le tunnel soit créé
- Cliquez sur "Accéder" pour récupérer les détails du tunnel (vous y trouverez les IDs côté plateforme)
**Important :** Les IDs de session et de tunnel doivent être **croisés** : le `peer_session_id` de la plateforme doit correspondre à votre `session_id` local, et inversement. Vérifiez bien les valeurs sur la page détails du tunnel.
3.3. Créer le subnet
1. Allez dans "Subnets"
2. Copiez le bloc d'IP publique et collez le dans le formulaire
3. Sélectionnez le bridge (et non un tunnel directement) comme destination
4. Cliquez sur Créer
5. Une fois son statut à "Actif", la route est correctement installée sur les routeurs de la plateforme
**Important :** La première IP du subnet sera utilisée comme **gateway** sur le bridge côté plateforme. Par exemple, pour le subnet `198.51.100.0/29`, la gateway sera `198.51.100.1`.
4. Étape 2 : Configurer le tunnel
L2TPv3 transporte des trames Ethernet (Layer 2). Côté client, vous devez créer l'interface L2TPv3 puis la **bridger** avec votre interface LAN (ou lui assigner directement une IP du subnet).
Dans les exemples ci-dessous, les valeurs suivantes sont utilisées. **Adaptez-les** avec les paramètres fournis par la plateforme :
- IP distante (plateforme) : `172.16.126.33`
- Session ID local : `1000` / Peer session ID : `2000`
- Tunnel ID local : `1000` / Peer tunnel ID : `2000`
- Port UDP (si encapsulation UDP) : `1701`
4.1. Exemple pour Linux (Ubuntu/Debian) — Encapsulation UDP
Étapes :
-
Créer le tunnel L2TPv3 :
ip l2tp add tunnel tunnel_id 1000 peer_tunnel_id 2000 \ encap udp local 192.168.1.1 remote 172.16.126.33 \ udp_sport 1701 udp_dport 1701tunnel_id 1000: ID du tunnel local.peer_tunnel_id 2000: ID du tunnel côté plateforme.local 192.168.1.1: IP locale du routeur.remote 172.16.126.33: IP distante (Tunnel-IP.com).udp_sport/udp_dport: Ports UDP source et destination.
-
Créer la session L2TPv3 :
ip l2tp add session tunnel_id 1000 session_id 1000 \ peer_session_id 2000 -
Activer l'interface :
ip link set l2tpeth0 upL'interface
l2tpeth0est créée automatiquement. -
Option A : Assigner directement une IP publique :
ip addr add 198.51.100.2/29 dev l2tpeth0 ip route add default via 198.51.100.1 dev l2tpeth0 -
Option B : Bridger avec une interface LAN :
ip link add br0 type bridge ip link set br0 up ip link set l2tpeth0 master br0 ip link set eth1 master br0 # Interface LAN vers vos machinesLes machines connectées à
eth1pourront alors utiliser les IPs du subnet directement, avec198.51.100.1comme gateway.
4.2. Exemple pour Linux — Encapsulation IP
La procédure est similaire, mais avec encap ip :
ip l2tp add tunnel tunnel_id 1000 peer_tunnel_id 2000 \
encap ip local 192.168.1.1 remote 172.16.126.33
ip l2tp add session tunnel_id 1000 session_id 1000 \
peer_session_id 2000
ip link set l2tpeth0 up
En encapsulation IP, aucun port UDP n'est utilisé. Le protocole 115 est utilisé directement. Assurez-vous que votre box / NAT le laisse passer (DMZ recommandée).
4.3. Exemple pour MikroTik
Étapes :
- Créer l'interface L2TP client :
MikroTik supporte L2TPv3 à partir de **RouterOS v7**. Sur les versions antérieures, seul L2TP (v2) est disponible.
```bash
/interface/l2tp-ether/add name=l2tp-ether1 \
local-address=192.168.1.1 remote-address=172.16.126.33 \
tunnel-id=1000 peer-tunnel-id=2000 \
session-id=1000 peer-session-id=2000
```
-
Option A : Assigner une IP publique directement :
/ip/address/add address=198.51.100.2/29 interface=l2tp-ether1 /ip/route/add dst-address=0.0.0.0/0 gateway=198.51.100.1 -
Option B : Bridger avec une interface LAN :
/interface/bridge/add name=br-l2tp /interface/bridge/port/add bridge=br-l2tp interface=l2tp-ether1 /interface/bridge/port/add bridge=br-l2tp interface=ether2 # Interface LAN
4.4. Exemple pour Cisco (IOS/XE)
Étapes :
-
Accéder au mode configuration :
enable configure terminal -
Créer la pseudowire L2TPv3 :
pseudowire-class L2TPv3-PW encapsulation l2tpv3 protocol none ip local interface GigabitEthernet0/0 -
Créer l'interface xconnect :
interface GigabitEthernet0/1 xconnect 172.16.126.33 1000 encapsulation l2tpv3 pw-class L2TPv3-PW172.16.126.33: IP distante (Tunnel-IP.com).1000: VC ID (doit correspondre aux IDs configurés sur la plateforme).
-
Sauvegarder la configuration :
write memory
La configuration L2TPv3 sur Cisco varie selon la plateforme (IOS, IOS-XE, NX-OS). La syntaxe `xconnect` est disponible sur IOS et IOS-XE. Consultez la documentation de votre modèle.
4.5. Exemple pour Juniper (JunOS)
Étapes :
-
Accéder au mode configuration :
edit -
Créer le tunnel L2TPv3 :
set protocols l2circuit neighbor 172.16.126.33 interface ge-0/0/1.0 \ virtual-circuit-id 1000 encapsulation-type ethernet set interfaces ge-0/0/1 encapsulation ethernet-bridge set interfaces ge-0/0/1 unit 0 family bridge172.16.126.33: IP distante (Tunnel-IP.com).virtual-circuit-id 1000: ID du circuit (doit correspondre aux IDs de la plateforme).
-
Créer le bridge domain :
set bridge-domains L2TPv3-BD interface ge-0/0/1.0 set bridge-domains L2TPv3-BD routing-interface irb.100 set interfaces irb unit 100 family inet address 198.51.100.2/29 -
Appliquer la configuration :
commit
4.6. Note pour Arista (EOS)
Arista EOS ne supporte pas nativement L2TPv3. Si vous devez utiliser un switch Arista, vous pouvez utiliser VXLAN comme alternative L2, ou placer un serveur Linux comme point de terminaison L2TPv3 devant votre switch Arista.
5. Étape 3 : Configurer les IPs publiques
5.1. Architecture L2
Internet → [Infrastructure Tunnel-IP.com] → [Bridge plateforme] → (Tunnel L2TPv3) → [Votre Bridge/Interface] → [Vos Machines]
- La plateforme met la première IP du subnet comme gateway sur le bridge (ex:
198.51.100.1). - Vos machines utilisent les autres IPs du subnet.
- Comme le tunnel est L2, les trames Ethernet passent directement, pas besoin de NAT ni de routage complexe.
5.2. Attribution des IPs
Un /29 contient 8 adresses IP :
198.51.100.0: Adresse réseau (inutilisable).198.51.100.1: Gateway plateforme (réservée automatiquement).198.51.100.2à198.51.100.6: IPs utilisables pour vos machines.198.51.100.7: Adresse broadcast (inutilisable).
5.3. Configuration sur les machines
Sur chaque machine qui doit utiliser une IP publique :
Linux :
ip addr add 198.51.100.2/29 dev eth0
ip route add default via 198.51.100.1
MikroTik :
/ip/address/add address=198.51.100.2/29 interface=ether1
/ip/route/add dst-address=0.0.0.0/0 gateway=198.51.100.1
Si vous avez bridgé l'interface L2TPv3 avec votre LAN, les machines peuvent être configurées directement avec les IPs publiques et la gateway `198.51.100.1`, comme si elles étaient sur un réseau local classique.
6. Commandes spécifiques par constructeur
| Constructeur | Commande pour vérifier le tunnel | Commande pour vérifier le bridge |
|---|---|---|
| Linux | ip l2tp show tunnel / ip l2tp show session |
bridge link show |
| MikroTik | /interface l2tp-ether print |
/interface bridge port print |
| Cisco | show l2tun tunnel / show xconnect all |
show bridge-domain |
| Juniper | show l2circuit connections |
show bridge-domain |
7. Vérification et Dépannage
7.1. Tester la connectivité
- Depuis votre routeur / machine :
ping 198.51.100.1 # Ping de la gateway plateforme - Vérifier le tunnel L2TPv3 (Linux) :
ip l2tp show tunnel # Vérifier les tunnels ip l2tp show session # Vérifier les sessions ip -d link show l2tpeth0 # Vérifier l'interface - Depuis une machine locale :
ping 8.8.8.8 # Vérification internet curl -4 ifconfig.me # Vérification de l'IP sortante
7.2. Problèmes courants
| Symptôme | Cause Possible | Solution |
|---|---|---|
| Le tunnel ne répond pas (encap UDP) | Port UDP bloqué | Vérifiez la redirection du port sur votre box |
| Le tunnel ne répond pas (encap IP) | Protocole 115 bloqué | Configurez une DMZ sur votre box |
| Pas de connectivité L2 | IDs session/tunnel inversés | Vérifiez que les IDs sont bien croisés : votre session_id = peer_session_id de la plateforme, et inversement |
| La gateway ne répond pas | Subnet non associé au bridge | Vérifiez que le subnet est bien associé au bridge sur la plateforme |
| Latence élevée / Pertes de paquets | MTU trop grande | Réduisez la MTU (overhead L2TPv3 UDP ≈ 36 octets, IP ≈ 12 octets) |
| Les IPs publiques ne fonctionnent pas | Mauvaise gateway | Utilisez la première IP du subnet comme gateway (ex: 198.51.100.1) |
8. Bonnes Pratiques
- Sécurité :
- Filtrez le trafic entrant avec un pare-feu (ex:
iptablesou ACL). - L2TPv3 n'offre aucun chiffrement natif. Envisagez IPsec en complément si le chiffrement est nécessaire.
- Filtrez le trafic entrant avec un pare-feu (ex:
- Performance :
- Ajustez la MTU en fonction de l'encapsulation choisie.
- L'encapsulation IP est plus performante (moins d'overhead) mais moins compatible avec le NAT.
- L'encapsulation UDP est recommandée si vous êtes derrière un NAT.
- Bridging :
- Vous pouvez combiner plusieurs tunnels L2 (VXLAN, EoIP, GRETAP, L2TPv3) sur le même bridge, aussi bien sur la plateforme que côté client.
- Attention aux boucles de bridge : activez le STP si nécessaire.
Sessions BGP
1. Introduction : Pourquoi utiliser BGP ?
1.1. À quoi sert une session BGP sur Tunnel-IP.com ?
Le protocole BGP (Border Gateway Protocol) est le protocole de routage utilisé sur Internet pour échanger des préfixes IP entre systèmes autonomes (AS). Sur Tunnel-IP.com, les sessions BGP vous permettent d'annoncer vos propres préfixes IP à travers notre infrastructure, offrant un contrôle total sur votre routage.
Cas d'usage :
- Vous possédez votre propre bloc d'IPs (PI/PA) et votre ASN.
- Vous souhaitez annoncer vos préfixes via l'infrastructure Tunnel-IP.com.
- Vous avez besoin d'un contrôle dynamique de vos routes (failover, multihoming, etc.).
1.2. Les deux types de sessions
Tunnel-IP.com propose deux types de sessions BGP :
| Session normale | Session autogérée | |
|---|---|---|
| Principe | Session BGP classique à travers un tunnel L3. Vous configurez BGP sur votre routeur et échangez des préfixes avec la plateforme. | Routeur virtuel entièrement géré par Tunnel-IP.com. Nous annonçons vos préfixes avec votre ASN (ou le nôtre) et routons le trafic vers votre tunnel. |
| Configuration côté client | Oui — vous devez configurer un démon BGP sur votre routeur. | Non — aucune configuration BGP nécessaire de votre côté. |
| Tunnel requis | Oui — un tunnel L3 (GRE, IPIP, Wireguard, etc.) doit être configuré. La session BGP passe à travers le tunnel. | Non obligatoire pour le BGP lui-même — les subnets sont assignés directement à la session autogérée via le panel, puis routés statiquement vers le tunnel de votre choix. |
| ASN requis | Oui — votre propre ASN, enregistré sur le panel. | Optionnel — vous pouvez utiliser votre ASN ou celui de Tunnel-IP.com. |
| Contrôle | Total — vous choisissez quels préfixes annoncer et pouvez gérer le routage dynamiquement. | Limité — nous gérons l'annonce, vous gérez l'attribution des subnets via le panel. |
| Idéal pour | Utilisateurs avancés, multihoming, failover BGP. | Utilisateurs qui veulent simplement annoncer leurs IPs sans gérer BGP. |
2. Prérequis
2.1. Pour les deux types de sessions
- Un service Tunnel-IP.com actif.
- Vos préfixes IP correctement enregistrés auprès d'un RIR (RIPE, ARIN, etc.).
- Un route object correctement configuré dans la base IRR correspondante (RIPE DB, RADB, etc.) autorisant l'annonce de vos préfixes par votre ASN (ou celui de Tunnel-IP.com pour les sessions autogérées).
- Une LOA (Letter of Authorization) si les préfixes ne vous appartiennent pas directement.
2.2. Spécifique à la session normale
- Un tunnel L3 configuré et fonctionnel (GRE, IPIP, Wireguard, OpenVPN, IPsec).
- Votre ASN enregistré sur panel.tunnel-ip.com/asn/ avec votre AS-SET.
- Un routeur capable de faire du BGP (Linux avec BIRD/FRR, MikroTik, Cisco, Juniper, etc.).
2.3. Spécifique à la session autogérée
- Si vous souhaitez utiliser votre propre ASN : l'enregistrer sur panel.tunnel-ip.com/asn/.
- Si vous souhaitez utiliser l'ASN de Tunnel-IP.com : aucun ASN à enregistrer.
- Une demande de whitelist de vos préfixes accompagnée de la LOA.
3. Enregistrer son ASN
Si vous souhaitez utiliser l'ASN de Tunnel-IP.com (uniquement pour les sessions autogérées), vous pouvez passer cette étape.
- Connectez-vous à panel.tunnel-ip.com
- Allez dans "ASN" (panel.tunnel-ip.com/asn/).
- Cliquez sur "Ajouter un ASN".
- Renseignez :
- Votre numéro d'AS (ex :
AS211615). - Votre AS-SET (ex :
AS-EXAMPLE). L'AS-SET est utilisé pour valider automatiquement les préfixes que vous êtes autorisé à annoncer.
- Votre numéro d'AS (ex :
- Validez.
**Important :** Assurez-vous que votre AS-SET est correctement maintenu dans une base IRR (RIPE, RADB, etc.) et qu'il contient bien les préfixes que vous souhaitez annoncer. Sans cela, vos annonces seront rejetées.
4. Session autogérée
La session autogérée est la méthode la plus simple : Tunnel-IP.com gère entièrement l'annonce BGP de vos préfixes. Vous n'avez aucune configuration BGP à faire sur votre routeur.
4.1. Comment ça fonctionne ?
Internet ← [Routeurs Tunnel-IP.com annoncent vos préfixes en BGP] ← Route statique → [Votre Tunnel] → [Votre Routeur]
- Vous nous fournissez vos préfixes et la LOA.
- Nous créons la session autogérée et whitelistons vos préfixes.
- Sur le panel, vous assignez vos subnets à la session autogérée.
- Le trafic entrant arrive sur notre infrastructure et est routé statiquement vers le tunnel de votre choix.
- Côté sortant, vous configurez votre routeur pour envoyer le trafic de vos préfixes via le tunnel (comme pour un tunnel L3 classique — voir les docs de routage sortant).
4.2. Étapes
- Ouvrir un ticket pour demander la création d'une session autogérée.
- Précisez les préfixes à annoncer.
- Fournissez la LOA si nécessaire.
- Précisez si vous souhaitez utiliser votre ASN ou celui de Tunnel-IP.com.
- Attendre la validation : nous vérifions le route object, l'AS-SET et la LOA.
- Whitelist effectuée : une fois vos préfixes whitelistés, vous pouvez les gérer depuis le panel.
- Assigner vos subnets :
- Allez dans "Subnets".
- Créez un subnet correspondant à vos préfixes whitelistés.
- Assignez-le à la session BGP autogérée.
- Configurer le routage sortant sur votre routeur (tables de routage / policy routing), comme pour un tunnel L3 classique.
Avec une session autogérée, vous n'avez **pas** besoin de configurer un démon BGP. Le routage entrant est géré par la plateforme, et le routage sortant se fait via les méthodes classiques (policy routing, VRF) décrites dans les documentations des tunnels L3.
5. Session normale (BGP à travers un tunnel L3)
La session normale vous donne un contrôle total sur vos annonces BGP. Vous configurez un démon BGP sur votre routeur qui établit une session avec les routeurs de Tunnel-IP.com à travers votre tunnel L3.
5.1. Comment ça fonctionne ?
Internet ← [Routeurs Tunnel-IP.com] ← Session BGP via tunnel → [Votre Routeur BGP] → [Votre Réseau]
100.64.0.5 ←→ 100.64.0.6
- La session BGP s'établit entre l'IP plateforme du tunnel (ex:
100.64.0.5) et votre IP client du tunnel (ex:100.64.0.6). - Vous annoncez vos préfixes à la plateforme via BGP.
- La plateforme annonce vos préfixes vers Internet.
5.2. Étapes de mise en place
- Avoir un tunnel L3 fonctionnel : configurez d'abord un tunnel GRE, IPIP, Wireguard, etc. et vérifiez que le ping fonctionne entre les deux côtés (ex:
ping 100.64.0.5). - Enregistrer votre ASN sur panel.tunnel-ip.com/asn/ (voir section 3).
- Vérifier votre route object : assurez-vous que vos préfixes sont correctement déclarés dans une base IRR et que votre AS-SET est à jour.
- Ouvrir un ticket pour demander la création de la session BGP.
- Précisez le tunnel sur lequel la session doit être établie.
- Précisez votre ASN.
- Précisez les préfixes que vous souhaitez annoncer.
- Attendre la création : nous configurons la session côté plateforme et vous fournissons les détails.
- Configurer BGP sur votre routeur (voir section 5.3).
5.3. Informations de la session
Une fois la session créée, vous retrouverez les informations suivantes sur la page "Sessions BGP" du panel :
| Champ | Description | Exemple |
|---|---|---|
| Nom | Identifiant de la session | BGP-41 |
| ASN Client | Votre ASN | AS65000 |
| ASN Tunnel | ASN utilisé sur le tunnel | AS211615 |
| Zone | Zone du serveur | Default Zone V2 |
| IP Client | Votre IP de peering (IP de votre côté du tunnel) | 100.64.0.6 |
| IP Plateforme | IP de peering côté Tunnel-IP.com | 100.64.0.5 |
| Status | État de la session BGP | Connect, Established, Active |
| Préfixes acceptés | Nombre de préfixes que la plateforme accepte de votre part | 0, 5, etc. |
5.4. Configurer BGP sur votre routeur
Les exemples ci-dessous utilisent les valeurs suivantes. **Adaptez-les** avec les informations fournies sur le panel :
- Votre ASN : `65000`
- IP plateforme (neighbor) : `100.64.0.5`
- Votre IP tunnel : `100.64.0.6`
- Préfixe à annoncer : `203.0.113.0/24`
Linux (BIRD 2)
# /etc/bird/bird.conf
router id 100.64.0.6;
protocol device {
scan time 10;
}
protocol static {
ipv4 {
table master4;
};
# Déclarer les préfixes à annoncer
route 203.0.113.0/24 blackhole;
}
protocol bgp tunnel_ip {
local 100.64.0.6 as 65000;
neighbor 100.64.0.5 as 211615;
ipv4 {
import all; # Accepter les routes de la plateforme
export where proto = "static"; # Annoncer nos préfixes statiques
};
}
Puis redémarrer BIRD :
birdc configure
Linux (FRRouting / FRR)
# /etc/frr/frr.conf
frr defaults traditional
hostname routeur
log syslog informational
router bgp 65000
bgp router-id 100.64.0.6
neighbor 100.64.0.5 remote-as 211615
!
address-family ipv4 unicast
network 203.0.113.0/24
neighbor 100.64.0.5 activate
exit-address-family
!
ip route 203.0.113.0/24 Null0
Puis recharger :
systemctl reload frr
MikroTik (RouterOS v7)
# Ajouter l'instance BGP
/routing/bgp/connection/add name=tunnel-ip \
remote.address=100.64.0.5 remote.as=211615 \
local.address=100.64.0.6 local.role=ebgp \
as=65000 \
output.filter-chain=bgp-out \
input.filter-chain=bgp-in
# Créer les filtres
/routing/filter/rule/add chain=bgp-out rule="if (dst == 203.0.113.0/24) { accept }"
/routing/filter/rule/add chain=bgp-out rule="reject"
/routing/filter/rule/add chain=bgp-in rule="accept"
# Route blackhole pour le préfixe annoncé
/ip/route/add dst-address=203.0.113.0/24 type=blackhole
Cisco (IOS/XE)
router bgp 65000
bgp router-id 100.64.0.6
neighbor 100.64.0.5 remote-as 211615
!
address-family ipv4
network 203.0.113.0 mask 255.255.255.0
neighbor 100.64.0.5 activate
exit-address-family
!
ip route 203.0.113.0 255.255.255.0 Null0
Juniper (JunOS)
set routing-options router-id 100.64.0.6
set routing-options autonomous-system 65000
set protocols bgp group TUNNEL-IP type internal # internal si même ASN, external sinon
set protocols bgp group TUNNEL-IP neighbor 100.64.0.5
set protocols bgp group TUNNEL-IP export ADVERTISE
set policy-options policy-statement ADVERTISE term 1 from route-filter 203.0.113.0/24 exact
set policy-options policy-statement ADVERTISE term 1 then accept
set policy-options policy-statement ADVERTISE term 2 then reject
set routing-options static route 203.0.113.0/24 discard
commit
Arista (EOS)
router bgp 65000
router-id 100.64.0.6
neighbor 100.64.0.5 remote-as 211615
!
address-family ipv4
network 203.0.113.0/24
neighbor 100.64.0.5 activate
ip route 203.0.113.0/24 Null0
6. Vérification
6.1. Vérifier l'état de la session
Le status de la session est visible sur le panel. Les états possibles :
| Status | Signification |
|---|---|
| Established | ✅ La session est active et fonctionne. |
| Connect | ⏳ La plateforme tente de se connecter — vérifiez votre configuration. |
| Active | ⏳ La plateforme attend une connexion — vérifiez votre configuration et la connectivité du tunnel. |
| Idle | ❌ La session est inactive. |
| OpenSent / OpenConfirm | ⏳ Négociation en cours — patientez ou vérifiez les ASN. |
6.2. Commandes de vérification par constructeur
Linux (BIRD 2)
birdc show protocols all tunnel_ip # Détails de la session
birdc show route export tunnel_ip # Préfixes annoncés
birdc show route protocol tunnel_ip # Préfixes reçus
Linux (FRR)
vtysh -c "show bgp summary"
vtysh -c "show bgp ipv4 unicast neighbors 100.64.0.5"
vtysh -c "show bgp ipv4 unicast"
MikroTik
/routing/bgp/session/print
/routing/bgp/advertisements/print
/ip/route/print where bgp
Cisco
show bgp summary
show bgp ipv4 unicast neighbors 100.64.0.5
show bgp ipv4 unicast
Juniper
show bgp summary
show bgp neighbor 100.64.0.5
show route protocol bgp
7. Dépannage
7.1. Problèmes courants
| Symptôme | Cause Possible | Solution |
|---|---|---|
| Session en "Connect" ou "Active" | Le tunnel L3 ne fonctionne pas | Vérifiez que vous pouvez pinger l'IP plateforme du tunnel (ping 100.64.0.5) |
| Session en "Connect" ou "Active" | Port TCP 179 bloqué | Vérifiez qu'aucun pare-feu ne bloque le port 179 sur l'interface tunnel |
| Session en "OpenSent" | ASN incorrect | Vérifiez que l'ASN configuré correspond à celui déclaré sur le panel |
| Préfixes acceptés = 0 | Préfixes non annoncés | Vérifiez votre configuration BGP (filtres, network, route statique blackhole) |
| Préfixes acceptés = 0 | Route object manquant ou incorrect | Vérifiez votre route object dans la base IRR et votre AS-SET sur le panel |
| Préfixes rejetés | Préfixe trop spécifique | Vérifiez que vous n'annoncez pas de préfixes plus spécifiques que /24 (sauf accord) |
| Session "Established" mais pas de trafic | Routage sortant mal configuré | Configurez le policy routing / VRF pour que le trafic sortant passe par le tunnel (voir docs tunnel L3) |
7.2. Vérifications à faire avant d'ouvrir un ticket
- ✅ Le tunnel L3 fonctionne (ping entre les deux côtés).
- ✅ Le port TCP 179 n'est pas bloqué par un pare-feu.
- ✅ L'ASN est correctement enregistré sur le panel.
- ✅ Le route object existe dans la base IRR.
- ✅ L'AS-SET contient bien vos préfixes.
- ✅ La configuration BGP est correcte (bon ASN, bonne IP neighbor).
- ✅ Une route statique blackhole existe pour chaque préfixe annoncé.
8. BGP Communities
Les BGP communities permettent de contrôler le comportement de vos annonces sur l'infrastructure Tunnel-IP.com (prépend, localisation, blackhole, etc.).
La documentation complète des communities supportées est disponible ici : BGP Communities
9. Bonnes Pratiques
- Route objects :
- Maintenez vos route objects à jour dans la base IRR.
- Utilisez un AS-SET cohérent qui regroupe tous vos préfixes.
- Configurez le RPKI (ROA) pour vos préfixes afin de renforcer la sécurité de vos annonces.
- Filtrage :
- N'annoncez que les préfixes qui vous appartiennent.
- Utilisez des filtres d'export stricts (n'exportez que vos préfixes via des
prefix-listoufilter). - Mettez en place des filtres d'import pour ne pas accepter de routes indésirables.
- Blackhole :
- Créez toujours une route statique blackhole (
Null0,discard,blackhole) pour chaque préfixe annoncé. Cela évite les boucles de routage.
- Créez toujours une route statique blackhole (
- Monitoring :
- Surveillez l'état de vos sessions BGP régulièrement via le panel ou vos outils de monitoring.
- Vérifiez le nombre de préfixes acceptés sur le panel.




