LoginSignup
52

More than 5 years have passed since last update.

CentOS 7のネットワーク名「enp1s0」という文字列の謎に迫る

Last updated at Posted at 2015-04-30

CentOS 7をインストールして謎だったことの一つとして、ネットワーク名が今までの「eth0」みたいなやつから、「enp1s0」みたいな謎の文字列に変わった事がある。

気になったので調べてみた。

ネットワーク名は新しい命名規則に沿って自動的に作られる

調べていると、以下のブログに丁寧に説明が書いてあった。

Predictable Network Interface Names

ざっくり訳すと以下の通り

v197のsystemd/udevでは自動的に安定的なネットワークインターフェース名を割り当てる。
ローカルエリアネットワークに限らず、WLANやWWANに対しても割り当てる。
伝統的な ("eth0", "eth1", "wlan0", ...)といった命名規則はもうしない。

新しい命名規則では以下の嬉しい事がある。

  • OSが再起動してもインターフェース名が変わらない
  • ハードウェアを追加したり外したりしてもインターフェース名が変わらない
  • カーネルやドライバをアップデートしても変わらない
  • NICが壊れて取り変えてもインターフェース名は変わらない
  • インターフェース名は自動的に付けられてそのまま動く
  • インターフェース名は命名規則に沿っているので完全に予測できる
  • などなど

では「enp1s0」は何を意味するのか?

これはsystemdの中にネットワーク名を命名するソースコードがあり、そこを見ればわかる。
ソースコードはココ

この中に以下のコメントがある

 * Two character prefixes based on the type of interface:
 *   en -- ethernet
 *   sl -- serial line IP (slip)
 *   wl -- wlan
 *   ww -- wwan
 *
 * Type of names:
 *   b<number>                             -- BCMA bus core number
 *   ccw<name>                             -- CCW bus group name
 *   o<index>[d<dev_port>]                 -- on-board device index number
 *   s<slot>[f<function>][d<dev_port>]     -- hotplug slot index number
 *   x<MAC>                                -- MAC address
 *   [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
 *                                         -- PCI geographical location
 *   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
 *                                         -- USB port number chain

これに従うと、「enp1s0」は以下の意味であるとよみとれる。

  • 「en」は「イーサーネット」
  • 「p1」は「1番目のバス」
  • 「s0」は「0番目のスロット」

なーるほど。

そもそも、切れ目すら知らずに「enp」ってなんだろうって思ってたよw

すっきり!

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
52