ifconfig
〜(IP)ネットワーク環境の確認/設定を行う


加地眞也
2001/9/29

 目的と用途

 ifconfigコマンドは、おもにUNIX系OSやLinuxで使用されるネットワーク環境の状態確認/設定のためのコマンドだ。ホストに設置されたNIC(ネットワーク・インターフェイス)に対し、IPアドレスやサブネットマスク、ブロードキャストアドレス、そのほかの基本的な設定を行うとともに、現在の設定の確認もできる。

 IP(IPv4)のための機能が中心だが、IPXやIPv6のための設定機能もある(OSバージョンやドライバに依存する)。

 書式

●Linuxの場合
ifconfig[ -a] インターフェイス名[[アドレスファミリ名] アドレス][ add IPv6アドレス[ /プレフィックスサイズ]][ del IPv6アドレス[ /プレフィックスサイズ]][ [-]broadcast[ ブロードキャストアドレス]][ [-]pointopoint[ 相手先アドレス]][ netmask ネットマスクアドレス][ dstaddr 相手先アドレス][ tunnel 相手先アドレス][ hw クラス アドレス][ metric メトリック値][ mtu MTU値][ [-]trailers][ [-]arp][ [-]allmulti][ multicast][ [-]promisc][ mem_start アドレス][ io_addr アドレス][ irq 割り込み番号][ media タイプ][ txqueuelen サイズ][ up|down]
オプションなし
起動しているインターフェイスごとのネットワーク設定を表示する
-a
存在するインターフェイスごとのネットワーク設定を表示する
アドレス
インターフェイスに特定のアドレス(通常はIPアドレス)を設定する。アドレスファミリ名は以下のようなプロトコル種別を指定する。デフォルトは「inet」
inet:IPv4
inet6:IPv6
ipx:Novell IPX
ddp:AppleTalk など
add
指定したIPv6アドレスをインターフェイスへ追加する
del
指定したIPv6アドレスをインターフェイスから削除する
broadcast
指定したIPアドレスをブロードキャストアドレスとして設定する。アドレスを省略した場合、ブロードキャストの利用のみを指定したことになる。先頭に「-(ハイフン)」を付けると無効の意味になる
pointopoint
指定したIPアドレスとの間のみで通信を行う(ポイント間通信の設定)。PLIP(Parallel Line Interface Protocol)などで使用する。先頭に「-(ハイフン)」を付けると無効の意味になる
netmask
このインターフェイスが使用するサプネットマスクを設定する
dstaddr
指定したIPアドレスとの間のみで通信を行うことを設定するが、pointopointで行うように現在では置き換えられている
tunnel
IPv6 over IPv4トンネルのための相手先アドレスを指定する
hw
インターフェイスのハードウェアクラスとアドレスを指定する。ただしドライバがサポートしない場合もある
metric
インターフェイスのメトリックを指定する
mtu
インターフェイスのMTU(Maximum Transfer Unit:Ethernetフレームの最大転送サイズ)を指定する
trailers
Ethernetフレームのチェックサムの評価を行う。先頭に「-(ハイフン)」を付けると無効の意味になる
arp
ARPの利用を有効にする。先頭に「-(ハイフン)」を付けると無効の意味になる
allmulti
すべてのマルチキャストパケットの受信を有効にする。先頭に「-(ハイフン)を付けると無効の意味になる
multicast
マルチキャストの利用を有効にする
promisc
自身向け以外のすべてのパケットの受信を有効にする。先頭に「-(ハイフン)」を付けると無効の意味になる
mem_start
インターフェイスドライバの共有メモリ利用アドレスを指定する
io_addr
インターフェイスドライバのI/O開始アドレスを指定する
irq
インターフェイスドライバの割り込み番号を指定する
media
インターフェイスが使用するメディアの種類を指定する。「auto(自動認識)」「10baseT」「10base2」などが指定できる
txqueuelen
パケットの送信キューのサイズを指定する
up|down
インターフェイスの起動(up)/停止(down)を指示する


 使用方法

ネットワーク環境を確認する

 ifconfigの第一の目的は、現在のネットワークの設定状態を確認することだ。すべての設置済みのインターフェイスを確認するには「-a」オプションを用いる。

[root@host1 ~]# ifconfig -a
eth0      Link encap:Ethernet(1)  HWaddr 00:80:90:44:08:11(2)
          inet addr:192.168.1.11(3)  Bcast:192.168.1.255(4)  Mask:255.255.255.0(5)
          UP(6) BROADCAST(7) RUNNING(8) MULTICAST(9)  MTU:1500(10)  Metric:1(11)
          RX packets:583312 errors:0 dropped:0 overruns:0 frame:0      <--+--(12)
          TX packets:28344 errors:0 dropped:0 overruns:0 carrier:0        |
          collisions:0 txqueuelen:100                                  <--+
          Interrupt:3(13) Base address:0x100(14)

eth1      Link encap:Ethernet  HWaddr 00:80:00:48:AA:88
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          Interrupt:5 Base address:0x120

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:3924  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

 ここでは、3つのインターフェイスの結果が表示されている。「eth0」「eth1」「lo」がそれだ。eth0とloは正常に稼動し、eth1は起動されていない。それぞれは「インターフェイス名」と呼ばれ、設定時に指定するための名称である。対応するネットワーク・ドライバが正常にロードされていれば、OSが自動的に認識してくれる。ethの後に続く「0」「1」の番号は認識した順に割り振られる。またethはイーサネットの場合の例で、PPP接続などの場合は「ppp」となる。これらの先頭文字列も、OSや環境しだいでは別の名称に変更されている場合がある。

 loは「ローカルループバック」と呼ばれる特別な仮想インターフェイスだ。ホスト自身を示しており、OSのプロトコルスタックが必ず提供することになっている。従って、まったくNICを設置していない場合でも、このloだけは存在する。そうした初期状態であっても、仮想的にネットワークのテストなどに使えるように用意されているのだ。また、対応するIPアドレスは必ず127.0.0.1が割り当てられる。当然、このIPアドレスを用いて外部と通信することはできない。

 ではeth0を元に、実際の表示内容を見ていこう。なお、表示されない項目は設定自体がなされていないということを意味する。例えばIPアドレスが表示されていなければ、IPアドレスの設定が何らかの問題で失敗しているということになる。

(1) リンクメディアの種類
 接続されているネットワークメディアの種類だ。ほとんどの場合、「Ethernet」と表示されるだろう。ほかに「Token Ring」などの種類もある。ローカルループバックでは、その旨の内容が表示される。

(2) MACアドレス
 物理アドレスとも呼ばれる、NIC固有の番号だ。通常、NICに対して出荷時に設定がなされており、変更することはできない。

(3) IPアドレス
 ホストのIPアドレス。後述する方法で静的に独自のIPアドレスが設定されているか、DHCP機能によって割り振られたIPアドレスが表示されているはずだ。

(4) ブロードキャストアドレス
 ブロードキャストのためのアドレスだ。サブネットマスクとは別に、ブロードキャストアドレスを設定することもできる。

(5) サブネットマスク
 ホストが使用するサブネットマスク。DHCP機能により、自動的に設定されている場合もある。

(6) インターフェイスの起動状態
 インターフェイスは正しい設定とともに、起動状態でないと動作することはない。 「UP」は現在正常に稼働していることを示す。

(7) ブロードキャストの使用
 ブロードキャストが利用できるときに表示される。ほとんどの場合は有効となっているはずだ。

(8) インターフェイス準備の状態
 ニュアンスは似ているが、起動/停止とは異なる。「RUNNING」はドライバが正 常にロードされメモリへのリソース割り当てが行われている状態を示す。起動前であれば起動準備が整っていると捉えられる。

(9) マルチキャストの有効/無効
 マルチキャストと呼ばれる一対多の通信モードが有効になっているかどうかを示す。

(10) MTU(Maximum Transfer Unit)サイズ
 このインターフェイスでのMTUを示す。単位はバイト。

(11) メトリック
 このインターフェイスにおけるメトリック値を示す。メトリックは、ルーティングするIPバケットのTTL(Time To Live)値を減算するためのホップ数を反映する基礎値だ。通常は1となる。

(12) インターフェイスの統計値
 このブロックはインターフェイスにおける現在までの統計値を示す。「RX」は受信パケット、「TX」は送信パケットである。順に送受信パケット数、エラーパケット数、破棄パケット数、オーバーランパケット(処理が間に合わなかったパケット)数などを示す。また、「collisions」はイーサネットレベルでの衝突検知回数を、「txqueuelen」はパケットの送信キューのサイズを示している。

(13) インターフェイスが使用する割り込み番号

(14) インターフェイスドライバのI/O開始アドレス


基本的なネットワーク設定方法

●使用例1:IPアドレスの設定

ifconfig eth0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
               IPアドレス     サブネットマスク   ブロードキャストアドレス

 設定はインターフェイスごととなるので、インターフェイス名の指定が必須になる。インターフェイス名に続くオプションにより設定が行える。DHCP機能などを使用しない限り、静的なIPアドレスの設定は必須だ。引数として単に与えられた場合は、インターフェイスに設定するIPアドレスを意味する。また、最低限の設定としては、サブネットマスク、ブロードキャストアドレスの設定も必要だ。それぞれ、接続されるネットワークによって管理者により取り決められているはずなので、設定値には注意を払おう。設定値を間違えると、ネットワークへ接続できなかったり、無駄な通信によりネットワークに甚大な被害を与えることがある。

 なお、「IPアドレス」「サブネットマスク」「ブロードキャストアドレス」はそれぞれ個別に設定することもできる。

●使用例2:インターフェイスの起動/停止

(起動)
ifconfig eth0 up

(停止)
ifconfig eth0 down

 通常はIPアドレスを設定した時点で、インターフェイスは起動状態に移行する。ただし、インターフェイスを一時的に停止して作業を行いたい場合もあるだろう。その際には任意にインターフェイスの起動/停止も行える。

●使用例3:MTUを変更する

ifconfig eth0 mtu 1468
                MTU

 最近のブロードバンド環境では、MTUの変更を必要とする場合もある。MTUとは、イーサネットフレーム(パケット)のデータ部分の最大サイズのことだ。このデータ部分にはIPパケットを(必要であれば)分割格納するのだが、フレームを転送するホストやルータでMTU値が大きく異なっていると、サイズ合わせのためにIPパケットの分割と結合が多発し、著しく性能を低下させることもある。MTUには、最大1500までの数値を設定できる。

 Linuxではデフォルトで1500バイトとなっており、問題にならないことも多いが、ISPやルータの販売メーカーから別途指示がある場合には、「mtu」オプションで変更してみてもよいだろう。

●使用例4:IPエイリアスの指定

ifconfig eth0:0  192.168.1.12
     IP エイリアスの指定

 物理的に1つのインターフェイスに、複数のIPアドレスを割り当てるのがIPエイリアスだ。この設定により、仮想的に複数のインターフェイス(IPアドレス)を利用可能になる。必要になることは少ないだろうが、例えばISP業者のように、1台のサーバマシン上で複数のWebサーバを起動して、それぞれ別のIPアドレスを割り当ててサービスを提供する場合などに利用される。

 IPエイリアスのためのインターフェイス名は、メインとなるインターフェイス名の右辺に「:(コロン)」とエイリアス番号(通常は0から始まるそのインターフェイスにおけるエイリアスの連番)を指定する。「サブネットアドレス」「ブロードキャストアドレス」についても、通常通り設定できる。ただし、メインとなるインターフェイス自身に対して、事前にIPアドレスなどの設定が完了していなければならない。

eth0      Link encap:Ethernet  HWaddr 00:80:90:44:08:11
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
          RX packets:621301 errors:0 dropped:0 overruns:0 frame:0
          TX packets:31689 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:2000
          Interrupt:3 Base address:0x100

eth0:0    Link encap:Ethernet  HWaddr 00:80:90:44:08:11
          inet addr:192.168.1.12  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
          Interrupt:3 Base address:0x100
IPエイリアスを追加した例。「eth0:0」が追加されたエイリアスのエントリーだ

 メインとなるeth0以外に、エイリアスとして設定された仮想的なインターフェイスが「eth0:0」として追加されているのが分かるだろう。最新のカーネル(バイナリ配布)であればデフォルトで利用できるようだが、バージョンによっては「ip_alias.o」モジュールをあらかじめロードしておく必要がある。

