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

Aujourd’hui, étant fournisseur de transit BGP pour des petits réseaux associatifs, je me rends compte que peu de gens qui débutent saisisse la différence entre iBGP et eBGP. Je vais donc essayer de l’expliquer le plus clairement possible. 

En effet, ces opérateurs y vont progressivement, en ajoutant un routeur après l’autre. Avec un seul routeur, pas besoin d’iBGP, avec 2 ou plus, les choses changent.

Différence entre iBGP et eBGP

L’eBGP signifie Exterior Border Gateway Protocol, ou dit autrement, le protocol externe à votre AS. D’un point de vue d’un autre AS, votre AS apparaît simplement comme un AS unique. Même si votre réseau s’étend dans le monde entier (soyons fou ;))

L’iBGP signifie Interior Border Gateway Protocol, c’est BGP à l’intérieur de votre réseau. Son utilité est principalement d’aiguiller le trafic sortant de votre réseau vers vos bordures. 

En iBGP, tout daemon BGP change son comportement sur 2 points très important pour la suite:

  • Quand une route est apprise d’un routeur iBGP, le routeur cible ne la redistribue pas. Cela signifie que TOUT les routeurs doivent se voir en « full mesh ». (il existe des solutions pour éviter cela évoquer plus tard).
  • l’attribut next hop n’est pas remplacé. Donc si le routeur B reçois une route du routeur A, le routeur B verra l’ip de bordure du routeur A (l’ip de l’IX, transitaire ou downstream) et non pas l’ip de l’interconnexion entre routeur A et B.

Un routeur bascule en mode iBGP dès que le même numéro d’AS est utilisé de chaque côté d’un peering bgp.

 

Exemple de réseau iBGP 

Dans la suite de l’article, je vais expliquer les différentes topologies iBGP possible à ma connaissance. Afin d’être claire, je vais m’appuyer sur un schéma de réseau simple et j’y ferais référence tout le long. Je vous conseil donc de le garder à l’œil pour la suite.

Ip de loopbacks

Pour commencer, je vais aborder, les ip de loopbacks. Pourquoi les utilise-t-on ? Si on monte nos sessions BGP sur base de chaque « LIEN », cela représente une grande quantité de sessions à gérer, de plus les ip peuvent être indisponible si les interfaces se coupent. 

Pour connecter 2 routeurs en BGP via ces ip, nous utiliserons l’attribut multihop du daemon bgp.

OSPF

Je vais ici aborder l’intérêt d’OSPF dans un backbone iBGP, je ne parlerai pas spécifiquement de la gestion des aires, (area). Nous considérerons que tout se trouve dans l’aire 0 pour les connaisseurs ;).

Dans le setup ci-dessus, OSPF va tout d’abord être utilisé pour faire des annonces des loopbacks et permettre la connexion BGP. En effet, notre daemon BGP doit pouvoir joindre toutes les loopbacks avec lequel il sera interconnecté.

Sachant qu’on est en iBGP, tout nos routeurs doivent se voir en topologie fullmesh (chaque routeur doit peer les 5 autres soit plus de 30 sessions).

Il faut aussi exporter tout les réseaux de bordures dans l’OSPF (les /30 d’interco avec les transitaires et les réseaux des IX dans mon schéma), car souvenez vous, en ibgp, les routeurs ne remplacent pas la « next hop ». 

Si dans mon exemple, r1.core reçois une route bnix, elle aura pour nexthop une ip dans le pool de bnix auquel r1.core n’est pas connecté directement.

Il interrogera donc une seconde fois sa table de routage (route récursive) et se rendra compte qu’il peut déposer le paquet sur r1.edge ou r2.core. Le même raisonnement se reproduira encore une fois pour atteindre r2.edge qui lui est directement connecté dans le réseau de l’IX.

Les routes récursives se font sur base d’OSPF. C’est donc son utilité principale. Il existe cependant une astuce quand vous n’avez que 2 routeurs par exemple. C’est le next hop self. BGP va alors remplacer la next hop par sa propre ip même entre 2 peer iBGP. On a donc plus besoin de propager les subnets d’interco des IX / transitaires via OSPF. 

La technique du next hop self est parfois utilisée pour limiter le nombre de routes injectées dans ospf (en injectant que les loopbacks par exemple) car OSPF n’est pas fait pour accueillir une grande quantité de routes contrairement à BGP.

