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

Mastah 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: 785
  • 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: 702
  • 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: 702
  • 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: 702
  • XGS-PON et G-PON
Remplacer la livebox par systemd-networkd / nftables
« Réponse #41 le: Hier à 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.

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 702
  • XGS-PON et G-PON
Remplacer la livebox par systemd-networkd / nftables
« Réponse #42 le: Hier à 23:21:47 »
/usr/local/bin/gen-networkd-env.sh
chmod 550
#!/bin/bash

set -eu

log() {
    local level="$1"
    shift
    printf '%-5s %s\n' "$level" "$*"
}

# Destination
IN_OUT_PATH="${IN_OUT_PATH:-/etc/gen-networkd-env}"
FILE_NAME="${FILE_NAME:-networkd.env}"

# Orange vars
LOGIN="${LOGIN:-<default>}"
PASSWORD="${PASSWORD:-<default>}"
LIVEBOX_VERSION="${LIVEBOX_VERSION:-<default>}"
LIVEBOX_HARDWARE="${LIVEBOX_HARDWARE:-<default>}"
log INFO "Orange parameters"
log INFO "      Login:            ********"
log INFO "      Password:         ********"
log INFO "      Livebox version:  ${LIVEBOX_VERSION}"
log INFO "      Livebox hardware: ${LIVEBOX_HARDWARE}"

# Check for default values
if [ $LOGIN == "<default>" ]; then
        log WARN "      * LOGIN is default value !"
fi

if [ $PASSWORD == "<default>" ]; then
        log WARN "      * PASSWORD is default value !"
fi

if [ $LIVEBOX_VERSION == "<default>" ]; then
        log WARN "      * LIVEBOX_VERSION is default value !"
fi

if [ $LIVEBOX_HARDWARE == "<default>" ]; then
        log WARN "      * LIVEBOX_HARDWARE is default value !"
fi

# Forge DHCP option 90
tohex() {
  for h in $(echo $1 | sed "s/\(.\)/\1 /g"); do printf %02x \'$h; done
}

addsep() {
  echo $(echo $1 | sed "s/\(.\)\(.\)/:\1\2/g")
}

r=$(dd if=/dev/urandom bs=1k count=1 2>&1 | md5sum | cut -c1-16)
id=${r:0:1}
h=3c12$(tohex ${r})0313$(tohex ${id})$(echo -n ${id}${PASSWORD}${r} | md5sum | cut -c1-32)
log INFO "Generating Orange DHCP values"

# vendor class
export VENDOR_CLASS_IDENTIFIER_4=${LIVEBOX_HARDWARE}
export VENDOR_CLASS_IDENTIFIER_6=00:00:04:0e:00:05$(addsep $(tohex ${LIVEBOX_HARDWARE}))
log INFO "      Vendor class has been generated"

# user class
export USER_CLASS_4=+FSVDSL_livebox.Internet.softathome.Livebox${LIVEBOX_VERSION}
export USER_CLASS_6=00$(addsep $(tohex "+FSVDSL_livebox.Internet.softathome.Livebox${LIVEBOX_VERSION}"))
log INFO "      User class has been generated"

# option 90
export AUTHENTICATION_STR=00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:05:58:01:03:41:01:0d$(addsep $(tohex ${LOGIN})${h})
log INFO "      Option 90 has been generated"

# Generate DHCP option for networkd
envsubst < ${IN_OUT_PATH}/${FILE_NAME}.template > ${IN_OUT_PATH}/${FILE_NAME}
log INFO "Generating env vars files"
log INFO "      Source = ${IN_OUT_PATH}/${FILE_NAME}.template"
log INFO "      Destination = ${IN_OUT_PATH}/${FILE_NAME}"


/etc/systemd/system/gen-networkd-env.service
chmod 644
# journalctl --lines=500 -f -u gen-networkd-env.service
[Unit]
Description=Generate /etc/networkd.env before systemd-networkd
Before=systemd-networkd.service
Requires=network-pre.target
DefaultDependencies=no

[Service]
EnvironmentFile=/etc/gen-networkd-env/gen-networkd-env
Type=oneshot
ExecStart=/usr/local/bin/gen-networkd-env.sh
UMask=0077

[Install]
WantedBy=systemd-networkd.service


/etc/gen-networkd-env/gen-networkd-env
chmod 400
# Orange variables
LOGIN=fti/ABCDEFGH
PASSWORD=ABCDEFGH
LIVEBOX_VERSION=5
LIVEBOX_HARDWARE=sagem

# Destination and filename (template + gen file)
IN_OUT_PATH=/etc/gen-networkd-env
FILE_NAME=networkd.env


/etc/gen-networkd-env/networkd.env.template
chmod 400
# IPV4
VendorClassIdentifier4=${VENDOR_CLASS_IDENTIFIER_4}
UserClass4=${USER_CLASS_4}

# IPV6
VendorClassIdentifier6=${VENDOR_CLASS_IDENTIFIER_6}
UserClass6=${USER_CLASS_6}

# Global
Authentication=${AUTHENTICATION_STR}

----

Le résultat est le suivant

