Skip to content

Configuration "routeur"

Vincent Fortier edited this page Nov 20, 2019 · 13 revisions

La configuration proposée qui suit a pour but de mettre en place quelques configurations de base sur votre routeur OpenWRT.

Nom de machine (hostname)

La première modification que j'effectue est d'assigner un nom au périphérique:

root@openwrt:~# uci set system.@system[0].hostname=th0ma7-router
root@openwrt:~# uci commit system

Il est possible de forcer la prise en charge immédiate du nouveau nom d'hôte sans redémarrer:

root@openwrt:~# echo $(uci get system.@system[0].hostname) > /proc/sys/kernel/hostname
root@th0ma7-router:~#

Fuseau horaire (timezone TZ)

Une des premières étapes de configuration que j'effectue sur tous mes systèmes est d'ajuster la date et l'heure et de m'assurer que ceux-ci demeurent exacts. Cela permet par la suite de confirmer certains attributs via l'heure affichée dans les journaux (logs) ou encore l'heure de modification de fichiers.

Pour changer le fuseau horaire pour America/Montreal :

root@openwrt:~# uci set system.@system[0].zonename='America/Montreal'
root@openwrt:~# uci set system.@system[0].timezone='EST5EDT,M3.2.0,M11.1.0'
root@openwrt:~# uci changes system
root@openwrt:~# uci commit system
root@openwrt:~# /etc/init.d/system restart

La liste des fuseaux est disponible ici: https://oldwiki.archive.openwrt.org/doc/uci/system#time_zones

Serveur NTP et Synchronisation de l'heure

Par défaut OpenWRT est pré-configuré afin de synchroniser son heure via les serveurs:

  • 0.openwrt.pool.ntp.org
  • 1.openwrt.pool.ntp.org
  • 2.openwrt.pool.ntp.org
  • 3.openwrt.pool.ntp.org

Aucune configuration n'est nécessaire pour conserver l'heure à jour. Par contre on peut utiliser notre routeur afin de synchroniser l'heure des périphériques au sein de notre LAN. Pour se faire il ne suffit que d'activer la configuration serveur et de réinitialiser le démon ntpd:

root@openwrt:~# uci set system.ntp.enable_server='1'
root@openwrt:~# uci changes system
root@openwrt:~# uci commit
root@openwrt:~# /etc/init.d/sysntpd restart

Référence: https://openwrt.org/docs/guide-user/advanced/ntp_configuration

Plage IP par défaut

Il est une mauvaise habitude de conserver la plage IP par défaut. Celle-ci permet souvent de déterminer quelle distribution ou modèle de routeur il est question simplement via sa plage réseau utilisée. Par conséquent je change systématiquement la plage réseau du LAN via:

root@openwrt:~# uci set network.lan.ipaddr='192.168.80.1'
root@openwrt:~# uci set network.lan.broadcast='192.168.80.255'
root@openwrt:~# uci changes network
root@openwrt:~# uci commit

Redémarrer le réseau (si câblé) sinon reboot (si WIFI):

root@openwrt:~# /etc/init.d/network restart

Plage DHCP par défaut

J'utilise le démon DHCP pour la quasi totalité des périphériques sur mon réseau LAN. Cependant j'aime bien spécifier et limiter la plage IP sur laquelle les périphériques seront situés logiquement.

Je change donc la plage DHCP du réseau LAN afin qu'elle débute à 100 et se termine à 149 (limite de 30 adresses).

root@openwrt:~# uci set dhcp.lan.start='100'
root@openwrt:~# uci set dhcp.lan.limit='30'

OPTIONNEL: J'assigne la passerelle par défaut (gateway) associée à l'adresse de mon routeur (192.168.80.1):

root@openwrt:~# uci set dhcp.lan.dhcp_option='3,192.168.80.1'

OPTIONNEL: J'ajoute mon routeur à titre de DNS primaire ainsi que les DNS de google à titre de résolution secondaire:

root@openwrt:~# uci add_list dhcp.lan.dhcp_option='6,192.168.80.1,8.8.8.8,8.8.4.4'

J'applique les changements de configuration:

root@openwrt:~# uci changes dhcp.lan
root@openwrt:~# uci commit

Je redémarre ensuite le démon DHCP en réinitialisant les baux existants:

root@openwrt:~# /etc/init.d/dnsmasq stop
root@openwrt:~# > /tmp/dhcp.leases
root@openwrt:~# /etc/init.d/dnsmasq start

Sur mon client Linux il est ensuite possible de valider le résultat:

whoami@localhost:~$ nmcli device show | grep IP4
IP4.PASSERELLE:                         192.168.80.1
IP4.DNS[1]:                             192.168.80.1
IP4.DNS[2]:                             8.8.8.8
IP4.DNS[3]:                             8.8.4.4

Référence: https://openwrt.org/docs/guide-user/base-system/dhcp

WIFI

Le réseau sans fil est désactivé par défaut. Il est donc primordial d'ajuster certains paramètre avant de l'activer.

Afin que notre périphérique respecte les normes locales il est nécessaire d'ajuster la zone géographique par défaut (exemple: CA=Canada):

root@openwrt:~# uci set wireless.radio0.country=CA
root@openwrt:~# uci set wireless.radio1.country=CA

