Salut à tous.
Je découvre "systemd-network" que je ne connaissais pas. Je suis actuellement sous Debian, version BullsEye.
J'ai commencé à tester en récupérant les adresses IP lorsque mon Debian est connecté directement à ma Box SFR.
Voici le fichier "20-wired.network" que j'ai placé dans le répertoire "/etc/systemd/networrk" :
[Match]
Name=enp2s0
[Network]
DHCP=yes
[DHCPv4]
RouteMetric=10
[DHCPv6]
RouteMetric=10
Bien que cela soit fort simple, ça fonctionne. Si vous avez des suggestions pour améliorer ce script, je suis preneur.
Ensuite, j'ai branché mon ONT-SFU-v3 de SFR sur mon Debian et j'ai essayé de récupérer les adresses ipv4 & ipv6.
Pour cela, je me suis inspiré du "dhclient.conf" qui fonctionne parfaitement chez moi. Le voici :
initial-interval 2;
reboot 10;
retry 60;
select-timeout 5;
timeout 120;
option dhcp6.vendor-class-identifier code 16 = string;
interface "enp2s0" {
# ------ #
# DHCPv4 #
# ------ #
send dhcp-client-identifier 1:XX:XX:XX:XX:XX:XX;
send dhcp-lease-time 3600;
send vendor-class-identifier "neufbox_NB6VAC-FXC-r1_NB6VAC-MAIN-R4.0.45d_NB6VAC-XDSL-A2pv6F039p";
# ------ #
# DHCPv6 #
# ------ #
send dhcp6.vendor-class-identifier 00:00:a0:0c:00:41:6e:65:75:66:62:6f:78:5f:4e:42:36:56:41:43:2d:46:58:43:2d:72:31:5f:4e:42:36:56:41:43:2d:4d:41:49:4e:2d:52:34:2e:30:2e:34:35:64:5f:4e:42:36:56:41:43:2d:58:44:53:4c:2d:41:32:70:76:36:46:30:33:39:70;
}
Pour dhclient, j'ai un script bash qui lance les deux commandes suivantes :
dhclient enp2s0 -4 -v
dhclient enp2s0 -6 -P -v
et où j'attribue une adresse fixe ipv6 manuellement après avoir obtenu la délégation du préfixe DHCPv6.
J'aurai bien aimé automatisé cette phase en la plaçant dans le fichier "etc/network/interfaces.d/Connect" que j'utilise :
auto enp2s0
iface enp2s0 inet dhcp
iface enp2s0 inet6 dhcp
Je reviens sur la configuration de "systemd-network" quand mon Debian est branché directement sur mon ONT-SFU-v3 de SFR.
Voici le fichier "31-sfr.network" que j'ai aussi placé dans le répertoire "/etc/systemd/network".
Le fichier "20-wired.network" a bien sûr été supprimé pour ne pas venir en interaction avec ce nouveau test.
[Match]
Name=enp2s0
[Link]
MACAddress=XX:XX:XX:XX:XX:XX
RequiredForOnline=yes
[Network]
Description=sfr
DHCP=yes
IPForward=yes
IPv6AcceptRA=yes
LinkLocalAddressing=ipv6
[DHCPv4]
ClientIdentifier=mac
DUIDType=link-layer
RouteMetric=10
UseDNS=no
UseDomains=no
UseHostname=no
VendorClassIdentifier="neufbox_NB6VAC-FXC-r1_NB6VAC-MAIN-R4.0.45d_NB6VAC-XDSL-A2pv6F039p"
[DHCPv6]
RouteMetric=20
SendOption=16:string:\x00\x00\xa0\x0c\x00\x41\x6e\x65\x75\x66\x62\x6f\x78\x5f\x4e\x42\x36\x56\x41\x43\x2d\x46\x58\x43\x2d\x72\x31\x5f\x4e\x42\x36\x56\x41\x43\x2d\x4d\x41\x49\x4e\x2d\x52\x34\x2e\x30\x2e\x34\x35\x64\x5f\x4e\x42\x36\x56\x41\x43\x2d\x58\x44\x53\x4c\x2d\x41\x32\x70\x76\x36\x46\x30\x33\x39\x70
UseDNS=no
UseNTP=no
WithoutRA=solicit
[IPv6AcceptRA]
DHCPv6Client=always
UseDNS=no
UseDomains=no
Actuellement, j'obtiens bien mon adresse IPv4 WAN de SFR et j'ai bien une connexion à internet.
Par contre, je n'obtiens pas La délégation de préfixe DHCPv6 .
Quelques explications :
a) j'ai forcé l'adresse MAC de ma Box SFR dans cet interface "enp2s0".
A la différence de "dhclient", et je ne sais pas pourquoi, l'adresse de lien IPv6 n'est pas construite à partir de cette adresse MAC.
Il est fort possible que le problème vienne de là.
b) J'ai construit le "VendorClassIdentifier" de l'IPv6 à partir de l'option 16, en espérant que je ne me sois pas trompé de numéro.
J'ai repris la même chaîne que celle utilisé pour le dhclient, en insérant à chaque fois "\x" devant chaque octet.
c) je me suis inspiré de plusieurs liens pour réaliser ce sujet :
-->
https://blog.g3rt.nl/systemd-networkd-dhcpv6-pd-configuration.html-->
https://github.com/systemd/systemd/issues/19021-->
https://github.com/systemd/systemd/issues/15455d) voici le statut du service "systemd-networkd" :
root> systemctl status systemd-networkd
● systemd-networkd.service - Network Service
Loaded: loaded (/lib/systemd/system/systemd-networkd.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2023-12-02 19:38:38 CET; 21s ago
TriggeredBy: ● systemd-networkd.socket
Docs: man:systemd-networkd.service(8)
Main PID: 12377 (systemd-network)
Status: "Processing requests..."
Tasks: 1 (limit: 6954)
Memory: 1.1M
CPU: 39ms
CGroup: /system.slice/systemd-networkd.service
└─12377 /lib/systemd/systemd-networkd
déc. 02 19:38:38 Debian systemd[1]: Starting Network Service...
déc. 02 19:38:38 Debian systemd-networkd[12377]: enp2s0: Gained IPv6LL
déc. 02 19:38:38 Debian systemd-networkd[12377]: Enumeration completed
déc. 02 19:38:38 Debian systemd[1]: Started Network Service.
déc. 02 19:38:38 Debian systemd-networkd[12377]: enp2s0: DHCPv4 address 93.xxx.xxx.xxx/26 via 93.xxx.xxx.xxx
root>
e) et voici le networkctl :
root> networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 enp2s0 ether routable configured
3 wlp4s0 wlan off unmanaged
3 links listed.
root>
Seul l'interface éthernet enp2s0 est activé par "systemd-networkd".
f) la délaration de préfixe IPv6 ne fonctionne pas.
J'ai cherché et je n'ai pas trouvé comment résoudre ce problème.
g) pour "dhclient", je lance la connexion manuellement à partir d'un script bash.
J'ai cherché sur le net comment automatiser cette phase, mais je n'ai pas trouvé comment faire.
Je crois qu'il faut ajouter des lignes dans mon fichier ci-dessus de nom "etc/network/interfaces.d/Connect".
Si quelqu'un peut me donner la solution, je lui en serait reconnaissant. Merci.
J'aimerai à terme pouvoir configurer "systemd-networkd" dans mon Debian afin d'automatiser ma connexion direct à mon ONT-SFU-v3 de SFR.
Cordialement.
@+