ルーティング

パケットの最適経路選択

ルーティングとは

ルーティングは、パケットを宛先ネットワークまで転送する経路を決定するプロセスです。 ルーターはルーティングテーブルを参照し、最適なネクストホップ(次の転送先)を選択します。

ルーティングテーブル

宛先ネクストホップIFメトリック種別
10.0.1.0/24直接接続eth00Connected
10.0.2.0/2410.0.1.1eth010Static
192.168.0.0/1610.0.1.254eth0110OSPF
0.0.0.0/010.0.1.1eth01Default

ロンゲストマッチ

複数のルートがマッチする場合、最も具体的(プレフィックスが長い)なルートが選択される。 例: 10.0.1.5宛ては、10.0.0.0/8よりも10.0.1.0/24が優先される。

ルーティングの種類

スタティックルーティング

管理者が手動で設定。小規模・固定的な構成向け。 障害時の自動切り替えなし(フローティングスタティック除く)。

1# Linuxでスタティックルート追加
2sudo ip route add 10.0.2.0/24 via 10.0.1.1
3sudo ip route add 192.168.0.0/16 via 10.0.1.254 metric 100
4
5# デフォルトルート
6sudo ip route add default via 10.0.1.1

ダイナミックルーティング

ルーティングプロトコルが自動的に経路情報を交換・更新。 障害時の自動フェイルオーバー。大規模ネットワーク向け。

主要なルーティングプロトコル

OSPF(Open Shortest Path First)

  • • リンクステート型IGP
  • • Dijkstraアルゴリズムで最短経路計算
  • • エリア分割で大規模対応
  • • 収束が速い
メトリック: コスト(帯域幅ベース)
AD値: 110
用途: 企業内ネットワーク

BGP(Border Gateway Protocol)

  • • パスベクトル型EGP
  • • AS(自律システム)間のルーティング
  • • ポリシーベースの経路選択
  • • インターネットのバックボーン
メトリック: ASパス、ローカルプリファレンス等
AD値: eBGP 20 / iBGP 200
用途: ISP、大規模DC

RIP(Routing Information Protocol)

ディスタンスベクトル型。ホップ数がメトリック(最大15)。 収束が遅い。現在はほぼ使用されない。

Administrative Distance(信頼度)

複数のルーティングソースから同じ宛先への経路がある場合、AD値が低いほうが優先される。

ソースAD値
直接接続0
スタティック1
eBGP20
OSPF110
RIP120
iBGP200

ECMP(Equal-Cost Multi-Path)

同じコストの複数経路がある場合、トラフィックを分散させる技術。 帯域の有効活用と冗長性を両立。

送信元
↙ 50%↘ 50%
経路A
経路B
宛先

Linuxルーティング設定

1# ルーティングテーブル確認
2ip route show
3ip route get 8.8.8.8 # 特定宛先の経路確認
4
5# ルート追加/削除
6sudo ip route add 10.0.0.0/8 via 192.168.1.1
7sudo ip route del 10.0.0.0/8
8
9# デフォルトゲートウェイ変更
10sudo ip route replace default via 192.168.1.254
11
12# IPフォワーディング有効化(ルーターとして動作)
13sudo sysctl -w net.ipv4.ip_forward=1
14# 永続化: /etc/sysctl.conf に net.ipv4.ip_forward=1
15
16# ポリシーベースルーティング
17sudo ip rule add from 10.0.1.0/24 lookup 100
18sudo 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# トラブルシューティング
2traceroute 8.8.8.8
3mtr 8.8.8.8 # 継続的な経路監視
4
5# BGP経路確認(Looking Glass)
6# https://lg.he.net/ などの公開BGPルートサーバー