【Linux】route コマンドが非推奨になった理由

Linux

どーも!marusukeです!

route コマンドが非推奨になった理由をついてです!

route コマンドが非推奨になった理由

route コマンドは、Linux におけるネットワークルーティングの管理に長年使用されてきましたが、現在は 非推奨 となり、代わりに ip route コマンド(ip コマンドの一部)が推奨されています

その理由は、以下の5つにまとめられます

1. route は古い net-tools パッケージに依存している

  • route コマンドは、net-tools パッケージ に含まれており、これは 非推奨 となっています
  • net-tools には ifconfignetstat などの 古いネットワーク管理コマンド も含まれています
  • これらのコマンドは IPv6 のサポートが不十分 であり、新しいカーネル機能に適応しにくいため、iproute2 パッケージの ip コマンドへ移行が推奨されています

2. ip route コマンドの方が機能が豊富で柔軟

  • ip routeIPv4 および IPv6 の両方をネイティブにサポート している
  • ip route は、マルチルート(複数のゲートウェイ)、ポリシールーティング、トラフィック制御など、より高度な機能を提供する
  • route では 詳細なルート情報の表示や設定が難しい が、ip route なら簡単に確認できる

例:route vs ip route の比較

機能routeip route
ルートの表示route -nip route show
ルートの追加route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1ip route add 192.168.1.0/24 via 192.168.1.1
ルートの削除route del -net 192.168.1.0ip route del 192.168.1.0/24
IPv6対応❌ 非対応または制限あり✅ 完全対応
マルチルート管理❌ 不可✅ 可能

3. route はカーネルとの統合が非効率

  • route は、カーネルのネットワークスタックと直接やりとりするのではなく、古い ioctl システムコール を使用する
  • ip route は、netlink を使用してカーネルと通信し、より効率的かつ拡張性のある設計になっている

ip route のメリット

  • netlink インターフェースを使用 → より速く、正確で、スクリプトとの親和性が高い
  • カーネルとの通信が最適化されており、パフォーマンスが向上

4. route では詳細なルート管理が難しい

  • route コマンドでは、複数のルーティングテーブルを扱うことができない
  • ip route を使えば、ポリシールーティング(policy routing) など高度なルート管理が可能

例:複数のルーティングテーブルを設定

# ルーティングテーブル 100 を作成し、特定のネットワークを経由するルートを追加
ip route add 192.168.2.0/24 via 192.168.1.1 table 100
ip rule add from 192.168.2.100/32 table 100

このような操作は route では不可能


5. route コマンドは今後サポートがなくなる可能性がある

  • 新しい Linux ディストリビューションでは、net-tools パッケージがデフォルトでインストールされない ことが多い
  • iproute2Linux カーネル開発者によって正式にサポートされている が、net-tools はメンテナンスがほとんど行われていない
  • route は今後の Linux のアップデートで完全に削除される可能性がある

現在推奨される代替コマンド

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

ip route show

route -n に相当

デフォルトゲートウェイの追加

sudo ip route add default via 192.168.1.1

route add default gw 192.168.1.1 に相当

特定のネットワークへのルートを追加

sudo ip route add 192.168.2.0/24 via 192.168.1.1

route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 に相当

ルートの削除

sudo ip route del 192.168.2.0/24

route del -net 192.168.2.0 に相当


まとめ

理由**route (非推奨)ip route (推奨)
パッケージnet-tools(古い)iproute2(最新)
IPv6サポート❌ 不完全✅ 完全対応
機能の豊富さ⚠️ 限定的✅ 高度なルーティング管理可能
カーネルとの統合⚠️ ioctl(非効率)netlink(高速)
マルチルート対応❌ 不可✅ 可能
将来のサポート⚠️ 廃止予定✅ 継続サポート


つまるところroute コマンドは 非推奨 なので、現在は ip route を使う方が良いです

以上です!

ここまで読んでいただきありがとうございました!

コメント

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