ほげめも: Debian vs Ubuntu: ネットワークインタフェースの名前
Debian と Ubuntu の違いについて深追いする超不定期連載第 2 回はネットワークインタフェースの名前の付けかたについてです(なお第 1 回は 1 年半くらい前の記事 でした)。今回は Debian/Ubuntu ばかりでなく R...
RHEL7/CentOS7になってからネットワークインターフェイスの命名規則が変わったのは周知の事実ですが、Systemdに切り替わったUbuntu 15.04も同じなのかなぁと思って実際に環境を変更してみました。
POINT
元々自宅にある環境はDellのServerで動作しているのですが、RHEL/CentOSの場合はbiosdevnameによって他のマシンとは違う命名規則によって命名されるらしいのです。
#これ、今まで知りませんでした。
RHEL7/CentOS7:
- 一般のマシン: Predictable Network Interface Name(予測可能な命名)
- DELL製のハードウェア:
biosdevname
による「em<port>
」
やはりSystemdに切り替わったので、systemd/udev
の命名規則にしたい場合は以下のようにするそうです。
1. 先に命名規則がどうなるか調べる
$ sudo udevadm test-builtin net_id /sys/class/net/eth1
calling: test-builtin
=== trie on-disk ===
tool version: 219
strings 1723288 bytes
nodes 5082488 bytes
Load module index
Network interface NamePolicy= disabled on kernel command line, ignoring.
timestamp of '/etc/systemd/network' changed
timestamp of '/lib/systemd/network' changed
Parsed configuration file /lib/systemd/network/99-default.link
Created link configuration context.
ID_NET_NAME_MAC=enx60eb6907d9a1
ID_OUI_FROM_DATABASE=Quanta computer Inc.
ID_NET_NAME_PATH=enp5s0f1
Unload module index
Unloaded link configuration context.
2. rulesファイルでインターフェイスを縛っている場合は、該当するインターフェイスをコメント扱いする。
$ ls -l /etc/udev/rules.d/70-persistent-net.rules
-rw-r--r-- 1 root root 855 May 19 20:09 /etc/udev/rules.d/70-persistent-net.rules
3. 本来であれば以下のように解釈されるのを、biosdevname
を無効、systemd/udev
を有効にする。
POINT
ユーザの指定 persistent-net biosdevname systemd write_net_rules
13行目のGRUB_CMDLINE_LINUX
に、biosdevname=0 net.ifnames=1
を追記する。
$ head -15 /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset transparent_hugepage=always acpi=force"
GRUB_CMDLINE_LINUX="intel_iommu=on pci=assign-busses biosdevname=0 net.ifnames=1"
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
4. GRUBを更新する。
sudo update-grub2
5. interfacesファイルを修正しておく。
auto enp5s0f1
iface enp5s0f1 inet manual
auto enp4s0f0
iface enp4s0f0 inet manual
bond-master bond1
mtu 9000
auto enp4s0f1
iface enp4s0f1 inet manual
bond-master bond1
mtu 9000
auto bond1
iface bond1 inet static
bond-miimon 100
bond_downdelay 100
bond_updelay 100
bond-mode 2
bond-slaves enp4s0f0 enp4s0f1
bond-xmit-hash-policy layer2+3
address 10.0.0.254
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
6. 再起動してみる。
7. インターフェイスが新しい命名で上がってきているか確認する。
enp5s0f0 Link encap:Ethernet HWaddr 60:eb:69:07:d9:a0
inet6 addr: fe80::62eb:69ff:fe07:d9a0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:146460 errors:0 dropped:4 overruns:0 frame:0
TX packets:139281 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13661200 (13.6 MB) TX bytes:11452647 (11.4 MB)
Memory:df6e0000-df6fffff
enp5s0f1 Link encap:Ethernet HWaddr 60:eb:69:07:d9:a1
inet6 addr: fe80::62eb:69ff:fe07:d9a1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:35843 errors:0 dropped:3 overruns:0 frame:0
TX packets:23189 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6527319 (6.5 MB) TX bytes:2756982 (2.7 MB)
Memory:df620000-df63ffff
ちなみにうちの環境の場合の命名は以下のように決まった模様。
PredictableNetworkInterfaceNames
ハードウェアのコネクタの物理的/地理的位置を組み込んだ名前、らしいです。
enはイーサネット、pはphysical? s
とf
が何に該当するのかわからなかったです。ご存知のかたがいれば教えていただけると助かります。
systemd-udevdによるNIC命名とbiosdevnameがまざって混乱する件
最近のsystemd-udevdはlinuxのネットワークインタフェース名を設定します。それにともない特にRHEL界隈でNIC命名規則が複雑になってきたので紹介します。。 問題: linuxカーネルはNICの名前をドライバ初期化順につけるの...
お気に入りのUbuntu 14.04 LTS日本語Rem―無償OS &無償ソフトで何でも揃う!
posted with amazlet at 19.09.20
岡田 長治 中村 睦
カットシステム
売り上げランキング: 505,347
カットシステム
売り上げランキング: 505,347