Pas de souci pour mettre à jour le tuto. Après, pour être sûr que ce soit une amélioration, il faut qu’il y ait soit un "vrai" gain de performance, soit une simplification de la configuration/déploiement.
En conséquence, je prévoyais de créer deux feeds : livebox-feed et custom-feed. Le livebox-feed contiendrait des correctifs des sources de programmes. Le
custom-feed serait un feed expérimental visant à automatiser et personnaliser une image OpenWrt. Plus besoin de copier des fichiers de configuration ou de lire le
tutoriel. Ce sera potentiellement plug & play. À mon avis, cela simplifiera considérablement la tâche des débutants souhaitant remplacer leur Livebox par OpenWrt.
J'ai refait le point.
Le concept de paquet est central dans OpenWrt. Pour améliorer la configuration, on peut créer un feed. Cela permettrait une mise à niveau de nftables en version
1.1.3. On peut construire le paquet par compilation en utilisant le SDK OpenWrt. L'avantage de cette approche est qu'elle est moins risquée que Buildroot. On peut
intégrer le paquet .ipk ou (.apk pour la future version) dans le système soit avec Image Builder ou en le transférant directement par SSH sur le routeur.
Le principe est simple. Changer des paramètres de configuration.
Pour du plug & play, il faut changer d'interface et de niveau. Par exemple, le SDK de Teltonika Networks est une version personnalisée de OpenWrt Buildroot. Les
micrologiciels commerciaux basés sur OpenWrt disposent de leur propre interface Web. On peut citer RutOS (Teltonika Networks), GL.iNet et Turris Omnia.
Il y a plusieurs choses à connaître et c'est assez technique. On peut opter pour l'approche la plus simple : réécrire les règles du pare-feu et mettre à niveau vers
la version 1.1.3.
Le code source suivant n'est pas forcément correctement formaté./etc/custom-arp-table.nft
table arp filter
flush table arp filter
table arp filter {
chain output {
type filter hook output priority filter; policy accept;
oifname "eth1.832" meta priority set 0:6 counter
}
}
/etc/custom-postrouting-chain.nft
oifname "eth1.832" icmpv6 type { 133, 135, 136 } meta priority set 0:6 ip6 dscp set cs6 counter
/etc/custom-netdev-table.nft
table netdev filter
flush table netdev filter
table netdev filter {
chain egress {
type filter hook egress device eth1 priority filter; policy accept;
vlan id 832 udp dport 547 vlan pcp set 6 ip6 dscp set cs6 comment "Set QoS values for DHCPv6 packets"
vlan id 832 udp dport 67 vlan pcp set 6 ip dscp set cs6 comment "Set QoS values for DHCPv4 packets"
}
}
Je n'ai pas vérifié si les règles de la table netdev sont fonctionnelles, je n'ai pas encore contrôlé avec une capture réseau.Si vous tester le code source suivant, il faut le reformater (remplacer les espaces par une tabulation).Shell
# Specify packet priority for packets forwarded to ISP.
uci -q batch <<-EOF
add firewall include
set firewall.@include[-1].enabled='1'
set firewall.@include[-1].type='nftables'
set firewall.@include[-1].path='/etc/custom-postrouting-chain.nft'
set firewall.@include[-1].chain='mangle_postrouting'
set firewall.@include[-1].position='chain-append'
EOF
uci -q batch <<-EOF
add firewall include
set firewall.@include[-1].enabled='1'
set firewall.@include[-1].type='nftables'
set firewall.@include[-1].path='/etc/custom-arp-table.nft'
set firewall.@include[-1].position='ruleset-post'
EOF
uci -q batch <<-EOF
add firewall include
set firewall.@include[-1].enabled='1'
set firewall.@include[-1].type='nftables'
set firewall.@include[-1].path='/etc/custom-netdev-table.nft'
set firewall.@include[-1].position='ruleset-post'
EOF
Shell
uci -q batch <<-EOF
add network device
set network.@device[-1].type='8021q'
set network.@device[-1].ifname='eth1'
set network.@device[-1].vid='832'
set network.@device[-1].name='eth1.832'
set network.@device[-1].egress_qos_mapping='6:6'
EOF
Mise à niveau de libnftnl (dépendance)
diff --git a/package/libs/libnftnl/Makefile b/package/libs/libnftnl/Makefile
index f06b223993..0fced5bbd7 100644
--- a/package/libs/libnftnl/Makefile
+++ b/package/libs/libnftnl/Makefile
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libnftnl
PKG_CPE_ID:=cpe:/a:netfilter:libnftnl
-PKG_VERSION:=1.2.8
+PKG_VERSION:=1.2.9
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
-PKG_HASH:=37fea5d6b5c9b08de7920d298de3cdc942e7ae64b1a3e8b880b2d390ae67ad95
+PKG_HASH:=e8c216255e129f26270639fee7775265665a31b11aa920253c3e5d5d62dfc4b8
Mise à niveau de nftables
diff --git a/package/network/utils/nftables/Makefile b/package/network/utils/nftables/Makefile
index 06b3fcfcda..f2f7e5f12f 100644
--- a/package/network/utils/nftables/Makefile
+++ b/package/network/utils/nftables/Makefile
@@ -6,12 +6,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=nftables
-PKG_VERSION:=1.1.1
+PKG_VERSION:=1.1.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
-PKG_HASH:=6358830f3a64f31e39b0ad421d7dadcd240b72343ded48d8ef13b8faf204865a
+PKG_HASH:=9c8a64b59c90b0825e540a9b8fcb9d2d942c636f81ba50199f068fde44f34ed8
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0
J'ai modifié directement les informations dans les sources de mon arborescence OpenWrt Buildroot. L'idée serait de créer un feed.
custom-feed/
├── libs
│ ├── libnftnl
│ │ └── Makefile
│ └── libubox
│ └── Makefile
└── network
├── services
│ └── odhcpd
│ ├── files
│ │ ├── odhcpd.defaults
│ │ ├── odhcpd.init
│ │ └── odhcpd-update
│ └── Makefile
└── utils
└── nftables
└── Makefile