Pourquoi 2 protocoles de routages ?

BGP et OSPF ont chacun, leurs avantages, considérons dans notre exemple que le lien entre r2.edge et r2.core est rompu. Le trafic peut circuler par r1.edge et r1.core entre deux. Si nous montons des sessions bgp partout sans OSPF, cela veut dire que tout les routeurs de l’AS vont devoir converger à nouveau une fulltable et cela va entraîner des perturbations dans la force (euh dans le réseau). Dans le cas d’OSPF et les loopbacks, il n’y aura aucune convergence bgp

OSPF détectera et re routera la loopback par le second circuit le plus court disponible. Les sessions BGP ne décrocheront pas et il n’y aura pratiquement aucune coupure. 

Ospf permet également d’assigner un poids sur chaque lien. C’est l’addition du poids de tous les liens qui aideront à trouver le chemin le plus court. De plus, comme il n’existe que quelques routes (et pas 800K), la prise de décision en est grandement accélérée.

Ospf gère donc l’état de votre réseau, et BGP l’état d’internet.

Enfin, l’ajout d’un lien reste plus simple lui aussi, OSPF ne nécessite pas de configuration complexe, mais juste de spécifier sur quelles interfaces il fonctionne.

Le fullmesh, vraiment? Imagine que ton réseau possède 500 routeurs?

Oui, en effet, la j’avoue, c’est complexe. Il existe pour ça une solution. l’introduction d’un route réflecteur (ou plusieurs pour la redondance)

Le route réflecteur possédera lui aussi une ip de loopback. Le but est de peer tout vos routeurs avec celui-ci et non plus de les peer ensemble. Celui-ci va alors générer une table de routage globale qui inclus la vue de tout le backbone. Cette table sera à nouveau réinjectée dans l’autre sens comme sa chaque routeur pourra choisir entre passer la route à son voisin ou la garder pour un de ses upstreams en y appliquant votre propre politique (hot potato, …)

Un route réflecteur ne route aucun paquets IP, son objectif est simplement de simplifier l’ajout de routeurs dans le backbone afin de permettre à l’infra d’être plus scalable.

Du coup, cette solution nous évite un grand nombre de sessions, par contre, je recommande vivement d’en avoir plusieurs réparti sur votre AS. 

Et si je veux pas une seule table ?

Dans ce cas, il faut penser « fédération ». Vous créez plusieurs AS privés (que vos routeurs de bordure changeront en AS publique) chacun avec des core, de l’edge, de l’ospf et des route réflecteurs et vous les peerez vos réseaux entre eux. C’est une solution intéressante pour les réseaux intercontinentaux. 

Et les annonces sortantes ?

Vos annonces publiques, faites les de vos routes réflecteurs, de cette manière si un routeur edge se retrouve isolé, il n’annonce plus rien. Cela ,vous garantis de garder un réseau stable.

Pour ce qui est des préfixes internes (les routes plus précises dans les quels vous adressez vos clients) vous pouvez les envoyer dans OSPF ou dans BGP. Si vous utilisez OSPF en mode « announce connected network », c’est le plus simple. Il ne faudra pas oublier de passer vos préfixes publics entres vos fédérations dans un tel cas.

Conclusion

Voilà, j’espère que cet article vous aide à y voir plus claire. Je n’entre pas dans les détails de l’implémentation et vous renvois à la documentation de votre matériel 😉

N’hésitez pas à poser vos questions / faire vos feedbacks en commentaires et à partager au maximum.

Dans mon précédent article, j’analysais les différentes possibilités pour disposer d’ipv6 propre.

Cette article y fait suite et explique les bases nécessaires pour obtenir les précieuses ressources.

Cet article ne contiendra pas de tuto sur comment configurer tel ou tel routeur (prochain billet de blog, promis 😉 ) pour faire du BGP, mais plutôt des bases pour démarrer.

L’idée de base

Afin de disposer d’ip propres (ipv6), nous allons obtenir un range d’ipv6 et un numéro d’AS.

