В CentOS7 имя сетевого интерфейса имеет вид “enpXsX” вместо привычного “ethX”. Сначала немного теории о том, почему так происходит, а затем как это изменить.
Почему так происходит
Все дело в том, что классическая схема именования сетевых интерфейсов присваивает им имена «eth0», «eth1» и т.д. по порядку, однако данные имена жестко не привязываются к интерфейсу. То есть, если у Вас несколько сетевых интерфейсов, после перезагрузки системы интерфейс который раньше назывался «eth0» может получить название «eth1». Это влечет за собой ряд серьезных проблем, например если у Вас настроен firewall, то изменение названия интерфейса приведёт к тому, что он перестанет корректно работать.
Боролись с эти по разному, привязывали к MAC-адресу устройства, пытались привязывать к слоту на материнской плате используя «biosdevname», использовали указанные пользователем имена (например: «internet0», «dmz0», т.п.), но у каждой схемы есть свои недостатки.
В связи с эти в Red Hat Enterprise Linux 7 и соответственно в Centos 7 решено было назначать имена сетевого интерфейса на основе иерархии различных схем именования. То есть, по умолчанию systemd будет поочередно применять схемы именования остановившись на первой доступной и применимой.
Преимущество в том, что имена присваиваются в автоматическом режиме, полностью предсказуемы и они остаются неизменными, даже если аппаратные средства добавлены, изменены или удалены. Недостатком является то, что такие имена труднее читать (например: enp5s0), чем традиционно используемые eth0 или wlan0.
Решение
Однако не всем подходит выданное системой название. Для того, чтобы изменить имя интерфейса на стандартное “ethX”, необходимо отредактировать grub файл:
mcedit /etc/default/grub
Ищем строку “GRUB_CMDLINE_LINUX” и добавляем следующее: “net.ifnames=0 biosdevname=0»
Строка будет иметь вид вроде этого:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rootvg/usrlv rd.lvm.lv=rootvg/swaplv crashkernel=auto vconsole.keymap=usrd.lvm.lv=rootvg/rootlv vconsole.font=latarcyrheb-sun16 rhgb quiet net.ifnames=0 biosdevname=0"
Обновим конфигурацию загрузчика grub при помощи команды grub2-mkconfig:
grub2-mkconfig -o /boot/grub2/grub.cfg
Переименуем файл настройки сетевого интерфейса:
mv /etc/sysconfig/network-scripts/ifcfg-enp0s1 /etc/sysconfig/network-scripts/ifcfg-eth0
Заменим в самом файле имя интерфейса с NAME=enp0s1 на NAME=eth0
mcedit /etc/sysconfig/network-scripts/ifcfg-eth0 NAME=eth0
Перезагружаем систему.