У меня есть виртуальная машина Fedora 26. Когда я вхожу в GNOME, он показывает подключение к сети. GNOME показывает сетевой профиль для устройства как "Подключаться автоматически" и "Общий для всех пользователей" (в разделе Identity). И я могу подключиться к виртуальной машине по SSH... Но иногда я обнаруживаю, что не могу подключиться по SSH. Пока после я не войду сначала на gdm (GNOME).
Этого не происходит, если я перезагружаю ВМ. Поэтому я думаю, что это происходит, когда я приостанавливаю хост с все еще работающей ВМ (но не вошедшей в систему?).
Что происходит в ВМ, когда я вхожу в GNOME, что заставляет ее переподключаться? Является ли потеря соединения ошибкой, которую можно исправить в программном обеспечении?
systemctl status
показывает, что NetworkManager и network.service находятся в состоянии по умолчанию, предусмотренном ОС:
● network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; generated; vendor preset: disabled)
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2017-09-17 17:43:48 BST; 1 day 15h ago
nmcli после входа:
$ nmcli con
NAME UUID TYPE DEVICE
Wired connection 1 937653fb-890f-3b19-97b8-b98c8eafcdc5 802-3-ethernet ens3
virbr0 6e568806-d720-42ed-a555-0a1c50f1a36c bridge virbr0
ens3 afba101e-6470-3699-b87b-932ab4efe634 802-3-ethernet --
Я могу найти конфигурационные файлы только для неиспользуемого соединения "ens3", которое предназначено для предыдущего устройства с другим MAC-адресом. ВМ является обновленным клоном ВМ Fedora 25; предположительно, MAC-адрес был изменен при клонировании.
$ cd /etc/NetworkManager/system-connections/ && ls
$ cd /etc/sysconfig/network-scripts/ && ls ifcfg-*
ifcfg-ens3
ifcfg-lo
$ cat ifcfg-ens3
HWADDR=52:54:00:A7:3B:22
TYPE=Ethernet
BOOTPROTO=dhcp
...
NAME=ens3
UUID=afba101e-6470-3699-b87b-932ab4efe634
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
$ ip link show dev ens3
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:59:9b:47 brd ff:ff:ff:ff:ff:ff
Системный журнал показывает, что проблема решается не входом в GNOME, а просто ожиданием в течение 2 минут :).
$ journalctl -b -u NetworkManager
...
Sep 18 23:04:35 fedora26-vm dhclient[15040]: bound to 192.168.122.157 -- renewal in 1450 seconds.
Sep 19 08:45:51 fedora26-vm NetworkManager[656]: <info> [1505807151.7261] dhcp4 (ens3): state changed bound -> expire
Sep 19 08:45:51 fedora26-vm NetworkManager[656]: <info> [1505807151.7698] dhcp4 (ens3): canceled DHCP transaction, DHCP client pid 15040
Sep 19 08:45:51 fedora26-vm NetworkManager[656]: <info> [1505807151.7699] dhcp4 (ens3): state changed expire -> done
Sep 19 08:45:51 fedora26-vm NetworkManager[656]: <info> [1505807151.7701] device (ens3): scheduling DHCPv4 restart in 120 seconds, 3 tries left (reason: lease expired)
Sep 19 08:47:51 fedora26-vm NetworkManager[656]: <info> [1505807271.7908] dhcp4 (ens3): activation: beginning transaction (timeout in 45 seconds)
Sep 19 08:47:51 fedora26-vm NetworkManager[656]: <info> [1505807271.7972] dhcp4 (ens3): dhclient started with pid 15271
Sep 19 08:47:51 fedora26-vm dhclient[15271]: DHCPDISCOVER on ens3 to 255.255.255.255 port 67 interval 5 (xid=0x37e5e131)
Sep 19 08:47:51 fedora26-vm dhclient[15271]: DHCPREQUEST on ens3 to 255.255.255.255 port 67 (xid=0x37e5e131)
Sep 19 08:47:51 fedora26-vm dhclient[15271]: DHCPOFFER from 192.168.122.1
Sep 19 08:47:51 fedora26-vm dhclient[15271]: DHCPACK from 192.168.122.1 (xid=0x37e5e131)
...
(08 :45 :51 — это точное время, когда журналы хоста показывают, что система пробуждается от приостановки ).
Срок аренды DHCP правильно распознается как просроченный. Но система, кажется, не замечает, что она не пыталась продлить аренду заранее; он предполагает, что он уже только что попытался и потерпел неудачу, и поэтому он устанавливает тайм-аут перед повторным перезапуском. Похоже на ошибку для меня.