Cependant, avoir des ip et un AS ne suffit pas, il vous faudra également un fournisseur de transit. Je vais évoquer les pistes possibles pour un amateur et non pas pour un professionnel du réseau. Ce billet de blog est donc pour ceux qui sont intéressé par l’idée mais qui n’ont pas un demi rack en datacenter ou encore une fibre noire (coucou clément) qui arrive chez eux.

Le transitaire

Avant de rechercher des ressources, je vous propose de passer en revue les possibilités pour transiter votre trafic. A moins que votre isp vous le permette (sans un 4eme chiffre sur la facture), vous allez devoir utiliser un tunnel pour ramener le trafic chez vous. Si cependant, vous souhaitez utiliser votre range en datacenter (serveur dédié / vm), il existe une multitude de petits opérateurs permettant de faire du BGP.  Je vous invite à aller voir sur http://bgp.services afin de trouver une liste de prestataires.

Vous pouvez avoir plusieurs transitaires, vous n’êtes même pas obligé de faire passer le trafic sortant et entrant par le même transitaire. C’est pas possible dans un setup classique, mais ici, vous utiliserez la même ip peu importe le transitaire. Si vous voulez vous rendre compte de cela, faite simplement un traceroute dans les 2 sens (dédié > maison, maison > dédié). Vous venez que dans certains cas, le trafic ne passe pas par le même chemin.
La grande différence avec un dual wan classique, c’est que vous gardez les mêmes IP sur vos 2 opérateur de transit

Enfin, je tiens à vous rappeler que votre transitaire fera transiter … votre trafic. Choisissez donc un de confiance qui respectera votre vie privée et sera neutre vis à vis de vos paquets (neutralité du net, toussa, toussa).

Partons du cas ou vous voulez amener le trafic chez vous. Il existe 3 possibilités (vous pouvez utiliser les 3 en même temps):

Un tunnel avec BGP (gre, 6to4, …)

Le but du jeu est très simple, vous allez connecter un ou plusieurs tunnels entre votre routeur et votre provider afin de faire transiter du trafic. En ipv6 vous pouvez trouver 2 opérateurs qui fournisse le service gratuit. tunnelbroker.net et netassist.

Tunnelbroker dispose de plusieurs POP, vous pouvez monter plusieurs tunnels si vous le désirez. Dans le cas de l’Europe, il existe un serveur en Allemagne et l’autre se situe à Londres.

Netassist se situe en ukraine de mémoire, je conseille donc pour un européen de l’utiliser en backup plutôt qu’en principal. (oui c’est faisable via BGP de manière automatique).

Un serveur dédié / vps

Ici le cas est un peu différent, vous allez simplement monter la session BGP depuis votre serveur à votre prestataire. Ensuite, le but du jeu est de monter un tunnel vers chez vous et y acheminer votre trafic. C’est un setup un peu plus complexe mais qui offre beaucoup plus de flexibilités car vous gérez vous même le tunnel.

Si vous partez pour ce setup, je vous conseille d’avoir quelques bonnes notions en routage dynamique (BGP et OSPF principalement).

Avoir un FAI qui peut vous transiter

Niveau perf, c’est le TOP. Par contre, cela à un coût.

Pour mes amis français, je vous conseille de faire un tour vers la fédération FDN.

Il y aura certainement des membres qui seront prêt à vous transiter en échange de quelques bières.

Par contre, n’espérez pas trop des FAI grand publique, c’est en général une presta à plusieurs milliers d’euros via fibre dédié.

Critères communs de choix

Peu importe la solution que vous allez choisir pour transiter votre trafic, voici une petite listes de critères intéressant à vérifier:

  • Latence entre vous et le prestataire
  • Neutralité du prestataire
  • Idéalement, regardez quelles sont les prestataires entre vous et celui-ci. L’idéal étant d’en avoir le moins possible.
  • Tester la bande passante entre vous et le prestataire (bah oui, le but c’est pas de se brider hein ;))

Et mon routeur chez moi ?

Votre routeur ? Il doit au minimum être capable de gérer le protocol BGP (ou ospf si vous utiliser des serveurs en amont pour gérer BGP) ainsi qu’un protocol vpn.

Ensuite, vous devez savoir si vous allez lui injecter une fulltable ou non.

Fulltable ou default route ?

La fulltable, c’est la table BGP complète, celle qui est connues par tous les équipements gérant un bout d’internet (ou AS). A l’heure ou j’écris ces lignes, la V4 arrive à 700 000 routes et la V6 a dépassé les 50 000 routes.

