〜(IP)ネットワーク環境の確認/設定を行うifconfigは、LinuxやmacOSなど、主にUNIX系OSで用いるネットワーク環境の状態確認、設定のためのコマンドだ。IPアドレスやサブネットマスク、ブロードキャストアドレスなどの基本的な設定ができる他、イーサネットフレームの最大転送サイズ(MTU)の変更や、VLAN疑似デバイスの作成も可能だ。});目的と用途ifconfigコマンドはLinuxなど、主にUNIX系OSで用いるネットワーク環境の状態確認や設定確認、設定のためのコマンドだ。ホストに設置された有線LANや無線LANなどのネットワークインタフェースに対し、IPアドレスやサブネットマスク、ブロードキャストアドレスなどの基本的な設定ができる。加えて、現在の設定を確認できる。現在ではほとんどの場合、IPv4のためにifconfigコマンドを用いるだろう。Exchange)やIPv6のための設定機能もある(OSのバージョンやドライバに依存する)。Linuxでは、ifconfigコマンドが非推奨になった。ipコマンドへ移行することが推奨されている。Windows環境では、ifconfigではなく、ipconfigコマンドを参照して頂きたい。書式OSによって書式が異なる。以下ではmacOSとLinuxの場合を示す。)以下に挙げたMacとLinuxのコマンド引数では、幾つかの引数に共通する使い方を「※」を付けて示した。※がある引数では「先頭に-(ハイフン)を付けると無効」という意味になる。-LIPv6アドレスごとの生存時間も表示する-mインタフェースがサポートするメディア一覧も表示する-rインタフェースによってルーティング(転送)されたパケット数も表示するアドレスインタフェースに指定したアドレス(通常はIPアドレス)を設定する。ネットマスクも受け入れる。アドレスファミリ名は以下のようなプロトコル種別を指定する。指定可能な幾つかの主なパラメータを紹介するadd:aliasと同じalias:インタフェースに指定したアドレスを追加する。エイリアスのアドレスとなる。ビット長:IPv6におけるサブネットプレフィックスのビット長を指定するup:指定したインタフェースを起動するcreateネットワーク疑似デバイスとして作成するdestroy指定したネットワーク疑似デバイスを削除するvlan指定したVLAN疑似デバイスのタグ名を「VALNタグ名」に設定する。vlandevと必ず対にして用いるvlandev物理インタフェースのVLAN疑似デバイスを作成する。Protocol)に設定する。LACPとは複数の物理インタフェースを束ねて帯域幅を増やすためのプロトコル。先頭に-(ハイフン)を付けると削除の意味になるbondmodeリンクアグリゲーションとしてLACPを使用するか、単にスタティックとして設定するかを指定する。デフォルトはLACP-a存在するインタフェースごとのネットワーク設定を表示する-l存在するインタフェース名のみを表示する-d停止しているインタフェースだけを表示する-u起動しているインタフェースだけを表示する-v詳細モード。Protocol)やTunnel設定、ブリッジインタフェースの設定など膨大な機能が用意されている。多くの場合macOSではGUIからも設定可能。詳細はmanコマンドを参照してほしい。サイズ][[-]dynamic][up|down]オプションなし起動しているインタフェースごとのネットワーク設定を表示する-a存在するインタフェースごとのネットワーク設定を表示する-s-aオプションに比べて短いリストでインタフェース一覧を表示する-v詳細モードアドレスインタフェースに指定したアドレス(通常はIPアドレス)を設定する。アドレスファミリ名は以下のようなプロトコル種別を指定する。IPXddp:AppleTalkadd指定したIPv6アドレスをインタフェースへ追加するdel指定したIPv6アドレスをインタフェースから削除するbroadcast指定したIPアドレスをブロードキャストアドレスとして設定する。※pointopoint指定したIPアドレスとの間のみで通信を行う(ポイント間通信の設定)。※netmask指定したインタフェースが使用するサブネットマスクを設定するdstaddr指定したIPアドレスとの間のみで通信を行うよう設定する。IPv4トンネルのための相手先アドレスを指定するoutfill対向のホストの接続タイムアウトを指定するkeepaliveキープアライブ(接続持続のタイムアウト)を指定するhwインタフェースのハードウェアクラスとアドレスを指定する。※mem_startインタフェースドライバの共有メモリ利用アドレスを指定するio_addrインタフェースドライバのI/O開始アドレスを指定するirqインタフェースドライバの割り込み番号を指定するmediaインタフェースが使用するメディアの種類を指定する。※upインタフェースを起動(up)するdownインタフェースを停止(down)するネットワーク環境を確認するifconfigの第一の目的は、現在のネットワーク環境設定や状態を確認することだ。全ての設置済みのインタフェースを確認するには「-a」オプションを用いる。以下はLinuxでの例である。表示結果にある「(1)〜(14)」という部分は、説明のため実際の出力に追記したものだ。carrier:0ここでは3つのインタフェースが表示されている。「eth0」「eth1」「lo」だ。eth0とloは正常に稼働(UP)し、eth1は起動していない。eth0などそれぞれを「インタフェース名」と呼ぶ。設定時に指定するための名称である。対応するネットワークドライバが正常にロードされていれば、OSが自動的に認識し、「0」「1」などの番号をOSが自動的に決定して、「eth」などの後に追加する。Protocol)接続などの場合は「ppp」となる。これらのインタフェース名も環境によってさまざまな種類がある。loは「ローカルループバック」と呼ばれる特別な仮想インタフェースだ。eth0などとの違いはこうだ。eth0もloもホスト自身だが、eth0にはネットワークインタフェースの実体がある。loはOSのプロトコルスタックスタックが必ず提供することになっており、ネットワークインタフェースを全く設置していない場合にも、このloだけは存在する。した初期状態であっても仮想的にネットワークのテストなどに使えるように用意されているのだ。loのIPアドレスとして必ず127.0.0.1が割り当てられる。このIPアドレスを用いて外部と通信することはできない。例に挙げたeth0の表示内容を順に見てみよう。ここで表示されない項目は設定自体がされていないということを意味する。IPアドレスが表示されていなければ、IPアドレスの設定がなんらかの問題で失敗しているということになる。接続されているネットワークメディアの種類だ。ほとんどの場合「Ethernet」と表示されるだろう。Ring」など、他の方式もあったものの現在ではほぼ使われていない。ローカルループバックではその旨が表示される。MACアドレス物理アドレスとも呼ばれる。ネットワークインタフェース固有の番号だ。ネットワークインタフェースに対して通常、出荷時に設定されており、後から変更することはできない。IPv4アドレスホストのIPv4アドレス。後述する方法で静的に独自のIPアドレスが設定されているか、またはDHCP機能によって割り振られたIPアドレスが表示されているはずだ。ブロードキャストアドレスブロードキャストのためのアドレスだ。サブネットマスクとは別にブロードキャストアドレスを設定することもできる。サブネットマスクホストが使用するサブネットマスク。DHCP機能により自動的に設定されている場合もある。IPv6アドレスホストにIPv6アドレスが振られている場合にはここに表示される。スコープの種類ごとに複数表示される場合もある。インタフェースの起動(UP)、停止(DOWN)状態インタフェースの設定が正しくても、起動状態でないと動作しない。UPと表示されていれば、現在正常に稼働している。ブロードキャストの使用ブロードキャストが利用できる場合表示される。ほとんどの場合は有効となっているはずだ。先ほどの起動、停止とニュアンスは似ているものの、内容は異なる。ドライバが正常にロードされて起動が可能な場合に表示される。マルチキャストの有効、無効マルチキャストとは一対多の通信モードを意味する。このマルチキャストが有効になっているかどうかを示す。MTUサイズこのインタフェースでのMTUサイズを示す。メトリックこのインタフェースにおけるメトリック値を示す。メトリックは基礎値であり、通常は1。Live)値を減算するためのホップ数を反映している。インタフェースの統計値このブロックはインタフェースにおける現在までの統計値を示す。「RX」は受信パケット、「TX」は送信パケットである。順に送受信パケット数、エラーパケット数、破棄パケット数、オーバーランパケット(処理が間に合わなかったパケット)数などを示す。「collisions」はイーサネットレベルでの衝突検知回数を、「txqueuelen」はパケットの送信キューのサイズを示している。受信パケットと送信パケットの統計バイト数を表示する。設定はインタフェースごとになるため、以下のようにインタフェース名(例ではeth0)を必ず指定しなければならない。インタフェース名に引き続くオプションが設定内容だ。ブロードキャストアドレスDHCP機能などを使用しない限り、静的な「IPアドレス」の設定が必要だ。引数として単に与えられた場合はインタフェースに設定するIPアドレスを意味する。加えて「サブネットマスク」「ブロードキャストアドレス」の設定も最低限必要となる。それぞれ、接続されるネットワークによって、管理者が値を決められているはずだ。設定値には注意を払おう。設定値を間違えると、ネットワークへ接続できなかったり、無駄な通信によってネットワークに甚大な被害を与えたりすることもあるので慎重に。IPアドレス、サブネットマスク、ブロードキャストアドレスはそれぞれ個別に設定できる。通常はIPアドレスを設定した時点でインタフェースは起動状態に移行する。インタフェースを一時的に停止して作業を行いたいなどの場合もあるだろう。その場合には、いつでもインタフェースを停止、起動できる。(停止)MTUを変更するMTUとは、イーサネットフレーム(パケット)のデータ部分の最大サイズのことだ。このデータ部分にはIPパケットを(必要であれば)分割格納する。MTU値がフレームを転送するホストやルーターで大きく異なっているとサイズ合わせのためにIPパケットの分割と結合が多発し、著しく性能が低下することもある。MTUには最大1500までの数値を設定できる。MTULinuxのデフォルト値は1500バイト。これで問題にならないことが多いものの、ISPやルーターのメーカーから別途指示がある場合には、mtuオプションで変更してもよいだろう。IPエイリアス物理的には1つのインタフェースに、複数のIPアドレスを割り当てるのがIPエイリアスだ。仮想的に複数のインタフェース(IPアドレス)を利用可能になる。冗長構成を組んでいる場合、片方が障害を起こした際、バックアップ機にこのエイリアスを設定して処理を引き継がせる、といった利用法に適する。IPエイリアスの指定IPエイリアスのためのインタフェース名は、メインとなるインタフェース名の右辺に「:(コロン)」とエイリアス番号(通常は0から始まるそのインタフェースにおけるエイリアスの連番)を指定する。「サブネットアドレス」「ブロードキャストアドレス」も通常通り設定できる。メインとなるインタフェース自身のIPアドレスなどが既に設定されていなくてはならない。IPエイリアスを追加した例を示す。メインとなるeth0以外に、エイリアスとして設定された仮想的なインタフェースが「eth0:0」として追加されているのが分かるだろう。-a」を実行し、各インタフェースで「UP」「RUNNING」が表示されているかどうかを確認しよう。説明したように、RUNNINGはドライバ自体の動作を、UPは起動済みであることを意味している。up」を実行してみよう。障害の原因は次のように幾つか考えられる。正しいドライバがインストールされていないこの場合は、各ベンダーに応じたドライバを手動で設定する正しいIPアドレスなどが与えられていないこの場合は手動で設定するか、ブート時の初期設定ファイルとなる「/etc/network/interfaces」ファイル(Ubuntuの場合)を確認する。-a」で表示されるインタフェースごとの統計値が参考になる。パケット数が0から増えているかどうか。ここが0であれば、外部とそもそも通信できていないことになるので、ハードウェア障害なども疑った方がよい。エラーパケット数、破棄パケット数などにも要注意だ。LAN環境であれば、ほぼ0程度で抑えられているはずだ。ないなら、通信品質が劣っていることになる。目立って大きい場合には、同じセグメント上の他のホストではどうか、ルーターなどの問題がないかどうか、ネットワーク占有率が高くないかどうかなど、ネットワーク全体での問題も調査してみよう。●アドレスの間違いはばかにできない経験上、「通信できない」といった問題ではIPアドレスやサブネットマスクの間違いが意外に多い。間違いないはずと思い込んでいる部分が最も危険である。IPアドレスの重複、打ち間違いはもちろん、サブネットマスクの間違いは自身の問題だけではなく、他のホストやネットワークにも迷惑を掛けることになる。逆に他のホストの設定ミスによってそのホストに接続できないなども考えられる。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。