Linux環境でネットワークデバイスの無効/有効を切り替える場合は、ifdown/ifupコマンドを使います。
本連載では、ネットワーク管理の基本コマンドを順を追って紹介していきます。基本書式と用法、主要なオプション、用例サンプルを示しますので、manやhelp代わりに通読し、各コマンドでできることを順次おさらいしてみてください。今回は、「ifdown」「ifup」コマンドを紹介します。
なお、本連載では、執筆時点の最新版「Red Hat Enterprise Linux(RHEL)」および「CentOS」環境で動作を確認しています(今回は一部でDebian Linuxの場合についても言及しています)。コマンドのサンプルなどで一部環境に依存した出力例となる場合がありますので、その際には適宜ご自身の環境に合わせて読み替えてください。
複数のネットワークインターフェースカード(NIC)を搭載するマシンでは、システムの稼働中にIPアドレスの設定をやり直すことがあります。この場合、今回紹介するifdown/ifupコマンドを使い、NICをオン/オフして“再起動”することにより、IPアドレスの設定などをやり直すことができます。
無効化:ifdown デバイス名
有効化:ifup デバイス名
無効化:ifdown [オプション] デバイス名
有効化:ifup [オプション] デバイス名
※[ ]は省略可能な引数を示しています。
ifdownコマンドは指定したNICを無効に、ifupコマンドは有効にします。有効化するときには「/etc/sysconfig/network-scripts」ディレクトリにある設定ファイル(「ifcfg-<デバイス名>」)に記述された内容に従い設定し直すため、NICの設定を変更したときにはifdownのあとにifupを実行することで、新しい設定を反映できます。
ネットワークの設定変更には、コマンドラインから「service network restart」または「/etc/rc.d/init.d/network restart」を実行して設定を反映させる方法がありますが、この方法では設定を変更したいNICとは関係のないNICまで再起動されてしまいます。一方のifdown/ifupマンドは特定のNICに絞り込んで変更処理を実行できます。
本稿で前提としているRed Hat Enterprise Linux系とDebian Linux系では、ifdown/ifupコマンドの仕様が異なります。引数にデバイス名を指定する点は共通ですが、Debian Linux系では各種オプションが用意されており、コマンド実行時に指定することができます(本稿で示すオプションはDebian Linux系の場合の例です)。Red Hat Enterprise Linux系はifdown/ifupコマンドとも実体はシェルスクリプトになっており、デフォルトではNICを無効/有効にする以外の機能はありません。
ifdown/ifupコマンドの主なオプションは次の通りです。
オプション | 意味 |
---|---|
-X | 指定したパターンと一致するNICを除外する |
-a | /etc/network/interfacesで「auto」フラグが設定されたNICを全て有効にする |
-i | /etc/network/interfacesを参照せず、指定したファイルに定義されたNICの設定を利用する |
-n | 表示のみで実際には何もしない |
-v | 詳細な情報を出力する |
-o | 設定を指定する(ex. -o ○○○=△△△) |
--no-mappings | /etc/network/interfacesで定義されたマッピングを行わない |
--no-script | /etc/network/interfacesに記載されたスクリプトを実行しない |
--force | 設定を強制的に適用する |
NICを無効化する場合は、引数に「eth0」や「wlan0」などのデバイス名を与えてifdownコマンドを実行します。管理者権限が必要となるため、root権限で作業するかsudoと組み合わせ実行します。
なお、「ifconfig デバイス名 down」と実行してもNICを無効化できますが、IPアドレスは保持されます。ifdownコマンドの場合、「/etc/sysconfig/network-scripts/ifdown」スクリプトに従って処理が行われ、IPアドレスの開放と「dhclient(DHCPクライアント機能)」の停止が行われます。
下のコマンド実行例はデバイス名「eth0」を停止する場合です。ここではsudoで一時的にroot権限になってから実行しているので、パスワードの入力を求められています。
$ sudo ifdown eth0 Password:
NICを有効化する場合は、対象のデバイス名(eth0、wlan0など)を引数に与え、ifupコマンドを実行します。実行時はroot権限になるかsudoと組み合わせて実行します。
ifupコマンドを実行すると、「/etc/sysconfig/network-scripts/ifup」スクリプトに従い、静的/動的なIPアドレスの設定を含めてNICの初期化が行われます。「ifconfig デバイス名 up」を実行してもNICを有効化できますが、ifupコマンドとは異なりスクリプトは実行されず、「/etc/network/interfaces」も参照されません。
下のコマンド実行例では「NICを無効にするには?」で停止したデバイス名「eth0」を起動しています。
$ sudo ifup eth0 Password:
ifdownコマンドとifupコマンドは、実質的にNICの再起動に利用されるため、続けて実行することがほとんどです。そこで、以下の通り、一連のコマンドラインとして処理すれば、ifdownコマンドがエラーなしに完了した場合、ifupコマンドを続けて実行できます。
下のコマンド実行例はデバイス名「eth0」の停止が正常に完了した場合にのみ(「&&」によってifdownの実行結果が正常であった場合に限定して)、デバイス名「eth0」を起動する記述例です。
$ sudo ifdown eth0 && sudo ifup eth0 Password:
Copyright © ITmedia, Inc. All Rights Reserved.