ネットワークデバイスを設定/状態確認するには? ifconfigコマンドネットワーク管理の基本Tips

Linuxでは、通信に利用するインターフェースは「デバイス」としてシステムに認識されています。設定されているIPアドレスを調べたいとき、IPアドレスを手動設定したいときには、「ifconfig」コマンドを利用すると効率的に作業できます。

» 2015年01月20日 16時40分 公開
[海上忍@IT]

バックナンバー

連載バックナンバー

 本連載では、ネットワーク管理の基本コマンドを順を追って紹介していきます。基本書式と用法、主要なオプション、用例サンプルを示しますので、manやhelp代わりに通読し、各コマンドでできることを順次おさらいしてみてください。今回は、ネットワークデバイスに関連する情報を扱うifconfigコマンドです。

ifconfigコマンドの書式

ifconfig [ネットワークデバイス] [オプション]

※[ ]は省略可能な引数を示しています



ifconfigコマンドとは?

 ローカルホストに設置された有線/無線ネットワークデバイスの状態確認、および設定変更と起動/停止を行うコマンドです。状態確認は一般ユーザーの権限で利用できますが、設定変更と起動/停止には管理者権限が必要です。

 具体的な用途としては、DHCPサーバーから割り当てられたIPアドレスの確認、IPアドレスの手動設定、サブネットマスクやブロードキャストアドレスの設定、ネットワークデバイスの有効化/無効化が挙げられます。ただし、設定変更には管理者権限が必要となるため、rootでの作業またはsudoを利用した管理者権限での実行が必要になります。

 なお、ifconfigは「net-tools」パッケージに収録されています。以前より非推奨とされてきましたが、「Red Hat Enterprise Linux 7」以降は標準インストールされなくなりました(現在推奨されている同等の機能を持つコマンドは「ip」です)。

 必要な場合は、以下の通り、yumコマンドを実行してインストールします。

$ sudo yum install net-tools

 「ip」コマンドはifconfigの他、netstatやarp、routeといったnet-toolsパッケージ収録のコマンド群を包括する機能を持っており、代替として利用できるだけではなく、機能も豊富です。ipコマンドについては別途紹介する予定ですが、まずは基本となるifconfigの使い方を押さえておきましょう。

書式解説

 引数/オプションを指定せずコマンド名だけを実行すると、有効なネットワークデバイス全てに関する情報を表示します。「-a」オプションを指定すると、停止されているものも含め、全てのネットワークデバイスが対象となります。

 ネットワークデバイスには伝統的な命名ルールがあり、通常Ethernetカードには「eth○」(○部分は、「eth0」のようにゼロから始まる数値)、ホスト自身には「lo」(ローカルループバック)と付けられます。近年普及した無線LANデバイスは「wlan○」とされることが一般的です。

ネットワークデバイスの用語と意味

表1 ネットワークデバイスに表示される用語の意味
broadcast ブロードキャストアドレス
ether MACアドレス
flags 現在関連付けられている状態フラグ(先頭はフラグを数値化したもの)
inet IPアドレス(IPv4)
inet6 IPアドレス(IPv6)
mtu MTU値
netmask サブネットマスク
prefixlen プレフィックス長
scopeid スコープID
txqueuelen パケットの送信キュー
RX 受信パケット数(packetsは受信した総数、errorsはエラーとなった数、droppedは破棄した数、overrunsは遅滞した数、frameは指定フレームを超過した数)
TX 送信パケット数(RXのものにくわえ、carrierがキャリア数、collisionが衝突を検知した数)

主なオプション

 ifconfigコマンドの主要なオプションは次の通りです。

表2 主なオプション
-a 全てのインターフェースの情報を表示する
-s 指定したインターフェースの統計情報を表示する
up 指定したインターフェースを起動する
down 指定したインターフェースを停止する

ネットワークデバイスのIPアドレスを確認するには?

 DHCPサーバーが稼働している環境では、ホストがネットワークに接続したとき、あるいはリース期限が到来したタイミングでネットワークデバイスに対しIPアドレスが貸し与えられるため、常に同じIPアドレスとはかぎりません。現在作業しているホストに貸与されているIPアドレスを確認するときには、「eth0」などのネットワークデバイス名を引数として与え、ifconfigコマンドを実行します。IPv4のアドレスは「inet」、IPv6のアドレスは「inet6」に表示されます。

$  ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.12.10  netmask 255.255.255.0  broadcast 192.168.12.255
        inet6 fe10::11c:12fc:fe9d:b7bb  prefixlen 64  scopeid 0x20<link>
        ether 00:1c:42:5d:a7:bb  txqueuelen 1000  (Ethernet)
        RX packets 284135  bytes 167737894 (159.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 41962  bytes 3117579 (2.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

IPアドレスを一時的に変更するには?

 ネットワークデバイスに固定のIPアドレスを設定するには、システム起動時に実行されるスクリプト(/etc/sysconfig/network-scripts/ifcfg-○○○)に記述することがオーソドックスな方法です。ifconfigコマンドを利用すれば、一時的に任意のIPアドレスを設定できますが、操作には管理者権限が必要です。下記サンプルではsudoを使っています。

$ sudo ifconfig eth0 192.168.12.11

Ethernetフレームの最大転送サイズ(MTU)を変更するには?

 Ethernet経由でインターネットに接続する場合、利用する環境によってはMTU(Maximum Transfer Unit、Ethernetフレームの最大転送サイズ)に注意を払う必要があります。

 例えば、BフレッツなどPPPoE網を利用する場合、PPPoEのヘッダー分だけMTUの値(Ethernetの初期値は1500バイト)を小さく設定しなければ、複数のIPパケットに分割され(フラグメンテーション)、効率的な転送ができないために通信速度低下につながります。

 そのような場合には、以下に示す要領でifconfigコマンドを実行すると、EthernetカードのMTU値を変更できます(管理者権限が必要)。なお、ルーターを経由してインターネットに接続する場合は、PPPoEヘッダーを考慮する必要がないため、MTUの変更は必要ありません。

$ sudo ifconfig eth0 mtu 1454
Password:
$ ifconfig eth0 | grep -i mtu
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1454

「ネットワーク管理の基本Tips」バックナンバー

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。