У меня есть две 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
А после перезагрузки файла нет, а переходники все еще иногда меняются местами. Любая подсказка или идея, как исправить эту надоедливую проблему, очень ценится.