Linuxネットワークルーティング入門
経路の表示と設定
routeコマンド(ip route)を使って、ネットワークのルーティングテーブルを表示・設定する方法を解説します。パケットが目的地に到達するための経路を制御できます。
こんな人向けの記事です
- ルーティングテーブルの内容を理解したい人
- 静的ルートの追加・削除を行いたい人
- ネットワーク到達性の問題を診断したい人
Step 1ルーティングの基本概念
ルーティングテーブルは、ネットワークパケットの宛先に基づいて、どのインターフェース経由でどのゲートウェイに転送するかを決定するテーブルです。
| 用語 | 意味 |
|---|---|
| 宛先ネットワーク | パケットの目的地(例:192.168.1.0/24) |
| ゲートウェイ | 次に転送するルーターのIPアドレス |
| インターフェース | パケットを送信するNIC(例:eth0, wlan0) |
| メトリック | 経路の優先度。値が小さいほど優先 |
| デフォルトルート | 他のルートに一致しない全パケットの転送先 |
ポイント: 最新のLinuxではrouteコマンドはip routeに置き換えられつつあります。Windowsではrouteコマンド、macOSでもrouteコマンドが利用可能です。
Step 2ルーティングテーブルの表示
ターミナル
# Linux(推奨)
ip route show
# Linux(従来)
route -n
# Windows
route print
# macOS
netstat -rn
Linux(ip route show)の結果例:
ターミナル
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.5 metric 100
10.0.0.0/8 via 192.168.1.254 dev eth0
Step 3結果の読み方
| 出力例 | 意味 |
|---|---|
| default via 192.168.1.1 | デフォルトルート。一致するルートがない場合192.168.1.1に転送 |
| dev eth0 | eth0インターフェースから送信 |
| proto dhcp | DHCPにより自動設定されたルート |
| proto kernel | カーネルが自動作成したルート(直接接続ネットワーク) |
| scope link | 直接接続されたネットワーク |
| metric 100 | ルートの優先度(値が小さいほど優先) |
Step 4静的ルートの追加と削除
Linux(ip route):
ターミナル
# ルートの追加
sudo ip route add 10.0.0.0/8 via 192.168.1.254 dev eth0
# ルートの削除
sudo ip route del 10.0.0.0/8
# 特定ホストへのルート追加
sudo ip route add 203.0.113.50/32 via 192.168.1.254
Windows:
ターミナル
# ルートの追加
route add 10.0.0.0 mask 255.0.0.0 192.168.1.254
# 永続的なルートの追加(-p オプション)
route -p add 10.0.0.0 mask 255.0.0.0 192.168.1.254
# ルートの削除
route delete 10.0.0.0
注意: ip routeで追加したルートは再起動すると消えます。永続化するには /etc/network/interfaces や NetworkManager の設定ファイルに記述してください。
Step 5デフォルトゲートウェイの設定
ターミナル
# Linux - デフォルトゲートウェイの変更
sudo ip route del default
sudo ip route add default via 192.168.1.1 dev eth0
# Windows
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
Step 6トラブルシューティング
特定の宛先への経路を確認:
ターミナル
# どのルートが使われるか確認
ip route get 8.8.8.8
| 問題 | 確認方法 | 対処法 |
|---|---|---|
| インターネットに接続できない | ip route show でデフォルトルートを確認 | デフォルトゲートウェイが正しく設定されているか確認 |
| 特定ネットワークに到達できない | ip route get 宛先IP | 適切な静的ルートを追加 |
| ルーティングループ | traceroute 宛先 | ルーティングテーブルの矛盾を確認・修正 |
ポイント: ルーティング設定の変更は即座にネットワーク接続に影響します。リモートで作業している場合は特に慎重に行い、事前にロールバック手順を用意しておきましょう。