[РЕШЕНО] Настройка сети на VPS KVM

Приветствую!

Никак не могу победить проблему автоматического поднятия сети в Archlinux после перезагрузки. А точнее сеть стартует только после того как через VNC доступ пытаешься залогиниться - просто вводишь имя пользователя и на момент запроса пароля поднимается сеть - знаю это потому, что параллельно пытаюсь зайти через SSH. Пробовал ждать больше времени, но это не помогает, чётко в момент логина и запроса пароля.

Сеть настроена через systemd-networkd. Пробовал настраивать через netctl - ситуация та же.


Сервисы при старте:
Startup finished in 2.944s (kernel) + 19.700s (userspace) = 22.645s
graphical.target reached after 17.949s in userspace
19.376s systemd-random-seed.service
13.413s systemd-networkd-wait-online.service
 3.417s systemd-logind.service
 1.709s systemd-networkd.service
 1.603s dev-vda1.device
  967ms systemd-journald.service
  953ms systemd-timesyncd.service
  942ms systemd-udevd.service
  267ms wg-quick@wg0.service
  243ms systemd-udev-trigger.service
  202ms iptables.service
   75ms systemd-user-sessions.service
   69ms systemd-sysctl.service
   66ms user@1000.service
   63ms systemd-journal-flush.service
   46ms systemd-tmpfiles-setup-dev.service
   43ms systemd-remount-fs.service
   41ms var-lib-systemd\x2dswap-swapfc-1.swap
   40ms systemd-tmpfiles-setup.service
   36ms dev-hugepages.mount
   35ms dev-mqueue.mount
   34ms sys-kernel-debug.mount
   34ms systemd-update-utmp.service
   31ms sys-kernel-config.mount
   29ms kmod-static-nodes.service
   28ms tmp.mount
   23ms systemd-tmpfiles-clean.service
   18ms user-runtime-dir@1000.service

Информация о системе хосте, возможно это тоже поможет..

OS: Arch Linux x86_64
Host: KVM RHEL 7.6.0 PC (i440FX + PIIX, 1996)
Kernel: 5.3.11-arch1-1
Uptime: 1 day, 13 hours, 51 mins
Packages: 201 (pacman)
Shell: bash 5.0.11
Terminal: /dev/pts/0
CPU: Common KVM (1) @ 2.197GHz
GPU: 00:02.0 Cirrus Logic GD 5446
Memory: 90MiB / 478MiB
Подозреваю, что в системе-госте мне нужно прописать какую-то команду или конфигурационный файл, о чём смутно для меня намекает вики, но пока не нашёл ничего полезного.
А а в логах что?
Например, команда
journalctl -n 30  -u systemd-networkd
Выведет последние 30 записей systemd-networkd.
Ну и неплохо бы посмотреть, как у Вас конфиги systemd-networkd написаны.
В логах пусто:

$ journalctl -n 30  -u systemd-networkd
-- Logs begin at Wed 2019-11-20 01:31:42 MSK, end at Wed 2019-11-20 21:42:44 MSK. --
Nov 20 09:24:04 vpshost systemd-networkd[304]: ens3: Gained carrier
Nov 20 09:24:06 vpshost systemd-networkd[304]: ens3: Gained IPv6LL
Nov 20 09:24:17 vpshost systemd-networkd[304]: wg0: Gained carrier
Nov 20 09:24:18 vpshost systemd-networkd[304]: wg0: Lost carrier
Nov 20 09:32:27 vpshost systemd[1]: Stopping Network Service...
Nov 20 09:32:27 vpshost systemd[1]: systemd-networkd.service: Succeeded.
Nov 20 09:32:27 vpshost systemd[1]: Stopped Network Service.
-- Reboot --
Nov 20 09:32:43 vpshost systemd[1]: Starting Network Service...
Nov 20 09:32:44 vpshost systemd-networkd[296]: Enumeration completed
Nov 20 09:32:44 vpshost systemd[1]: Started Network Service.
Nov 20 09:32:44 vpshost systemd-networkd[296]: ens3: Interface name change detected, ens3 has been renamed to eth0.
Nov 20 09:32:44 vpshost systemd-networkd[296]: eth0: Interface name change detected, eth0 has been renamed to ens3.
Nov 20 09:32:44 vpshost systemd-networkd[296]: ens3: IPv6 successfully enabled
Nov 20 09:32:44 vpshost systemd-networkd[296]: ens3: Gained carrier
Nov 20 09:32:46 vpshost systemd-networkd[296]: ens3: Gained IPv6LL
Nov 20 09:32:57 vpshost systemd-networkd[296]: wg0: Gained carrier
Nov 20 09:33:35 vpshost systemd-networkd[296]: wg0: Lost carrier
Nov 20 09:33:35 vpshost systemd[1]: Stopping Network Service...
Nov 20 09:33:35 vpshost systemd[1]: systemd-networkd.service: Succeeded.
Nov 20 09:33:35 vpshost systemd[1]: Stopped Network Service.
-- Reboot --
Nov 20 09:33:52 vpshost systemd[1]: Starting Network Service...
Nov 20 09:33:53 vpshost systemd-networkd[299]: Enumeration completed
Nov 20 09:33:53 vpshost systemd[1]: Started Network Service.
Nov 20 09:33:53 vpshost systemd-networkd[299]: ens3: Interface name change detected, ens3 has been renamed to eth0.
Nov 20 09:33:53 vpshost systemd-networkd[299]: eth0: Interface name change detected, eth0 has been renamed to ens3.
Nov 20 09:33:53 vpshost systemd-networkd[299]: ens3: IPv6 successfully enabled
Nov 20 09:33:53 vpshost systemd-networkd[299]: ens3: Gained carrier
Nov 20 09:33:55 vpshost systemd-networkd[299]: ens3: Gained IPv6LL
Nov 20 09:34:07 vpshost systemd-networkd[299]: wg0: Gained carrier
Nov 20 09:34:06 vpshost systemd-networkd[299]: wg0: Lost carrier

