NetworkManagerとは

メモ:

7年ほどLinuxから離れていたら浦島太郎状態ですね。 RHEL7で推奨されているNetworkManagerについて調べたことを整理しておきます。

NetworkManagerとは?

NetworkManagerは、ネットワークを動的に設定できるサービスです。

例えば、無線LANとEthernetのそれぞれに設定(ファイル)を用意しておくことで、それぞれの環境に接続(リンクアップを検出)した際、自動的に接続してくれたりします。

※「CentOS7をインストールする」の中で、Connect automaticallyを設定している部分が自動接続の設定となります。

インストール時に設定したネットワークの設定は、次の設定ファイルに保存されます。

/etc/sysconfig/network-scripts/ifcfg-[接続名]

このファイルの中には、IPアドレスやネットマスク、ゲートウェイ、マックアドレスといった設定が記述されています。

NetworkManagerの接続設定

NetworkManagerには、大きく分けてnmtuiコマンドとnmcliコマンドの2つがあります。 nmtuiコマンドは、テキストベースのUIで対話的設定が行え、nmcliはコマンドラインでの設定が行えます。

テキストベースのUIによる設定

次のコマンドを実行するとネットワークの設定画面が表示されます。

# nmtui
NetworkManager UI

「Edit a connection」を選択することで、接続設定の追加、更新、削除ができます。

接続先一覧

前の画面で選択された「接続名」に対し、ネットワークの設定を行います。

ネットワーク接続の設定

コマンドラインツールnmcliを使ってみる

コマンドラインツールnmcliの使い方などをまとめてみます。

新しいイーサーネット(有線)接続の作成

ここでは、nmcliコマンドを使用して新しい接続を作成してみます。

ネットワークデバイスは、「ens33」とし、テスト環境用に「ens33-test」接続設定を作成するイメージです。

最初に接続名と接続するデバイスを指定して設定ファイルを作成します。

# nmcli c add type ethernet con-name [接続名] ifname [デバイス名]

上記コマンドが成功すると「Connection ‘[接続名]’ (**********) successfully added.」と出力され、「/etc/sysconfig/network-scripts/」にifcfg-[接続名]で設定ファイルが作成されます。

上記例では、DHCPによる動的な割り当てとなり、起動時にネットワーク接続がアクティブになるよう設定されます。設定ファイルを確認すると次のようなパラメータ設定がされています。

BOOTPROTO=dhcp --DHCPの指定
ONBOOT=yes --自動検出の指定
(一部抜粋)

また、次のコマンドを実行することで、作成されている接続を確認することができます。

# nmcli c
NAME         UUID           TYPE            DEVICE
ens33-test   379b*********  802-3-ethernet  --
ens33        9a92*********  802-3-ethernet  ens33

ネットワークインターフェイスの有効化・無効化

作成した接続(定義)を有効にしたり無効にしたりするには、次のコマンドを実行します。

# nmcli c up [接続名]
# nmcli c down [接続名]

設定を変更した場合や接続先を変更する場合、上記コマンドを実行して接続設定を反映させます。

接続設定を固定アドレスに変更する

ここでは、作成した設定(ens33-test)を固定アドレスへ変更してみます。

nmcliコマンドにmod[ify]コマンドを指定し、設定するパラメータを与えます。 IPアドレスを192.168.123.10としネットマスクを24、ゲートウェイを192.168.123.254、DNSを8.8.8.8と8.8.4.4に設定します。

# nmcli c mod [接続名] ipv4.method manual ipv4.addresses "192.168.123.10/24 192.168.123.254" ipv4.dns "8.8.8.8 8.8.4.4"

ipv4.addressesの部分は、IPアドレスとネットマスク、ゲートウェイをまとめて指定します。

設定した内容を確認するには、「show」コマンドを実行します。

# nmcli c show [接続名]
ipv4.method:         manual
ipv4.dns:            8.8.8.8, 8.8.4.4
ipv.dns-search:
ipv4.addresses:      { ip = 192.168.123.10/24, gw = 192.168.123.254 }
...(一部抜粋)

このshowコマンドを実行すると設定可能な項目を確認することができますが、かなりの数がありますので、とりあえず「こんな項目があるな」という程度に見ておきます。

おまけ:addコマンド実行時にIPアドレスとゲートウェイを指定するには、次のようなオプション指定を行います。

# nmcli c add type ethernet con-name [接続名] ifname [デバイス名] ip4 192.168.123.10 gw4 192.168.123.1

その他使いそうなコマンド

作成した接続を削除する。

# nmcli c delete [接続名]

デバイスの一覧を表示する。

# nmcli d
DEVICE   TYPE       STATE         CONNECTION
ens33    ethernet   disconnected  --
lo       loopback   unmanaged     --

もっといろいろな設定ができそうですが、今回はここまで・・・。