Son utilité est d’aiguiller votre trafic en sortie, vous allez recevoir la table complète de chaque prestataires. Votre routeur regardera via quelle prestataire le chemin est plus court (déterminé par le nombre de numéros d’AS dans la route). Votre trafic entrant ne peut pas être influencé par ce moyen, vous pouvez l’influencer en rajoutant des AS dans la route (plusieurs fois le votre) afin de rallonger virtuellement celle-ci.

Donc finalement, si vous ne voulez pas équilibrer votre trafic sortant (ou avez uniquement un transitaire) une default route iras très bien.

N’oubliez pas qu’une fulltable BGP consomme de la RAM, n’espérez donc pas le faire avec un routeur grand publique même flashé sur openwrt.

A titre d’info, voici un exemple sur BIRD 1.6 sous debian avec la table IPV4. (3 transitaires donc 3 fulltables).

BIRD 1.6.3 ready.
bird> show memory
BIRD memory usage
Routing tables:    180 MB
Route attributes:  183 MB
ROA tables:        192  B
Protocols:         164 kB
Total:             363 MB
bird> show route count
2098092 of 2098092 routes for 702380 networks

Et les ip ? comment on fait ?

Pour annoncer vos IP, il vous faut 2 choses. Un range d’ip (oui, sérieusement) et un numéro d’AS.

Le numéro d’AS, c’est l’identifiant de votre réseau, il sera échangé sur la table BGP et permettra de savoir à qui appartient vos IPs. (il intervient principalement dans l’aiguillage pour prendre le chemin le plus court).

Avant toute chose, étant européen, je vais m’attarder uniquement l’europe et donc le RIPE NCC. Je vous invite à chercher votre RIR et vous documenter si vous être situé autre part (canada par exemple).

Demander un numéro d’AS nécessite quelques pré requis, à savoir:

  • Au moins disposer de 2 transitaires.
  • Avoir au moins un range d’ip à annoncer.
  • Avoir un compte utilisateur au RIPE (pas membre, juste un compte).

Vous l’aurez compris, en général, vous introduisez les 2 demandes en même temps.

Sponsor ou membre ?

Avant de parler des ressources en elles même, il faut savoir comment vous allez vous adresser au RIPE, il existe 2 manières de le faire. Soit être membre, soit se faire « sponsorisé » par un membre.

Pour un débutant / hobyist, je conseille clairement de passer par le sponsor, cela vous coûtera bien moins chère que si vous deviez devenir membre au ripe.

Notez que les 2 solutions ne sont pas incompatibles. J’ai d’abord utilisé un sponsor et ensuite récupérer mon numéro d’AS sur mon propre membership.

Se faire membre

Frais d’adhésion: 2000€ HTVA

Membership annuel: 1400€ HTVA

Vous pouvez demander un /22 ipv4 (1024 ip) sans justification supplémentaire (le ripe ne vous donnera rien de plus).

Vous pouvez demander un /29 ipv6 (512K /48) sans justification supplémentaire (et plus si vous justifier votre usage)

Vous pouvez demander des numéros d’AS sans frais supplémentaires (pour vous ou d’autres personnes que vous sponsoriser)

Passer par un sponsor

Le sponsor vous facture ce qu’il souhaite, donc un montant bien moins élevé que l’adhésion au ripe.

Vous pouvez demander un range ipv6 PA ou PI à ce sponsor.

Si le sponsor disparaît, vous pouvez transférer vos ressources PI (l’AS est PI), mais les ressources PA ne sont pas transférable.

PA, PI ?

Une ressource de type PA, c’est « Provider Assigned ». Cela signifie que la ressource a été assigner à un membre du ripe et ne peut-être transférer. L’avantage, c’est que le cout est bien moindre, car un LIR ne devra pas payer plus que sa cotisation pour vous déléguer un petit morceau de son espace PA. Cependant, il facturera le service afin de couvrir les frais du membership. Un autre avantage, c’est que dans le cas d’un PA, le LIR peut vous donner un range plus grand qu’un /48 afin de vous permettre de gérer vous même vos allocations. La politique du ripe interdit d’allouer plus d’un /48 par end site. Disposer d’un PA vous permettra de créer des sous allocations (/48 maison, /48 serveur dédié, …).