при этом логин через SSH каждый раз проходил по схеме описанной выше:
пример:
➤ 	 [Abnormal Disconnect 20 Nov 2019, 09:23:46]
➤ 	 [Abnormal Disconnect 20 Nov 2019, 09:23:49]
➤ 	 [Abnormal Disconnect 20 Nov 2019, 09:24:01]
➤ 	 [Abnormal Disconnect 20 Nov 2019, 09:24:04]
➤ 	 [Abnormal Disconnect 20 Nov 2019, 09:24:07]
➤ 	 [Abnormal Disconnect 20 Nov 2019, 09:24:10]
➤ 	 [Abnormal Disconnect 20 Nov 2019, 09:24:13]
➤ 	 [Abnormal Disconnect 20 Nov 2019, 09:24:17]
➤ 	 [Connected 20 Nov 2019, 09:24:21]
Файлы настройки сети стандартные:

cat /etc/systemd/network/default.network
[Match]
Name=ens3

[Network]
Gateway=<ip_gateway>
Address=<ip>/24
DNS=1.1.1.1
Немного поковырялся, получается что сеть настроена через сокет и каким-то образом (видимо при логине на tty ) сеть поднимается. Значит надо как-то переключить чтобы сеть поднималась сама, автоматически. Попробовал тупо удалить файл сокета и активировать сервис, но без файла сокета ничего не активируется..

$ systemctl list-unit-files | grep systemd-network
systemd-network-generator.service          disabled
systemd-networkd-wait-online.service       enabled
systemd-networkd.service                   enabled
systemd-networkd.socket                    enabled 

Какие мысли, в правильном направлении думаю?
Nebulosa
Uptime: 1 day, 13 hours, 51 mins
за день аптайма обновлял ядро?
если да перезагрузи машину и попробуй подключиться
Nebulosa
При логине на tty сеть поднимается. Значит надо как-то переключить чтобы сеть поднималась сама, автоматически
Это не проблема
loginctl enable-linger "ваш user"
Но такие нюансы больше характерны для пользовательских service, системные так себя вести не должны.
Ошибки в тексте-неповторимый стиль автора©
Лично меня смущают эти две подряд идущие записи:
Nov 20 09:32:44 vpshost systemd-networkd[296]: ens3: Interface name change detected, ens3 has been renamed to eth0.
Nov 20 09:32:44 vpshost systemd-networkd[296]: eth0: Interface name change detected, eth0 has been renamed to ens3.
То есть сначала ens3 переименовывают в eth0, а затем обратно.
Может копнуть в эту сторону: переименовать интерфейс вручную?
(Поменяйте МАС-адрес на свой)

nano /etc/udev/rules.d/10-network.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="12:34:56:78:9a:bc", NAME="inpt01"

Альтернатива Ссыль:

nano  /etc/systemd/network/default.link
[Match]
MACAddress=12:34:56:78:9a:bc

[Link]
Name=inpt01

И затем поправить /etc/systemd/network/default.network:


