У меня есть две server системы, одна из которых работает под управлением Debian Stretch , другая - Ubuntu 17.10 , каждая из которых имеет два сетевых адаптера, настроенных следующим образом (/etc/network/interfaces):
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address 192.168.2.x
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
dns-nameservers 8.8.8.8
allow-hotplug eth1
iface eth1 inet dhcp
Кроме того, начальные ram-диски в обеих системах имеют одинаковые IP-адреса (да, я использую имена интерфейсов "старой школы"), настроенные с помощью (/etc/default/grub):
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
GRUB_CMDLINE_LINUX="ip=192.168.2.x::192.168.2.1:255.255.255.0:whatever:eth0:off"
В обеих системах первый адаптер всегда подключен к локальной сети, а второй почти никогда ни к чему не подключен, но иногда используется для тестирования сетевого оборудования.
Иногда (1/10 раза) происходит, после перезагрузки, имена адаптеров меняются местами, и вдруг eth1 имеет MAC адрес, который имел eth0 до перезагрузки, и получает адрес, полученный DHCP . Это происходит и на начальном RAM-диске.
Теперь Debian Jesse и Ubuntu 16.04 LTS имели /etc/udev/rules.d/70-persistent-net.rules котором четко указано, какой MAC принадлежит какому интерфейсу. Этот файл не существует в моих системах, я никогда не удалял ни одного пакета и не удалял этот файл из этих двух систем. Я попытался воссоздать файл с:
udevadm trigger --type=devices --action=change
udevadm trigger --subsystem-match=net --action=add
udevadm control --reload-rules
А после перезагрузки файла нет, а переходники все еще иногда меняются местами. Любая подсказка или идея, как исправить эту надоедливую проблему, очень ценится.
