Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

RHEL 7.3 にアップデートした後にインターフェイス名が変更になり、ネットワークが起動しない

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux (RHEL) 7.3
  • systemd
  • VMware ゲスト

Issue

  • RHEL 7.3 にアップデートした後、NIC の名前が eno16777728 から ens192 に変更になりました。
  • RHEL 7.3 への yum update を行うと、起動時にネットワークが起動しません。
  • ネットワークインターフェイスのデバイス名は、以前は enoX で、X は 16383 よりも大きな値です。現在の名前は ensY スタイルを使用しています。
  • VMware などのファームウェアでは、デバイス名が誤って報告され、再起動すると変更するため、ネットワークデバイス名が一貫性のあるものではありませんでした。systemd のアップデートにより一貫性のある名前が提供されますが、RHEL 7.3 にアップグレードするとネットワークデバイス名が新しくなります。

Resolution

以下の手順は、OS が変更した名前をすでに使用していると仮定します。変更を行う前に、新しい名前を特定するための手順について、このナレッジの「原因」セクションを参照してください。

ネットワーク設定をアップデートして、インターフェイス名の変更を反映する

  • ip コマンドを実行して、新しいインターフェイス名を確認します。以下の例で、現在のインターフェイス名は ens192 です。

    [root@rhel73 ~]# ip link
    1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: ens192:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
        link/ether 00:0c:29:ad:aa:5a brd ff:ff:ff:ff:ff:ff
    

NetworkManager を使用されている場合:

  • NAME 列の下で nmcli を使用して既存のネットワーク設定プロファイルの名前を確認します。以下の例では、プロファイルの名前は eno16780032 です。

    [root@dhcp181-180 ~]# nmcli connection
    NAME         UUID                                  TYPE            DEVICE 
    eno16780032  9b7334c3-9d6f-424a-9a53-9127d245ef75  802-3-ethernet  --     
    
  • プロファイルをアップデートして、新しいインターフェイスの名前を指定します。以下の例では、プロファイル eno16780032 をアップデートして、ens192 という名前のインターフェイスを適用します。その後、接続が起動するため、プロファイルがインターフェイスに適用されます。

    # nmcli connection modify eno16780032 connection.interface-name ens192
    # nmcli connection up eno16780032
    
  • オプションで、プロファイル名もアップデートできます。

    # nmcli connection modify eno16780032 connection.id ens192
    

NetworkManager を使用しない場合:

/etc/sysconfig/network-scripts/ ディレクトリの ifcfg ファイルを直接修正します。新しいインターフェイス名を一致するよう、DEVICE パラメーターの値をアップデートする必要があります。

Root Cause

  • この問題は、再起動後に永続的なデバイス名を提供するために、systemd-219-21.el7 以降にアップデートしたことが原因で発生します。これは、VMware のファームウェアまたは BIOS が報告するデバイス名が間違っていたり一貫性がないことが原因です。以下はエラータからの抜粋です。

    "Previously, some network devices had unacceptably long names.This was due to certain firmware reporting meaningless data, such as the device's `onboard index` value, which the kernel passed to user-space.This resulted in problems with maximum name length, especially with VLANs.With this update, *systemd* rejects unacceptably long names and falls back to a different naming scheme.As a result, long network device names will no longer appear."
    
  • インターフェイスのスロット名はシステムをアップデートまたは再起動する前に表示できます。これにより、インターフェイスの設定を前もって調整できます。udevadmID_NET_NAME_SLOT プロパティを探します。以下の例で、eno16780032 デバイスのスロットベースの名前は ens192 になります。

    # udevadm info /sys/class/net/eno16780032
    P:/devices/pci0000:00/0000:00:16.0/0000:0b:00.0/net/eno16780032
    E:DEVPATH=/devices/pci0000:00/0000:00:16.0/0000:0b:00.0/net/eno16780032
    E:ID_BUS=pci
    E:ID_MODEL_FROM_DATABASE=VMXNET3 Ethernet Controller
    E:ID_MODEL_ID=0x07b0
    E:ID_NET_DRIVER=vmxnet3
    E:ID_NET_LABEL_ONBOARD=enEthernet0
    E:ID_NET_NAME_MAC=enx005056a570ba
    E:ID_NET_NAME_ONBOARD=eno16780032
    E:ID_NET_NAME_PATH=enp11s0
    E:ID_NET_NAME_SLOT=ens192
    E:ID_OUI_FROM_DATABASE=VMware, Inc.
    E:ID_PATH=pci-0000:0b:00.0
    E:ID_PATH_TAG=pci-0000_0b_00_0
    E:ID_PCI_CLASS_FROM_DATABASE=Network controller
    E:ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
    E:ID_VENDOR_FROM_DATABASE=VMware
    E:ID_VENDOR_ID=0x15ad
    E:IFINDEX=2
    E:INTERFACE=eno16780032
    E:SUBSYSTEM=net
    E:SYSTEMD_ALIAS=/sys/subsystem/net/devices/eno16780032
    E:TAGS=:systemd:
    E:USEC_INITIALIZED=28864
    
  • また、新しいインターフェイス名を参照するには、特に古いインターフェイス名を参照するアプリケーションや設定をアップデートする必要があります。この点に関する質問は、適切なアプリケーションベンダーにご連絡ください。

  • この問題については、Red Hat エンジニアリングが https://bugzilla.redhat.com/show_bug.cgi?id=1391944 で確認しています。

関連情報:

Diagnostic Steps

  • ホストが systemd-219-21.el7 以降を使用していることを確認します。

    # rpm -q systemd
    
  • 既存のネットワーク設定プロファイルが、ホストで使用されていない eno スタイル名を参照していることを確認します。ここでは、connection.interface-name プロパティが重要です。

    # nmcli connection show <profile name> | grep connection -m 3
    connection.id:                          eno33559296
    connection.uuid:                        e7f57f65-ac60-455a-a6eb-9a530733512c
    connection.interface-name:              eno33559296
    
  • NetworkManager を使用しない場合は、/etc/sysconfig/network-scripts/ ディレクトリに保存されている ifcfg ファイルの DEVICE パラメーターの値を確認します。

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.