[Match]
Name=inpt01

[Network]
Gateway=<ip_gateway>
Address=<ip>/24
DNS=1.1.1.1
eikoninaru
Nebulosa
Uptime: 1 day, 13 hours, 51 mins
за день аптайма обновлял ядро?
если да перезагрузи машину и попробуй подключиться
Несколько раз обновлял и перезагружал, конечно же.
indeviral
Nebulosa
При логине на tty сеть поднимается. Значит надо как-то переключить чтобы сеть поднималась сама, автоматически
Это не проблема
loginctl enable-linger "ваш user"
Но такие нюансы больше характерны для пользовательских service, системные так себя вести не должны.
К сожалению, не помогло.


$ loginctl user-status
nebulosa (1000)
           Since: Fri 2019-11-22 21:52:08 MSK; 4min 14s ago
           State: active
        Sessions: *2
          Linger: yes
            Unit: user-1000.slice
                  ├─session-2.scope
                  │ ├─6623 sshd: nebulosa [priv]
                  │ ├─6641 sshd: nebulosa@pts/0
                  │ ├─6642 -bash
                  │ ├─8203 loginctl user-status
                  │ └─8204 less
                  └─user@1000.service
                    └─init.scope
                      ├─874 /usr/lib/systemd/systemd --user
                      └─878 (sd-pam)

