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.5100.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 :

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 :

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 :

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 :

BGPs

Page Bridges :

Bridges

Configuration

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 :

1.2. Avantages de GRE

1.3. Inconvénients


2. Prérequis

2.1. Ce dont vous avez besoin

2.2. Ports et NAT


3. Étape 1 : Créer le tunnel sur Tunnel-IP.com

3.1. Accéder au tableau de bord

  1. Connectez-vous à panel.tunnel-ip.com
  2. Allez dans "Tunnels" > "GRE".
  3. Remplissez les informations :
    • Nom du tunnel (ex : Tunnel_X).
    • Endpoint (IP publique du routeur / box, ex : 203.0.113.1).
    • Clé (si applicable).
    • image.png
  4. Validez. La plateforme s'occupera de choisir les IPs et de configurer le tunnel côté Tunnel-IP.com.
  5. Attendez que le tunnel soit crééimage.png
  6. Cliquez sur "Accéder" pour récupérer les détails du tunnel
  7. image.png

3.2. Créer le subnet (Route côté plateforme)

1. Allez dans "Subnets"

image.png

2. Copiez le bloc d'IP publique et collez le dans le formulaire

image.png

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 :

  1. Activer le forwarding IP (pour permettre le routage) :
    echo 1 > /proc/sys/net/ipv4/ip_forward

    (Pour rendre permanent, ajoutez net.ipv4.ip_forward=1 dans /etc/sysctl.conf.)
  2. Créer l’interface tunnel :
    ip tunnel add tunnel0 mode gre remote 172.16.126.33
    ip link set tunnel0 up
    • tunnel0 : Nom de l’interface tunnel.
    • remote 172.16.126.33 : IP distante (Tunnel-IP.com).
  3. 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 tunnel0
    • 100.64.0.6/30 : IP locale du tunnel (ex : 100.64.0.5/30 est côté plateforme).
    • fd00:42:cafe:1::2/64 : IPv6 Interne client

4.2. Exemple pour MikroTik

Étapes :

  1. Créer l’interface GRE :
    /interface/gre/add remote-address=172.16.126.33 name=tun4
  2. 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 :

  1. Accéder au mode configuration :
    enable
    configure terminal
  2. 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 tunnel
    • Tunnel0 : Nom de l’interface tunnel.
    • tunnel mode gre ip : Active le mode GRE pour IPv4.
  3. Activer l’interface :
    no shutdown
    exit
  4. Sauvegarder la configuration :
    write memory

4.4. Exemple pour Arista (EOS)

Étapes :

  1. Accéder au mode configuration :
    enable
    configure terminal
  2. 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.
  3. Activer l’interface :
    no shutdown
    exit
  4. Sauvegarder la configuration :
    write memory

4.5. Exemple pour Juniper (JunOS)

Étapes :

  1. Accéder au mode configuration :
    edit
  2. 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/30
    • gr-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.
  3. 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 :


5.2. Rappel : Architecture du Tunnel

Internet → [Infrastructure Tunnel-IP.com] → (Tunnel GRE) → [Votre Routeur] → [Votre Réseau]

5.3. Cas d’Usage du Bloc /30

Un /30 contient 4 adresses IP :


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 :


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

show interface Tunnel0

show ip route

Arista

show interface Tunnel0

show ip route

Juniper

show interfaces gr-0/0/0

show route

Linux

ip tunnel show

ip route

MikroTik

/interface gre print

/ip route print

7. Vérification et Dépannage

7.1. Tester la connectivité

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 ip route ou show ip route

Latence élevée / Pertes de paquets

MTU trop grande

Réduisez la MTU : ip link set mtu 1476 dev tunnel0


8. Bonnes Pratiques

  1. Sécurité :
    • Filtrez le trafic entrant avec un pare-feu (ex: iptables ou ACL Cisco).
  2. Performance :
    • Réduisez la MTU à 1476 pour éviter la fragmentation.
    • Activez le keepalive sur le tunnel (ex: keepalive 10 3 sur Cisco).
  3. Redondance :
    • Configurez un deuxième tunnel GRE pour le failover.

9. Prochaines Étapes


Configuration

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 :

1.2. Avantages de IPIP

1.3. Inconvénients


2. Prérequis

2.1. Ce dont vous avez besoin

2.2. Ports et NAT


3. Étape 1 : Créer le tunnel sur Tunnel-IP.com

