Utiliser OverTheBox plus sans abonnement OVH

Je possède actuellement deux connexions fibre :

  1. au 1er étage la Livebox5 mais un câble réseau descend dans le bureau du RDC
  2. dans le bureau une Freebox Pop Server

Un boitier OVB+ me sert, avec un abonnement chez OVH, à amalgamer les deux connexions afin d'augmenter le débit. Cela résultait du moment où je n'avais que l'ADSL et une connexion 4G avec beaucoup de données.

Afin de simplifier mon installation informatique, et de ne pas laisser trop de bazar à mes successeurs j'ai décidé d'abandonner l'abonnement mensuel à OVH. Mais il me restait le boitier et il serait dommage de n'en faire qu'un simple switch.
C'est là que j'ai découvert OpenMptcpRouter (OMR) développé par Ycarus (Yannick Chabanois) avec qui j'ai été en relation sur son site Github de développement.

Avec son aide, j'ai réussi à faire de ce boitier un objet intéressant et utile.

Description du boitier OTB+ avec son SE interne OTB

  • A l'arrière l'alimentation électrique et deux ports USB
  • A l'avant 12 connecteurs réseaux femelles RJ45, que nous appellerons switch
  • Deux connecteurs appelés wan13 et wan14. On négligera les autres.
  • Une prise HDMI
  • Deux ports USB

A l'intérieur de la machine un DD appelé mmcblk0 avec deux partitions p1 et p2
Sur ce DD est installé la version latest.img d'OverTheBox (OTB) qui seul reconnait la carte réseau eth0.
Le câble réseau provenant de la Freebox originellement branché sur le port 14 (RJ45) a été ramené sur le port 2. Le câble provenant de la Livebox du 1er étage reste branché au port 13. Toutes les machines de mon réseau 192.168.3.0 sont ramenés sur le switch de l'OTB+.
Sur les ports USB à l'arrière deux clefs USB l'une sda sur lequel on va installer le firmware OMR x86_64-ext4-efi et l'autre sdb sur lequel on va installer une debian 10

Sur l'un des ports USB de l'avant un câble rallonge avec au bout un hub usb 3 ports sur lequel on mettra une clef radio pour le clavier sans fil, une clef usb radio pour la souris (utile uniquement si on utilise Debian). Sur l'autre port USB de l'avant une carte réseau USB (eth1) connectée au port 11 du switch de l'OTB+

On connecte aussi un câble HDMI à un écran.

Installation des "firmwares" sur les deux clefs usb de l'arrière

1- L'OMR sur sda

On prépare cette clef à l'aide d'Etcher sur Windows en y flashant 

openmptcprouter-v0.57.3-r0+15225-bfc433efd4-x86-64-generic-ext4-combined-efi.img

On la place ensuite cette clef sur un des ports usb à l'arrière de l'OTB+ et on met en route l'OTB+. Au boot il faut tapoter sur la touche Sup jusqu'à ce que le setup du bios apparaisse. Il faut alors se déplacer jusqu'à choisir la clef usb pour booter. On va y revenir.

2- La Debian 10 sur sdb

On prépare cette clef avec Etcher en flashant : debian-10.7.0-amd64-netinst.iso

On place cette clef sur le deuxième port usb à l'arrière et on boote sur cette clef au setup du bios.

On ne développera pas plus cette installation. Cependant c'est là que la carte réseau eth1 est intéressante car elle permet d'aller chercher les packages sur des dépôts Debian sur Internet.

Configuration d'OMR sur sda

En préalable il faut s'être procuré un VPS. Voir Etape 4 du tutoriel :

https://www.tutos-informatique.com/adsl-4g-agregation/

J'ai pour ma part choisi un modèle de VPS un peu supérieur à 6€ par mois avec Debian 10
Donc en tenir compte dans le wget

1- Sur la console

Une fois que le boot est terminé on valide, puis on entre le login : root
Il n'y a pas de mot de passe. En créer un immédiatement en tapant passwd . ATTENTION le clavier est en QWERTY

L'explorateur mc est installé donc taper : mc

Se déplacer à /etc/config et éditer network en tapant sur la touche F4

remplacer eth0 par eth1

Sauvegarder par F2 puis quitter mc par F10

Relancer alors le réseau par /etc/init.d/network restart

On peut voir si c'est bien pris en compte par : ifconfig | more (la touche | c'est shift µ)

2- Sur un ordinateur du réseau

