столкнулся с тем, что не стартует pve. пошел смотреть и выяснил, что у /lib/systemd/system/pveproxy.service есть ExecStartPre=-/usr/bin/pvecm updatecerts который падает, если на интерфейсе есть ipv6 падает вот так /usr/bin/pvecm updatecerts (re)generate node files Error Loading request extension section v3_req 140516354099008:error:220A4076:X509 V3 routines:a2i_GENERAL_NAME:bad ip address:crypto/x509v3/v3_alt.c:478:value=fe80::3a68:ddff:fe5b:d900%eno1 140516354099008:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:crypto/x509v3/v3_conf.c:47:name=subjectAltName, value=IP:127.0.0.1,IP:::1,DNS:localhost,IP:fe80::3a68:ddff:fe5b:d900%eno1,DNS:host-pve unable to generate pve certificate request: command 'openssl req -batch -new -config /tmp/pvesslconf-6224.tmp -key /etc/pve/nodes/host-pve/pve-ssl.key -out /tmp/pvecertreq-6224.tmp' failed: exit code 1 отключил ipv6 echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf сразу все заработало.
А в /etc/hosts что-то про адрес fe80::3a68:ddff:fe5b:d900 есть?
(Ответ для Andrew Vasilyev на комментарий #1) > А в /etc/hosts что-то про адрес fe80::3a68:ddff:fe5b:d900 есть? нет [root@host-pve ~]# cat /etc/hosts 127.0.0.1 localhost.localdomain localhost
Покажите /etc/nsswitch.conf
А вообще это не баг, и не связано с ipv6. Как только хост будет резолвиться нормально (DNS или hosts), так и сертификаты сгенерируются успешно. В документации этот момент описан.
(Ответ для Alexey Shabalin на комментарий #4) > А вообще это не баг, и не связано с ipv6. Как только хост будет резолвиться > нормально (DNS или hosts), так и сертификаты сгенерируются успешно. > В документации этот момент описан. Сегодня, впервые устанавливая для теста вашу систему виртуализации (10.2 версия, самые дефолтные настройки), столкнулся с подобной проблемой и решил ее правкой perl кода Эта проблема связана с ipv6 link-local адресами. А именно: функция perl Socket::getaddrinfo (с которой и берутся адреса в случае, если ip ноды не были установлены) выдает массив служебных данных с ip адресами. Все корректно, когда адреса IPv4 (любые) или IPv6, но НЕ link-local. К IPv6 link-local в конце добавляется префикс в виде имени интерфейса, к которому привязан этот адрес. Например, как в случае ТС-а это %eno1. В самой функции PVE::Network::get_ip_from_hostname идет отброс только по localhost адресам и забирается первый полученный адрес. А по порядку они в массиве: 1 - localhost (добавляется, только если вообще нет других адресов), 2 - IPv6 link-local, 3 - IPv6, и только в конце IPv4. Соответственно, функция захватывает первый link-local адрес с префиксом и затем функция PVE::Cluster::Setup::gen_pve_ssl_cert пытается через openssl создать самоподписанный SSL сертификат сервера, вписав этот "неправильный" адрес в расширение Subject Alternative Name: IP, что и вызывает ошибку. Т.к. эта ошибка может возникнуть сразу же после установки Alt Server-V, это делает невозможным дальнейшее (пере)конфигурирование Proxmox VE Самое простое решение - добавить в regex-проверку отброску по знаку процент '%', что я и сделал: /usr/share/perl5/PVE/Network.pm: 813: if ($ip !~ m/^127\.|^::1$|%/) {
pve-common-8.1.2-alt1 -> sisyphus: Thu May 30 2024 Andrew A. Vasilyev <andy@altlinux> 8.1.2-alt1 - 8.1.2 - fix for pvecm updatecerts to work with IPv6 link-local addrs (ALT #41408)