【実例付】routeコマンドの基本とオプションを完全マスター

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年2月)

✔このような方へ向けて書かれた記事となります

「routeコマンドでは何ができるのだろうか?」

「routeコマンドの使い方が知りたい」

「routeコマンドの実例が見てみたい」

✔当記事を通じてお伝えすること

  • routeコマンドの基礎知識
  • routeコマンドで表示された一覧の見方
  • routeコマンドのオプション一覧と実例

当記事では、コマンドの基本や使い方だけでなく、筆者が実際に使っている コマンドの実例と活用方法も公開しています。

created by Rinker
¥2,970 (2024/05/25 15:16:33時点 楽天市場調べ-詳細)

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

routeコマンドの基礎知識

routeの基礎知識をお伝えします。

実例を理解し、使いこなすには、基本が大切です。

  • routeコマンドとは?
  • routeコマンドの構成
  • routeコマンドを使う際の注意点

routeコマンドとは?

routeコマンドは、LinuxやMacOSなどUnix系のOS(オペレーティングシステム)において、ネットワークルーティングテーブルを表示・変更するために使用されるコマンドです。

このコマンドを使用することで、以下のようなことができます。

  • 現在のネットワークルーティングテーブルの内容を確認
  • 新しいルートを追加
  • 既存のルートを変更・削除

例えば、複数のネットワークインターフェース(ネットワークカードなど)を持つ場合に、どのインターフェースを通じて通信をおこなうかを指定できるのです。

使用方法は、ターミナル上でrouteコマンドを実行し、オプションや引数を指定します。

詳細な使用方法やオプションについては、man routeコマンドにより、マニュアルを確認することも可能です。

routeコマンドの構成

routeコマンドの基本的な構成は以下のとおりです。

route [add | del | change | append | replace | monitor] [ネットワークアドレス] [オプション]

  • add: ルートを追加
  • del: ルートを削除
  • change: ルートを変更
  • append: ルートを追加
  • replace: ルートを置き換え
  • monitor: ルートテーブルの変更を監視

具体例として、192.168.0.0/16へのルートを追加する場合は以下のようになります。

route add -net 192.168.0.0/16 gw 192.168.1.1

-net オプションに続いて追加するネットワークアドレスを指定し、gw オプションでゲートウェイのアドレスを指定しています。

routeコマンドを使う際の注意点

routeコマンドを使う際に気にしておくべき注意点をご紹介します。

なぜなら基本通りに書いていても、上手く表示されないことがあるからです。

  • ネットワークアドレスとゲートウェイのアドレスを正確に指定する
  • ネットワークアドレスには、サブネットマスクを含める必要がある
  • ルートの追加順で、優先度が決まる(より上に追加されたものから優先)
  • change コマンドを使用する場合、変更前と同じルートを指定する必要がある
  • monitor オプションを使用する場合、ルートテーブルの変更を監視するために、別のターミナルでコマンドを実行する

オプションの設定時に上手くいかないときは、これらの注意点を見てみると解決できる可能性があります。

routeコマンドで表示された一覧を徹底解説

routeコマンドを使うと以下のように表示されます。

$ route
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
default         _gateway        0.0.0.0         UG    600    0        0 wxx0013eff42ef4
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 wxx0013eff42ef4
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.11.0    0.0.0.0         255.255.255.0   U     600    0        0 wxx0013eff42ef4
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

各列の説明は以下のとおり。

  • Destination : 送信先ネットワークアドレス
  • Gateway : ゲートウェイのアドレス
  • Genmask : ネットマスク
  • Flags : ルートの属性
  • Metric : ルートのコスト
  • Ref : ルートの参照回数
  • Use : ルートの使用回数
  • Iface : ルートに関連するネットワークインターフェース

routeコマンドのオプション一覧

こちらではrouteコマンドで使えるオプションを解説します。

オプションを使いこなして、さまざまな処理をおこなえるようにしましょう

  • IPアドレスを数値で表示する:n
  • 詳細な出力を表示する:v
  • アドレスファミリを指定する:A
  • マルチパスルーティングを有効化する:M

IPアドレスを数値で表示する:n

nオプションを使うと、IPアドレスをホスト名でなく、数値で表示できます。

route -n

$ route -n
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
0.0.0.0         192.168.11.1    0.0.0.0         UG    600    0        0 wxx0013eff42ef4
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wxx0013eff42ef4
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.11.0    0.0.0.0         255.255.255.0   U     600    0        0 wxx0013eff42ef4
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

詳細な出力を表示する:v

vオプションでより詳細を出力できます。

route -v

$ route -v
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
default         _gateway        0.0.0.0         UG    600    0        0 wxx0013eff42ef4
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 wxx0013eff42ef4
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.11.0    0.0.0.0         255.255.255.0   U     600    0        0 wxx0013eff42ef4
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

ネットワークが単純な構成の場合、オプションなしと変わらないこともあります。

アドレスファミリを指定する:A

Aオプションを使って、アドレスファミリを指定できます。

アドレスファミリとは、IPv4やIPv6などの種類のこと。

以下はAオプションで、IPv6のルーティングテーブルを表示しています。

$ route -A inet6
カーネルIPv6 経路テーブル
Destination                    Next Hop                   Flag Met Ref Use If
ip6-localhost/128              [::]                       U    256 2     0 lo
2001:f70:3100:3800::/64        [::]                       U    600 1     0 wxx0013eff42ef4
fe80::/64                      [::]                       U    600 1     0 wxx0013eff42ef4
[::]/0                         _gateway                   UG   600 5     0 wxx0013eff42ef4
ip6-localhost/128              [::]                       Un   0   7     0 lo
yulikepython-HP-Desktop/128    [::]                       Un   0   5     0 wxx0013eff42ef4
yulikepython-HP-Desktop/128    [::]                       Un   0   2     0 wxx0013eff42ef4
yulikepython-HP-Desktop/128    [::]                       Un   0   4     0 wxx0013eff42ef4
ip6-mcastprefix/8              [::]                       U    256 5     0 wxx0013eff42ef4
[::]/0                         [::]                       !n   -1  1     0 lo

マルチパスルーティングを有効化する:M

Mオプションでマルチパスルーティングを有効化できます。

例としては以下のとおり。

route add -net 192.168.0.0/16 gw 192.168.1.1 -M

マルチパスルーティングとは、複数のネットワークインターフェースを使用することで、ネットワークのトラフィックを分散する技術のこと。

ひとつのネットワークインターフェースしか持っていない方は使用しません。

まとめ:routeコマンドを知っておくととても便利

当記事の内容をまとめます。

  • routeコマンドは、ネットワークルーティングテーブルを表示するもの
  • routeコマンドの一覧では、ゲートウェイやネットマスクなど、さまざまな情報が確認できる
  • routeコマンドのオプションを使うと、コマンドの幅が広がる

routeコマンドは、ネットワークの状況を確認したいときに使えるコマンド。

頻繁に使うわけではありませんが、知っておくととても便利です。

ぜひこれを機会に、いろいろと触ってみてください。

✔Linuxの主要コマンド37選

タイトルとURLをコピーしました