Rendre mobile MyTinyDC

Rendre mobile MyTinyDC

18 novembre 2018 Réseau 0

Habitant en Inde, et bien que connecté à la fibre 300Mbps, nous sommes confrontés de temps à autres à des coupures, dues aux ruptures de câbles, pannes du réseau électrique… Le seul moyen d’être connecté à l’internet reste le téléphone mobile 4G. Dans cet article, je vais décrire pas à pas comment connecter votre téléphone mobile au Datacenter pour que le routeur du Datacenter devienne routeur principal vers l’internet.

Préparation du routeur

Avant de commencer, connectez-vous à la console du routeur de votre Datacenter. Et exécutez la commande : tail – /var/log/messages
Je connecte mon téléphone au routeur du Datacenter avec un câble USB (Raspberry PI3 ou Rock64). J’active la fonction de partage de connexion sur mon téléphone (je ne rentre pas dans le détail, dépend du téléphone, de la version de l’OS, cherchez du côté « Hotspot Tethering ». Après activation les traces vont défiler…

Ce qui nous intéresse c’est la dernière ligne :

… rndis_host 1-1.4:1.0 usb0: register ‘rndis_host’ at usb-3f980000.usb-1.4, RNDIS device, cd:00:66:55:88:99

Le Kernel a bien détecté quelque chose, dans ce contexte, il s’agit d’une interface réseau. Je vais activer cette interface réseau dans la configuration du serveur. Éditez le fichier /etc/network/interfaces pour ajouter ces lignes

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

Enregistrez les modifications, puis désactiver et réactiver  la fonction Hotspot de votre téléphone.

Exécutez maintenant la commande : ip address

Vous verrez des lignes concernant cette interface :

85: usb0: mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000 link/ether cd:00:66:55:88:99 brd ff:ff:ff:ff:ff:ff
inet 192.168.xxx.xxx/24 brd 192.168.xxx.255 scope global usb0
valid_lft forever preferred_lft forever

Votre Datacenter est maintenant bien connecté au téléphone.

Routage du trafic

Votre Datacenter est normalement connecté au routeur principal de votre infrastructure, il dispose donc d’une route vers cette infrastructure, pour la connaître : route -n

La route vers les réseaux inconnus, est la route indiquée par : 0.0.0.0 [adresse ip du routeur principal]. On va la supprimer.

Exécutez : route del default, ou son équivalent route del -net 0.0.0.0 gw [adresse ip du routeur principal].
(**) Pour ajouter une route par défaut : route add -net 0.0.0.0 gw
[adresse ip du routeur principal]

Désactiver et réactiver le Hotspot. Le téléphone est serveur DHCP dans ce contexte, il va donc indiquer à votre serveur toute la configuration nécessaire pour que ce téléphone soit utilisé en tant que routeur.

Exécutez : route, la route « default » apparaît.  Votre serveur peut se connecter à internet.

Règles Firewall (iptables)

Dans mon cas il s’agit d’une solution de secours, je vais donc être très large dans les règles de Firewall. Votre routeur étant un « routeur », le transfert réseau entre les cartes doit être activé. Pour rappel : echo « 1 » > /proc/sys/net/ipv4/ip_forward

Autoriser le serveur à joindre l’internet

J’autorise toute sorties initiée par le serveur vers l’internet

iptables -A OUTPUT -o usb0 -J ACCEPT

J’autorise les entrées pour les communications initiées par le serveur

iptables -A INPUT -i usb0 -J ACCEPT -m state –state ESTABLISHED, RELATED

A cette étape, tapez : wget http://www.google.com, la commande doit s’exécuter normalement en créant un fichier index.html, supprimer le fichier : rm index.html. La commande ping pourrait être aussi efficace mais certains fournisseurs 4G ne laissent pas passer ce type de signal.

Autoriser les autres serveurs du Datacenter à joindre l’internet

J’active d’abord le Masquerading sur la carte réseau usb0

iptables -A POSTROUTING -o usb0 -j MASQUERADE

J’autorise le FORWARD entre le réseau du Datacenter, dans mon cas, il est sur l’interface eth0 et l’interface connectée au téléphone
iptables -A FORWARD -i eth0 -o usb0 -j ACCEPT

et le retour
iptables-A FORWARD -i usb0 -o eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT

Connectez-vous à un des serveurs situés dans le datacenter, et exécutez la commande : wget http://www.google.com suppression du fichier créé …

MyTinyDC peut être transporté n’importe où…

Aller plus loin

  • Mon réseau local est accessible sur eth1, puis-je accéder à l’internet en passant par mon MyTinyDC ? Oui, il suffit de répéter l’opération précédente en remplaçant eth0 par eth1… Mais aussi de modifier la « Gateway » (passerelle par défaut) de tous les appareils connectés au réseau local, en la remplaçant par l’adresse IP de l’interface eth1… Grâce à cette configuration, j’ai pu poster cet article, tout en étant connecté à NETFLIX 🙂 avec mon Android 4G… le fournisseur Fibre en Inde est HS depuis 4.00PM hier…
  • Si vous être confrontés fréquemment à des coupures sur la ligne internet fixe, il pourrait être judicieux de stopper le serveur DHCP du réseau local (généralement la box, ou le routeur principal) et de créer un service DHCP sur la sortie réseau local (eth1) de MyTinyDC. Ainsi la route par défaut des appareils connectés au réseau local restera inchangée, vous n’aurez plus qu’à brancher le téléphone sur le Datacenter et changer la route par défaut, en cas de panne Fibre. Notez que vous pouvez automatiser cette partie !


 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *