📑

【Linux】ネットワークインターフェースについて

に公開

はじめに

Linuxのネットワークインターフェースについて調べる機会があったので、備忘録としてまとめておきます。

1. 用語の定義について

本題に入る前に、NICネットワークインターフェースという用語について整理。
※ IT用語は現場や環境よって微妙な違いがあるが、本記事では以下のように定義

NIC
コンピュータに物理的に搭載されたネットワークカード(ハードウェア)
※ Ethernetカード、Wi-Fiカード、PRACポートなど

ネットワークインターフェース
OSがNICを認識して操作するために作られるソフトウェア的なインターフェース名
※ eth、ib0、br0 など

2. インターフェースが決まるまでの流れ

1. カーネルがネットワークデバイスを認識
デバイスドライバがロードされると NIC が認識され、対応するインターフェースが OS 上に生成される。

2. udevがデバイス名を決定
ユーザー空間のデバイスマネージャである udev がインターフェースに名前を割り当てる。

3.命名規則に従って名前が決定
最近のLinuxでは、Predictable Network Interface Names(予測可能なインターフェース名)という命名規則が導入されていて、起動の度にインターフェース名が変わってしまう問題を回避。

3. インターフェースの命名規則

以下は、主なインターフェース名の例とその意味。
enp0s1 : PCIバス番号とデバイススロットに基づく命名
ens1 : 固定スロットに接続された NIC
eno1 : オンボード NIC
wlp0s1 : PCIバス接続の Wi-Fi インターフェース
eth0 : 古い命名方式(物理インターフェース)

4. 設定ファイルの場所

ネットワークインターフェイスのIPアドレスなどの設定は、以下のディレクトリ内のファイルに定義されている。
パス : /etc/sysconfig/network-scripts
※主に RHEL 系ディストリビューションでの構成

各インターフェイスごとに以下のようなファイルが作られる。

  • ifcfg-eth0
  • ifcfg-enp3s0
  • ifcfg-br0(ブリッジ)
  • ifcfg-bond0(ボンディング)
    など

これらのファイルに記述されている項目:

  • IPアドレス
  • ネットマスク
  • ゲートウェイ
  • DNSサーバ
  • デバイス名
  • オンボード
    など

さいごに

実際にシステム上でインターフェイスを確認したい場合は、以下のようなコマンドが使えます。

# インターフェイス一覧表示
ip link show

# IPアドレス付きで表示
ip addr

# 管理下のデバイス一覧
nmcli device networmanager

# インターフェイスの情報表示()
ifconfig 

Discussion