ルーティング
パケットの最適経路選択
ルーティングとは
ルーティングは、パケットを宛先ネットワークまで転送する経路を決定するプロセスです。 ルーターはルーティングテーブルを参照し、最適なネクストホップ(次の転送先)を選択します。
ルーティングテーブル
| 宛先 | ネクストホップ | IF | メトリック | 種別 |
|---|---|---|---|---|
| 10.0.1.0/24 | 直接接続 | eth0 | 0 | Connected |
| 10.0.2.0/24 | 10.0.1.1 | eth0 | 10 | Static |
| 192.168.0.0/16 | 10.0.1.254 | eth0 | 110 | OSPF |
| 0.0.0.0/0 | 10.0.1.1 | eth0 | 1 | Default |
ロンゲストマッチ
複数のルートがマッチする場合、最も具体的(プレフィックスが長い)なルートが選択される。 例: 10.0.1.5宛ては、10.0.0.0/8よりも10.0.1.0/24が優先される。
ルーティングの種類
スタティックルーティング
管理者が手動で設定。小規模・固定的な構成向け。 障害時の自動切り替えなし(フローティングスタティック除く)。
1 # Linuxでスタティックルート追加 2 sudo ip route add 10.0.2.0/24 via 10.0.1.1 3 sudo ip route add 192.168.0.0/16 via 10.0.1.254 metric 100 4 5 # デフォルトルート 6 sudo ip route add default via 10.0.1.1
ダイナミックルーティング
ルーティングプロトコルが自動的に経路情報を交換・更新。 障害時の自動フェイルオーバー。大規模ネットワーク向け。
主要なルーティングプロトコル
OSPF(Open Shortest Path First)
- • リンクステート型IGP
- • Dijkstraアルゴリズムで最短経路計算
- • エリア分割で大規模対応
- • 収束が速い
メトリック: コスト(帯域幅ベース)
AD値: 110
用途: 企業内ネットワーク
AD値: 110
用途: 企業内ネットワーク
BGP(Border Gateway Protocol)
- • パスベクトル型EGP
- • AS(自律システム)間のルーティング
- • ポリシーベースの経路選択
- • インターネットのバックボーン
メトリック: ASパス、ローカルプリファレンス等
AD値: eBGP 20 / iBGP 200
用途: ISP、大規模DC
AD値: eBGP 20 / iBGP 200
用途: ISP、大規模DC
RIP(Routing Information Protocol)
ディスタンスベクトル型。ホップ数がメトリック(最大15)。 収束が遅い。現在はほぼ使用されない。
Administrative Distance(信頼度)
複数のルーティングソースから同じ宛先への経路がある場合、AD値が低いほうが優先される。
| ソース | AD値 |
|---|---|
| 直接接続 | 0 |
| スタティック | 1 |
| eBGP | 20 |
| OSPF | 110 |
| RIP | 120 |
| iBGP | 200 |
ECMP(Equal-Cost Multi-Path)
同じコストの複数経路がある場合、トラフィックを分散させる技術。 帯域の有効活用と冗長性を両立。
送信元
↙ 50%↘ 50%
経路A
経路B
↘↙
宛先
Linuxルーティング設定
1 # ルーティングテーブル確認 2 ip route show 3 ip route get 8.8.8.8 # 特定宛先の経路確認 4 5 # ルート追加/削除 6 sudo ip route add 10.0.0.0/8 via 192.168.1.1 7 sudo ip route del 10.0.0.0/8 8 9 # デフォルトゲートウェイ変更 10 sudo ip route replace default via 192.168.1.254 11 12 # IPフォワーディング有効化(ルーターとして動作) 13 sudo sysctl -w net.ipv4.ip_forward=1 14 # 永続化: /etc/sysctl.conf に net.ipv4.ip_forward=1 15 16 # ポリシーベースルーティング 17 sudo ip rule add from 10.0.1.0/24 lookup 100 18 sudo ip route add default via 10.0.2.1 table 100
クラウドでのルーティング
AWS
- • Route Table: サブネットに関連付け
- • Internet Gateway: インターネット向けルート
- • NAT Gateway: プライベートサブネットからの外部アクセス
- • Transit Gateway: VPC間・オンプレ接続のハブ
Kubernetes
- • CNI: Podネットワーキング(Calico, Cilium等)
- • Service: ClusterIP, NodePort, LoadBalancer
- • Ingress: L7ルーティング
SRE/インフラ観点
監視項目
- • 経路数: BGPルートテーブルサイズ
- • 経路変動: フラップの検出
- • 到達性: 重要宛先へのping/traceroute
よくある障害
- • ルーティングループ: TTL超過、パケット消失
- • ブラックホール: 経路はあるが到達不可
- • 非対称ルーティング: 行きと帰りで経路が異なる
1 # トラブルシューティング 2 traceroute 8.8.8.8 3 mtr 8.8.8.8 # 継続的な経路監視 4 5 # BGP経路確認(Looking Glass) 6 # https://lg.he.net/ などの公開BGPルートサーバー