On configure la carte réseau de l'ordinateur avec l'adresse IP : 192.168.100.242 masque : 255.255.255.0 passerelle et dns : 192.168.100.1

puis sur son firefox préféré https://192.168.100.1

On accepte le certificat.
On va immédiatement à réseau, interfaces, éditer lan, serveur dhcp puis cocher ignorer l'interface

3- Configurer wan1

Editer wan1 puis

Protocole adresse statique

Adresse IPv4 192.168.3.2

Masque-réseau IPv4 255.255.255.0

Passerelle IPv4 192.168.3.254

Ma Freebox a pour réseau 192.168.3.0 à adapter bien sûr.
Bouton vert Enregistrer.

4- Se connecter au VPS

Voir Etape 5 du tutoriel plus dans configuration avancée cocher Forcer le récupération des paramètres. l'onglet etat devrait alors afficher des coches vertes devant OpenMPTCProuter (192.168.100.1), devant votre VPS, et devant wan1

5- Configuration spéciale du network

a- le fichier /lib/network/switch.sh

Par l'outil de votre choix, par exemple winscp sous windows, se connecter avec le protocole SCP à l'hôte 192.168.100.1 avec nom d'utilisateur : root et le mot de passe que vous avez choisi.
Se placer sur /lib/network . Renommer le fichier switch.sh en switch.bak par exemple.

Créer quelque part sur votre ordinateur windows un fichier switch.sh et copiez y le code suivant :

#!/bin/sh
# vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 :
# Avoid more than one switch
SINGLETON_COUNT=0

setup_switch_dev() {
if [ $SINGLETON_COUNT -gt 1 ]; then
return 1
fi

local name
config_get name "$1" name
name="${name:-$1}"

# Just silently skip switches we are not familiar with
# In the future it would be nice to be much more generic than that :)
if [ "$name" != "otbv2sw" ]; then
return 0
fi

SINGLETON_COUNT=$((SINGLETON_COUNT+1))

swconfig dev "$name" load network
}

setup_switch() {
config_load network
config_foreach setup_switch_dev switch
}

Le fichier switchOTB.pdf ci-dessous contient aussi ce code.

Copier ensuite ce fichier dans /lib/network/

b- le fichier /etc/config/network 

A la fin du fichier existant copier (en éditant ce fichier dans winscp) le code suivant, qui est aussi dans le fichier networkOTB.txt ci-dessous :

config switch_vlan
option device 'otbv2sw'
option vlan '1'
option ports '16 15t'

config switch_vlan
option device 'otbv2sw'
option vlan '2'
option ports '1 2 3 4 5 6 7 8 9 10 11 12 17 18 15t'

config switch_vlan
option device 'otbv2sw'
option vlan '3'
option ports '13 15t'

config switch_vlan
option device 'otbv2sw'
option vlan '4'
option ports '14 15t'

config interface 'wan13'
option ifname 'eth0.3'
option multipath 'on'
option proto 'dhcp'
option ip4table '213'
option ipv6 '0'
option defaultroute '0'
option peerdns '0'
option metric '12'
option macaddr '24:1c:04:08:a0:38'
option auto '0'
option addlatency '0'

config interface 'wan14'
option ifname 'eth0.4'
option proto 'dhcp'
option ipv6 '0'
option ip4table '214'
option multipath 'on'
option defaultroute '0'
option peerdns '0'
option metric '16'
option auto '0'
option addlatency '0'


Bien sûr faire enregistrer.
On constate que les ports du switch sont dans la même option vlan '2'

L'interface wan13 est connectée en dhcp et reçoit une ip de la livebox5 dans le réseau 192.168.1.0

On croise les doigts et on relance le réseau sur la console ou par ssh :

/etc/init.d/network restart

Normalement un : ifconfig | more devrait indiquer les changements.

Un : route  indique que les routes fonctionnent.

Destination Gateway         Genmask Flags Metric Ref Use Iface
default        10.255.255.1   0.0.0.0     UG      0        0     0    tun0
default        192.168.3.254 0.0.0.0     UG      3        0     0    wan1
default        192.168.1.1     0.0.0.0     UG      4        0     0    wan2
default        192.168.1.1     0.0.0.0     UG     12       0     0    eth0.3
default        10.255.255.1   0.0.0.0     UG   1200     0     0    tun0
10.255.255.1     *            255.255.255.255 UH 0     0     0    tun0
10.255.255.2     *            255.255.255.255 UH 1200 0   0    tun0
51.*.*.162   192.168.3.254 255.255.255.255 UGH 0 0   0    wan1
127.0.0.0           *            255.0.0.0     U       5          0     0    lo
192.168.1.0       *            255.255.255.0 U   4          0     0    wan2
192.168.1.0       *            255.255.255.0 U   12        0     0    eth0.3
192.168.3.0       *            255.255.255.0 U    3         0     0    wan1