Sans les valeurs orange
Citer
systemd[1]: Starting gen-networkd-env.service - Generate /etc/networkd.env before systemd-networkd...
gen-networkd-env.sh[6523]: INFO  Orange parameters
gen-networkd-env.sh[6523]: INFO          Login:            ********
gen-networkd-env.sh[6523]: INFO          Password:         ********
gen-networkd-env.sh[6523]: INFO          Livebox version:  <default>
gen-networkd-env.sh[6523]: INFO          Livebox hardware: <default>
gen-networkd-env.sh[6523]: WARN          * LOGIN is default value !
gen-networkd-env.sh[6523]: WARN          * PASSWORD is default value !
gen-networkd-env.sh[6523]: WARN          * LIVEBOX_VERSION is default value !
gen-networkd-env.sh[6523]: WARN          * LIVEBOX_HARDWARE is default value !
gen-networkd-env.sh[6523]: INFO  Generating Orange DHCP values
gen-networkd-env.sh[6523]: INFO          Vendor class has been generated
gen-networkd-env.sh[6523]: INFO          User class has been generated
gen-networkd-env.sh[6523]: INFO          Option 90 has been generated
gen-networkd-env.sh[6523]: INFO  Generating env vars files
gen-networkd-env.sh[6523]: INFO          Source = /etc/gen-networkd-env/networkd.env.template
gen-networkd-env.sh[6523]: INFO          Destination = /etc/gen-networkd-env/networkd.env
systemd[1]: gen-networkd-env.service: Deactivated successfully.
systemd[1]: Finished gen-networkd-env.service - Generate /etc/networkd.env before systemd-networkd.

Avec les valeurs orange
Citer
systemd[1]: Starting gen-networkd-env.service - Generate /etc/networkd.env before systemd-networkd...
gen-networkd-env.sh[6368]: INFO  Orange parameters
gen-networkd-env.sh[6368]: INFO          Login:            ********
gen-networkd-env.sh[6368]: INFO          Password:         ********
gen-networkd-env.sh[6368]: INFO          Livebox version:  7
gen-networkd-env.sh[6368]: INFO          Livebox hardware: sagem
gen-networkd-env.sh[6368]: INFO  Generating Orange DHCP values
gen-networkd-env.sh[6368]: INFO          Vendor class has been generated
gen-networkd-env.sh[6368]: INFO          User class has been generated
gen-networkd-env.sh[6368]: INFO          Option 90 has been generated
gen-networkd-env.sh[6368]: INFO  Generating env vars files
gen-networkd-env.sh[6368]: INFO          Source = /etc/gen-networkd-env/networkd.env.template
gen-networkd-env.sh[6368]: INFO          Destination = /etc/gen-networkd-env/networkd.env
systemd[1]: gen-networkd-env.service: Deactivated successfully.
systemd[1]: Finished gen-networkd-env.service - Generate /etc/networkd.env before systemd-networkd.


Le fichier /etc/gen-networkd-env/networkd.env est ensuite directement utilisable comme énoncé dans mon précédent post.

toniob

  • Abonné Orange vdsl
  • *
  • Messages: 20
  • Condé-en-Normandie (14)
    • 6clones
Remplacer la livebox par systemd-networkd / nftables
« Réponse #43 le: Aujourd'hui à 10:00:01 »
Je pense avoir trouver une solution beaucoup plus propre pour la génération des option DHCP

Hello. Je ne vois pas l’intérêt de mettre la conf dans un fichier à part qui nécessite de créer un override de networkd, plutôt que de mettre les valeurs directement dans les fichiers .network et .netdev. Il y a un truc que je rate ?

cyayon

  • Abonné Orange Fibre
  • *
  • Messages: 785
  • Cordon 74 - Orange Fibre Pro
Remplacer la livebox par systemd-networkd / nftables
« Réponse #44 le: Aujourd'hui à 10:11:00 »
C’est bcp plus propre et tu ne risques pas corrompre toute ta config à chaque génération.
Et c’est aussi comme ça que systemd a été pensé et conçu…

toniob

  • Abonné Orange vdsl
  • *
  • Messages: 20
  • Condé-en-Normandie (14)
    • 6clones
Remplacer la livebox par systemd-networkd / nftables
« Réponse #45 le: Aujourd'hui à 10:47:13 »
C’est bcp plus propre et tu ne risques pas corrompre toute ta config à chaque génération.
Et c’est aussi comme ça que systemd a été pensé et conçu…

Je connais le principe de l’override dans systemd, je l’utilise depuis longtemps. Ce n’est pas ça que je remets en cause. Je dis juste que je ne vois pas pourquoi mettre dans un fichier séparé les valeurs qui sont très bien dans des fichiers .network et .netdev, qui sont déjà des fichiers de configuration. Qu’on le fasse pour un service systemd, qui a besoin de variables pour se lancer, j’entends. Mais là on rend paramétrable des fichiers, qui sont déjà des fichiers de paramètres (les paramètres de systemd-networkd).

Et quand tu dis que ça peut corrompre la configuration à chaque génération, le but est justement d’avoir une configuration qui n’a plus besoin de bouger. Qu’on configure une fois et ça fonctionne ensuite (jusqu’à ce qu’Orange change encore un truc). Le fait que les paramètres soient regénérés à chaque redémarrage de systemd-networkd, ça me laisse songeur également. Pour quoi faire ?

cyayon

  • Abonné Orange Fibre
  • *
  • Messages: 785
  • Cordon 74 - Orange Fibre Pro
Remplacer la livebox par systemd-networkd / nftables
« Réponse #46 le: Aujourd'hui à 11:02:00 »
Si on suit strictement les specs orange, certains params changent à chaque connexion (la string passes par exemple).
D’où l’usage d’un fichier env