Pour le PI, c’est différent, la ressource vous appartient (mais doit-être sponsorisée). Vous pouvez la déplacer de sponsor en sponsor. Par contre, le LIR qui la sponsorise se voit facturer des frais annuels en plus de sa cotisation pour la maintenance de ces ressources. Le coût vous sera donc répercuté. Ensuite, il faut savoir que le RIPE vous considère comme un end site, car, pour eux, vous êtes un « end user » et non pas un ISP. Un range PI ne peut pas être utilisé pour héberger vos clients par exemple, uniquement vous même, votre entreprise, … (utilisateur final). Par conséquent, il sera très difficile d’obtenir plus d’un /48.
Disposer d’ipv4 PI n’est plus possible à ce jour.

Ok, mais quelles quantités d’ip il me faut ?

Afin de ne pas saturer la table de routage, des règles sont adoptées par la communauté, le minimum autorisé en annonce bgp sont /48 pour ipv6 et /24 pour ipv4. Il vous faut donc au minimum un /48 par annonce BGP que vous souhaitez faire. Vous pouvez le subdiviser à l’intérieur de votre réseau sans aucun souci.

La demande au sponsor

Il va vous falloir trouver un sponsor désormais, celui-ci vous fournira un range d’ip et un numéro d’AS. Pour cela, vous devrez lui fournir 2 documents. Un agrément du ripe signé ainsi qu’une copie de votre carte d’identité ou de constitution de votre entreprise. (le ripe vérifie ces informations). Le LIR vous fournira l’agrément lors de votre demande, cependant le modèle est trouvable directement sur le site du RIPE pour les curieux.

Créer les objets dans la base du RIPE.

Si vous débutez sur ce point, je vous conseille de vous créer un objet de type « maintainer ». C’est le minimum vous permettant d’éditer vos objets une fois reçu (oui, vous allez devoir maintenir la db à jour et donc pouvoir localiser vos IP proprement).

Pour ceux qui n’ont pas froid aux yeux, vous pouvez créer les objets suivants:

– Maintainer / nic handle

– Abuse role. (type rôle, avec abuse email comme attribut). (oui, vous allez avoir votre propre abuse mail, comme les grands 😉 ).

– ORG (c’est l’objet qui va vous représenter comme entité légale. Entreprise ou particulier possible).

Je vous recommande vivement d’introduire des bonnes données, en effet, le RIPE vérifie cela au moment où le LIR introduira votre demande et les corrigera si nécessaire. (surtout dans l’objet ORG). Il faut savoir qu’un LIR voir le RIPE peut vous retirer l’espace alloué si vous ne maintenez pas votre documentation à jour avec des informations correctes.

Faire sa demande à un lir

Etant moi même LIR, je vous propose de me contacter directement par mail sur [email protected] (tarifs ici: https://www.servperso.net/ripe-ncc-lir-services) , je pourrais vous aider à enregistrer un AS et obtenir des IP, ainsi que de la connectivité (transit via vm).

Sinon, vous pouvez toujours chercher dans la DB du ripe directement.

Une fois votre LIR choisit, c’est relativement simple:

1) Vous transmettez votre demande avec les éléments suivants (parfois automatisé dans un formulaire de commande):

– Votre besoin en matière d’IP

– Votre souhait d’avoir un AS

– 2 AS (avec le mail de contact) que vous allez utiliser pour transiter votre AS (a tout hasard, HE et netassist)

– Votre lieux de résidence (vous devez être en europe / russie pour le ripe).

– La liste de vos objets nouvellement créer (au moins le maintainer).

2) Le LIR peut vous facturer avant de réaliser la prestation.

3) Le LIR va vous envoyer une copie de l’agrément compléter. Vous allez devoir le signer et lui retourner (par voie électronique) ainsi que joindre une copie de votre carte d’identité.

4) Si vous avez opté pour un PA, votre LIR vous assignera un espace d’ip compris dans son POOL.

5) Le LIR introduit la demande au RIPE (24H pour la réponse)

5) Votre LIR reçois la réponse du ripe (positif ou demande de précisions).

6) Votre LIR vous communique les infos et vous êtes partis pour de nombreuses heures de setup 😉

