Connexion Internet chez SwissNeutral.net avec mon Ubiquiti

Changement sur mon réseau, je configure mon Ubiquiti pour utiliser le réseau de Swissneutral.net

Voila quelque temps que je me lasse du comportement de mon Fournisseur d'Accès a Internet (FAI), et ces derniers temps il a redoubler de décision qui me dérange profondément. malheureusement la concurance dans ce secteur n'est pas vraiment possible, en tout cas pas a mon domicile :-/

Deplus il font tout pour perturber l'auto-hebergement, il est possible de contourner leurs contraintes mais ce n'est pas idéale.

Heureusement il y a SwissNeutral.net qui propose un service VPn (OpenVPN), pour pouvoir utiliser correctement une connexion internet (Ipv4, IPv6,,...)

J'utilise depuis quelques années déjà un routeur Ubiquiti EdgeRouter X, qui supporte OpenVPN, ça devrait être un jeu d'enfant. Mais je n'ai trouver que peu de documentations. Je vais donc vous racontez ce que j'ai fait.

entrons dans le vif du sujet.

Les bases de Ubiquiti EdgeOS

Comme ça fait longtemps que je n'ai pas retoucher la config du routeur, je remet ici quelques informations de bases

Je vais vous parler de l'administration en ligne de commande, il faut donc utiliser votre client SSH préférer. Ubiquiti edite EdgeOS baser sur une debian, on a donc nos repères.

on saisi la commande configure pour entrer dans le mode de modification de la configuration.

Une fois dedans on a accès aux commandes suivantes :

  • set <path> pour modifier un paramètre
  • show <path> affiche les configuration qui exist pour ce niveau et tout les enfants (sans paramètre il affiche donc toutes la configuration du routeur)
  • delete <path> afin de supprimer une configuration (attention c'est reccursif)
  • edit <path> afin de se déplacer dans un dossier de la configuration et de ne plus taper que des chemin relatif
  • discard si on fait une bétise pour retourner à l'état précédent de la configuration.
  • commit pour appliquer les changement de notre configuration et vérifier qu'elle fonctionn
  • save si on est contant de notre configuration et que l'on veut qu'elle soit charger lors des prochain démarrage.
  • exit pour quitter la configuration et revenir au bash classique

Établire le tunnel

Il faut au préalable avoir récupérer le dossier compresser qui contient vos fichiers de connexion sur le site de SwissNeutral.net

Je vais créer un dossier pour stocker la configuration sur le routeur, et ouvrir l'éditeur de texte sur le fichier qui contiendra la configuration.

mkdir /config/openvpn
vi /config/openvpn/snn.ovpn

Dans ce fichier il faut coller le contenu du fichier client.ovpn qui se trouve dans les données que vous avez récuperer

ensuite on l'ajoute a la configuration (dans le mode configure donc) il est recommander d'utiliser un firewall je vais donc appliquer le mien. Pour le détail de la configuration du firewall je ne vais pas le traiter ici, il y a asser de documentation sur Internet, ou je le ferait dans un autre article.

set interfaces openvpn vtun0  config-file /config/openvpn/snn.ovpn
set interfaces openvpn vtun0 firewall in name    WAN-IN
set interfaces openvpn vtun0
commit

Après le commit ip a devrait retourner une nouvelle connexion avec vos IP

Configuration IPv4

Pour une raison qui mếchappe, malgrés le "replace-default-route" mes paquets continue a être router par ma connexion et non pas par le tunnel j'ai donc ajouter ces 2 route statique

set protocols static interface-route 0.0.0.0/0 next-hop-interface vtun0
set  protocols static route x.x.x.x/32 next-hop 192.168.1.1

Il faut remplacer le x.x.x.x par l'IP du serveur VPN, ceci a pour but que les paquets a destination du serveur VPN continue a être correctement acheminé.

et bien sur le 192.168.1.1 par l'ip de la Box de votre opérateur.

Biensur pour pouvoir partager votre IPv4 avec vos machine locale, il faut crée un NAT

set service nat rule 5000  description snn
set service nat rule 5000 log disable
set service nat rule 5000 outbound-interface vtun0
set service nat rule 5000 protocol all
set service nat rule 5000 type masquerade
commit

Après ce commit vos paquets IPv4 devrait passer sans encombre via le tunnel Si cela fonctionne bien je vous invite a faire un save avant de continuer ...

Configuration de l'IPv6

Malheureusement La configuration automatique (ipv6pd) n'est pas disponnible via le tunnel OpenVPN sur edgeOS. Il faut donc configurer à la main

Swissneutral m'a attribuer un /48, j'ai donc tout loisire de choisir le subnet de mon réseau local. Je me suis renseigner sur le HEXSpeek ;-)

Quelques variable qu'il faut avoir en tête Quoi Exemple Description
votre réseau 1001:de30:9009::/48 le traffic de toute les ip qui commance par ceci arrive sur votre routeur
prefix sous réseau 1001:de30:9009:beef::/64 votre sous réseau pour cette configuration.

Je vais d'abord ajouter une IPv6 a l'interface local de mon routeur (chez moi switch0) puis configurer les RouterAdvertisement (voir le fonctionnement de l'IPv6)

set interfaces switch switch0 address <adresse de mon sous réseau>::1/64
set interfaces switch switch0 ipv6 router-advert max-interval 60
set interfaces switch switch0 ipv6 router-advert  prefix <prefix sous réseau>::/64 {
set interfaces switch switch0 ipv6 router-advert  send-advert true

Comme pour l'ip v4 je vais modifier la route mais cette fois aucun risque que le tunel soit prit dedans mon opérateur n'offrant pas vraiment d'ipv6.

set protocols static interface-route6 ::/0 next-hop-interface vtun0
commit

Et voila ! Si cela fonctionne aussi chez vous n'oubliez pas de faire un save

Conclusion

J'ai été agréablement surpris de la simplicité du processus (bien qu'il n'existe assez peu de documentation). Les performances sont tout a fait bonne je n'ai pas perdu de débit la latance a augmenter de 8ms a peut près ce que je trouve respectable.

Il ne me reste plus qu'a configurer les services que j'héberge chez moi pour profiter des avantages de cette connexion.

Si vous deviez rencontrez des difficultés avec ce que je dit plus haut contacter moi. ou si vous avez des questions voir même des remarques ;-)

@+