Linux環境におけるネットワークインターフェース名をethXに変更する方法

Linuxシステムをインストールした際、ネットワークインターフェース名が ens33enp0s3 のように予測しにくい名称になることがあります。運用管理上の理由などで、これらを従来の eth0 といった形式に変更する手順を解説します。本稿では Ubuntu 14.04系と CentOS 7.x系を対象とします。

Ubuntu 14.04における設定変更

Ubuntuでは、udevのルールファイルを作成または編集することでインターフェース名を固定できます。

1. 現在のインターフェース名とMACアドレスを確認します。

$ ifconfig -a
# 出力例: enp3s0  Link encap:Ethernet  HWaddr 00:0c:29:ab:cd:ef
# HWaddr(MACアドレス)をメモしておきます。

2. /etc/udev/rules.d/70-persistent-net.rules ファイルを作成、あるいは編集します。ファイルが存在しない場合は新規作成してください。

$ sudo vi /etc/udev/rules.d/70-persistent-net.rules

# 以下の内容を記述(MACアドレスは実際のものに置き換えてください)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ab:cd:ef", NAME="eth0"

3. ネットワーク設定ファイル /etc/network/interfaces を更新します。旧名称が使われている箇所をすべて新しい名称(例:eth0)に変更します。

$ sudo vi /etc/network/interfaces

# 変更前
auto enp3s0
iface enp3s0 inet dhcp

# 変更後
auto eth0
iface eth0 inet dhcp

4. システムを再起動して設定を反映させます。

$ sudo reboot

CentOS 7.xにおける設定変更

CentOS 7では、udevルールの編集に加えて、ネットワークスクリプト(ifcfgファイル)の修正が必要です。

1. 対象のNICのMACアドレスを特定します。

$ ip link show
# 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
# link/ether 00:50:56:b1:22:33 brd ff:ff:ff:ff:ff:ff

2. /usr/lib/udev/rules.d/60-net.rules を編集し、特定のMACアドレスに対して eth0 という名称を割り当てるように設定します。

$ sudo vi /usr/lib/udev/rules.d/60-net.rules

# 既存の行をコメントアウトするか、以下のように特定のMACアドレスを指定する形式に変更します
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:50:56:b1:22:33", NAME="eth0"

3. ネットワーク設定ファイルをリネームし、内部のパラメータを修正します。

$ cd /etc/sysconfig/network-scripts/
$ sudo mv ifcfg-ens160 ifcfg-eth0
$ sudo vi ifcfg-eth0

# 以下の項目を eth0 に書き換えます
NAME="eth0"
DEVICE="eth0"

4. 必要に応じて、GRUBの設定でカーネルパラメータに net.ifnames=0 biosdevname=0 を追加することも検討してください。これにより、一貫したデバイス命名規則(Predictable Network Interface Names)を無効化できます。

$ sudo vi /etc/default/grub
# GRUB_CMDLINE_LINUX の末尾に追記
# GRUB_CMDLINE_LINUX="... net.ifnames=0 biosdevname=0"

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

5. OSを再起動します。

$ sudo reboot

タグ: linux Ubuntu CentOS Networking udev

7月5日 22:33 投稿