10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOS7でNIC名を任意に変更する

Last updated at Posted at 2018-06-20

CentOS7に特定のNIC名でないとインストールができないシステムをインストールする必要があったので、NIC名を変更する方法を調査した。

##そもそもなぜ変更する必要があるのか
CentOS7(RHEL7)からNIC名の命名規則が変わったから。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/networking_guide/ch-consistent_network_device_naming

6以前ではethといった名前がデフォルトであったため、ethに依存したシステムになっていた。
システム側を改修してNIC名に依存しない形にするのが最もきれいな解決策だが、
状況が許さなかったのでNIC名側を変更することになった。

##eth*に戻すには
####1.NetworkManagerを無効化する
NetworkManagerがNIC名を勝手に変えたりしてしまうことがあるから。

systemctl stop NetworkManager
systemctl disable NetworkManager

####2./usr/lib/udev/rules.d/60-net.rulesというファイルを作成し、下記内容を記述する。

/usr/lib/udev/rules.d/60-net.rules
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result"

上記記述をするとOS起動時に
1./lib/udev/rename_deviceを実行
2./etc/sysconfig/network-script/ifcfg-***というファイルを検索
3.そのファイルに記載されているHWADDRの値とNICのMACアドレスを比較
4.一致する場合は同ファイル内のDEVICEの値をNIC名として設定
という処理をしてくれる。

####3./etc/sysconfig/network-scripts/ifcfg-eth0を作成
名前を変えたいNICについている名前がenp0s8とかだったら

mv /etc/sysconfig/network-scripts/ifcfg-enp0s8 /etc/sysconfig/network-scripts/ifcfg-eth0

####4.HWADDRDEVICEの値を編集する

/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=XX:XX:XX:XX:XX:XX
DEVICE=eth0
NAME=eth0 # NAMEがあったらこれも合わせておく

####5.再起動

reboot

##デフォルトゲートウェイについて
NIC名を変えるとデフォルトゲートウェイの設定が消えることがある。
下記ファイルにNIC名指定でデフォルトゲートウェイの設定が記述されていると発生する。

/etc/sysconfig/network
NETWORKING=Yes
#GATEWAYDEV=enp0s8
GATEWAYDEV=eth0 # GATEWAYDEVの値を変更後の名前にしておく
GATEWAY=192.168.1.1

##biosdevnameとnet.ifnames
調査しているとbiosdevnameとnet.ifnamesを無効化してeth*に戻す方法を紹介しているサイトが多かった。
ただその方法だとPCI識別番号順(多分ip aで表示される順)にeth0、eth1~と割り振られてしまうので狙ったNICに狙った名前を付けることができない。
今回は2番目のNICにeth0、4番目のNICにeth1のように名前を付けたかったので上記の方法をとった。

また、biosdevnameとnet.ifnamesを無効化してから、udevルールやHWADDRで命名順序を変えようとすると名前の重複が発生してうまくいかないようだ。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/networking_guide/sec-troubleshooting_network_device_naming

##参考
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/networking_guide/sec-understanding_the_device_renaming_procedure

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?