3.1. Accéder au tableau de bord

  1. Connectez-vous à panel.tunnel-ip.com
  2. Allez dans "Tunnels" > "IPIP".
  3. Remplissez les informations :
    • Nom du tunnel (ex : Tunnel_X).
    • Endpoint (IP publique du routeur / box, ex : 203.0.113.1).
  4. Validez. La plateforme s'occupera de choisir les IPs et de configurer le tunnel côté Tunnel-IP.com.
  5. Attendez que le tunnel soit créé
  6. 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 :

  1. Activer le forwarding IP (pour permettre le routage) :

    echo 1 > /proc/sys/net/ipv4/ip_forward
    

    (Pour rendre permanent, ajoutez net.ipv4.ip_forward=1 dans /etc/sysctl.conf*.)*

  2. Créer l'interface tunnel :

    ip tunnel add tunnel0 mode ipip remote 172.16.126.33
    ip link set tunnel0 up
    
    • tunnel0 : Nom de l'interface tunnel.
    • remote 172.16.126.33 : IP distante (Tunnel-IP.com).
  3. Assigner une IP au tunnel :

    ip addr add 100.64.0.6/30 dev tunnel0
    
    • 100.64.0.6/30 : IP locale du tunnel (ex : 100.64.0.5/30 est côté plateforme).

4.2. Exemple pour MikroTik

Étapes :

  1. Créer l'interface IPIP :
    /interface/ipip/add remote-address=172.16.126.33 name=tun4
    
  2. Assigner une IP au tunnel :
    /ip/address/add address=100.64.0.6/30 interface=tun4
    

4.3. Exemple pour Cisco (IOS/XE)

Étapes :

  1. Accéder au mode configuration :

    enable
    configure terminal
    
  2. 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 tunnel
    
    • Tunnel0 : Nom de l'interface tunnel.
    • tunnel mode ipip : Active le mode IPIP.
  3. Activer l'interface :

    no shutdown
    exit
    
  4. Sauvegarder la configuration :

    write memory
    

4.4. Exemple pour Arista (EOS)

Étapes :

  1. Accéder au mode configuration :

    enable
    configure terminal
    
  2. 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.
  3. Activer l'interface :

    no shutdown
    exit
    
  4. Sauvegarder la configuration :

    write memory
    

4.5. Exemple pour Juniper (JunOS)

Étapes :

  1. Accéder au mode configuration :

    edit
    
  2. 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/30
    
    • ip-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.
  3. 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 :


5.2. Rappel : Architecture du Tunnel

Internet → [Infrastructure Tunnel-IP.com] → (Tunnel IPIP) → [Votre Routeur] → [Votre Réseau]

5.3. Cas d'Usage du Bloc /30

Un /30 contient 4 adresses IP :


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 :


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é

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

  1. Sécurité :
    • Filtrez le trafic entrant avec un pare-feu (ex: iptables ou ACL Cisco).
    • IPIP n'offre aucun chiffrement. Envisagez IPsec si le chiffrement est nécessaire.
  2. Performance :
    • Réduisez la MTU à 1480 pour éviter la fragmentation (overhead IPIP = 20 octets).
    • Activez le keepalive sur le tunnel (ex: keepalive 10 3 sur Cisco).
  3. Redondance :
    • Configurez un deuxième tunnel IPIP pour le failover.

Configuration

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 :

1.2. Avantages de Wireguard

1.3. Inconvénients


2. Prérequis

2.1. Ce dont vous avez besoin

2.2. Ports et NAT


3. Étape 1 : Créer le tunnel sur Tunnel-IP.com

