ルーティング

パケットを宛先まで届けるための経路選択。ルーティングテーブルの読み方、 静的 / 動的、ルーティングプロトコル(RIP / OSPF / BGP)、AS、Anycast、ECMP まで。

ルーティングの仕組み(再確認)

  1. パケットを受け取った機器が、宛先 IPと自分のテーブルを照合
  2. 最も長いプレフィックスに一致するエントリを選ぶ(longest prefix match)
  3. そのエントリの ネクストホップ へ転送
  4. TTL を 1 減らす
  5. L2 ヘッダを書き換えて送出(送信元 / 宛先 MAC が変わる)

重要: L3 ヘッダ(IP)は変わらず、L2 ヘッダ(Ethernet)は毎ホップ書き換わる

ルーティングテーブルの読み方

Linux

$ ip route
default via 192.168.1.1 dev eth0 proto dhcp metric 100
10.0.0.0/8 via 192.168.1.254 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10

macOS / BSD

netstat -rn

Windows

route print
Get-NetRoute

longest prefix match

宛先 192.168.1.50 へのパケットがあるとき、テーブルに次のエントリがあれば:

0.0.0.0/0          (default)
192.168.0.0/16
192.168.1.0/24     ← 最長一致 (24 ビット)、これが選ばれる
      

プレフィックスが長いほど具体的=優先される。

静的ルーティング

追加例

# Linux
sudo ip route add 10.0.0.0/8 via 192.168.1.254
sudo ip route del 10.0.0.0/8

# macOS
sudo route -n add -net 10.0.0.0/8 192.168.1.254

# Windows
route add 10.0.0.0 mask 255.0.0.0 192.168.1.254 -p

動的ルーティング

ルータ同士が自動で経路情報を交換。リンク切れに自動で対応。

3 つの方式

方式原理
距離ベクトル「あの宛先まで N ホップ」と隣接に伝えるRIP, EIGRP, BGP
リンクステート全リンクの状態を共有し、各自で最短経路計算OSPF, IS-IS
パスベクトル距離ベクトル + 経路(AS パス)も伝えるBGP

RIP(Routing Information Protocol)

OSPF(Open Shortest Path First)

IS-IS

EIGRP

BGP(Border Gateway Protocol)

インターネット全体を動かしているプロトコル。 AS(Autonomous System)の間で経路を交換する。

用語

BGP 経路選択の優先順位

  1. Weight(Cisco 独自、ローカル)
  2. Local Preference(AS 内)
  3. Locally Originated(自 AS 発の経路)
  4. AS Path が短い
  5. Origin(IGP < EGP < Incomplete)
  6. MED(Multi-Exit Discriminator)
  7. eBGP > iBGP
  8. IGP メトリック
  9. 古いセッション(同点なら)

BGP のリスク

インターネットの階層

Tier性質
Tier 1他 AS に料金を払わずインターネット全体に到達できるNTT, Lumen, Telia, Tata
Tier 2一部のピアリング + Tier 1 へのトランジット購入多くの国内 ISP
Tier 3すべてトランジット購入(自社で BGP は持たないことも)地域 ISP

IX(Internet eXchange)

ISP が物理的に集まってピアリングするハブ。日本では JPIX / JPNAP / Equinix が有名。 IX を経由することで、第三者 ISP を介さずに直結 → 遅延短縮 + 費用削減。

Anycast

同じ IP アドレスを世界中の複数拠点で広告し、BGP に最寄りを選ばせる仕組み。

Unicast / Broadcast / Multicast / Anycast まとめ

方式1 → ?
Unicast1 対 1
Broadcast1 対 全員(同一リンク内)
Multicast1 対 グループ(参加した人だけ)
Anycast1 対 最寄り(複数候補のうち 1 つ)

ECMP(Equal-Cost Multi-Path)

コストが同じ複数経路がある場合、負荷分散して送る仕組み。

ポリシールーティング

宛先だけでなく送信元 / アプリ / DSCP でも経路を変える。

ルーティングループ

誤設定で 2 つのルータが互いを宛先に送り続ける状態。TTL が無ければ無限

VRF / マルチテナント

Virtual Routing and Forwarding — 1 台のルータの中に独立したルーティングテーブルを複数持つ。 ISP / マルチテナントクラウドで使われる。

SDN / ネットワーク仮想化

クラウドの VPC とルーティング

BGP コミュニティ

経路にラベル(コミュニティ値)を付け、受け手側のポリシーを制御する。 例: 「特定 ISP に広告するな」「優先度を下げて」など。

Looking Glass

他組織の BGP 視点を覗ける Web ツール。経路ハイジャック / ピアリング状況の確認に使う。

確認コマンド

# 経路追跡
traceroute example.com
mtr example.com

# AS パス
whois -h whois.radb.net 8.8.8.8

# 自分の AS
curl ipinfo.io

# Linux のポリシーテーブル
ip rule
ip route show table all

# ルーティングデーモン例(FRR)
vtysh
show ip route
show ip bgp
show ip ospf neighbor

よくあるトラブル

症状原因
非対称ルーティング行きと戻りで経路が違う。FW でセッション切れ
traceroute が * * *中間ルータが ICMP 拒否(到達自体は OK の可能性)
特定先だけ繋がらないBGP ハイジャック / ルート漏れ / 通信規制
DEFAULT が複数あって混乱metric / 同一テーブルでの整理
遅い経路を選ぶBGP の AS パス短いより遅延長い経路に流れる
大事な事実

インターネットは誰も全体を制御していない。BGP の合意形成で動いている。 だからこそ誤設定で世界規模の障害が起きるし、RPKI のような認証の取り組みが進んでいる。