-
Notifications
You must be signed in to change notification settings - Fork 1
Configuration "routeur"
La configuration proposée qui suit a pour but de mettre en place quelques configurations de base sur votre routeur OpenWRT.
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:~#
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
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
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
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
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
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:
- https://openwrt.org/docs/guide-user/firewall/upnp/miniupnpd
- http://www.note.id.lv/2013/12/enable-upnp-on-openwrt.html
- https://wiki.openwrt.org/doc/howto/upnp
- https://www.howtogeek.com/122487/htg-explains-is-upnp-a-security-risk/
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:
- https://fixmynix.com/openwrt-qos-settings-luci-app-sqm/
- http://cerowrt-devel.bufferbloat.narkive.com/xRdFCQvF/sqm-and-pppoe-more-questions-than-answers
- https://www.bufferbloat.net/projects/cerowrt/wiki/Wondershaper_Must_Die/
- https://www.techrapid.co.uk/openwrt/traffic-shaping-on-openwrt-with-wshaper-on-luci
Sur quelle interface placer SQM:
- Bell Five via l'interface
pppoe-wan
oueth0.35
- Videotron ou autre client câble traditionnel
br-lan
oueth0.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