Auteur Sujet: Remplacer la livebox par systemd-networkd / nftables  (Lu 12516 fois)

0 Membres et 1 Invité sur ce sujet

gwongafa

  • Abonné Orange Fibre
  • *
  • Messages: 34
  • Orgeval (78)
Remplacer la livebox par systemd-networkd / nftables
« Réponse #36 le: 13 septembre 2024 à 10:13:16 »
Salut Cyayon,

J'ai testé après plusieurs reboot, le service s'exécute à priori au bon moment :

Sep 11 11:41:40   systemd-networkd[1228]: vlan832: Link UP
Sep 11 11:41:40   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
[...]
Sep 11 11:41:40   systemd[1]: Starting netdev-egress@vlan832.service - netdev-egress pre-requisite for vlan832...
Sep 11 11:41:40   netdev-egress[1245]: executing nft chain netdev filter egress device vlan832
Sep 11 11:41:40   netdev-egress[1246]: 10: vlan832@ont: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default qle>
Sep 11 11:41:40   netdev-egress[1246]:     link/ether xxxxxxxxxxxxxx brd ff:ff:ff:ff:ff:ff
[...]
Sep 11 11:41:40   systemd-networkd[1228]: Got message type=signal sender=org.freedesktop.DBus.Local destination=n/a path=/org/freedesktop/DBus/Local interface=org.fre>
Sep 11 11:41:40   systemd-networkd[1228]: Got message type=signal sender=org.freedesktop.DBus destination=:1.7 path=/org/freedesktop/DBus interface=org.freedesktop.DB>
Sep 11 11:41:40   systemd-networkd[1228]: Got message type=signal sender=org.freedesktop.DBus destination=:1.7 path=/org/freedesktop/DBus interface=org.freedesktop.DB>
Sep 11 11:41:40   systemd-networkd[1228]: Got message type=method_return sender=org.freedesktop.DBus destination=:1.7 path=n/a interface=n/a member=n/a  cookie=429496>
Sep 11 11:41:40   systemd-networkd[1228]: Successfully acquired requested service name.
Sep 11 11:41:40   systemd-networkd[1228]: Got message type=method_return sender=org.freedesktop.DBus destination=:1.7 path=n/a interface=n/a member=n/a  cookie=429496>
Sep 11 11:41:40   systemd-networkd[1228]: Match type='signal',sender='org.freedesktop.login1',path='/org/freedesktop/login1',interface='org.freedesktop.login1.Manager>
Sep 11 11:41:40   netdev-egress[1247]: Error: No such file or directory
Sep 11 11:41:40   netdev-egress[1247]: list table netdev filter
Sep 11 11:41:40   netdev-egress[1247]:                   ^^^^^^
Sep 11 11:41:40   netdev-egress[1245]: applying netdev filter
Sep 11 11:41:40   audit[1248]: NETFILTER_CFG table=filter:2 family=5 entries=8 op=nft_register_chain pid=1248 subj=system_u:system_r:unconfined_service_t:s0 comm="nft"
Sep 11 11:41:40   netdev-egress[1245]: final nft table netdev filter
Sep 11 11:41:40   netdev-egress[1249]: table netdev filter {
Sep 11 11:41:40   netdev-egress[1249]:         chain egress {
Sep 11 11:41:40   netdev-egress[1249]:                 type filter hook egress device "vlan832" priority filter; policy accept;
Sep 11 11:41:40   netdev-egress[1249]:                 udp dport 547 meta priority set 0:6 ip6 dscp set cs6 comment "Set CoS value to 6 for DHCPv6 packets"
Sep 11 11:41:40   netdev-egress[1249]:                 icmpv6 type { nd-router-solicit, nd-neighbor-solicit, nd-neighbor-advert } meta priority set 0:6 ip6 dscp set c>
Sep 11 11:41:40   netdev-egress[1249]:         }
Sep 11 11:41:40   netdev-egress[1249]: }
Sep 11 11:41:40   netdev-egress[1245]: networkctl status vlan832
Sep 11 11:41:40   systemd-networkd[1228]: Got message type=method_call sender=:1.8 destination=org.freedesktop.network1 path=/org/freedesktop/network1 interface=org.f>
Sep 11 11:41:40   systemd-networkd[1228]: Sent message type=method_return sender=n/a destination=:1.8 path=n/a interface=n/a member=n/a cookie=58 reply_cookie=2 signa>
Sep 11 11:41:40   systemd-networkd[1228]: Got message type=method_call sender=:1.8 destination=org.freedesktop.network1 path=/org/freedesktop/network1/link/_310 inter>
Sep 11 11:41:40   systemd-networkd[1228]: Sent message type=method_return sender=n/a destination=:1.8 path=n/a interface=n/a member=n/a cookie=59 reply_cookie=3 signa>
Sep 11 11:41:40   systemd-networkd[1228]: Got message type=method_call sender=:1.8 destination=org.freedesktop.network1 path=/org/freedesktop/network1/link/_310 inter>
Sep 11 11:41:40   systemd-networkd[1228]: Sent message type=error sender=n/a destination=:1.8 path=n/a interface=n/a member=n/a cookie=60 reply_cookie=4 signature=s e>
Sep 11 11:41:40   netdev-egress[1250]: ● 10: vlan832
Sep 11 11:41:40   netdev-egress[1250]:                    Link File: /usr/lib/systemd/network/99-default.link
Sep 11 11:41:40   netdev-egress[1250]:                 Network File: /etc/systemd/network/30-vlan832.network
Sep 11 11:41:40   netdev-egress[1250]:                        State: no-carrier (configuring)
Sep 11 11:41:40   netdev-egress[1250]:                 Online state: offline
Sep 11 11:41:40   netdev-egress[1250]:                         Type: vlan
Sep 11 11:41:40   netdev-egress[1250]:                         Kind: vlan
Sep 11 11:41:40   netdev-egress[1250]:                       Driver: 802.1Q VLAN Support
Sep 11 11:41:40   netdev-egress[1250]:             Hardware Address: xxxxxxxxxxxxxxxxx (Sagemcom Broadband SAS)
Sep 11 11:41:40   netdev-egress[1250]:                          MTU: 1500 (max: 65535)
Sep 11 11:41:40   netdev-egress[1250]:                        QDisc: noqueue
Sep 11 11:41:40   netdev-egress[1250]: IPv6 Address Generation Mode: eui64
Sep 11 11:41:40   netdev-egress[1250]:                      VLan Id: 832
Sep 11 11:41:40   netdev-egress[1250]:     Number of Queues (Tx/Rx): 1/1
Sep 11 11:41:40   netdev-egress[1250]:             Auto negotiation: no
Sep 11 11:41:40   netdev-egress[1250]:                         Port: fibre
Sep 11 11:41:40   netdev-egress[1250]:            Activation Policy: up
Sep 11 11:41:40   netdev-egress[1250]:          Required For Online: yes
Sep 11 11:41:41   avahi-daemon[884]: Joining mDNS multicast group on interface lan.IPv6 with address  fe80::yyyyyyyyyy.
Sep 11 11:41:41   avahi-daemon[884]: New relevant interface lan.IPv6 for mDNS.
Sep 11 11:41:41   systemd-networkd[1228]: lan: Received new foreign address (configured):  fe80::yyyyyyyyyy/64 (valid forever, preferred forever), flags: perm>
Sep 11 11:41:41   avahi-daemon[884]: Registering new address record for  fe80::yyyyyyyyyy on lan.*.
Sep 11 11:41:41   systemd-networkd[1228]: lan: Gained IPv6LL
Sep 11 11:41:41   systemd-networkd[1228]: lan: Discovering IPv6 routers
Sep 11 11:41:41   systemd-networkd[1228]: lan: NDISC: Started IPv6 Router Solicitation client
Sep 11 11:41:41   systemd-networkd[1228]: lan: State changed: configuring -> configured
Sep 11 11:41:41   systemd-networkd[1228]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_32 interface=org.freedesktop.DBus.P>
Sep 11 11:41:41   systemd-networkd[1228]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_32 interface=org.freedesktop.DBus.P>
Sep 11 11:41:41   systemd-networkd[1228]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1 interface=org.freedesktop.DBus.Properties>
Sep 11 11:41:41   systemd-networkd[1228]: lan: Starting IPv6 Router Advertisements
Sep 11 11:41:41   systemd-networkd[1228]: lan: RADV: Started IPv6 Router Advertisement daemon
Sep 11 11:41:41   systemd-networkd[1228]: lan: IPv6 Router Advertisement engine is configured and started.
Sep 11 11:41:41   systemd-networkd[1228]: lan: Received new foreign route (configured): dst:  fe80::yyyyyyyyyy/128, src: n/a, gw: n/a, prefsrc: n/a, scope: gl>
Sep 11 11:41:41   systemd-networkd[1228]: lan: RADV: Next Router Advertisement in 6s
Sep 11 11:41:41   systemd-networkd[1228]: lan: Received new foreign route (configured): dst: fe80::/128, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: local(>
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: link_check_ready(): link is not activated.
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: link_check_ready(): link is not activated.
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: link_check_ready(): link is not activated.
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: link_check_ready(): link is not activated.
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: link_check_ready(): link is not activated.
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: Bringing link up
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: found matching network '/etc/systemd/network/30-vlan832.network'.
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: Flags change: +UP
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: Link UP
Sep 11 11:41:41   netdev-egress[1250]: Sep 11 11:41:40   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:41   systemd[1]: Finished netdev-egress@vlan832.service - netdev-egress pre-requisite for vlan832.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: Received new foreign route (configured): dst: ff00::/8, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: loca>
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: Received new foreign route (configured): dst: fe80::/64, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: mai>
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: Flags change: +LOWER_UP +RUNNING
Sep 11 11:41:44   systemd-networkd[1228]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_310 interface=org.freedesktop.DBus.>
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: Gained carrier
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: found matching network '/etc/systemd/network/30-vlan832.network'.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: LLDP Rx: Started LLDP client
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: link_check_ready(): IPv6LL is not configured yet.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: DHCPv4 client: STARTED on ifindex 10
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: DHCPv4 client is configured, acquiring DHCPv4 lease.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: IPv6 link-local address is not set, delaying to start DHCPv6 client.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: DHCPv6 client is configured.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: IPv6 Router Discovery is configured.
Sep 11 11:41:44   systemd-networkd[1228]: ont: Received updated static address (configured): 192.168.1.254/24 broadcast 192.168.1.255 (valid forever, preferred foreve>
Sep 11 11:41:44   systemd-networkd[1228]: ont: link_check_ready(): static addresses are not configured.
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: DHCPv4 client: DISCOVER
Sep 11 11:41:44   systemd-networkd[1228]: vlan832: DHCPv4 client: State changed: initialization -> selecting
Sep 11 11:41:44   systemd-networkd[1228]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_310 interface=org.freedesktop.DBus.>
Sep 11 11:41:44   systemd-networkd[1228]: ont: Addresses set
Sep 11 11:41:44   systemd-networkd[1228]: ont: State changed: configuring -> configured

L'interface vlan832 est créée et c'est appliqué avant le "Link UP" et les client DHCP sont lancé par la suite.

Est-ce que tu pensais à une autre configuration ?

cyayon

  • Abonné Orange Fibre
  • *
  • Messages: 783
  • Cordon 74 - Orange Fibre Pro
Remplacer la livebox par systemd-networkd / nftables
« Réponse #37 le: 13 septembre 2024 à 10:14:29 »
Ok, super, j'avais juste un doute...
Merci pour ta confirmation.

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 701
  • XGS-PON et G-PON
Remplacer la livebox par systemd-networkd / nftables
« Réponse #38 le: 16 juillet 2025 à 22:02:00 »
Bonne nouvelle, debian 13 va prendre en charge systemd 257. Ca devrait donc être suffisant pour prendre l'ensemble en charge en full systemd/networkd sur debian.

As-tu fais des modifications depuis @gwongafa, si oui les quelles ?

Y a-t-il un moyen de tester sans reboot, du genre systemd restart network qui relance l'intégralité comme durant un boot ?

gwongafa

  • Abonné Orange Fibre
  • *
  • Messages: 34
  • Orgeval (78)
Remplacer la livebox par systemd-networkd / nftables
« Réponse #39 le: 17 juillet 2025 à 12:34:18 »
Salut @Mastah,

Je n'ai fait aucune autre modification depuis.
Pour les tests, je fais :

systemctl daemon-reload
systemctl restart systemd-networkd


Ça suffit normalement pour appliquer les changements effectués dans les fichiers de configuration.

Ensuite, s'il n'y a pas d'erreur, je fais un reboot pour m'assurer que les dépendances n'ont pas évoluées (surtout après un upgrade).

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 701
  • XGS-PON et G-PON
Remplacer la livebox par systemd-networkd / nftables
« Réponse #40 le: 18 juillet 2025 à 20:01:37 »
Super merci

Je ferais quelque test une fois Debian 13 sorti

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 701
  • XGS-PON et G-PON
Remplacer la livebox par systemd-networkd / nftables
« Réponse #41 le: Aujourd'hui à 00:18:36 »
gwongafa, je fais quelques test en ce moment.

Je pense avoir trouver une solution beaucoup plus propre pour la génération des option DHCP

Premièrement lancer la cmd suivante (ça va créer un fichier d'override de /usr/lib/systemd/system/systemd-networkd.service):
systemctl edit systemd-networkd.service

Dans ce fichier insérer:
### Anything between here and the comment below will become the contents of the drop-in file

[Service]
EnvironmentFile=/some/path/file_name.env

### Edits below this comment will be discarded

Et enfin dans le fichier .network du vlan832:
[Network]
VendorClassIdentifier=${VENDOR_CLASS_IDENTIFIER}


Il suffit ensuite de faire comme tu faisais avec un service qui s'exécute unitairement (Type=oneshot) avant networkd (qui fait de l'envsubst) mais au lieu de créer completement le fichier .network, tu ne créé qu'un fichier de variables.
Et dans ce fichier généré le format est le suivant (résulta après envsubst):
VENDOR_CLASS_IDENTIFIER=XYZ

Je n'ai pas encore pu tester cette partie mais je pense que ça fonctionne sans souci.

En gros ce que fait la manip, c'est d'override /usr/lib/systemd/system/systemd-networkd.service pour ajouter des variables d'env provenant d'un fichier. Et du coup lorsque systemd-networkd.service s'execute, il a accès aux différentes variables en placeholders (ajouté à la version 250 de systemd).

Tu peux bien entendu faire exactement la même chose directement en créant un fichier a la main: /etc/systemd/system/systemd-networkd.service.d/<OVERRIDE_FILE_NAME>.conf
C'est ce que fait la commande systemctl edit systemd-networkd.service
systemd fait ensuite l'union des n fichiers.