Nov 22 21:52:08 vpshost systemd[874]: Listening on GnuPG cryptographic agent and passphrase cache (access for web browse>
Nov 22 21:52:08 vpshost systemd[874]: Listening on GnuPG cryptographic agent and passphrase cache (restricted).
Nov 22 21:52:08 vpshost systemd[874]: Listening on GnuPG cryptographic agent (ssh-agent emulation).
Nov 22 21:52:08 vpshost systemd[874]: Listening on GnuPG cryptographic agent and passphrase cache.
Nov 22 21:52:08 vpshost systemd[874]: Listening on p11-kit server.
Nov 22 21:52:08 vpshost systemd[874]: Listening on D-Bus User Message Bus Socket.
Nov 22 21:52:08 vpshost systemd[874]: Reached target Sockets.
Nov 22 21:52:08 vpshost systemd[874]: Reached target Basic System.
Nov 22 21:52:08 vpshost systemd[874]: Reached target Main User Target.
Nov 22 21:52:08 vpshost systemd[874]: Startup finished in 87ms.
52th
Лично меня смущают эти две подряд идущие записи:
Nov 20 09:32:44 vpshost systemd-networkd[296]: ens3: Interface name change detected, ens3 has been renamed to eth0.
Nov 20 09:32:44 vpshost systemd-networkd[296]: eth0: Interface name change detected, eth0 has been renamed to ens3.
То есть сначала ens3 переименовывают в eth0, а затем обратно.
Может копнуть в эту сторону: переименовать интерфейс вручную?

Также не помогло, потом вернул обратно. Оба варианта пробовал.


$ journalctl -n 30  -u systemd-networkd
-- Logs begin at Thu 2019-11-21 01:09:36 MSK, end at Fri 2019-11-22 21:40:39 MSK. --
Nov 22 21:24:11 vpshost systemd-networkd[317]: ens3: IPv6 successfully enabled
Nov 22 21:24:11 vpshost systemd-networkd[317]: ens3: Gained carrier
Nov 22 21:24:12 vpshost systemd-networkd[317]: ens3: Gained IPv6LL
Nov 22 21:24:23 vpshost systemd-networkd[317]: wg0: Gained carrier
Nov 22 21:24:23 vpshost systemd-networkd[317]: wg0: Lost carrier
Nov 22 21:34:58 vpshost systemd[1]: Stopping Network Service...
Nov 22 21:34:58 vpshost systemd[1]: systemd-networkd.service: Succeeded.
Nov 22 21:34:58 vpshost systemd[1]: Stopped Network Service.
-- Reboot --
Nov 22 21:35:14 vpshost systemd[1]: Starting Network Service...
Nov 22 21:35:15 vpshost systemd-networkd[302]: Enumeration completed
Nov 22 21:35:15 vpshost systemd[1]: Started Network Service.
Nov 22 21:35:15 vpshost systemd-networkd[302]: ens3: Interface name change detected, ens3 has been renamed to eth0.
Nov 22 21:35:15 vpshost systemd-networkd[302]: eth0: Interface name change detected, eth0 has been renamed to ens3.
Nov 22 21:37:16 vpshost systemd-networkd[302]: wg0: Gained carrier
Nov 22 21:40:07 vpshost systemd-networkd[302]: wg0: Lost carrier
Nov 22 21:40:07 vpshost systemd-networkd[302]: Could not emit changed properties: Transport endpoint is not connected
Nov 22 21:40:07 vpshost systemd-networkd[302]: Could not emit changed properties: Transport endpoint is not connected
Nov 22 21:40:07 vpshost systemd[1]: Stopping Network Service...
Nov 22 21:40:07 vpshost systemd[1]: systemd-networkd.service: Succeeded.
Nov 22 21:40:07 vpshost systemd[1]: Stopped Network Service.
-- Reboot --
Nov 22 21:40:22 vpshost systemd[1]: Starting Network Service...
Nov 22 21:40:23 vpshost systemd-networkd[302]: Enumeration completed
Nov 22 21:40:23 vpshost systemd[1]: Started Network Service.
Nov 22 21:40:23 vpshost systemd-networkd[302]: ens3: Interface name change detected, ens3 has been renamed to eth0.
Nov 22 21:40:23 vpshost systemd-networkd[302]: eth0: Interface name change detected, eth0 has been renamed to ens3.
Nov 22 21:40:23 vpshost systemd-networkd[302]: ens3: IPv6 successfully enabled
Nov 22 21:40:23 vpshost systemd-networkd[302]: ens3: Gained carrier
Nov 22 21:40:25 vpshost systemd-networkd[302]: ens3: Gained IPv6LL
Nov 22 21:40:37 vpshost systemd-networkd[302]: wg0: Gained carrier

Заметил ещё одну вещь, теперь достаточно только подключиться через VNC и уже без ввода логина поднимается сеть. Возможно и до этого работало - я не ждал вводил логин сразу, а тут отвлёкся и увидел такое поведение.
Nebulosa
достаточно только подключиться через VNC и уже без ввода логина
Ну так может и проблема тогда в webui или через что вы там vnc используете
Ошибки в тексте-неповторимый стиль автора©
indeviral
Nebulosa
достаточно только подключиться через VNC и уже без ввода логина
Ну так может и проблема тогда в webui или через что вы там vnc используете
Ммм... не понимаю как это связано..

Без сети это единственный способ взаимодействовать с хостом. Что вебvnc что другие клиенты делают одно и то же - стучатся на tty1 - пробовал все варианты клиентов какие нашёл.
Итак, всё решилось! Хотя и не совсем понятно как это связано.

Смотрел на время загрузки (здесь boottime: alias boottime='sudo systemd-analyze&&sudo systemd-analyze blame --no-pager')

$ boottime
[sudo] password for nebulosa:
Startup finished in 2.848s (kernel) + 17.872s (userspace) = 20.721s
graphical.target reached after 17.872s in userspace
13.373s systemd-networkd-wait-online.service
10.320s systemd-random-seed.service
 3.341s systemd-logind.service
 1.659s dev-vda1.device
 1.620s systemd-networkd.service
  979ms systemd-journald.service
  945ms systemd-udevd.service
  915ms systemd-timesyncd.service
  284ms wg-quick@wg0.service
  240ms systemd-udev-trigger.service
  229ms iptables.service
  124ms user@1000.service
   82ms systemd-user-sessions.service
   81ms systemd-journal-flush.service
   62ms systemd-sysctl.service
   42ms systemd-tmpfiles-setup-dev.service
   42ms systemd-remount-fs.service
   41ms var-lib-systemd\x2dswap-swapfc-1.swap
   36ms dev-hugepages.mount
   36ms systemd-tmpfiles-setup.service
   35ms dev-mqueue.mount
   35ms systemd-update-utmp.service
   33ms sys-kernel-debug.mount
   32ms kmod-static-nodes.service
   27ms tmp.mount
   23ms user-runtime-dir@1000.service
   21ms sys-kernel-config.mount
   20ms systemd-tmpfiles-clean.service
   10ms proc-sys-fs-binfmt_misc.mount

Решил уточнить почему сервис systemd-random-seed.service стартует так долго, нашёл данный тред: https://bbs.archlinux.org/viewtopic.php?pid=1863155#p1863155 там жаловались на низкую энтропию, у меня она была ещё меньше 122 вместо 189. Установил пакет, стартовал, активировал, перезагрузился. Всё заработало, энтропия теперь 1919, сеть поднимается.

¯\_(ツ)_/¯
 
Зарегистрироваться или войдите чтобы оставить сообщение.