ネットワークが使えない! その時は

●インターフェイスは正常に動作しているか?
 インターフェイスが正常に動作しているかどうかは、「ifconfig -a」などで、各インターフェイスの「UP」「RUNNING」が表示されているかどうかを確認しよう。前述のように、「RUNNING」はドライバ自体の動作を、「UP」は起動を意味している。「RUNNING」のみ表示されている場合には、「ifconfig インターフェイス名 up」を実行してみよう。こういった障害が発生した場合には、

  • 正しいドライバーがインストールされていない → 各ベンダに応じたドライバを手動で設定する
  • 正しいIPアドレスなどが与えられていない → 手動で設定するか、ブート時の読み込みファイルとなる「/etc/sysconfig/network-scripts/ifcfg-eth<i>n</i>」ファイルをチェックする
  • インターフェイスのハードウェア障害

などの原因が考えられる。

●統計値を確認してみる
 「インターフェイスが動作しているのに外部と通信できない。どうもネットワークのレスポンスが悪かったりエラーが頻発しているようだ」という場合には、「ifconfig -a」などで表示されるインターフェイスごとの統計値が参考になる。

 まず、パケット数が0より増えているかどうか。ここが0であれば、元々ネットワークと通信できていないことになるので、ハードウェア障害なども疑った方がいい。また、エラーパケット数、破棄パケット数なども要注意だ。ここでいくつか報告されているようなら、通信品質が劣っていることになる。特にLAN環境であれば、ほぼ0程度で抑えられているはずだ。目立って値が大きい場合には、同じセグメント上のほかのホストではどうか、ルータなどで問題がないかどうか、ネットワーク占有率が高くないかどうかなど、ネットワーク全体での問題も調査してみよう。

●IPアドレスの間違いは馬鹿にできない
 経験上、多くの「通信できない」といった問題では、IPアドレスやサブネットマスクの設定間違いといったケアレスミスが意外に多い。「間違いないはず」と思い込んでいる部分こそがもっとも危険なわけだ。

 IPアドレスの重複/打ち間違いのほか、サブネットマスクの間違いは、自身の問題だけでなく、ほかのホストやネットワーク全体にも迷惑をかけることになる。逆に、ほかのホストでの設定ミスによって、そのホストに対して接続できないトラブルなども考えられる。

記事更新記事中、使用方法の(6)と(8)に正確でない表現があったため、修正して更新しました。2003/6/3

関連記事
  ネットワークの設定は正しいか?
重要なのはIPアドレスとサブネットマスク
 

関連ネットワーク・コマンド/ツール
  ipconfig
〜Windowsのネットワーク設定を確認する
ifconfig
〜(IP)ネットワーク環境の確認/設定
 


ネットワークトラブル解決法
- 通信の疎通を確認 - TCP/UDPの状態
- 設定は正しいか? - DHCPの設定
- ルーティングの設定 - DNSの設定
- イーサネット通信確認  
ネットワークコマンド使い方
- ping - route
- traceroute - arp
- ipconfig - netstat
- ifconfig - nslookup


ツールを使ってネットワーク管理

 名前しか知らない後輩君がやってきた。彼によると、コマンドはすでに古くツールがクールだという。ならば教えてもらおうではないか

最終更新 2007/3/26

「Master of IP Network総合インデックス」

 

TechTargetジャパン

Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る
- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

第5回 Webサイトの目的を社内で共有する――他部署をうまく巻き込むには?
遠藤さんのプレゼンがいよいよ始まる。Webサイトのリニューアルプランに「ソーシャルメデ...

第2回 ヒートマップでLPO――ヒートマップの登場で“in-page web analytics”時代に突入したLPO
ヒートマップがWebサイト分析の現場に登場したことで、LPOは、“in-page web analytics”...

ダウンロードフリー! 「戦略リーダーとしてのマーケティング組織、CMO機能」(eBook版)
「ITmedia マーケティング」編集部では、過去の人気連載をeBook 形式に再編集した新シリ...