【 ip 】コマンド(基礎編3)――ルーティングテーブルを管理する:Linux基本コマンドTips(148)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ルーティングテーブルを管理する「ip」コマンドです。
本連載は、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
(ローカルテーブルを表示)
特定の宛先へのルートを表示する
「ip route get IPアドレス」で、特定のIPアドレス(宛先)への送信ルートを表示します(画面2)。
コマンド実行例
ip route get IPアドレス
(指定したIPアドレスへのルートを表示する)(画面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 アドレス/サブネット
(ルーティングテーブルからエントリを削除する)
筆者紹介
西村 めぐみ(にしむら めぐみ)
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.