User Tools

Site Tools


informatique:os:openwrt

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:os:openwrt [2022/11/11 09:29] pteuinformatique:os:openwrt [2025/08/20 12:33] (current) – [Problèmes DHCP depuis OpenWRT 24.10] pteu
Line 20: Line 20:
 [[informatique:hardware:tplink_wdr3600|Installation sur un Tp-Link WDR3600]] [[informatique:hardware:tplink_wdr3600|Installation sur un Tp-Link WDR3600]]
  
-======Installation de paquets======+======Gestion des paquets (opkg)======
  
 On peut installer des paquets avec le [[http://wiki.openwrt.org/doc/techref/opkg|gestionnaire opkg]] intégré ; pour installer tcpdump par exemple : On peut installer des paquets avec le [[http://wiki.openwrt.org/doc/techref/opkg|gestionnaire opkg]] intégré ; pour installer tcpdump par exemple :
Line 31: Line 31:
 </code> </code>
  
 +Pour mettre à jour les paquets upgradables :
 +<code bash>
 +opkg update
 +opkg list-upgradable | cut -f1 -d' ' | xargs -r opkg upgrade
 +</code>
 ======Configurer le rsyslog===== ======Configurer le rsyslog=====
  
Line 40: Line 45:
  
 **UCI** (Unified Configuration Interface) est la commande qui permet d'interagir avec la configuration d'OpenWRT. Cet outil permet d'unifier/centraliser la configuration du routeur et est utilisé depuis les versions Kamikaze. **UCI** (Unified Configuration Interface) est la commande qui permet d'interagir avec la configuration d'OpenWRT. Cet outil permet d'unifier/centraliser la configuration du routeur et est utilisé depuis les versions Kamikaze.
 +
 +On peut afficher la configuration sous plusieurs formats :
 +<code bash>
 +# format natif, programmable
 +uci show system
 +system.@system[0]=system
 +system.@system[0].cronloglevel='8'
 +system.@system[0].zonename='Europe/Paris'
 +system.@system[0].timezone='CET-1CEST,M3.5.0,M10.5.0/3'
 +system.@system[0].hostname='har'
 +
 +# paramètre précis
 +uci get system.@system[0].zonename
 +Europe/Paris
 +
 +# format lisible (human-readable)
 +uci export system
 +config system
 +        option cronloglevel '8'
 +        option zonename 'Europe/Paris'
 +        option timezone 'CET-1CEST,M3.5.0,M10.5.0/3'
 +        option hostname 'har'
 +</code>
 +
 +''uci changes'' permet d'afficher les modifications encore non appliquées ; ''uci commit'' permet de sauvegarder ces modifs, et ''reload_config'' permet de le appliquer.
 +
 +Exemple de création d'une nouvelle section :
 <code bash> <code bash>
-uci show +uci show sectionperso 
-uci set +uci import sectionperso < /dev/null 
-uci get +uci set sectionperso.myname=masectionperso 
-! +uci add sectionperso blah
-uci changes+
 uci commit uci commit
-+uci show sectionperso 
-uci import +sectionperso.@blah[0]=blah
-uci export+
 </code> </code>
 +
 +=====UCI extras=====
 +
 +Pour éviter les erreurs de configuration, installer les [[https://openwrt.org/docs/guide-user/advanced/uci_extras|UCI extras]] :
 +<code bash>
 +opkg update
 +opkg install diffutils
 +uclient-fetch -O uci-extras.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/uci_extras?codeblock=0"
 +. ./uci-extras.sh
 +</code>
 +
 +Cela permet d'ajouter les commandes ''uci validate'' et ''uci diff <section>'', qui permettent respectivement de valider la syntaxe et de voir les différences entre 2 confs.
 +
 +<code bash>
 +uci validate
 +uci diff dhcp
 +</code>
 +
 +=====Liens utiles=====
 +
 +  * https://openwrt.org/docs/guide-user/base-system/uci
 +
 +
 +======Problèmes======
 +
 +=====(dnsmasq) leases file in read-only=====
 +
 +<code bash>
 +dnsmasq[1]: cannot open or create lease file /tmp/dhcp.leases: Read-only file system
 +</code>
 +[[https://github.com/openwrt/openwrt/issues/9064|Soucis avec le paquet proc-ujail]] ; en modifiant l'emplacement du fichier de leases cela refonctionne :
 +<code bash>
 +touch /var/run/dnsmasq/dhcp.leases
 +uci set dhcp.@dnsmasq[0].leasefile='/var/run/dnsmasq/dhcp.leases'
 +service dnsmasq restart
 +</code>
 +
 +=====Problèmes DHCP depuis OpenWRT 24.10=====
 +
 +Depuis la version 24.10 d'OpenWRT (avec la 23.05 je n'ai pas constaté le soucis), le serveur DHCP (dnsmasq) ne répond plus aux clients si son adresse est incluse dans le pool DHCP. Par exemple si le pool est 192.168.0.1 jusqu'à .100 (start=1 ; limit=100), si l'interface du routeur est la .1 alors le DHCP ne sert plus d'adresse.
 +
 +C'est une best-practice que de ne pas inclure l'IP du serveur DHCP dans son pool d'IPs cliente, mais là c'est raide : le DHCP bloque.
 +
 +Pour résoudre le soucis il faut juste sortir l'IP du serveur DHCP du pool d'IPs clientes (renuméroter l'IP du serveur ou modifier le pool), ou faire un rollback d'OpenWRT pour revenir en version 23.05.
 +
 +src: forum.openwrt.org
 +  * [[https://forum.openwrt.org/t/dhcp-bug-in-openwrt-24-10/231767|DHCP bug in OpenWrt 24.10]]
 +  * [[https://forum.openwrt.org/t/dhcp-doesnt-work-anymore-when-router-ip-is-inside-dhcp-range/166539|Dhcp doesn’t work anymore when router IP is inside dhcp range]]
informatique/os/openwrt.1668158989.txt.gz · Last modified: 2022/11/11 09:29 by pteu