3.1. Accéder au tableau de bord

  1. Connectez-vous à panel.tunnel-ip.com
  2. Allez dans "Tunnels" > "Wireguard".
  3. Remplissez les informations :
    • Nom du tunnel (ex : Tunnel_X).
    • Endpoint (IP publique du routeur / box, ex : 203.0.113.1).
  4. Validez. La plateforme s'occupera de choisir les IPs et de configurer le tunnel côté Tunnel-IP.com.
  5. Attendez que le tunnel soit créé
  6. 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 :

  1. Installer Wireguard :
    apt update && apt install wireguard -y
  2. 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 = 25
    • PrivateKey : Votre clé privée (générée automatiquement ou manuellement avec wg 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.
  3. Activer le tunnel :
    wg-quick up wg0
  4. Activer au démarrage :
    systemctl enable wg-quick@wg0
  5. Activer le forwarding IP (pour permettre le routage) :
    echo 1 > /proc/sys/net/ipv4/ip_forward

    (Pour rendre permanent, ajoutez net.ipv4.ip_forward=1 dans /etc/sysctl.conf.)

4.2. Exemple pour MikroTik

Étapes :

  1. Créer l'interface Wireguard :
    /interface/wireguard/add name=wg0 listen-port=51820
  2. Récupérer la clé publique (à fournir à la plateforme) :
    /interface/wireguard/print
  3. 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
  4. 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 :


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 :


5.2. Rappel : Architecture du Tunnel

Internet → [Infrastructure Tunnel-IP.com] → (Tunnel Wireguard) → [Votre Routeur] → [Votre Réseau]

5.3. Cas d'Usage du Bloc /30

Un /30 contient 4 adresses IP :


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 :


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

wg show

ip route

MikroTik

/interface wireguard print

/ip route print

7. Vérification et Dépannage

7.1. Tester la connectivité

7.2. Problèmes courants

SymptômeCause PossibleSolution

Le tunnel ne s'établit pas (pas de handshake)

Clé publique/privée incorrecte

Vérifiez les clés avec

wg show

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

ip route

ou

/ip route print

Latence élevée / Pertes de paquets

MTU trop grande

Réduisez la MTU :

ip link set mtu 1420 dev wg0

Connexion perdue derrière NAT

PersistentKeepalive non configuré

Ajoutez

PersistentKeepalive = 25

dans la configuration du peer


8. Bonnes Pratiques

  1. 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.
  2. Performance :
    • La MTU par défaut de Wireguard est 1420. Ajustez si nécessaire en fonction de votre connexion.
    • Activez le PersistentKeepalive (ex: 25 secondes) si vous êtes derrière un NAT.
  3. Redondance :
    • Configurez un deuxième tunnel Wireguard pour le failover.

Configuration

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 :

1.2. Avantages de GRETAP

1.3. Inconvénients


2. Prérequis

2.1. Ce dont vous avez besoin

2.2. Ports et 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

  1. Connectez-vous à panel.tunnel-ip.com
  2. Allez dans "Bridges".
  3. Cliquez sur "Ajouter un Bridge" et donnez-lui un nom.
  4. Validez. Le bridge sera créé sur la plateforme.

3.2. Créer le tunnel GRETAP

  1. Allez dans "Tunnels" > "GRETAP".
  2. 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).
  3. Validez. La plateforme s'occupera de configurer le tunnel côté Tunnel-IP.com.
  4. Attendez que le tunnel soit créé
  5. 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 :

  1. Créer l'interface GRETAP :

    ip link add gretap0 type gretap remote 172.16.126.33
    ip link set gretap0 up
    
    • gretap0 : Nom de l'interface GRETAP.
    • remote 172.16.126.33 : IP distante (Tunnel-IP.com).
  2. 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 gretap0
    
    • 198.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).
  3. 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 machines
    

    Les machines connectées à eth1 pourront alors utiliser les IPs du subnet directement, avec 198.51.100.1 comme gateway.

  4. Activer le forwarding (si nécessaire) :

    echo 1 > /proc/sys/net/ipv4/ip_forward
    

    (Pour rendre permanent, ajoutez net.ipv4.ip_forward=1 dans /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 :

  1. Créer l'interface EoIP :
    /interface/eoip/add remote-address=172.16.126.33 tunnel-id=100 name=eoip-tunnel
    
  2. 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
    
  3. 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 :

  1. Accéder au mode configuration :
    enable
    configure terminal
    
  2. 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
    
  3. Créer le Bridge Domain et l'associer :
    bridge-domain 100
     member Tunnel0 service-instance 1
     member Vlan100
    
  4. Configurer l'interface VLAN :
    interface Vlan100
     ip address 198.51.100.2 255.255.255.248
     no shutdown
    
  5. 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 :

  1. Accéder au mode configuration :
    enable
    configure terminal
    
  2. 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
    
  3. Bridger le tunnel avec un VLAN :
    interface Tunnel0
     switchport access vlan 100
    
    interface Vlan100
     ip address 198.51.100.2/29
     no shutdown
    
  4. Sauvegarder la configuration :
    write memory
    

4.5. Exemple pour Juniper (JunOS)

Étapes :

  1. Accéder au mode configuration :
    edit
    
  2. 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
    
  3. 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]

