【 ip 】コマンド(基礎編3)――ルーティングテーブルを管理するLinux基本コマンドTips(148)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ルーティングテーブルを管理する「ip」コマンドです。

» 2017年09月29日 05時00分 公開
[西村めぐみ@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ルーティングテーブルを管理する「ip」コマンドです。

ipコマンドとは?

 「ip」コマンドは、ネットワークデバイスやルーティング、ポリシーなどの表示と変更を行うコマンドです。従来は、ifconfigコマンドやnetstatコマンド、routeコマンドなど、net-toolsパッケージに収録されているコマンド群を使用していました。現在は、いずれもipコマンドへの移行が進んでいます。

 「ip addr」(連載第146回)や「ip link」(第147回)のように、「オブジェクト」と組み合わせて使用します。今回はネットワークの経路情報(ルーティングテーブル)の表示や変更を行う「ip route」を取り上げます。従来はrouteコマンドで表示や変更を行っていました。



ip routeコマンドの書式

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

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




ipコマンドのオブジェクト

オブジェクト 別名(省略形) 意味
link l ネットワークデバイス
addr a、address ネットワークデバイスのIPアドレス
addrlabel addrl アドレスラベル
route r ルーティングテーブルのエントリ
rule rul ルーティングポリシーデータベースに登録されているルール
neigh n、neighbour 近傍キャッシュエントリ(ARPまたはNDISCキャッシュエントリ)
ntable nt、ntb 近傍キャッシュの管理テーブル
tunnel t IPトンネル
tuntap tu トンネルデバイス
maddr m、ma、mad マルチキャストアドレス
mroute mr マルチキャストルーティングのキャッシュエントリ
mrule mru マルチキャストルーティングポリシーデータベースに登録されているルール
monitor mon ネットリンクメッセージの監視
xfrm x、xf IPsecポリシー
netns net ネットワーク名前空間
l2tp l2 L2TPv3(レイヤー2トンネリングプロトコル)
tcp_metrics tcp_m、tcp_metrics、tcpm TCPメトリック
token tok トークン

ipコマンドの主なオプション

短いオプション 長いオプション 意味
-f プロトコル -family プロトコル 使用するプロトコルファミリーをinet、inet6、bridge、ipx、dnet、linkから指定する
-4 IPv4を使用(-family inet相当)
-6 IPv6を使用(-family inet6相当)
-B ブリッジを使用(-family bridge相当)
-D DECnetを使用(-family decnet相当)
-I IPXを使用(-family ipx相当)
-0 データリンクプロトコルを使用(-family link相当)
-l 回数 -loops 回数 「ip addr flush」の試行回数(デフォルトは10、0を指定すると全てのアドレスが削除されるまで実行)
-b ファイル -batch ファイル ファイルからコマンドを読み込む
-force バッチモード(-bオプション使用時)、エラーで停止しない
-s -stats、-statistics 情報を詳しく表示する
-o -oneline 出力を1行にする(改行が"\"に置き換えられる)
-r -resolve アドレスの代わりにDNS名を表示する

ip routeの主なサブコマンド

コマンド 意味
add ルーティングテーブルにエントリを追加する
change エントリを変更する
replace エントリを変更または追加する
del エントリを削除する
list、show 設定されているルーティングテーブルを表示する(デフォルト)
get 指定した宛先へのルートを表示する
save 設定を保存する(バイナリで出力されるのでリダイレクトで保存する)
flush ルーティングテーブルのキャッシュ情報を消去する
help 使い方(「ip route help」でip routeの使い方を表示)


ルーティングテーブルを表示する

 「ip route」または「ip r」でルーティングテーブルの内容を表示します(画面1)。サブコマンドを指定していないため、デフォルトのサブコマンドであるshowを実行しています。「route」部分は「r」と指定することができます。

 Linuxではルーティングテーブルを複数持つことができます。ip routeではデフォルトでメインテーブルの内容を表示します。テーブルを指定したい場合は、「table」で指定します。この場合はshowコマンドを省略できないので「ip route show table local」のように指定します。

コマンド実行例

ip route

(ルーティングテーブルを表示)

ip route show table main

(メインテーブルを表示、デフォルト設定)(画面1

ip route show table local

(ローカルテーブルを表示)


画面1 画面1 ルーティングテーブルを表示したところ


特定の宛先へのルートを表示する

 「ip route get IPアドレス」で、特定のIPアドレス(宛先)への送信ルートを表示します(画面2)。

コマンド実行例

ip route get IPアドレス

(指定したIPアドレスへのルートを表示する)(画面2


画面2 画面2 指定した宛先(IPアドレス)へのルートを表示したところ 216.58.197.195へ送るパケットは192.168.2.1(ゲートウェイ)を通って、enp0s3インタフェースから送信されることが分かる


ルーティングテーブルにエントリを追加、削除する

 ルーティングテーブルにエントリを追加するには「ip route add」、削除するには「ip route del」を使います(画面3)。いずれもroot権限が必要です(連載第68回)。

コマンド実行例

ip route add アドレス/サブネット via ゲートウェイ dev デバイス名

(ルーティングテーブルにエントリを追加する)(画面3

ip route del アドレス/サブネット via ゲートウェイ dev デバイス名

(ルーティングテーブルからエントリを削除する)

ip route del アドレス/サブネット

(ルーティングテーブルからエントリを削除する)


画面3 画面3 ルーティングテーブルにエントリ(192.168.1.0/24)を追加したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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