Voir la liste des codes: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Decoding_table

Changer le nom des réseaux 2.4Ghz et 5Ghz (exemple: th0ma7):

root@openwrt:~# uci set wireless.@wifi-iface[0].ssid='th0ma7'
root@openwrt:~# uci set wireless.@wifi-iface[1].ssid='th0ma7'

D'avis de certains il est préférable d'utiliser des noms différents afin de distinguer le 2.4Ghz du 5Ghz. Cependant les nouveaux périphériques tenteront automatiquement d'utiliser celui qui obtiendra la meilleure performance basé sur plusieurs critères dont notamment la puissance du signal.

Activer l’encryption et définir le mot de passe par défaut:

root@openwrt:~# uci set wireless.@wifi-iface[0].encryption='psk2'
root@openwrt:~# uci set wireless.@wifi-iface[0].key='********'
root@openwrt:~# uci set wireless.@wifi-iface[1].encryption='psk2'
root@openwrt:~# uci set wireless.@wifi-iface[1].key='********'

Activer les interfaces WIFI:

root@openwrt:~# uci set wireless.radio0.disabled=0
root@openwrt:~# uci set wireless.radio1.disabled=0

Appliquer les changements:

root@openwrt:~# uci changes wireless
root@openwrt:~# uci commit wireless

Démarrer les réseaux WIFI (wlan0/wlan1):

root@openwrt:~# wifi

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

UPnP

L'abbréviation UPnP signifie “Universal Plug and Play”. L'utilisation de l'UPnP permet aux application d'effectuer la redirection de port via votre routeur automatiquement, vous sauvant du trouble de faire une configuration manuelle.

root@openwrt:~# opkg update
root@openwrt:~# opkg install miniupnpd luci-app-upnp luci-i18n-upnp-fr
root@openwrt:~# /etc/init.d/miniupnpd enable
root@openwrt:~# /etc/init.d/miniupnpd start
root@openwrt:~# /etc/init.d/firewall restart

La configuration par défaut d'OpenWRT active le protocole UPnP uniquement sur votre interface LAN. À noter que la configuration initiale active le secure_mode par défaut. Par contre il est requis de définir l'interface interne lan et externe wan puis d'activer le service:

uci set upnpd.config.external_iface='wan'
uci set upnpd.config.internal_iface='lan'
uci set upnpd.config.enabled=1
uci commit

La configuration finale par défaut:

root@openwrt:~# uci show upnpd.config
upnpd.config=upnpd
upnpd.config.download='1024'
upnpd.config.upload='512'
upnpd.config.internal_iface='lan'
upnpd.config.external_iface='wan'
upnpd.config.port='5000'
upnpd.config.upnp_lease_file='/var/upnp.leases'
upnpd.config.uuid='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
upnpd.config.enabled='1'

Références:

Limitation de la bande passante avec sqm

Le principe est d'améliorer nos performances en l'impact sur l'internet en configurant une limitation de notre bande passante WAN équivalente à notre vitesse réelle. Ceci évite de tenter de transmettre des paquets à 1 gigabit quand en fait nous n'avons que service internet entre 10mbit et 90mbit et nous permet d'obtenir une performance plus stable.

Références:

Sur quelle interface placer SQM:

  • Bell Five via l'interface pppoe-wan ou eth0.35
  • Videotron ou autre client câble traditionnel br-lan ou eth0.2

Effectuer un test de vitesse chez notre fournisseur de service et faire un ration à 95% de cette vitesse:

Vitesse maximale obtenue:

  • Amont: 67 Mbps équivaut à 67000 Kbit.
  • Aval: 10.6 Mbit équivaut à 10600 Kbit.

Paramétrisation SQM:

  • Amont (sqm.upload): 67000 * 97% = 65000
  • Aval (sqm.download): 10600 * 97% = 10000

Installer Smart Queue Management:

root@openwrt:~# opkg update
root@openwrt:~# opkg install luci-app-sqm

Retirer la configuration par défaut:

uci del sqm.eth1

Allouer 65 mbit en amont (sqm.upload), 10 mbit en aval (sqm.download):

uci add sqm queue
uci set sqm.@queue[-1].qdisc_advanced='0'
uci set sqm.@queue[-1].linklayer='none'
uci set sqm.@queue[-1].enabled='1'
uci set sqm.@queue[-1].interface='br-lan'
uci set sqm.@queue[-1].qdisc='fq_codel'
uci set sqm.@queue[-1].script='simplest_tbf.qos'
uci set sqm.@queue[-1].download='10000'
uci set sqm.@queue[-1].upload='65000'

Appliquer les changements

uci changes sqm
uci commit

Activer et redémarrer le service SQM:

root@openwrt:~# /etc/init.d/sqm enable
root@openwrt:~# /etc/init.d/sqm restart
SQM: Starting SQM script: simplest_tbf.qos on br-lan, in: 10000 Kbps, out: 65000 Kbps
SQM: Using generic sqm_start_default function.
SQM: get_burst (by duration): the calculated burst/quantum size of 1250 bytes was below the minimum of 1749 bytes.
SQM: simplest_tbf.qos was started on br-lan successfully