Bonjour à tous,
Je galère un peu avec IPv6 depuis que j'ai changé de serveur, et j'ai remarqué que je n'étais pas le seul ^^
Je précise que j'ai lu intégralement les deux fils suivants :
https://lafibre.info/scaleway/configurer-une-ipv6-online-net-sur-ubuntu-18-04/ et
https://lafibre.info/scaleway/configurer-une-ipv6-sur-un-serveur-dedibox-avec-ubuntu-18-04/Ca a apporté déjà pas mal d'eau à mon moulin, mais pas encore assez, malheureusement ^^
Faisons les choses avec méthode.Tout d'abord, ce que j'avais avec mon ancien serveur (Egalement chez Online) depuis 2015 :Un serveur dédié avec un ESXi et plusieurs VM dessus.
- Une VM plesk avec 2 IPv4 failover et un /64 IPv6 que j'avais créé sur mon compte Online.
- D'autres VM avec des IPv4 FO, sans IPv6.
- Je précise que l'ESXi n'était pas configuré en IPv6. Il communiquait avec internet uniquement via l'IPv4 du serveur physique. Les VM, elles, n'utilisaient que des IPFO.
A l'époque, j'étais encore moins compétant en IPv6, mais j'avais suivi le tuto d'online et ça a fonctionné pendant presque 7 ans (oui, je sais, j'ai tardé avant de changer mon serveur, mais c'est un autre débat ^^ )
J'avais donc juste ma VM plesk qui avait un certain nombre d'IPv6 (une par site web, une bonne vingtaine au total), configurée avec le fichier interfaces de cette façon (sur Ubuntu 16.04) :
iface eth0 inet6 static
up /sbin/ifconfig eth0 inet6 add 2001:xxxx:xxxx:xxxx::1:1
up /sbin/ifconfig eth0 inet6 add 2001:xxxx:xxxx:xxxx::1:2
up /sbin/ifconfig eth0 inet6 add 2001:xxxx:xxxx:xxxx::1:3
up /sbin/ifconfig eth0 inet6 add 2001:xxxx:xxxx:xxxx::1:4
up /sbin/ifconfig eth0 inet6 add 2001:xxxx:xxxx:xxxx::1:5
up /sbin/ifconfig eth0 inet6 add 2001:xxxx:xxxx:xxxx::2:1
up /sbin/ifconfig eth0 inet6 add 2001:xxxx:xxxx:xxxx::1:2
up /sbin/ifconfig eth0 inet6 add 2001:xxxx:xxxx:xxxx::1:3
# etc...
address 2001:xxxx:xxxx:xxxx::1
netmask 64
accept_ra 1
pre-up dhclient -cf /etc/dhcp/dhclient6.conf -pf /run/dhclient6.eth0.pid -6 -P eth0
pre-down dhclient -x -pf /run/dhclient6.eth0.pid
Bref, ça fonctionnait impeccable.
Maintenant, le nouveau serveur.A nouveau un serveur physique avec un ESXi dessus (juste plus récent), toujours sans IPv6, avec une VM Plesk et ses 2 IPFO (v4) et de l'IPv6 bancal (je détaille après), et d'autres VM avec des IPFO (v4)
Sur ma nouvelle VM Plesk, qui tourne maintenant en Ubuntu 20.04 et avec netplan (que je n'avais jamais utilisé jusqu'à maintenant... -_- ), j'ai suivi à la lettre le tuto d'Online.
Voilà le détail :
Tout d'abord, pour netplan : J'ai deux fichiers. Celui créé à l'install d'Ubuntu Server 20.04 et celui créé par Plesk, mais normalement, ça ne gêne pas.
/etc/netplan/00-installer-config.yaml :
# This is the network config written by 'subiquity'
network:
renderer: networkd
ethernets:
ens192:
dhcp4: no
dhcp6: no
addresses:
- 212.xxx.xxx.xxx/32
- 212.xxx.xxx.yyy/32
gateway4: 163.xxx.xxx.xxx
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
routes:
- to: 163.xxx.xxx.xxx/32
via: 212.xxx.xxx.xxx
scope: link
ens224:
addresses:
- 192.168.100.1/24
version: 2
Précision : l'interface ens224 est connecté sur un switch virtuel de mon ESXi qui permet à mes VM de communiquer ensemble sans passer par internet, c'est tout.
/etc/netplan/10-plesk.yaml :
network:
version: 2
renderer: networkd
ethernets:
ens192:
addresses:
- 2001:xxxx:xxxx:xxxx::1/64
- 2001:xxxx:xxxx:xxxx::1:1/64
- 2001:xxxx:xxxx:xxxx::1:2/64
- 2001:xxxx:xxxx:xxxx::1:3/64
- 2001:xxxx:xxxx:xxxx::1:4/64
- 2001:xxxx:xxxx:xxxx::1:5/64
- 2001:xxxx:xxxx:xxxx::2:1/64
- 2001:xxxx:xxxx:xxxx::2:2/64
- 2001:xxxx:xxxx:xxxx::2:3/64
- 2001:xxxx:xxxx:xxxx::2:4/64
#etc.
Ca fonctionne... Ou pas.
En gros, ce que j'ai noté, c'est que chaque fois que le dhclient fait une requête, ça échoue, et ça fait sauter ma config IPv6 (quand je fais un ip a, je n'ai plus une seule IPv6 qui apparait en dehors de l'IPv6 locale). Je stoppe dhclient, je refais un netplan apply, et c'est reparti, je ping en IPv6, et mes sites sont joignables en IPv6 aussi.
Concernant DHClient, voici ce que me renvoie un journalctl -xe :
-- The job identifier is 2171009 and the job result is done.
Jun 03 10:07:38 e-concept-applications.fr systemd[1]: Starting ISC DHCP client to send DUID for IPv6 and add IPv6 to interface...
-- Subject: A start job for unit dhclient6.service has begun execution
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit dhclient6.service has begun execution.
--
-- The job identifier is 2171009.
Jun 03 10:07:38 e-concept-applications.fr audit[550473]: AVC apparmor="DENIED" operation="open" profile="/{,usr/}sbin/dhclient" name="/proc/550473/task/550474/comm" pid=550473 comm="dhclient" requested_mask="wr" denied_mask="wr" fsuid=0 o>Jun 03 10:07:38 e-concept-applications.fr audit[550473]: AVC apparmor="DENIED" operation="open" profile="/{,usr/}sbin/dhclient" name="/proc/550473/task/550475/comm" pid=550473 comm="dhclient" requested_mask="wr" denied_mask="wr" fsuid=0 o>Jun 03 10:07:38 e-concept-applications.fr audit[550473]: AVC apparmor="DENIED" operation="open" profile="/{,usr/}sbin/dhclient" name="/proc/550473/task/550476/comm" pid=550473 comm="dhclient" requested_mask="wr" denied_mask="wr" fsuid=0 o>Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: Internet Systems Consortium DHCP Client 4.4.1
Jun 03 10:07:38 e-concept-applications.fr kernel: audit: type=1400 audit(1622714858.592:5083): apparmor="DENIED" operation="open" profile="/{,usr/}sbin/dhclient" name="/proc/550473/task/550474/comm" pid=550473 comm="dhclient" requested_ma>Jun 03 10:07:38 e-concept-applications.fr kernel: audit: type=1400 audit(1622714858.592:5084): apparmor="DENIED" operation="open" profile="/{,usr/}sbin/dhclient" name="/proc/550473/task/550475/comm" pid=550473 comm="dhclient" requested_ma>Jun 03 10:07:38 e-concept-applications.fr kernel: audit: type=1400 audit(1622714858.592:5085): apparmor="DENIED" operation="open" profile="/{,usr/}sbin/dhclient" name="/proc/550473/task/550476/comm" pid=550473 comm="dhclient" requested_ma>Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: Internet Systems Consortium DHCP Client 4.4.1
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: Copyright 2004-2018 Internet Systems Consortium.
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: Copyright 2004-2018 Internet Systems Consortium.
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: All rights reserved.
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: All rights reserved.
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: For info, please visit https://www.isc.org/software/dhcp/
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: For info, please visit https://www.isc.org/software/dhcp/
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]:
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: Listening on Socket/ens192
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: Listening on Socket/ens192
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: Sending on Socket/ens192
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: Sending on Socket/ens192
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: PRC: Previous lease is devoid of active addresses.
Jun 03 10:07:38 e-concept-applications.fr dhclient[550473]: PRC: Soliciting for leases (INIT).
Jun 03 10:07:39 e-concept-applications.fr dhclient[550473]: XMT: Forming Solicit, 0 ms elapsed.
Jun 03 10:07:39 e-concept-applications.fr dhclient[550473]: XMT: X-- IA_PD 56:00:71:77
Jun 03 10:07:39 e-concept-applications.fr dhclient[550473]: XMT: | X-- Request renew in +3600
Jun 03 10:07:39 e-concept-applications.fr dhclient[550473]: XMT: | X-- Request rebind in +5400
Jun 03 10:07:39 e-concept-applications.fr dhclient[550473]: XMT: Solicit on ens192, interval 1030ms.
Jun 03 10:07:39 e-concept-applications.fr dhclient[550473]: XMT: Solicit on ens192, interval 1030ms.
Jun 03 10:07:39 e-concept-applications.fr multipathd[731]: sda: add missing path
Jun 03 10:07:39 e-concept-applications.fr multipathd[731]: sda: failed to get udev uid: Invalid argument
Jun 03 10:07:39 e-concept-applications.fr multipathd[731]: sda: failed to get sysfs uid: Invalid argument
Jun 03 10:07:39 e-concept-applications.fr multipathd[731]: sda: failed to get sgio uid: No such file or directory
Jun 03 10:07:40 e-concept-applications.fr dhclient[550473]: XMT: Forming Solicit, 1030 ms elapsed.
Jun 03 10:07:40 e-concept-applications.fr dhclient[550473]: XMT: X-- IA_PD 56:00:71:77
Jun 03 10:07:40 e-concept-applications.fr dhclient[550473]: XMT: | X-- Request renew in +3600
Jun 03 10:07:40 e-concept-applications.fr dhclient[550473]: XMT: | X-- Request rebind in +5400
Jun 03 10:07:40 e-concept-applications.fr dhclient[550473]: XMT: Solicit on ens192, interval 1980ms.
Jun 03 10:07:40 e-concept-applications.fr dhclient[550473]: XMT: Solicit on ens192, interval 1980ms.
Jun 03 10:07:42 e-concept-applications.fr dhclient[550473]: XMT: Forming Solicit, 3010 ms elapsed.
Jun 03 10:07:42 e-concept-applications.fr dhclient[550473]: XMT: X-- IA_PD 56:00:71:77
Jun 03 10:07:42 e-concept-applications.fr dhclient[550473]: XMT: | X-- Request renew in +3600
Jun 03 10:07:42 e-concept-applications.fr dhclient[550473]: XMT: | X-- Request rebind in +5400
Jun 03 10:07:42 e-concept-applications.fr dhclient[550473]: XMT: Solicit on ens192, interval 3850ms.
Jun 03 10:07:42 e-concept-applications.fr dhclient[550473]: XMT: Solicit on ens192, interval 3850ms.
Jun 03 10:07:46 e-concept-applications.fr dhclient[550473]: XMT: Forming Solicit, 6860 ms elapsed.
Jun 03 10:07:46 e-concept-applications.fr dhclient[550473]: XMT: X-- IA_PD 56:00:71:77
Jun 03 10:07:46 e-concept-applications.fr dhclient[550473]: XMT: | X-- Request renew in +3600
Jun 03 10:07:46 e-concept-applications.fr dhclient[550473]: XMT: | X-- Request rebind in +5400
Jun 03 10:07:46 e-concept-applications.fr dhclient[550473]: XMT: Solicit on ens192, interval 7570ms.
Jun 03 10:07:46 e-concept-applications.fr dhclient[550473]: XMT: Solicit on ens192, interval 7570ms.
Jun 03 10:07:48 e-concept-applications.fr systemd[1]: dhclient6.service: start operation timed out. Terminating.
Jun 03 10:07:48 e-concept-applications.fr systemd[1]: dhclient6.service: Killing process 550476 (dhclient) with signal SIGKILL.
Jun 03 10:07:48 e-concept-applications.fr systemd[1]: dhclient6.service: Failed with result 'timeout'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit dhclient6.service has entered the 'failed' state with result 'timeout'.
Jun 03 10:07:48 e-concept-applications.fr systemd[1]: Failed to start ISC DHCP client to send DUID for IPv6 and add IPv6 to interface.
-- Subject: A start job for unit dhclient6.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit dhclient6.service has finished with a failure.
--
-- The job identifier is 2171009 and the job result is failed.
Bref, clairement, ça passe pas.
A noter que le dhclient a bien du fonctionner à un moment donné, puisque mon /64 IPv6 est routé. Mais j'ai fais tellement de test dans tous les sens que j'ai peut-être fait une boulette...
Voilà la config du dhclient :
dhclient6.conf :
interface "ens192" {
send dhcp6.client-id 00:00:00:00:00:00:00:00:00:00;
}
(avec le bon DUID, j'ai vérifié plusieurs fois, c'est bien celui de mon /64)
dhclient6.vars :
# For dhclient6.service, provide IPv6 IP, desired prefix, and interface
DH6IP=2001:xxxx:xxxx:xxxx::1
DH6PF=64
DH6IF=ens192
/etc/systemd/system/dhclient6.service :
[Unit]
Description=ISC DHCP client to send DUID for IPv6 and add IPv6 to interface
After=network.target
Wants=network.target network-online.target
Before=network-online.target
ConditionPathExists=/etc/dhcp/dhclient6.conf
ConditionPathExists=/etc/dhcp/dhclient6.vars
[Service]
EnvironmentFile=/etc/dhcp/dhclient6.vars
Type=forking
Restart=always
RestartSec=2s
TimeoutSec=10s
ExecStart=/sbin/dhclient -1 -v -pf /run/dhclient6.pid -cf /etc/dhcp/dhclient6.conf -lf /var/lib/dhcp/dhclient6.leases -6 -P ${DH6IF}
ExecStartPost=/sbin/ip -6 addr add ${DH6IP}/${DH6PF} dev ${DH6IF}
ExecStop=/sbin/ip -6 addr del ${DH6IP}/${DH6PF} dev ${DH6IF}
ExecStop=/sbin/dhclient -r -v -pf /run/dhclient6.pid -cf /etc/dhcp/dhclient6.conf -lf /var/lib/dhcp/dhclient6.leases -6 ${DH6IF}
PIDFile=/run/dhclient6.pid
[Install]
WantedBy=multi-user.target network-online.target
J'ai aussi saisi les commandes IPTABLES du tuto d'online pour limiter le flood du dhclient6 (ça inspire vachement confiance, quand même, dhclient6... -_- )
Voilà pour l'état des lieux.De ce que j'ai compris de mes différentes lectures, pour l'instant, l'IPv6 fonctionne sur ma VM Plesk, mais quand le bail de l'IPv6 va expirer, celle-ci ne sera plus routée, et je vais me retrouver coincé.
Du coup, avez-vous une idée pour que le dhclient fonctionne correctement ?
Dans un second temps, j'aimerais au passage pouvoir mettre de l'IPv6 aussi sur mes autres VM. Est-ce que je n'ai qu'à refaire la même chose avec d'autres /64 sur lesdites VM ? Ou est-ce qu'il faut complètement changer la config pour que ça soit l'hyperviseur ESXi qui fasse la requête DHCPv6 sur le /56 complet et qui ensuite routera les IPv6 sur les VM ? Si c'est ce 2nd cas de figure, je ne sais absolument pas comment faire, donc j'aurai là aussi besoin d'aide...
Bref, prenons les choses dans l'ordre. Si quelqu'un peut m'aider à refaire fonctionner mon dhclient, ça serait super
(Ou si qqn à une autre solution plus viable, je suis également preneur et ouvert à toute suggestion !
)
Merci par avance pour vos réponses, et désolé pour le pavé, mais je me suis dit qu'en donnant un maximum de détails, ça serait plus facile d'aider