Vous avez acheté un routeur avec un espace de stockage de 4 Mo comme le routeur TP-Link TL-MR3020 et vous souhaitez y installer le firmware alternatif OpenWrt ? Alors ce tutoriel est fait pour vous !
Comme vous vous en êtes sûrement rendu compte, il est certes possible d’installer ce firmware alternatif sur votre routeur mais il est impossible d’installer des paquets supplémentaires faute de place. Or, c’est tout l’intérêt d’OpenWrt qui s’échappe puisque vous n’allez pas pouvoir profiter des nombreux programmes qui permettent de transformer votre routeur en appareil haut-de-gamme !
Mais ne vous en faites pas : en suivant ce tutoriel pas-à-pas, vous serez en mesure d’installer le firmware alternatif OpenWrt et tous les programmes que vous voulez sur votre routeur et son stockage interne de 4 Mo ! 😉
Sommaire
Préambule
Il est recommandé d’installer OpenWrt sur des routeurs équipés d’au moins 8 Mo de mémoire flash et de 64 Mo de mémoire vive (RAM). La mémoire flash permet de stocker l’image du firmware et des programmes supplémentaires (OpenVPN, Samba, LuCI…) ; la mémoire vive à exécuter les tâches confortablement, sans latence. Néanmoins, beaucoup de routeurs entrée-de-gamme sont équipés de 4 Mo de mémoire flash et de 32 Mo de mémoire vive, comme le TP-Link TL-MR3020.
Est-il possible d’installer OpenWrt sur des routeurus 4/32 ?
Oui, c’est possible mais avec quelques limitations. En ce qui concerne la mémoire vive, un routeur avec 32 Mo de RAM peut fonctionner correctement, mais il peut montrer ses limites et être lent à exécuter certaines tâches, mais tout dépend aussi de votre utilisation du système. Il est plus confortable d’avoir au moins 64 Mo de RAM pour avoir un système fluide. Concernant la mémoire flash, les routeurs avec 4 Mo de mémoire flash peuvent seulement accueillir l’image du firmware. Il n’est donc pas possible d’y installer des paquets supplémentaires comme LuCI, l’interface graphique d’OpenWrt, ou OpenVPN, le programme qui permet de configurer un client VPN.
Donc, avec mon routeur TP-Link TL-MR3020, je ne vais pas pouvoir télécharger et installer de nouvelles applications ?!
Si, c’est possible ! En utilisant un périphérique de stockage USB, vous allez pouvoir étendre l’espace de stockage interne de votre routeur et ainsi installer plus de paquets. Cette technique se nomme extroot.
extroot : qu’est-ce que c’est ? Comment ça marche ?
Il faut déjà savoir que le firmware OpenWrt s’installe en utilisant la fonctionnalité OverlayFS[1] du noyau Linux.
extroot fonctionne en utilisant une partition upper sur le périphérique externe (ex. : clé USB, carte microSD…), laquelle est montée par-dessus la partition upper du routeur, celle-ci étant elle-même montée par dessus la partition rootfs du même routeur. Vous suivez ? 😛 Cette approche permet d’avoir une solution de repli dans le cas où le périphérique de stockage externe est retiré : le routeur aura toujours à sa disposition la partition upper du stockage interne et chargera ainsi toute la configuration à partir de là ; ce qui veut dire qu’il se comportera exactement de la même manière qu’avant la mise en place de l’extroot.
Ceci dit, en utilisant une clé USB ou une carte microSD, nous avons un problème.
Pour que la clé USB/carte microSD soit reconnue par OpenWrt, il faut que celle-ci utilise le système de fichiers ext4. Jusque là, pas de souci : il suffit simplement de créer une partition ext4 sur la clé USB/carte microSD. Mais pour que OpenWrt détecte la partition ext4, il faut que le paquet kmod-fs-ext4 soit installé sur le système. Or, comme nous l’avons vu, un routeur avec 4 Mo de mémoire flash comme le TP-Link TL-MR3020 peut seulement contenir l’image du firmware, il n’y a pas assez de place pour installer des paquets supplémentaires comme le paquet kmod-fs-ext4.
La solution ? Nous allons créer une image personnalisée du firmware OpenWrt, ultra-légère, en y ajoutant seulement les paquets nécessaires à la détection de la clé USB/carte microSD et sa partition ext4. Ainsi, nous pourrons mettre en place l’extroot, OpenWrt pourra alors utiliser l’espace de stockage de la clé USB/carte microSD et nous pourrons installer tous les paquets qui nous font plaisir (LuCI, OpenVPN, Samba…). Problème résolu ! 🙂
En résumé, comment j’installe le firmware OpenWrt sur mon routeur 4/32 ?
Voici ce que nous allons faire pour y arriver :
- Créer une partition ext4 sur une clé USB/carte microSD ;
- Créer une image personnalisée du firmware OpenWrt intégrant seulement les paquets nécessaires à la détection de la clé USB/carte microSD ;
- Installer OpenWrt sur le routeur (ici, le TP-Link TL-MR3020) ;
- Insérer la clé USB ou le dongle Huawei E3372 et sa carte microSD dans le routeur, et mettre en place l’extroot pour augmenter la capacité de stockage d’OpenWrt ;
- Configuration la connexion Internet ;
- Installer les paquets qui nous intéressent : LuCI, OpenVPN, Samba… !
C’est parti ! 🙂
Prérequis
- Un routeur équipé d’un port USB, ici le TP-Link TL-MR3020 ;
- Une clé USB ou un dongle USB équipé d’un lecteur de carte microSD, ici un dongle USB LTE Huawei E3372 + une carte microSD Kingston de 16 Go.
- [Huawei E3372 uniquement] Installer un firmware Stick sur le dongle Huawei E3372.
- [Huawei E3372 uniquement] Configurer le « multi-mode » sur le dongle Huawei E3372 pour ne garder qu’un seul mode, avec le modem LTE (protocole NCM) et le lecteur de carte microSD actifs :
AT^SETPORT="FF;12,16,A2"
.
Installation du firmware OpenWrt
Étape 1 : préparation de la clé USB/carte microSD
Sur notre clé USB/carte microSD, nous allons créer une partition ext4 qui – via l’extroot – va permet d’accroitre la capacité de stockage de notre routeur qui ne possède actuellement que 4 Mo d’espace disque. Mais ce n’est pas tout : nous allons aussi en profiter pour créer une partition swap et une autre partition ext4. La clé USB/carte microSD sera ainsi décomposée en trois partitions :
- Partition swap de 64 Mo : l’espace d’échange ou « swap » permet au système de décharger la mémoire vive physique (RAM) de l’ordinateur lorsque celle-ci arrive à saturation. Comme notre routeur ne possède que 32 Mo de RAM, nous profiterons de la présence d’un périphérique de stockage externe pour créer une partition swap de 64 Mo, ce qui donnera une mémoire virtuelle [mémoire virtuelle = mémoire vive physique + espace d’échange] totale de 96 Mo.
- Partition ext4 « root » de 512 Mo : l’espace de stockage destiné au système, largement suffisant pour accueillir l’image du firmware OpenWrt et des programmes supplémentaires.
- Partition ext4 « data » : un espace de stockage pour nos fichiers personnels.
C’est parti, allons partitionner notre clé USB/carte microSD !
- Insérez votre clé USB ou carte microSD (via l’adaptateur SD ou le dongle USB) sur votre PC.
- Exécutez MiniTool Partition Wizard Free.
- Repérez le disque correspondant à votre clé USB ou votre carte microSD. Ici, il s’agit du disque n°3 :
- Sélectionnez le disque > Wipe Disk.
- Sélectionnez l’espace non alloué (Unallocated) du disque > Create Partition et remplissez les champs comme suit :
- Create As : Primary.
- File System : Linux Swap.
- Partition Size : 64 MB.
- Sélectionnez de nouveau l’espace non alloué (Unallocated) du disque > Create Partition et remplissez les champs comme suit :
- Partition Label : root.
- Create As : Primary.
- File System : Ext4.
- Partition Size : 512 MB.
- Sélectionnez une dernière fois l’espace non alloué (Unallocated) du disque > Create Partition et remplissez les champs comme suit :
- Partition Label : data.
- Create As : Primary.
- File System : Ext4.
- Partition Size : l’espace disque restant.
- Cliquez sur General > Apply Changes pour lancer l’exécution des opérations.
Voilà, notre clé USB/carte microSD est prête pour l’extroot !
Maintenant, allons créer notre image personnalisée du firmware OpenWrt 🙂
Étape 2 : création de l’image du firmware
Nous allons maintenant créer une image ultra-légère du firmware OpenWrt, intégrant seulement les paquets nécessaires à la détection de notre clé USB/carte microSD.
- Téléchargez VirtualBox (programme qui permet de créer des machines virtuelles) et installez-le.
- Téléchargez Vagrant (programme qui permet de contrôler une machine virtuelle en CLI) et installez-le.
- Ouvrez l’invite de commandes et créez une machine virtuelle avec la distribution GNU/Linux Debian :
mkdir "%userprofile%Debian" cd "%userprofile%Debian" vagrant init debian/stretch64
- Installez le plugin des « Additions Invité » :
vagrant plugin install vagrant-vbguest
- Nous allons configurer le répertoire partagé afin de pouvoir échanger des fichiers entre la machine hôte et la machine virtuelle. Pour ce faire, éditez le fichier Vagrantfile et ajoutez la ligne suivante après
Vagrant.configure("2") do |config|
:config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
Enregistrez le fichier puis quittez le Bloc-notes.
- Démarrez la machine virtuelle :
vagrant up
- Connectez-vous en SSH à la machine virtuelle :
vagrant ssh
- Dans la machine virtuelle, installez les paquets nécessaires à la création de l’image :
sudo apt install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc wget unzip python
- Téléchargez et décompressez l’archive ImageBuilder d’OpenWrt correspondant à l’architecture de votre routeur. Par exemple, pour les routeurs ar71xx (comme le TP-Link TL-MR3020), l’archive se trouve se trouve ici : https://downloads.openwrt.org/releases/18.06.2/targets/ar71xx/generic/.
cd ~ mkdir openwrt && cd openwrt wget https://downloads.openwrt.org/releases/18.06.2/targets/ar71xx/generic/openwrt-imagebuilder-18.06.2-ar71xx-generic.Linux-x86_64.tar.xz tar xf openwrt-imagebuilder-18.06.2-ar71xx-generic.Linux-x86_64.tar.xz cd openwrt-imagebuilder-18.06.2-ar71xx-generic.Linux-x86_64
- Entrez la commande
make info
pour afficher tous les périphériques pris en charge par Image Builder. Exemple avec le routeur TP-Link TL-MR3020 :make info | grep mr3020 -A2 tl-mr3020-v1: TP-LINK TL-MR3020 v1 Packages: kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
La première ligne affiche le nom du profil, la deuxième le nom complet du périphérique et la troisième la liste des paquets installés par défaut pour le périphérique.
- Entrez la commande suivante pour créer l’image du firmware OpenWrt (remplacez
tl-mr3020-v1
par le nom de profil de votre périphérique) :make image PROFILE=tl-mr3020-v1 PACKAGES="block-mount kmod-fs-ext4 kmod-usb-storage kmod-usb-net-huawei-cdc-ncm comgt-ncm kmod-usb-serial kmod-usb-serial-option kmod-usb-serial-wwan -ppp -ppp-mod-pppoe"
- Copiez le fichier image créé (qui se trouve dans le dossier
./bin/[...]
) vers le répertoire partagé/vagrant
:cp bin/targets/ar71xx/generic/*-factory.bin /vagrant
Sur Windows, le répertoire partagé se trouve au même endroit que le fichier Vagrantfile de notre machine virtuelle Debian, soit
%userprofile%/Debian
.
Maintenant que nous avons notre image ultra-légère du firmware OpenWrt, allons la flasher sur notre routeur !
Étape 3 : installation d’OpenWrt sur le routeur
L’installation d’OpenWrt se fait simplement en flashant l’image du firmware via l’interface d’administration de votre routeur :
- Reliez votre routeur à votre PC, de préférence via Ethernet.
- Connectez-vous à l’interface d’administration de votre routeur. Par exemple, pour le TP-Link TL-MR3020, entrez http://192.168.0.254 dans la barre d’adresse de votre navigateur.
- Rendez-vous sur la page « Firmware Upgrade », sélectionnez le fichier image du firmware OpenWrt que nous avons créé puis lancez la mise à jour.
- Une fois l’installation terminée, lancez un ping via l’invite de commandes sur l’adresse IP
192.168.1.1
pour vérifier que le firmware OpenWrt est bien opérationnel :ping 192.168.1.1
Voilà, le firmware OpenWrt est installé sur notre routeur ! Bon, pour le moment, nous n’avons pas encore grand chose à cause de l’espace de stockage de 4 Mo. Pour augmenter la capacité de stockage, il va falloir mettre en place l’extroot !
Étape 4 : mise en place de l’extroot
- Téléchargez cmder (Full), décompressez l’archive puis exécutez
cmder.exe
. Cmder intègre Git for Windows et permet d’établir une connexion SSH avec des périphériques réseau. - Connectez-vous en SSH à votre routeur :
ssh [email protected]
- Insérez votre clé USB ou votre dongle Huawei E3372 et sa carte microSD sur le port USB de votre routeur.
- Patientez quelques secondes, puis exécutez la commande
block info
pour voir les partitions détectées par le système :block info /dev/mtdblock2: UUID="48708680-9c4c9a99-f5e54fe5-ff4c4ce2" VERSION="4.0" MOUNT="/rom" TYPE="squashfs" /dev/mtdblock3: MOUNT="/overlay" TYPE="jffs2" /dev/sda1: UUID="c87aac7c-d08e-d301-403a-ac7cd08ed301" LABEL="root" VERSION="1.0" TYPE="ext4" /dev/sda2: VERSION="1" TYPE="swap" /dev/sda3: UUID="023df8cd-3e8e-d301-0035-98cc3e8ed301" LABEL="data" VERSION="1.0" TYPE="ext4"
Si vous voyez les trois partitions de votre périphérique de stockage (
/dev/sda1
,/dev/sda2
et/dev/sda3
), tout est OK. - Copiez le contenu du répertoire upper (
/overlay
) situé dans la mémoire flash du routeur vers la partition/dev/sda1
de la clé USB/carte microSD, qui sera à son tour un répertoire upper :mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt
- Entrez la commande suivante pour générer automatiquement le fichier de configuration
/etc/fstab
(FileSystemTable, ou table de système de fichiers), lequel contient les partitions que le système doit monter automatiquement au démarrage. Les trois partitions de notre périphérique de stockage seront ainsi montées automatiquement au démarrage du système.block detect > /etc/config/fstab; sed -i s/option$'t'enabled$'t''0'/option$'t'enabled$'t''1'/ /etc/config/fstab; sed -i s#/mnt/sda1#/overlay# /etc/config/fstab; cat /etc/config/fstab;
- Redémarrez le routeur :
reboot
- Vérifiez que la partition
/dev/sda1
du périphérique de stockage est bien montée sur le répertoire/overlay
:df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 2304 2304 0 100% /rom tmpfs 13728 64 13664 0% /tmp /dev/sda1 488356 1971 456126 0% /overlay overlayfs:/overlay 488356 1971 456126 0% / tmpfs 512 0 512 0% /dev
Parfait, l’extroot est en place et notre routeur dispose d’un espace de stockage suffisant pour installer plein de paquets ! Mais avant, il faut configurer la connexion Internet sur le routeur… 😉
Configuration de la connexion Internet
Via un point d’accès Wi-Fi
- Selon que la carte Wi-Fi de votre routeur gère une ou deux bandes de fréquence (2,4 GHz / 5 GHz), vous aurez une ou deux périphériques sans-fil dans OpenWrt, chacun d’eux étant associé à une interface sans-fil.
Par défaut, OpenWrt crée une interface sans-fil de type Access Point (point d’accès) sur chaque périphérique sans-fil de votre routeur.
Vous pouvez afficher vos périphériques sans-fil avec la commandewifi status
:wifi status { "radio0": { "config": { "hwmode": "11a" }, "interfaces": [ { "section": "default_radio0", "ifname": "wlan0", "config": { "mode": "ap", "ssid": "OpenWrt", "encryption": "none", "network": [ "lan" ] } } ] }, "radio1": { "config": { "hwmode": "11g" }, "interfaces": [ { "section": "default_radio1", "ifname": "wlan1", "config": { "mode": "ap", "ssid": "OpenWrt", "encryption": "none", "network": [ "lan" ] } } ] } }
Ici, nous avons deux périphériques sans-fil radio0 et radio1, et deux interfaces sans-fil wlan0 et wlan1 de type Access Point associées. Notez le nom du périphérique sans-fil (radio) et celui de l’interface sans-fil (ifname) associée que vous souhaitez utiliser pour vous connecter au point d’accès Wi-Fi de votre box ADSL/fibre. Votre objectif est de choisir entre le périphérique qui gère la bande des 2,4 GHz (hwmode : 11g) ou celui des 5 GHz (hwmode : 11a).
A titre d’exemple, je vais utiliser le périphérique sans-fil radio1 (5 GHz) et l’interface sans-fil wlan1 associée. - Par défaut, les périphériques sans-fil sont désactivés. Afficher-les :
uci show wireless | grep wifi-device wireless.radio0=wifi-device wireless.radio1=wifi-device
Puis activez-les :
uci set wireless.radio0.disabled=0 uci set wireless.radio1.disabled=0 uci commit wireless wifi up
- Pour recevoir une adresse IP via DHCP, il est nécessaire de créer une interface virtuelle wlan :
uci set network.wlan=interface uci set network.wlan.proto=dhcp uci commit
- Pour protéger votre connexion Internet, ajoutez l’interface virtuelle wlan que nous venons de créer à la zone wan du pare-feu :
uci add_list [email protected][1].network='wlan' uci commit
- Scannez les réseaux Wi-Fi à proximité en spécifiant le nom de l’interface sans-fil que vous avez noté précédemment (ex. : wlan1) et repérez le point d’accès auquel vous souhaitez vous connecter (celui de votre box ADSL/fibre par exemple) :
iw dev wlan1 scan BSS XX:XX:XX:XX:XX:XX(on wlan1) -- associated TSF: 3340185577651 usec (38d, 15:49:45) freq: 2412 beacon interval: 100 TUs capability: ESS (0x0411) signal: -65.00 dBm last seen: 190 ms ago Information elements from Probe Response frame: SSID: Bbox-XXXXXX RSN: * Version: 1 * Group cipher: TKIP * Pairwise ciphers: CCMP TKIP * Authentication suites: PSK * Capabilities: 16-PTKSA-RC 1-GTKSA-RC (0x000c)
Notez le BSSID et le SSID du point d’accès.
- Enfin, créez un réseau sans-fil en spécifiant le BSSID et le SSID de votre point d’accès Wi-Fi, l’interface virtuelle (wlan) et le périphérique sans-fil (radio1) :
uci add wireless wifi-iface uci set [email protected][-1].bssid=XX:XX:XX:XX:XX:XX uci set [email protected][-1].device=radio1 uci set [email protected][-1].ssid=Bbox-XXXXXX uci set [email protected][-1].encryption=psk2 uci set [email protected][-1].key=XXXXXXXXXX uci set [email protected][-1].mode=sta uci set [email protected][-1].network=wlan uci commit
- Redémarrez le service network :
/etc/init.d/network restart
- Reconnectez-vous en SSH à votre routeur :
ssh [email protected]
- Votre connexion Internet est opérationnelle ! Vérifiez avec un ping sur votre site Web favori 😉
ping lecrabeinfo.net -c 4 PING lecrabeinfo.net (213.32.22.96): 56 data bytes 64 bytes from 213.32.22.96: seq=0 ttl=51 time=42.278 ms 64 bytes from 213.32.22.96: seq=1 ttl=51 time=34.948 ms 64 bytes from 213.32.22.96: seq=2 ttl=51 time=34.665 ms 64 bytes from 213.32.22.96: seq=3 ttl=51 time=34.377 ms --- lecrabeinfo.net ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 34.377/36.567/42.278 ms
Via un modem LTE (4G)
- Insérez votre dongle Huawei E3372 sur un port USB de votre routeur.
- Vérifiez que les périphériques /dev/cdc-wdm0 et /dev/ttyUSB0 sont bien détectés :
ls -l /dev/cdc-wdm0 /dev/ttyUSB0 crw------- 1 root root 180, 176 Jan 31 14:44 /dev/cdc-wdm0 crw------- 1 root root 188, 0 Jan 31 14:46 /dev/ttyUSB0
Ainsi que l’interface réseau physique wwan0 :
ip link show wwan0 3: wwan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN qlen 1000 link/ether 00:1e:10:1f:00:00 brd ff:ff:ff:ff:ff:ff
- Créez une interface virtuelle wwan en spécifiant entre autres le protocole (ncm), l’interface réseau physique (wwan0) et le port série du dongle Huawei E3372 (/dev/ttyUSB0) :
uci set network.wwan=interface uci set network.wwan.proto='ncm' uci set network.wwan.device='/dev/ttyUSB0' uci set network.wwan.ifname='wwan0' uci set network.wwan.apn='free' uci set network.wwan.pincode='1234' uci set network.wwan.mode='preferlte' uci set network.wwan.delay='30' uci commit
Modifiez les champs apn et pincode en fonction du nom de votre opérateur mobile et du code PIN de votre carte SIM.
- Pour protéger votre connexion Internet, ajoutez l’interface virtuelle wwan que nous venons de créer à la zone wan du pare-feu :
uci add_list [email protected][1].network='wwan' uci commit
- Redémarrez le système :
reboot
- Patientez un moment, jusqu’à ce que le dongle USB Huawei E3372 affiche une LED cyan fixe, signifiant que la connexion au réseau cellulaire LTE (4G) est bien active.
- Reconnectez-vous en SSH à votre routeur :
ssh [email protected]
- Votre connexion Internet est opérationnelle ! Vérifiez avec un ping sur votre site Web favori 😉
ping lecrabeinfo.net -c 4 PING lecrabeinfo.net (213.32.22.96): 56 data bytes 64 bytes from 213.32.22.96: seq=0 ttl=51 time=42.278 ms 64 bytes from 213.32.22.96: seq=1 ttl=51 time=34.948 ms 64 bytes from 213.32.22.96: seq=2 ttl=51 time=34.665 ms 64 bytes from 213.32.22.96: seq=3 ttl=51 time=34.377 ms --- lecrabeinfo.net ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 34.377/36.567/42.278 ms
- Installez le paquet
luci-proto-ncm
qui permet le support du protocole NCM dans l’interface LuCI :opkg update opkg install luci-proto-ncm
Multi-WAN
Si vous avez plusieurs interfaces réseau physiques connectées à Internet, comme ici :
- wwan0 : connexion LTE (4G).
- eth0 : connexion ADSL.
ip route | grep 'default'
default via 10.254.xx.xxx dev wwan0 src 10.254.xx.xxx
default via 192.168.1.254 dev eth0 src 192.168.1.97
Vous allez la possibilité d’utiliser une interface réseau plutôt qu’une autre pour la connexion Internet grâce la métrique.
Avant de commencer, notez les interfaces virtuelles associées aux interfaces réseau physiques connectées à Internet :
uci show network | grep -E 'wwan0|eth0'
network.wan.ifname='eth0'
network.wan6.ifname='eth0'
network.wwan.ifname='wwan0'
Dans l’exemple ci-dessus :
- L’interface réseau physique wwan0 est associée à l’interface virtuelle wwan (connexion LTE) ;
- L’interface réseau physique eth0 est associée aux interfaces virtuelles wan et wan6 (connexion ADSL).
Pour me connecter à Internet, supposons que je veuille utiliser en priorité l’interface virtuelle wwan (connexion LTE) puis l’interface virtuelle wan (connexion ADSL). Pour cela, je vais définir une métrique de 10 pour l’interface wwan et une métrique de 20 pour l’interface wan. Cela se fait très simplement :
uci set network.wwan.metric=10
uci set network.wan.metric=20
uci commit
/etc/init.d/network restart
Pour savoir si mon interface virtuelle wwan est bien utilisée en priorité, je lance une commande curl
en faisant une requête au serveur ipinfo.io :
opkg update
opkg install curl
curl ipinfo.io
{
"ip": "37.xxx.xxx.xxx",
"city": "Paris",
"region": "Île-de-France",
"country": "FR",
"loc": "48.8628,2.3292",
"org": "AS51207 Free Mobile SAS",
"postal": "75001"
}
L’adresse IP et l’ISP correspondent bien à ceux de ma connexion LTE (4G), tout est bon ! 😉
Reconnexion automatique au réseau LTE (4G)
La connexion au réseau LTE (4G) peut s’interrompre sans prévenir. C’est pourquoi nous allons utiliser un script watchdog.sh
qui testera la connexion Internet de l’interface wwan et qui la redémarrera si la connexion Internet est hors-service. Le script est disponible ici : watchdog.sh.
- Téléchargez le script
watchdog.sh
:cd /root wget https://gist.githubusercontent.com/dreamon11/dc35c659a594ee5e51d74d028e9ce988/raw/6e9a51a7070958adb1c045d92b6ea7049d940780/watchdog.sh chmod +x watchdog.sh
- Créez une tâche planifiée qui exécutera le script
watchdog.sh
toutes les minutes :crontab -l | { cat; echo "* * * * * /usr/bin/flock -n /tmp/watchdog.lockfile /root/watchdog.sh wwan"; } | crontab -
- Installez le paquet
flock
qui verrouillera le scriptwatchdog.sh
afin d’éviter qu’une nouvelle instance de ce script ne s’exécute si la précédente est toujours en cours d’exécution :opkg update opkg install flock
- Redémarrez le service cron :
/etc/init.d/cron restart
- Un p’tit coup d’oeil dans les logs pour s’apercevoir que la tâche est bien exécutée, et que l’interface est bien redémarrée lorsque la connexion au réseau LTE (4G) est perdue :
logread Sat Feb 17 23:40:00 2018 cron.info crond[8535]: USER root pid 8538 cmd /root/watchdog.sh wwan Sat Feb 17 23:41:32 2018 user.notice watchdog: Physical network interface 'wwan0' is down: restart interface 'wwan' Sat Feb 17 23:41:32 2018 daemon.notice netifd: wwan (8560): Stopping network wwan Sat Feb 17 23:41:33 2018 daemon.notice netifd: Interface 'wwan' is now down Sat Feb 17 23:41:33 2018 daemon.notice netifd: Interface 'wwan' is setting up now Sat Feb 17 23:42:05 2018 daemon.notice netifd: wwan (8604): sending -> AT Sat Feb 17 23:42:06 2018 daemon.notice netifd: wwan (8604): sending -> ATZ Sat Feb 17 23:42:07 2018 daemon.notice netifd: wwan (8604): sending -> ATQ0 Sat Feb 17 23:42:07 2018 daemon.notice netifd: wwan (8604): sending -> ATV1 Sat Feb 17 23:42:08 2018 daemon.notice netifd: wwan (8604): sending -> ATE1 Sat Feb 17 23:42:09 2018 daemon.notice netifd: wwan (8604): sending -> ATS0=0 Sat Feb 17 23:42:09 2018 daemon.notice netifd: wwan (8604): sending -> AT+CGDCONT=1,"IP","free" Sat Feb 17 23:42:11 2018 daemon.notice netifd: wwan (8604): SIM ready Sat Feb 17 23:42:11 2018 daemon.notice netifd: wwan (8604): PIN set successfully Sat Feb 17 23:42:12 2018 daemon.notice netifd: wwan (8604): sending -> AT^SYSCFGEX="030201",3fffffff,2,4,7fffffffffffffff,, Sat Feb 17 23:42:13 2018 daemon.notice netifd: wwan (8604): Starting network wwan Sat Feb 17 23:42:13 2018 daemon.notice netifd: wwan (8604): sending -> AT^NDISDUP=1,1,"free" Sat Feb 17 23:42:14 2018 daemon.notice netifd: wwan (8604): Setting up wwan0 Sat Feb 17 23:42:14 2018 daemon.notice netifd: Interface 'wwan' is now up Sat Feb 17 23:42:14 2018 daemon.notice netifd: Network device 'wwan0' link is up Sat Feb 17 23:42:14 2018 daemon.notice netifd: Network alias 'wwan0' link is up
Mise à jour et installation des paquets sur OpenWrt
- Connectez-vous en SSH à votre routeur :
ssh [email protected]
- Définissez un mot de passe pour l’utilisateut root :
passwd
- Mettez à jour la liste des paquets du système :
opkg update
- Installez les paquets que vous désirez, par exemple celui de l’interface graphique LuCI :
opkg install luci
- Ouvrez une fenêtre de votre navigateur Web à l’adresse http://192.168.1.1/) :
- Admirez l’interface d’administration d’OpenWrt ! 😉
Ce guide s’achève ! Félicitations, cela n’aura pas été de tout repos 🙂
Nous verrons dans un prochain article comment configurer OpenWrt pour établir une connexion VPN chiffrée 😉 En attendant, profitez de votre routeur équipé du firmware OpenWrt !