Depuis le premier confinement, j’occupe une partie de mon temps libre à développer mon AS dn42.
dn42 (decentralized network 42) pourrait être défini comme une reproduction à plus petite échelle d’un réseau similaire à Internet. La principale différence est qu’il est principalement construit sur des tunnels VPN plutôt que sur des liens physiques (cables ou fibres entre différents lieux/opérateurs).
Il utilise donc Internet (classique) pour établir les tunnels VPN. C’est en cela qu’il est qualifié de réseau overlay.
La première étape consiste à créer un certain nombre d’objets administratifs :
- mntner ;
- person.
La deuxième étape consiste à demander des ressources. Plutôt que de demander, il s’agit surtout de s’attribuer des ressources encore libres.
De mon côté, j’ai demandé :
- un ASN (4242422575) ;
- un préfixe ipv4 (172.23.186.32/27) ;
- un préfixe ipv6 (fd45:1b93:dddf::/48) ;
- un nom de domaine (androw.dn42).
La dernière étape consiste à créer des objets routes pour déclarer que votre ASN a le droit d’annoncer vos préfixes. En effet sur dn42, de nombreux réseaux implémentent des ROA permettant de vérifier que ces éléments existent. Cela permet d’éviter que quelqu’un d’autre annonce vos préfixes.
Ces trois étapes sont très bien présentée sur le wiki : Getting-Started
Au contraire d’Internet, ici la majorité des personnes utilise ipv6. Il y a même un certain nombre de réseaux qui ne supporte qu’ipv6.
Une fois nos objets créés/attribués, il faut commencer à les utiliser. Pour cela, il vous faut un routeur sachant parler BGP : soit un routeur hardware (Cisco, etc…) soit un simple serveur qui pourrait jouer ce rôle. BGP est le protocole utilisé sur dn42 (et sur Internet) pour échanger des routes entre AS.
De mon côté, mon premier routeur a été un serveur cloud OVH (qui a malheureusement péri dans l’incendie de Strasbourg). J’ai décidé d’installer bird2 pour parler avec mes peers.
Le wiki présente une configuration simple mais fonctionnelle sans problème : Bird2. Il présente également la configuration à utiliser pour certains routeurs ou pour d’autres démons BGP.
Une fois tout cela configuré, il faut trouver vos premiers peers, c’est-à-dire votre premier voisin avec qui vous allez échanger des routes et donc du traffic. Pour cela direction le peerfinder : https://dn42.us/peers/
A partir de votre adresse ipv4/ipv6 publique, cet outil va vous renvoyer une liste de routeur qui ont un ping faible avec votre serveur et avec qui il est alors plus optimal de réaliser un peering. Il indique également le moyen de contacter ce peer, généralement un pseudo IRC ou bien un site avec les infos nécessaires.
De mon côté, j’ai décidé d’opter uniquement pour du peering à travers des tunnels Wireguard pour plus de simplicité. Ici encore, le wiki fournit une aide précieuse : wireguard
Il faut ensuite fournir toutes les infos à votre peer. Vous pouvez trouver sur ./net/ un exemple des infos nécessaires.
La page Networksettings donne des indications sur les options à activer pour que tout fonctionne correctement. Il est également nécessaire d’adapter les règles iptables pour que les paquets puissent être transférés entre les différentes interfaces relatives à dn42.