5.2. Attribution des IPs

Un /29 contient 8 adresses IP :

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é

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

  1. Sécurité :
    • Filtrez le trafic entrant avec un pare-feu (ex: iptables ou ACL).
    • GRETAP n'offre aucun chiffrement natif. Envisagez IPsec ou Wireguard en complément si le chiffrement est nécessaire.
  2. Performance :
    • Réduisez la MTU à 1462 pour éviter la fragmentation (overhead GRETAP = 38 octets).
    • Vérifiez que la MTU de votre lien WAN est suffisante pour encapsuler les trames.
  3. 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.

Configuration

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 :

1.2. Avantages de VXLAN

1.3. Inconvénients


2. Prérequis

2.1. Ce dont vous avez besoin

2.2. Ports et 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

  1. Connectez-vous à panel.tunnel-ip.com
  2. Allez dans "Bridges".
  3. Cliquez sur "Ajouter un Bridge" et donnez-lui un nom.
  4. Validez. Le bridge sera créé sur la plateforme.

3.2. Créer le tunnel VXLAN

  1. Allez dans "Tunnels" > "VXLAN".
  2. 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).
  3. Validez. La plateforme s'occupera de choisir le VNI et de configurer le tunnel côté Tunnel-IP.com.
  4. Attendez que le tunnel soit créé
  5. 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 :

  1. Créer l'interface VXLAN :

    ip link add vxlan0 type vxlan id 100 remote 172.16.126.33 dstport 4789
    ip link set vxlan0 up
    
    • vxlan0 : 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.
  2. 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 vxlan0
    
    • 198.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).
  3. 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 machines
    

    Les machines connectées à eth1 pourront alors utiliser les IPs du subnet directement, avec 198.51.100.1 comme gateway.

  4. Activer le forwarding (si nécessaire) :

    echo 1 > /proc/sys/net/ipv4/ip_forward
    

    (Pour rendre permanent, ajoutez net.ipv4.ip_forward=1 dans /etc/sysctl.conf*.)*


4.2. Exemple pour MikroTik

Étapes :

  1. Créer l'interface VXLAN :
    /interface/vxlan/add name=vxlan0 vni=100 port=4789
    
  2. Ajouter le VTEP distant (Tunnel-IP.com) :
    /interface/vxlan/vteps/add interface=vxlan0 remote-ip=172.16.126.33 port=4789
    
  3. 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
    
  4. 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 :

  1. Accéder au mode configuration :
    enable
    configure terminal
    
  2. 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
    
  3. 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
    
  4. 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 :

  1. Accéder au mode configuration :
    enable
    configure terminal
    
  2. 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
    
  3. Créer le VLAN et l'associer :
    vlan 100
    
    interface Vlan100
     ip address 198.51.100.2/29
     no shutdown
    
  4. Sauvegarder la configuration :
    write memory
    

4.5. Exemple pour Juniper (JunOS)

Étapes :

  1. Accéder au mode configuration :
    edit
    
  2. 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
    
  3. 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]

5.2. Attribution des IPs

Un /29 contient 8 adresses IP :

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é

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

  1. Sécurité :
    • Filtrez le trafic entrant avec un pare-feu (ex: iptables ou ACL).
    • VXLAN n'offre aucun chiffrement natif. Envisagez IPsec ou Wireguard en complément si le chiffrement est nécessaire.
  2. Performance :
    • Réduisez la MTU à 1450 pour éviter la fragmentation (overhead VXLAN = 50 octets).
    • Vérifiez que la MTU de votre lien WAN est suffisante pour encapsuler les paquets VXLAN.
  3. 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.

Configuration

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 :

1.2. Avantages de L2TPv3

1.3. Inconvénients


2. Prérequis

2.1. Ce dont vous avez besoin

2.2. Ports et 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

  1. Connectez-vous à panel.tunnel-ip.com
  2. Allez dans "Bridges".
  3. Cliquez sur "Ajouter un Bridge" et donnez-lui un nom.
  4. Validez. Le bridge sera créé sur la plateforme.

