NOBGP – IPv4 publique sans BGP – Tutoriel Mikrotik Router OS

Depuis peu, nous proposons la possibilité d’obtenir un tunnel avec des IPv4 sans BGP et sans obtenir un /24 entier.

Cet article présente le service ainsi que comment le déployer sur Mikrotik Router OS

Voir l’offre NOBGP

NoBGP, c’est quoi ?

Globalement, il s’agit d’un tunnel de type PPTP / L2TP sur lequel nous routons directement des IPv4 et IPv6 publique. Il vous faut alors déployer un routeur pour maintenir le tunnel et fournir des ip publiques.

Avantages

Disposer d’une IP WAN derrière une connexion n’en fournissant pas à un cout dérisoire.

Ne pas devoir acheter un /24 entiers et gérer des sessions BGP

Possibilité de développer une version HA pour un usage PRO.

Mise en œuvre sur Mikrotik Router OS

Ce tutoriel tiens compte que le routeur sera « dédié » à cet usage. Cela veut dire que tout le traffic du routeur repartira dans le tunnel.

Le Trafic issu des ip « servperso » doivent absolument envoyer leurs trafic sortant par le tunnel. Sans ça, il sera filtré par votre FAI car il ressemblera à une tentative de SPOOF.

Ce tutoriel considère les points suivants:

  • Vous avez déployé Mikrotik Router OS
  • Vous avez défini le mot de passe admin
  • Vous avez activé la licence.
  • Vous avez souscrit une offre NOBGP ainsi qu’un bloc d’ip supplémentaire et reçu les identifiants du tunnel.

Etape 1 – Connecter le routeur Mikrotik à internet.

Nous partirons sur l’hypothèse que vous utilisez du DHCP sur votre LAN. Peu importe la méthode utilisée, il est important que la route distance soit plus élevée que celle du tunnel NOBGP pour que le trafic passe dans le tunnel.

Pour créer le client DHCP rendez-vous dans IP > DHCP CLIENT.

Ensuite, appuyer sur le « + » bleu en haut à gauche, sélectionner la bonne interface et changer la « Default route distance » pour 20 dans l’onglet « Advanced ». Activez bien la default route et le dns si besoin.

Si vous avez bien fait la manipulation, votre client prendra une ip et la route liste (visibe dans IP > ROUTES) devrait ressembler à ceci (avec vos ip).

Table de routage

Etape 2 – Création du client VPN

L’offre NOBGP propose soit de se connecter en PPTP ou en L2TP. Vous avez reçu un « endpoint », un « user » et un « pass ». Dans notre exemple nous utiliserons L2TP.

La différence réside dans le fait que PPTP utilise GRE et L2TP utilise le protocole UDP pour transporter les paquets.

Pour ajouter le VPN rendez-vous dans « interfaces » et cliquez sur le « + ». Sélectionnez ensuite « L2TP Client ».

Dans l’onglet « Dial Out », saisissez l’host dans « connect to » et votre nom d’utilisateur et mot de passe. Cochez également « Add default route »

Configuration du VPN L2TP
Si l’opération a réussi après avoir appuyé sur OK,
le VPN se connecte et vous recevez une ip wan en local address.
Dans la routing table, on voit que le VPN devient la route par défaut. A ce moment, vous pouvez perdre la connexion avec le routeur si vous trouvez à plusieurs sauts d’interval.

On voit également une route /32 qui utilise la gateway native du routeur pour maintenir le trafic vers le serveur de Tunnel.

MTU – problème de performance (lenteur + vitesse)

Comme tout le trafic passe par le tunnel, le MTU ne peut pas faire 1500. Nous l’avons fixé à 1450.

Le MSS correspond au MTU – IP – TCP. Soit 40 pour IPv4 et 60 pour IPv6.

MSS IPv4 : 1410, MSS IPv6 : 1390

Normalement, le MTU est auto négocié à l’aide de ICMP. Cependant, beaucoup d’administrateurs filtrent simplement l’ICMP, cependant, il est possible de le forcer directement via le firewall avec les règles suivantes.

Il faut appliquer les règles dans les 2 sens sur le tunnel L2TP créer dans les étapes précédentes

MTU IPv4

/ip firewall mangle
add action=change-mss chain=forward in-interface=l2tp-out1 new-mss=1410 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1411-65535
add action=change-mss chain=forward new-mss=1410 out-interface=l2tp-out1 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1411-65535

MTU IPv6

/ipv6 firewall mangle
add action=change-mss chain=forward dst-prefix=::/0 in-interface=l2tp-out1 new-mss=1390 passthrough=yes protocol=tcp src-prefix=::/0 tcp-flags=syn tcp-mss=1391-65535
add action=change-mss chain=forward dst-prefix=::/0 new-mss=1390 out-interface=l2tp-out1 passthrough=yes protocol=tcp src-prefix=::/0 tcp-flags=syn tcp-mss=1391-65535

Mode NAT

Dans notre exemple, nous allons utiliser 192.168.50.0/24 comme réseau interne et 192.168.50.254 comme passerelle.

Ajout du range d’ip interne

IP > ADDRESSES > cliquer sur le « + » en haut à gauche

Création de la règle de NAT

/ip firewall nat
add action=masquerade chain=srcnat out-interface=l2tp-out1 src-address=192.168.50.0/24

Allocation directe de subnet d’ip publiques.

L’allocation d’IP publique se fait de la même manière que l’allocation d’IP « interne ». Il ne faut juste pas faire de NAT avec le bloc. L’IP assignée au routeur mikrotik sera la gateway à utiliser sur les machines derrières.

N’oubliez pas que la première et la dernière IP d’un bloc ipv4 ne put pas être utilisée (network / broadcast).

Bonus : configuration d’un firewall

Voici un firewall minimaliste qui a pour but de protéger le routeur sans pour autant protéger le reste. Il bloque donc tout le trafic entrant. Pour continuer à gérer le routeur, il faut donc whitelister ses propres IP. (but de la seconde règle).

/ip firewall filter
add action=accept chain=input comment= »estab related » connection-state=established,related
add action=accept chain=input comment=mgmt src-address=<your management ip range>
add action=accept chain=input comment=ICMP protocol=icmp
add action=drop chain=input comment= »DEF DROP »

Voir l’offre NOBGP

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.