Bug 38774

Summary: Сеть стартует раньше переименования интерфейса
Product: Альт Сервер Reporter: Evgeny Sinelnikov <sin>
Component: Ошибки работыAssignee: Anton V. Boyarshinov <boyarsh>
Status: CLOSED DUPLICATE QA Contact: qa-p8 <qa-p8>
Severity: normal    
Priority: P5    
Version: 9.0   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Лог проверки запуска интерфейса
none
Лог после установки udev-rule-generator-net
none
Лог после удаления udev-rule-generator-net none

Description Evgeny Sinelnikov 2020-07-31 23:59:18 MSK
Created attachment 8891 [details]
Лог проверки запуска интерфейса

После установки ALT Server 9.1 статически настроенный через etcnet интерфейс не стартует.

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:23:24:a6:79:1a brd ff:ff:ff:ff:ff:ff


При этом в статусе сервиса видно, отсутствие нужного интерфейса на момент старта сети - Cannot find device "eno1":

$ systemctl status network
● network.service - Network Connectivity
   Loaded: loaded (/lib/systemd/system/network.service; enabled; vendor preset: disabled)
   Active: active (exited) since Sat 2020-08-01 00:30:29 +04; 6min ago
  Process: 2268 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)

авг 01 00:30:28 dc.darkmastersin.net systemd[1]: Starting Network Connectivity...
авг 01 00:30:29 dc.darkmastersin.net network[2268]: Computing interface groups: .. 2 interfaces found
авг 01 00:30:29 dc.darkmastersin.net network[2268]: Starting group 0/virtual (1 interfaces)
авг 01 00:30:29 dc.darkmastersin.net network[2268]:         Starting lo:  'lo' is already up SKIPPED
авг 01 00:30:29 dc.darkmastersin.net network[2268]: Starting group 1/realphys (1 interfaces)
авг 01 00:30:29 dc.darkmastersin.net network[2268]:         Starting eno1: Cannot find device "eno1"
авг 01 00:30:29 dc.darkmastersin.net network[2268]: .Cannot find device "eno1"
авг 01 00:30:29 dc.darkmastersin.net network[2268]: ..OK
авг 01 00:30:29 dc.darkmastersin.net network[2268]: Processing /etc/net/vlantab: empty.
авг 01 00:30:29 dc.darkmastersin.net systemd[1]: Started Network Connectivity.

При этом в dmesg видно, что интерфейс переименовывается только на 15 секунде после старта системы:

$ dmesg | grep -C 3 eno1
[   15.238237] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[   15.238342] iTCO_wdt: Found a Braswell SoC TCO device (Version=3, TCOBASE=0x0460)
[   15.275975] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[   15.617282] r8169 0000:01:00.0 eno1: renamed from eth0
[   15.683506] scsi 2:0:0:0: Direct-Access              USB DISK 2.0     PMAP PQ: 0 ANSI: 6
[   15.685745] sd 2:0:0:0: [sdc] Attached SCSI removable disk
[   17.107177] intel_rapl_common: Found RAPL domain package

А сеть стартует гораздо раньше:

$ systemd-analyze blame | grep -C3 network
1.326s systemd-random-seed.service         
1.131s upower.service                      
1.098s nfs-server.service                  
1.077s network.service                     
1.074s systemd-journald.service            
 987ms systemd-udevd.service               
 483ms systemd-udev-trigger.service
Comment 1 Evgeny Sinelnikov 2020-08-01 03:34:46 MSK
Created attachment 8892 [details]
Лог после установки udev-rule-generator-net

Установка пакета udev-rule-generator-net проблему решает. По умолчанию, интерфейс со старым названием начинает управляться через NetworkManager:

[admin@dc Рабочий стол]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:23:24:a6:79:1a brd ff:ff:ff:ff:ff:ff
    inet 192.168.9.228/24 brd 192.168.9.255 scope global dynamic noprefixroute eth0
       valid_lft 43180sec preferred_lft 43180sec
    inet6 fe80::e36:adc6:ea39:1c5a/64 scope link noprefixroute 
       valid_lft forever preferred_lft foreve

[admin@dc Рабочий стол]$ cat /etc/udev/rules.d/70-persistent-net.rules 
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:23:24:a6:79:1a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

[root@dc ~]# nmcli c show
NAME                    UUID                                  TYPE      DEVICE 
Проводное соединение 1  2613d5c7-1a2c-34ca-8548-9e279dc52582  ethernet  eth0
Comment 2 Evgeny Sinelnikov 2020-08-01 04:25:16 MSK
Created attachment 8893 [details]
Лог после удаления udev-rule-generator-net

После удаления пакета udev-rule-generator-net и сгенерированных им правил, выясняется, что выявленная проблема проявляется только в случае если:

а) Позднее переименование интерфейса приводит к тому, что etcnet не может задать настройки для не переименованного интерфейса - .Cannot find device "eno1";

б) Если интерфейс в etcnet не настроен, то он подхватывается NetwotkManager'ом;

в) А если интерфейс в etcnet настроен, но отсутствует из-за того, что не переименован в момент запуска network-сервиса, то он оказывается не настроен.
Comment 3 Evgeny Sinelnikov 2021-08-24 23:10:42 MSK
Проблема стала более воспроизводимой на новых ядрах 5.10 и старше.

*** This bug has been marked as a duplicate of bug 40780 ***