3.2. Créer le tunnel L2TPv3

  1. Allez dans "Tunnels" > "L2TPv3".
  2. 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_id que vous configurerez sur votre routeur.
    • Peer tunnel id : ID de tunnel du côté distant (votre côté). Doit correspondre au tunnel_id que vous configurerez sur votre routeur.
    • Peer udp port : Port UDP de l'autre côté du tunnel. Laisser vide si encapsulation IP.
  3. Validez. La plateforme s'occupera de configurer le tunnel côté Tunnel-IP.com.
  4. Attendez que le tunnel soit créé
  5. 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 :

  1. 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 1701
    
    • tunnel_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.
  2. Créer la session L2TPv3 :

    ip l2tp add session tunnel_id 1000 session_id 1000 \
      peer_session_id 2000
    
  3. Activer l'interface :

    ip link set l2tpeth0 up
    

    L'interface l2tpeth0 est créée automatiquement.

  4. 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
    
  5. 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 machines
    

    Les machines connectées à eth1 pourront alors utiliser les IPs du subnet directement, avec 198.51.100.1 comme 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 :

  1. 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
```
  1. 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
    
  2. 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 :

  1. Accéder au mode configuration :

    enable
    configure terminal
    
  2. Créer la pseudowire L2TPv3 :

    pseudowire-class L2TPv3-PW
     encapsulation l2tpv3
     protocol none
     ip local interface GigabitEthernet0/0
    
  3. Créer l'interface xconnect :

    interface GigabitEthernet0/1
     xconnect 172.16.126.33 1000 encapsulation l2tpv3 pw-class L2TPv3-PW
    
    • 172.16.126.33 : IP distante (Tunnel-IP.com).
    • 1000 : VC ID (doit correspondre aux IDs configurés sur la plateforme).
  4. 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 :

  1. Accéder au mode configuration :

    edit
    
  2. 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 bridge
    
    • 172.16.126.33 : IP distante (Tunnel-IP.com).
    • virtual-circuit-id 1000 : ID du circuit (doit correspondre aux IDs de la plateforme).
  3. 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
    
  4. 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]

5.2. Attribution des IPs

Un /29 contient 8 adresses IP :

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é

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

  1. Sécurité :
    • Filtrez le trafic entrant avec un pare-feu (ex: iptables ou ACL).
    • L2TPv3 n'offre aucun chiffrement natif. Envisagez IPsec en complément si le chiffrement est nécessaire.
  2. 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.
  3. 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.

Configuration

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 :

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

2.2. Spécifique à la session normale

2.3. Spécifique à la session autogérée


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.

  1. Connectez-vous à panel.tunnel-ip.com
  2. Allez dans "ASN" (panel.tunnel-ip.com/asn/).
  3. Cliquez sur "Ajouter un ASN".
  4. 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.
  5. 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]
  1. Vous nous fournissez vos préfixes et la LOA.
  2. Nous créons la session autogérée et whitelistons vos préfixes.
  3. Sur le panel, vous assignez vos subnets à la session autogérée.
  4. Le trafic entrant arrive sur notre infrastructure et est routé statiquement vers le tunnel de votre choix.
  5. 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

  1. 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.
  2. Attendre la validation : nous vérifions le route object, l'AS-SET et la LOA.
  3. Whitelist effectuée : une fois vos préfixes whitelistés, vous pouvez les gérer depuis le panel.
  4. Assigner vos subnets :
    • Allez dans "Subnets".
    • Créez un subnet correspondant à vos préfixes whitelistés.
    • Assignez-le à la session BGP autogérée.
  5. 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

5.2. Étapes de mise en place

  1. 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).
  2. Enregistrer votre ASN sur panel.tunnel-ip.com/asn/ (voir section 3).
  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.
  4. 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.
  5. Attendre la création : nous configurons la session côté plateforme et vous fournissons les détails.
  6. 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

  1. ✅ Le tunnel L3 fonctionne (ping entre les deux côtés).
  2. ✅ Le port TCP 179 n'est pas bloqué par un pare-feu.
  3. ✅ L'ASN est correctement enregistré sur le panel.
  4. ✅ Le route object existe dans la base IRR.
  5. ✅ L'AS-SET contient bien vos préfixes.
  6. ✅ La configuration BGP est correcte (bon ASN, bonne IP neighbor).
  7. ✅ 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

  1. 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.
  2. 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-list ou filter).
    • Mettez en place des filtres d'import pour ne pas accepter de routes indésirables.
  3. Blackhole :
    • Créez toujours une route statique blackhole (Null0, discard, blackhole) pour chaque préfixe annoncé. Cela évite les boucles de routage.
  4. 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.