どーも!marusukeです!
route コマンドが非推奨になった理由をついてです!
route コマンドが非推奨になった理由
route
コマンドは、Linux におけるネットワークルーティングの管理に長年使用されてきましたが、現在は 非推奨 となり、代わりに ip route
コマンド(ip
コマンドの一部)が推奨されています
その理由は、以下の5つにまとめられます
1. route は古い net-tools パッケージに依存している
route
コマンドは、net-tools
パッケージ に含まれており、これは 非推奨 となっていますnet-tools
にはifconfig
やnetstat
などの 古いネットワーク管理コマンド も含まれています- これらのコマンドは IPv6 のサポートが不十分 であり、新しいカーネル機能に適応しにくいため、
iproute2
パッケージのip
コマンドへ移行が推奨されています
2. ip route コマンドの方が機能が豊富で柔軟
ip route
は IPv4 および IPv6 の両方をネイティブにサポート しているip route
は、マルチルート(複数のゲートウェイ)、ポリシールーティング、トラフィック制御など、より高度な機能を提供するroute
では 詳細なルート情報の表示や設定が難しい が、ip route
なら簡単に確認できる
✅ 例:route
vs ip route
の比較
機能 | route | ip route |
---|---|---|
ルートの表示 | route -n | ip route show |
ルートの追加 | route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 | ip route add 192.168.1.0/24 via 192.168.1.1 |
ルートの削除 | route del -net 192.168.1.0 | ip 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
パッケージがデフォルトでインストールされない ことが多い iproute2
は Linux カーネル開発者によって正式にサポートされている が、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
を使う方が良いです
以上です!
ここまで読んでいただきありがとうございました!
コメント