Linuxシステムをインストールした際、ネットワークインターフェース名が ens33 や enp0s3 のように予測しにくい名称になることがあります。運用管理上の理由などで、これらを従来の 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