Bonjour,
Pour OpenWrt, juste une idee que je n'ai pas encore eu le temps de tester
En se basant sur
https://openwrt.org/docs/guide-user/base-system/hotplug, en theorie il devrait etre possible d'ajouter les regles nftables lorsque le device VLAN passe a l'état up, et donc pouvoir preciser comme le device VLAN lors de l'ajout de la chaine netdev.
Par exemple creer dans /etc/hotplug.d/iface, un fichier 30-orange qui contient ce code
[ "$ACTION" = "ifup" ] && [ "$INTERFACE" = "wan4" ] && {
logger "Interface $INTERFACE is up (device $DEVICE)"
# Remove the table if it exists
nft destroy "table netdev orange_filter"
# Create table and chain
nft add "table netdev orange_filter"
nft add "chain netdev orange_filter egress { type filter hook egress device $DEVICE priority 0; }"
# Insert IPV4 rules
nft insert "rule netdev orange_filter egress udp dport 67 counter meta priority set 0:6 ip dscp set cs6 comment \"Set CoS value to 6 and DSCP value to 48 (cs6) for DHCPv4 packets\""
nft insert "rule netdev orange_filter egress ether type arp counter meta priority set 0:6 comment \"Set CoS value to 6 for arp packets\""
# Insert IPV6 rules
nft insert "rule netdev orange_filter egress udp dport 547 counter meta priority set 0:6 ip6 dscp set cs6 comment \"Set CoS value to 6 and DSCP value to 48 (cs6) for DHCPv6 packets\""
nft insert "rule netdev orange_filter egress icmpv6 type { nd-router-solicit, nd-neighbor-solicit, nd-neighbor-advert } counter meta priority set 0:6 ip6 dscp set cs6 comment \"Set CoS value to 6 and DSCP value to 48 (cs6) for RS/NS/NA packets\""
}
[ "$ACTION" = "ifdown" ] && [ "$INTERFACE" = "wan4" ] && {
logger "Interface $INTERFACE is down (device $DEVICE)"
# Remove the table if it exists
nft destroy "table netdev orange_filter"
}
J'ai deja verifie avec OpenWrt 24.10.2 que la commande fw4 start/reload/restart/stop ne touche pas a la table (par contre fw4 flush lui vide toutes les tables nftables)
Chez moi l'interface (au sens OpenWrt) est associé au device (au sens OpenWrt) eth0.832.
Voila c'etait juste une idee, PAS ENCORE TESTEE, je le reprécise