Skip to content

TP Link WDR4300

Vincent Fortier edited this page Jul 11, 2020 · 31 revisions

Je possède entre autre un TL-WDR4300-v1.3 dont je suis plutôt satisfait. Il me sert de routeur principal à titre de point d'entrée sur mon réseau. Je n'utilise sa fonctionalité WIFI qu'exceptionnellement puisque je possède un autre routeur plus récent configuré à titre de point d'accès (AP). Le principal défaut de ce routeur est le manque criant d'espace disque: il ne reste que 3.6MB après l'application de l'image d'OpenWRT.

La procédure qui suit présume que le routeur a déjà été imagé avec OpenWRT et que l'on désire appliquer une mise à jour. Ensuite un jeux d'outils minimal optionnel est déployé sur le routeur.

Documentations

Images disponibles

Pour les intéressés voici les différentes images disponibles pour ce modèle de routeur. Personnellement je recommande à plus récente version OpenWRT:

Version OpenWRT 19.07.3:

Mise à jour

Se connecter au routeur via SSH: whoami@localhost:~$ ssh root@router

Télécharger et vérifier l’image. Personnellement j'ai une forte préférence à utiliser la plus récente version officielle:

root@openwrt:~# cd /tmp
root@openwrt:~# wget --no-check-certificate https://downloads.openwrt.org/releases/19.07.3/targets/ar71xx/generic/openwrt-19.07.3-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin
root@openwrt:~# wget --no-check-certificate https://downloads.openwrt.org/releases/19.07.3/targets/ar71xx/generic/sha256sums
root@openwrt:~# sha256sum -c sha256sums 2>/dev/null | grep OK
openwrt-19.07.3-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin: OK

ATTENTION: À FAIRE SUR RÉSEAU CABLÉ, PAS SUR WIFI!

Lancer le processus de mise à jour - laisser aller le processus même s'il semble demander une confirmation!

root@openwrt:~# sysupgrade -v /tmp/openwrt-19.07.3-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin
Image metadata not found
Saving config files...
etc/config/bandwidthd
etc/config/bandwidthd-opkg
etc/config/ddns
etc/config/ddns-opkg
etc/config/dhcp
etc/config/dhcp-20191113
etc/config/dhcp-CLEANUP
etc/config/dhcp-ORIG
etc/config/dhcp-opkg
etc/config/dropbear
etc/config/firewall
etc/config/luci
etc/config/network
etc/config/rpcd
etc/config/sqm
etc/config/sqm-opkg
etc/config/stubby
etc/config/system
etc/config/ubootenv
etc/config/ucitrack
etc/config/uhttpd
etc/config/unbound
etc/config/upnpd
etc/config/upnpd-opkg
etc/config/wireless
etc/dropbear/authorized_keys
etc/dropbear/authorized_keys-ORIG
etc/dropbear/dropbear_rsa_host_key
etc/group
etc/hosts
etc/inittab
etc/luci-uploads/.placeholder
etc/opkg/keys/0b26f36ae0f4106d
etc/opkg/keys/1035ac73cc4e59e3
etc/opkg/keys/5151f69420c3f508
etc/opkg/keys/72a57f2191b211e0
etc/opkg/keys/792d9d9b39f180dc
etc/opkg/keys/9ef4694208102c43
etc/opkg/keys/b26f36ae0f4106d
etc/opkg/keys/b2d571e0880ff617
etc/opkg/keys/b5043e70f9a75cde
etc/opkg/keys/c10b9afab19ee428
etc/opkg/keys/dace9d4df16896bf
etc/opkg/keys/dd6de0d06bbd3d85
etc/opkg/keys/f94b9dd6febac963
etc/passwd
etc/profile
etc/rc.local
etc/shadow
etc/shells
etc/sysctl.conf
etc/uhttpd.crt
etc/uhttpd.key
etc/uhttpd.key
etc/uhttpd.crt
Commencing upgrade. Closing all shell sessions.
Connection to 192.168.80.1 closed by remote host.
Connection to 192.168.80.1 closed.