J'ai masqué l'adresse IP de mon VPS; wan2 est sur le support physique wan13 soit eth0.3

Pour fignoler ne pas lancer wan13 au démarrage car il y a conflit de passerelle avec wan2
J'ai même mis mon android à la place de la clef radio souris avec modem USB activé mais ça perturbe la connexion au tunnel. A améliorer.


Et aujourd'hui 14 février il y a 3 connexions dont l'usb (image en pièce-jointe où les adresses publiques ont été masquées) et à la fin du /etc/config/network on a ça :

config interface 'Android'
option modalias 'usb:v04E8p6863d0C00dc00dsc00dp00icE0isc01ip03in00'
option product '4e8/6863/c00'
option ipv6 '0'
option defaultroute '0'
option peerdns '0'
option proto 'dhcp'
option multipath 'on'
option addlatency '0'
option hostname '*'
option macaddr 'f2:44:b8:01:74:96'
option metric '14'
option ifname 'usb0'



J'ai aussi configuré les redirections de ports 22 et 443 origine l'entrée du tunnel soit donc le VPS et sortie le lan 192.168.100.1 et ça fonctionne.
Les débits  mesurés par fing :

Internet Provider OVH (normal le VPS est chez OVH)

Download                                         Upload

140,1 Mbps                                      95,5 Mbps

Alors qu'avec mon abonnement OVH j'avais :

88,4 Mbps                                        95, 2 Mbps

et Free seul :

92,6 Mbps                                        96,3 Mbps

Complément : OMR sur un raspberrypi 4

A n'utiliser que si et seulement l'OTB+ est sur Debian, sinon des dérèglements spatio-temporels incontrôlés, peut-être limités à notre galaxie, peuvent se produire.
Installer à l'aide d'Etcher toujours sur une SD-Card le firmware :
openmptcprouter-v0.57.3-r0+15225-bfc433efd4-bcm27xx-bcm2711-rpi-4-ext4-factory.img

puis introduire la carte dans le raspi4. Par https://192.168.100.1 sur un ordinateur du réseau connecté en 192.168.100.241 masque 255.255.255.0 et de passerelle et DNS 192.168.100.1

désactiver immédiatement le DHCP du lan. Puis procéder à la configuration de wan1, on laisse wan2 inemployé puis à la configuration du VPS.

On mettra par la suite l'android configuré en modem usb sur un port usb du raspi4.

Situation au 10 mai 2021

-- La connexion fibre Livebox a été résiliée.
-- La Debian sur clef usb a été abandonnée et le port usb à l'arrière de l'OTB+ sert à alimenter le raspberry support d'owncoud et d'un forum. L'alimentation habituelle du raspberry ne tenait pas.
-- Le raspberrypi 4 héberge un Plex server.
-- Sur OMR un openwrt DLNA server et un DD usb partagé par Samba.
-- Le dhcp autoritaire de l'OMR a été rétabli et le dhcp de la freebox a été désactivé.
Plus de groupage donc de wan2, mais le tunnel et le filtrage et des redirections de ports vers des machines du réseau interne, presque toutes, donc, dans le réseau 192.168.100.0

Situation au 29 juin 2021

Suite à la mise à jour 0.58.4 d'OpenMptcpRouter
j'ai pu abandonner la carte réseau usb eth1
et créer l'interface br-lan configurée en bridge
et connectée physiquement à eth0.2

config interface 'lan'
   option type 'bridge'
   option ifname 'eth0.2'
   option proto 'static'
   option ipaddr '192.168.100.1'
   option netmask '255.255.255.0'
   option peerdns '0'
   option ip6assign '60'
   option multipath 'off'
   option ip4table 'lan'
   option metric '6'
   option addlatency '0'
   option defaultroute '0'
   option ipv6 '0'

wan1 utilise br-lan (l'interface 'lan' qui est un bridge s'appelle en fait br-lan)
Le fichier /etc/config/network joint en network-br-lan.txt résume tout.

Pièces jointes

OMR-avec-2wan-et-usb