Linux / コマンド / ip - インターフェース・アドレス・ルーティングの状態と設定

ipはネットワークインターフェース、IP(Internet Protocol)アドレス、ルーティングおよび隣接テーブルを確認したり変更したりするiproute2ツールです。単に1つのアドレスを確認するコマンドではなく、Linuxのネットワーク状態を複数のオブジェクトに分けて管理します。

基本形式はip [オプション] オブジェクト コマンドです。linkはインターフェース自体、addressは割り当てられたIPアドレス、routeはパケットの次の経路、neighは同じリンク上の隣接情報を扱います。照会にはshowやgetを使い、add・del・setは実際のネットワークを変更します。

基本的な文法

ip [オプション] オブジェクト コマンド [引数]

インストールされている実装とオプションは、配布版によって異なる場合があります。man ipで現在のシステムの説明を確認してください。

使用例

インターフェースとアドレスの確認

デバイスのUP状態と割り当てられたIPv4・IPv6アドレスを一緒に確認します。

ip -br address show

ルーティングテーブルの確認

この形式では、既定でIPv4のmainルーティングテーブルを表示します。デフォルトルートや宛先ネットワークごとの出口を確認します。IPv6はip -6 route showで調べます。ポリシールーティングを使う環境では、ルールや別のテーブルも確認する必要があります。

ip route show

特定の宛先へのルート計算

指定した宛先に対し、カーネルが選ぶ経路、出口インターフェース、送信元アドレスなどを調べます。このgetは宛先へ試験パケットを送る操作ではなく、応答が得られることまでは確認できません。

ip route get 192.0.2.1

インターフェースの状態とアドレスを読み取る方法

ip -brief addressは各インターフェースの名前、状態、割り当てられたアドレスを1行ずつ表示します。次の例の192.0.2.10は文書用に予約されたIPv4アドレスであり、実際の設定で使用した値ではありません。

ip -brief address

例の出力:

lo      UNKNOWN  127.0.0.1/8 ::1/128
eth0    UP       192.0.2.10/24

UPはインターフェースの状態で、インターネットへの疎通を保証しません。ループバックのUNKNOWNも、それだけで故障を意味しません。/24はIPv4アドレスのネットワークプレフィックス長です。ルートを確認した後、許可された宛先へのpingによる応答確認と、digによるDNSレコードの照会を分けて行います。DNSは名前をアドレスなどに対応付ける仕組みで、名前解決の成功と通信の成功は別です。

ネットワーク問題はip -brief addressでアドレス、ip routeでデフォルトルート、resolvectlまたはDNSツールで名前解決を順番に分けて確認すると原因を絞り込みやすくなります。アドレスだけ正常でもデフォルトゲートウェイがなければ外部に接続できないことがあります。

主なオプションと形式

オプション・形式 説明
link show ネットワークインターフェースとリンク状態を表示します。
address show インターフェースに設定されたIPアドレスを表示します。
route show ルーティングテーブルを表示します。
neigh show IPv4のARP(Address Resolution Protocol)やIPv6のNDP(Neighbor Discovery Protocol)による隣接情報を表示します。
-br サポートされている照会コマンドを簡単な表形式で出力します。
-4 / -6 IPv4 または IPv6 項目に限定します。

使用する際の注意点

リモートサーバーで ip link set ... down やアドレス・デフォルトルートの変更を実行すると、接続が即座に切れる可能性があります。現在の設定を記録し、コンソールアクセスおよび復旧計画を準備してください。ipコマンドで設定を変更した場合、ネットワーク管理サービスが再設定したり再起動時に消える可能性があるので、永続的な設定はディストリビューションの管理方法に従います。

よくある質問

ip address と ip route は何が違うのですか?

ip address はインターフェースのアドレスを表示し、ip route は宛先までパケットを送る経路と次のホップを表示します。

公式ドキュメント

オプションの正確な動作や実装ごとの違いは、ip 関連公式ドキュメントで確認できます。