従来Linuxでは、ネットワークの状態確認やデバイスの設定など機能ごとにコマンドを使い分けていましたが、Red Hat Enterprise LinuxおよびCentOSには、統合ツールとして「NetworkManager」およびCLI版の「nmcli」が用意されています。
本連載では、ネットワーク管理の基本コマンドを順を追って紹介していきます。基本書式と用法、主要なオプション、用例サンプルを示しますので、manやhelp代わりに通読し、各コマンドでできることを順次おさらいしてみてください。今回は、RHELやCentOSにおけるネットワーク統合管理ツールである「NetworkManager」をコマンドラインから操作するためのnmcliを見ていきます。
Red Hat Enterprise LinuxおよびCentOSでは、「NetworkManager」という管理ツールが用意されています。「NetworkManager」はネットワークデバイスの検出と関連システムの設定支援を行います。
nmcliは、NetworkManagerの機能にコマンドラインからアクセスできます。ifconfigなど、他のコマンドを利用するか、/etc/sysconfig/network-scriptsディレクトリ以下にあるスクリプトを直接編集していたネットワーク関連の設定を、一元的に処理することが可能です。
基本的な用法は、以下で紹介する、コマンド名に続いて操作対象を意味するオブジェクト、設定項目とそのオプションの順となります。有効なネットワークデバイスの一覧やIPアドレスなど設定情報を確認するだけでなく、ホスト名やIPアドレスの設定変更、回線のオン/オフなど、NetworkManagerで行う作業のほぼ全てがコマンドラインから実行できます。
なお、NetworkManagerおよびnmcliと同等の管理作業を行うためのツールとして「nmtui」も用意されています。こちらは対話型のツールであり、カーソルキーで項目を選びReturnキーで確定という方法で設定作業を行うことができます。
nmcliコマンドで使える「オブジェクト」とオプション、各オブジェクトの設定項目は次の通りです。
オブジェクト名称 | 役割 |
---|---|
connection | NetworkManagerの接続状況 |
device | NetworkManagerで管理しているデバイス |
general | NetworkManagerの全般的な状態と動作 |
networking | ネットワーク制御に関する全般 |
radio | NetworkManagerラジオスイッチ |
オプション | 内容 |
---|---|
-t | 簡潔な形式で出力する |
-p | 読みやすい形式で出力する |
-m | 出力モードを変更する(tabular=タブ分割、multiline=行分割) |
-f | 出力フィールドを指定する |
-e | コラムセパレーターをエスケープする |
-n | NetworkManagerおよびnmcliのバージョンチェックを行わない |
-a | パラメーターが足りない場合問い合わせる |
-w | 動作完了までのタイムアウトを設定する |
オブジェクト | 設定項目 | 意味 |
---|---|---|
general | status | NetworkManagerの設定項目を全て表示する |
hostname | ホスト名を表示/設定する | |
permissions | NetworkManagerの各種スイッチを表示する | |
logging | ログを表示/取得範囲を設定する | |
networking | on(off) | 指定した回線を有効化(無効化)する |
connectivity | 接続ステータスを表示する | |
radio | all | radioオブジェクトの全スイッチの状況を表示する |
wifi | NetworkManagerが管理する無線LANの項目を表示/設定する | |
wwan | モバイルブロードバンド回線をオン/オフする | |
wimax | WiMAX回線をオン/オフする | |
connection | show | 接続状況を表示する |
up(down) | 指定した回線を有効化(無効化)する | |
add | 新しいネットワークデバイスを追加する | |
edit | 既存のネットワークデバイスを編集する(インタラクティブ) | |
modify | 既存のネットワークデバイスを編集する | |
delete | 既存のネットワークデバイスを削除する | |
reload | 全ての接続をディスクから読み直す | |
load | ファイルから接続設定を読み取る | |
device | status | ネットワークデバイスの状態を表示する |
show | ネットワークデバイスの詳細情報を表示する | |
connect | ネットワークデバイスを接続する | |
disconnect | ネットワークデバイスの接続を解除する | |
wifi | 有効なWi-Fiアクセスポイントを一覧する | |
wimax | WiMAXの接続事業者を一覧する | |
nmcliコマンドでは、操作対象(オブジェクト)とその設定項目を指定することで各種処理を行います。上の表3のように、設定項目はオブジェクトごとに異なり、状態を確認するだけでなく設定を変更することも可能です。
オブジェクトは「connection」や「device」のようにフルネームを指定する他、前方一致の省略形を利用することも可能です。例えば、「connection」は「con」と省略できますが、他に「c」から始まるオブジェクトが存在しないため、「c」とだけ記述すれば通用します。
$ nmcli dev show GENERAL.デバイス: eth0 GENERAL.タイプ: ethernet GENERAL.HWADDR: 00:3C:22:1D:97:CB GENERAL.MTU: 1500 GENERAL.状態: 100 (接続済み) GENERAL.接続: eth0 GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/1 WIRED-PROPERTIES.キャリア: オン IP4.アドレス[1]: ip = 192.168.12.10/24, gw = 192.168.12.1 IP4.DNS[1]: 192.168.12.1 IP6.アドレス[1]: ip = fe80::21c:12ff:fe2d:c7ab/64, gw = :: GENERAL.デバイス: lo GENERAL.タイプ: loopback GENERAL.HWADDR: 00:00:00:00:00:00 GENERAL.MTU: 65536 GENERAL.状態: 10 (管理無し) GENERAL.接続: -- GENERAL.CON パス: -- IP4.アドレス[1]: ip = 127.0.0.1/8, gw = 0.0.0.0 IP6.アドレス[1]: ip = ::1/128, gw = ::
nmcliコマンドでは、ネットワークの設定変更を行うことも可能です。ただし、管理者権限が必要となるため、rootとして作業するかsudoコマンドを併用する形で処理します。
以下のコマンド実行例では、ローカルホストの名称を「mylinux.local」に変更しています。systemd(initと互換性がある起動処理とサービス管理の仕組み)で導入されたsystemctlコマンドと同期しているため、hostnamectlコマンドやhostnameコマンドで変更を確認できます。
$ nmcli g hostname localhost.localdomain $ sudo nmcli g hostname mylinux.local $ hostname mylinux.local
Copyright © ITmedia, Inc. All Rights Reserved.