Résultat OpenWRT 19.07.3:

BusyBox v1.30.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 19.07.3, r11063-85e04e9f46
 -----------------------------------------------------
root@th0ma7-router:~# uname -a
Linux th0ma7-router 4.14.180 #0 Sat May 16 18:32:20 2020 mips GNU/Linux

Espace disque initial:

# df -h /overlay
Filesystem                Size      Used Available Use% Mounted on
/dev/mtdblock3            3.9M    312.0K      3.6M   8% /overlay

Paquets recommandés (Post mise-à-jour)

Je recommande l'installation de quelques paquets optionnels auxquels je fais référence dans les procédures suivantes:

Dans mon cas j'utilise les outils suivants:

  • ddns-scripts pour l'association d'un nom de domaine à mon adresse WAN dynamique
  • libustream-openssl20150806 pour utiliser SSL pour la mise DDNS
  • sqm-scripts afin de limiter la bande passante (guest et bufferboat WAN)
  • miniupnpd pour certaines applications de streaming et jeux
  • stubby pour la résolution DNS avec TLS + DNSSEC
  • dnsmasq-full pour être en mesure de passer les requêtes DNSSEC de et vers stubby

Suivant la mise à jour la configuration a été conservée cependant il est nécessaire de:

  • réinstaller ses paquets optionnels
  • OPTIONNEL: configurer stubby pour les requêtes directe du LAN au port 5453

La technique d'installation utilisée est pratique sur les routeurs avec peu d'espace disque.

  1. Les paquets sont tout d'abord téléchargés dans le répertoire /tmp qui est en réalité de la mémoire temporaire formaté en tmpfs au démarrage. Ceci ne prend aucun espace permanent et permet de valider la taille approximative requise à venir pour l'installation.
  2. On installe les paquets fraichement téléchargés en pointant vers le répertoire local "." comme source.
  3. On efface les paquets .ipk téléchargés résiduels
# opkg update
# cd /tmp
# opkg install dnsmasq-full ddns-scripts luci-app-ddns libustream-openssl20150806 sqm-scripts luci-app-sqm stubby miniupnpd --download-only
# opkg remove dnsmasq
# opkg install dnsmasq-full ddns-scripts luci-app-ddns libustream-openssl20150806 sqm-scripts luci-app-sqm stubby miniupnpd --cache .
# rm *.ipk
# uci add_list stubby.global.listen_address='192.168.80.1@5453'
# uci commit
# /etc/init.d/stubby enable
# /etc/init.d/sqm enable
# reboot

Si paquet stubby non-disponible (but actuel 19.07.3):

# cd /tmp
# wget --no-check-certificate https://github.com/th0ma7/openwrt/raw/master/19.07.3/packages/ar71xx/getdns_1.6.0-2_mips_24kc.ipk
# wget --no-check-certificate https://github.com/th0ma7/openwrt/raw/master/19.07.3/packages/ar71xx/stubby_0.3.0-1_mips_24kc.ipk
# opkg install getdns_1.6.0-2_mips_24kc.ipk stubby_0.3.0-1_mips_24kc.ipk
# rm *.ipk
# uci add_list stubby.global.listen_address='192.168.80.1@5453'
# uci commit
# /etc/init.d/stubby enable
# reboot

Si on ne veut pas redémarrer on peut tenter:

# /etc/init.d/dnsmasq restart
# /etc/init.d/stubby enable
# /etc/init.d/stubby restart
# /etc/init.d/sqm enable
# /etc/init.d/sqm restart

Espace disque après:

# df -h /overlay
Filesystem                Size      Used Available Use% Mounted on
/dev/mtdblock3            3.9M      3.6M    332.0K  92% /overlay

OPTIONNEL: Installer les outils de configuration graphiques pour LUCI:

root@openwrt:~# cd /tmp
root@openwrt:~/tmp# opkg update
root@openwrt:~/tmp# opkg install luci-i18n-base-fr luci-app-sqm luci-app-upnp luci-i18n-ddns-fr --download-only
root@openwrt:~/tmp# opkg install luci-i18n-base-fr luci-app-sqm luci-app-upnp luci-i18n-ddns-fr --cache .
root@openwrt:~/tmp# rm *.ipk

Espace disque après:

# df -h /overlay
Filesystem                Size      Used Available Use% Mounted on
/dev/mtdblock3            3.9M      3.4M    484.0K  88% /overlay

OPTIONNEL: Installer LUCI en mode SSL:

root@openwrt:~# cd /tmp
root@openwrt:~/tmp# opkg update
root@openwrt:~/tmp# opkg install luci-ssl --download-only
root@openwrt:~/tmp# opkg install luci-ssl --cache .
root@openwrt:~/tmp# rm *.ipk

OPTIONNEL: Effacer les fichiers de configuration par défaut (/etc/config/*-opkg):

root@openwrt:~# rm -f /etc/config/ddns-opkg /etc/config/sqm-opkg /etc/config/upnpd-opkg /etc/config/bandwidthd-opkg

Remise en place de la résolution native DNS (essentiellement pour DDNS):
Semble être par défaut depuis 19.07.0-rc2 ?

root@openwrt:~# ls -la /etc/resolv.conf
lrwxrwxrwx    1 root     root       16 Feb  2  2016 /etc/resolv.conf -> /tmp/resolv.conf
root@openwrt:~# rm /etc/resolv.conf
root@openwrt:~# ln -nsf /tmp/resolv.conf.auto /etc/resolv.conf
root@openwrt:~# ls -la /etc/resolv.conf
lrwxrwxrwx    1 root     root       16 Feb  2  2016 /etc/resolv.conf -> /tmp/resolv.conf.auto

Je redémarre ensuite afin de confirmer que tous les services s'initient adéquatement à l'amorce du système:

root@openwrt:~# reboot

LUCI en mode SSL et langue Française

L'interface d'administration graphique Luci n'est pas installé par défaut en français ni avec le soutien SSL. Installer les paquets suivants:

root@openwrt:~# opkg update
root@openwrt:~# opkg install luci-ssl luci-i18n-base-fr
root@openwrt:~# /etc/init.d/uhttpd enable
root@openwrt:~# /etc/init.d/uhttpd start

Référence: http://wiki.openwrt.org/doc/howto/luci.essentials

WIFI à 40MHz (300Mbps)

Il est possible sur plusieurs routeur d'optimiser la puissance du signal wifi 802.11n à 40MHz (300Mbps). Cependant par défaut OpenWRT ajuste le mode à 20MHz avec une vitesse maximale théorique de 130Mbps:

root@openwrt:~# ubus call network.wireless status | grep htmode
                        "htmode": "HT20",
                        "htmode": "HT20",

On valide que notre routeur permet le mode à 40MHz sur chaque bande:

root@openwrt:~# iw phy phy0 info
Wiphy phy0
        Band 1:
                Capabilities: 0x11ef
                        HT20/HT40

root@th0ma7-router:~# iw phy phy1 info
Wiphy phy1
        Band 2:
                Capabilities: 0x11ef
                        HT20/HT40

On augmente cette valeur à 40MHz avec un débit théorique à 300Mbps:

root@openwrt:~# uci set wireless.radio0.htmode=HT40
root@openwrt:~# uci set wireless.radio1.htmode=HT40
root@openwrt:~# uci changes wireless
root@openwrt:~# uci commit

On redémarre:

root@openwrt:~# reboot

On valide que le mode à 40MHz est bien actif suivant le redémarrage:

root@openwrt:~# ubus call network.wireless status | grep htmode
                        "htmode": "HT40"
                        "htmode": "HT40"

Référence: https://wiki.openwrt.org/doc/uci/wireless#mhz_channel_width_up_to_300_mbps_for_80211n_devices_only