7) Si votre lir vous à assigné un range en ALLOCATED-BY-LIR, (au delà d’un /48), vous devez réaliser votre premier assignement (pas plus d’un /48) dans la base du ripe.

Et maintenant, comment je rends tous sa disponible au reste du monde ?

Cet article est déjà très long, trop long même. Je vous propose de traiter cela dans un prochain article via les points suivants:

– Création d’un objet route et utilité de l’objet route

– Demande de whitelist à un transitaire (oui, il existe des filtres).

– Configurer un routeur bgp de base avec un tunnel HE (un seul transitaire).

– Gérer simplement sa zone reverse dns (avec bind).

J’héberge depuis des années des services directement à domicile. En voulant déployer de l’ipv6 sur ceux-ci je me suis heurté à plusieurs problèmes tels que:

– Un préfixe trop petit ne me permettant pas de créer plusieurs sous réseau (/64)

– Un préfixe dynamique qui peut changer à tout moment (pratique pour fixer des ip en interne dans votre réseau hein…).

– Vous disposez de plusieurs ISP et donc vous seriez obligé de donner une adresse de chaque provider à vos pc (et perdez donc la main sur le loadbalancing).

– Aucune possibilité de changer le reverse dns

 

En Belgique, à peu près tout les ISP pratiquent au moins 2 des points cités précédemment.

 

Solutions envisageables:

Tunnelbroker (HE)

He peut vous fournir un /64 voir un /48 sur demande avec la gestion des reverse dns. C’est donc en théorie un candidat intéressant pour bénéficier d’ipv6.

Cependant, il reste quelques problèmes.

Les ip fournies par sixxs sont géolocalisés aux USA et sont reconnues comme tel, vous allez donc vous heurter a énormément de problèmes du type:

  • Impossible d’accéder à netflix
  • Une géolocalisation invalide pouvant déclencher des systèmes de sécurités chez google ou facebook.
  • L’impossibilité d’avoir une connexion redondante (en effet, un pool par serveur de tunnel, donc changement de tunnel = changement de pool).

Sixxs

Par le passé, j’ai pu utiliser le défunt Sixxs pour me fournir de l’ipv6.

L’avantage, c’est que Sixxs s’appuyait sur des opérateurs locaux, cela réglait donc le problème de géoloc, mais il reste toujours l’incapacité d’avoir une connexion redondante.

En effet, les serveurs de tunnels Sixxs n’étaient pas connus pour leurs stabilités.

 

Utiliser un serveur dédié / vps avec un pool d’ipv6 routable

J’ai pu expérimenter cette solution au travers du provider online.net, cependant, vu que je suis en Belgique, les soucis de géolocalisations se sont de nouveau présentés.

De plus, le pool est connut pour provenir d’un serveur dédié, donc niveau limitation type netflix on repassera.

 

La solution retenue

Finalement, après avoir testé les 3 solutions précédentes, j’ai décidé d’explorer une autre piste.

En effet, tunnelbroker permet de monter des BGP tunnels. Cela veut dire que vous êtes en mesure d’annoncer vos propres IP via votre propre numéro d’AS.

De cette manière, pour le réseau, vous devenez un opérateur indépendant des autres. Il vous suffit donc de vous connecter à un provider fournissant du BGP (tels que tunnelbroker).

 

En principe, dans un monde idéal, votre fournisseur d’accès internet pourrait vous fournir le service, cependant, c’est quelque chose qu’ils facturent en général très cher donc inaccessible pour un hobbyiste.

L’autre solution est donc d’envisager tunnelbroker ou des providers de vps / dédiés permettant de faire du BGP et ramener le tout via tunnel ou vous le souhaitez. (en quelque sorte, vous fabriquez votre propre tunnelbroker).

 

Et donc, BGP ?

Je ne vais pas vous expliquer en détail ce qu’est BGP, mais je vais plutôt tenter d’expliquer brièvement comment celui-ci fait fonctionner internet. Je vous invite à consulter votre moteur de recherche favoris ou à attendre un prochain billet de blog sur le sujet de ma part 😉

Internet, est globalement constitués d’une multitude de réseaux, tels que celui de votre fournisseur d’accès, ovh ou online par exemples. Cependant, pour que tous ces réseaux puissent communiquer ensemble, il faut 2 choses:

– Que 2 personnes n’utilise pas le même espace (adresse ip ou numéro d’as).

– Que tout les réseaux puissent s’échanger leurs routes (même ceux situés à l’autre bout de la terre).

Pour éviter de se marcher dessus, une hiérarchie à été mise en place. L’IANA à délégués du pouvoir à 5 associations qui gère le rôle de coordinateurs sur chaque continent. Les opérateurs s’enregistrent chez ces coordinateurs et demande des ressources. Le coordinateur pour l’Europe s’appelle le RIPE NCC. Pour s’adresser à lui, il faut en être membre, et je ne vous cache pas que cela à un coût important pour un hobyist. Cependant, rassurez-vous, le RIPE NCC à mi en place un programme de sponsor. Vous pouvez donc vous adresser à un membre pour obtenir les précieuses ressources convoitées. Je reviendrai sur ce point plus tard.

 

Le second point est que votre réseau doit-être visible par tous. Pour arriver à cela, tout les réseaux sont connectés ensemble de manière direct ou indirect. C’est là qu’intervient BGP. A tout hasard, prenons pour exemple un réseau appelé TESTNET. Vous souhaitez l’annoncer au reste du monde, vous allez donc vous connecter à un opérateur (via bgp) qui sera en mesure de dire pour rejoindre TESTNET, vous pouvez passer par MOI. Ensuite,  l’opérateur a aussi des connexions BGP avec d’autres opérateurs. Vos annonces vont donc circuler via cet opérateur vers les autres réseaux et de cette manière tout internet saura comment rejoindre votre réseau. Vous pouvez bien évidemment vous connecter à plusieurs opérateurs en même temps.

Il est important de comprendre ici que HE n’est pas le seul opérateur et qu’un paquet peut traverser des dizaines d’opérateurs avant d’arriver à destination.  Je reviendrai plus en détail sur les types de réseaux que vous pouvez traverser sur un article dédié à bgp (peering, transit, point d’échange, …)

 

Exemple pour rejoindre le réseau de Steam.
Dans l’exemple, ci-dessous, on voit que je traverse 3 réseaux (as_path). Un réseau est identifié par un numéro d’AS (136620, 174 et 11404)

69.36.224.0/19     via 10.192.252.141 on edge-lon1-edp [EDGE_LON1 2018-05-25 from 10.192.252.4] * (100/?) [AS11404i]
	Type: BGP unicast univ
	BGP.origin: IGP
	BGP.as_path: 136620 174 11404
	BGP.next_hop: 10.192.252.4
	BGP.med: 0
	BGP.local_pref: 100

Je sais que ce sujet, n’est pas des plus simples, mais je vous recommande vivement de faire vos propres recherches pour comprendre tout cela plus en détail avant de continuer.

Donc, maintenant, comment on s’y prend ?

Obtenir un range d’ip et un numéro d’AS

Pour l’obtention de ces ressources, il vous faudra vous adresser à un LIR membre du ripe. Niveau justification, il faudra signer un agrément (provenant du ripe ncc) , justifier votre identité ainsi que le fait que vous allez au moins disposer de 2 opérateurs (il faut justifier le fait d’avoir 2 opérateurs pour obtenir un numéro d’AS). Rassurez-vous, cela est très simple, HE et NETASSIST fournissent des tunnels bgp gratuitement 😉

Nivaux cout un numéro d’as peut coûter entre 50 et 75€ une fois si on choisit un LIR correcte.

 

Pour la partie range d’ip, vous avez 2 possibilités: un range de type PA ou PI.

PA ou provider assigned: cela veut dire que le LIR vous délègue une partie de son range à votre nom. Le coût est beaucoup moins cher et vous pouvez obtenir bien plus d’ip de la sorte. Par contre, si le LIR arrête ses activités, vous perdez votre range d’ip. (c’est bien évidemment très rare)

PI ou provider indépendant: cela signifie que le ripe vous délègue un range en direct. Cependant, le cout annuel est plus élevé, car le ripe facture le LIR pour le maintien de ce type de ressources.

Le numéro d’AS est également considéré comme une ressource PI, cependant le ripe ne facture pas de frais annuel. Pour détenir vos ressources PI il faut passer par un membre du ripe (LIR), mais vous pouvez changer de membre sans aucun problème. Par contre, la seule manière de s’adresser en direct au ripe est d’en être membre.

 

Enfin, vu que vous avez vos ressources assignées directement dans la base du ripe (pa ou pi), vous pouvez indiquer vos informations et donc avoir une géolocalisation correcte. Même l’adresse abuse sera la votre (n’en profitez pas hein).

 

Si vous souhaitez trouver un membre du ripe (LIR), je devrais pouvoir vous aider. N’hésitez pas à m’envoyer un e-mail via le formulaire de contact du site.

Annoncer votre range

Pour annoncer via HE (qui est pour moi la solution la plus simple), suivez les étapes suivantes:

– Créez-vous un compte HE

– Créez un tunnel de type BGP

– Vous allez devoir envoyer un mail à [email protected] afin de leur demander d’autoriser votre range d’ip. Pour cela, donnez-leur en copie un lien vers les objets créer dans la base de données du ripe et utilisez le mail repris dans la db du ripe pour les contacter. Il pourront simplement se rendre compte que c’est bien vous et ne demanderont pas de justificatif supplémentaire.

– Configurez votre tunnel 6to4 comme vous le feriez pour un tunnel classique.

– Configurez votre session BGP par-dessus pour annoncer votre range d’ip avec votre numéro d’AS. (je ferai un article sur ce point, mais internet regorge de tutoriels pour le faire).

Enfin, utilisez votre range dans votre réseau tout comme si c’était un tunnel HE classique.

 

Conclusion

Si vous êtes parvenu à réaliser tout cela, félicitation, vous êtes opérateur au sens réseau du terme.

J’attire cependant votre attention que vous ne l’êtes pas au niveau légal. Le fait de détenir votre propre abuse vous permettra la gestion des cas simples (port scan, hack, …), mais si vous donnez un accès à un tiers qui l’utilise pour des délits important (tati martine adepte de pédobear), vous restez responsable. Si vous voulez monter un vrai opérateur qui fournit des services à des tiers, une déclaration arcep (ou équivalent) reste indispensable.

 

Enfin, je sais que cet article survole assez bien l’aspect technique, mais c’est le but. Il présente une piste, mais ne donne pas toute la solution. Si vous souhaitez que je rentre un peu plus dans les détails, je le ferai volontiers par l’intermédiaire d’autres articles.

Enfin, il n’existe pas que HE comme opérateur fournissant du BGP, vous pouvez même les combiner pour avoir une certaine redondance. Vous trouverez une liste sur le site suivant http://bgp.services

 

Bon amusement et bienvenue dans le monde du routage 😉

 

 

modem-front

Bonjour,

Je tiens tout d’abord à préciser que je réalise ce test de mon plein gré et que le test porte sur une solution qui n’est pas encore finalisée. Je n’ai donc aucun rapport avec la société Mobistar (orange be)

Mobistar met à ma disposition pour un délai de 6 mois son offre Internet + TV afin d’améliorer son produit sans aucune contrepartie.

Continue reading

Bien d’entre vous ont déjà entendu parler du projet Let’s Encrypt ayant pour unique but de favoriser la cryptographie de bout en bout (HTTPS) sur la majorité des sites internet. Sauf que pour mettre en place Let’s Encrypt sur un site quelconque il faut qu’il accepte les fichiers temporaires dans un répertoire ou d’utiliser une redirection ou de développer un bout de code à côté mais ces méthodes ne sont pas toujours très favorables lorsqu’on possède de multiples domaines sous différentes technologies ou bien qu’on n’a pas nécessairement envie de toucher à sa configuration actuelle qui marche du tonnerre.

Continue reading

Cet article n’est pas un article qui explique comment mettre en place un serveur mail de A à Z, mais plutôt un article qui vous explique les trucs et astuces à faire pour être bien considéré, notamment par les serveurs mails type Outlook (anciennement Hotmail) ou Gmail. On parle aussi dans le jargon de réputation email ou d’e-réputation mail.

Mes exemples de configurations sont basés sur Debian 7 et Postfix. Ils sont aisément adaptables à toute autre configuration.

Je pars du principe que vous êtes déjà en mesure d’envoyer et de recevoir des e-mails depuis votre serveur.

Continue reading