Skip to main content
ルーティング チュートリアル チュートリアル 
ルーティングプロトコル紹介 
古河ネットワークソリューション株式会社 
神谷 尚秀 
1
自己紹介 
名前 
神谷 尚秀 
所属 
古河ネットワークソリューション㈱ 
業務内容 
ルータのソフト開発 (3 年目) 
BGP 
OSPF 
コミュニティ活動 
wakamonog committee 
JANOG committee 
2
agenda 
経路制御 (routing) とは 
静的経路制御 (static routing), 動的経路制御 
(dynamic routing) の違い 
各種動的経路制御の紹介 
OSPF (Open Shortest Path First) 
BGP (Border Gateway Protocol) 
3
経路制御 (routing) とは 
何処を経由してパケットを宛先に届けるか 
ルータ (RT) はパケットの宛先アドレスを見 
て次の送り先を判断 
4
経路情報 
宛先 prefix と next hop (NH) の集合 
経路情報の種類 
静的経路 
connected 経路 
ルータが直接接続して知っている経路 
static 経路 
ルータに静的に設定された経路 
動的経路 
ルーティングプロトコルで動的に学習した経路 
5
静的経路制御 
(172.16.1.0/24 の経路登録) 
RT A から 172.16.1.0/24 へ packet を送信するため、各 RT に static 経路を登録 
ネットワーク構成が変わる度に各 RT に static 経路の登録・更新が必要 
10.0.2.1 10.0.2.2 
6 
RT A 
10.0.4.1 
RT C RT D RT G 
RT E 
RT B 
10.0.0.1 
10.0.0.2 
10.0.0.3 
10.0.3.1 
172.16.1.0/24 
10.0.4.2 
10.0.3.2 
prefix NH 
x.x.x.x/x 10.0.5.2 
172.16.1.0/24 10.0.0.2 
x.x.x.x/x 10.0.0.3 
prefix NH 
x.x.x.x/x 10.0.0.1 
172.16.1.0/24 10.0.2.2 
x.x.x.x/x 10.0.0.3 
prefix NH 
x.x.x.x/x 10.0.2.1 
x.x.x.x/x 10.0.3.2 
172.16.1.0/24 10.0.4.2 
RT F 
10.0.5.2 
10.0.5.1
動的経路制御 
(172.16.1.0/24 の経路登録) 
各 RT にルーティングプロトコルを設定することで、動的に経路を学習可能 
ネットワーク構成が変わる度に、動的に経路を学習 
10.0.2.1 10.0.2.2 
7 
RT A 
10.0.4.1 
RT C RT D RT G 
RT E 
RT B 
10.0.0.1 
10.0.0.2 
10.0.0.3 
10.0.3.1 
10.0.4.2 
10.0.3.2 
RT F 
10.0.5.2 
10.0.5.1 
①: RT G は 
172.16.1.0/24 
が自分の方にあ 
ることを伝える 
②: ①の情報 (経 
路情報) が RT 
G から RT D 
に伝わる 
③: RT D は経 
路情報を受けて 
経路テーブルを 
作成する 
prefix NH 
x.x.x.x/x 10.0.3.2 
172.16.1.0/24 10.0.4.2 
x.x.x.x/x 10.0.2.1 
172.16.1.0/24
動的経路制御 
(172.16.1.0/24 の経路登録) 
各 RT にルーティングプロトコルを設定することで、動的に経路を学習可能 
ネットワーク構成が変わる度に、動的に経路を学習 
10.0.2.1 10.0.2.2 
8 
RT A 
10.0.4.1 
172.16.1.0/24 
RT C RT D RT G 
RT E 
RT B 
10.0.0.1 
10.0.0.2 
10.0.0.3 
10.0.3.1 
10.0.4.2 
10.0.3.2 
RT F 
10.0.5.2 
10.0.5.1 
④: RT D は 
172.16.1.0/24 が 
自分の方にあること 
を RT C, E に伝える 
⑤: RT C, E は経路 
情報を受けて経路 
テーブルを作成する 
⑥: RT C, E は 
172.16.1.0/24 が 
自分の方にあること 
を RT A, F に伝える 
⑦: 経路が各 RT に 
伝わり、経路テーブ 
ル構築後、パケッ 
トが転送される
静的経路制御 
(障害発生時の動作) 
RT A は RT C, D 間の回線断に気づかないため、packet ロスが発生 
10.0.2.1 10.0.2.2 
9 
RT A 
10.0.4.1 
RT C RT D RT G 
RT E 
RT B 
10.0.0.1 
10.0.0.2 
10.0.0.3 
10.0.3.1 
10.0.4.2 
10.0.3.2 
RT F 
10.0.5.2 
10.0.5.1 
②: バックアップ 
経路に切り替わら 
ない 
①: RT C, D 間で 
回線が切断 
prefix NH 
x.x.x.x/x 10.0.5.2 
172.16.1.0/24 10.0.0.2 
x.x.x.x/x 10.0.0.3 
x x x 
172.16.1.0/24
動的経路制御 
(障害発生時の動作) 
RT C, D が回線断を各 RT に教え合うことで、RT A は迂回経路を学 
習できるため、packet ロスは発生しない 
10.0.2.1 10.0.2.2 
10 
RT A 
10.0.4.1 
172.16.1.0/24 
RT C RT D RT G 
RT E 
RT B 
10.0.0.1 
10.0.0.2 
10.0.0.3 
10.0.3.1 
10.0.4.2 
10.0.3.2 
RT F 
10.0.5.2 
10.0.5.1 
①: RT C, D 間で 
回線が切断 
prefix NH 
x.x.x.x/x 10.0.0.1 
172.16.1.0/24 10.0.0.2 
172.16.1.0/24 10.0.0.3 
x x 
②: 自動でバック 
アップ経路に切り 
替わる
静的経路制御・動的経路制御の違いまとめ 
経路制御の種類長所短所 
静的経路制御 
ルーティングプロトコルの 
packet が流れない 
ルータに負荷がかからない 
11 
設定管理が困難 
動的経路変更が不可能 
動的経路制御設定管理が容易 
動的経路変更が可能 
ルーティングプロトコ 
ルの packet が流れる 
ルータに負荷がかかる 
ISP 等では以下の理由から動的経路制御を行なう必要がある 
変化し続けるインターネットへの対応 
障害時の動的経路変更が必須
各種動的経路制御の紹介 
(OSPF & BGP) 
12
インターネットの構成 
RT RT 
RT RT RT 
RT RT RT 
13 
RT 
RT RT 
RT 
RT RT 
RT 
RT RT RT 
RT 
AS 
IX
EGP と IGP 
EGP (Exterior Gateway Protocol) 
AS 間で使用されるルーティングプロトコル 
Internet 上の目的地に達する前に、自 AS 内のどの出口から出れば 
いいかを解決 
IGP (Interior Gateway Protocol) 
AS 内部で使用されるルーティングプロトコル 
EGP で解決される自 AS 内の出口にどうやったら到達するかを解決 
RT RT RT 
RT RT RT RT RT 
14 
RT 
RT 
RT RT RT 
IGP で制御 
EGP で制御
ルーティングプロトコルの種類 
OSPF 
IGP として利用 
各 RT がネットワーク構成を把握 
必要最小限の経路で動作させる 
障害をいち早く通知、迂回 
BGP 
EGP として利用 
自 AS 以外の全ての経路を扱う 
経路制御の処理を軽くして、膨大な経路数に対応 
ポリシに基づいて組織 (AS) 間の経路制御が可能 
15
OSPF 
16
OSPF 概要 
リンクステートアルゴリズムを使用したルーティングプロトコル 
各ルータはリンクステートというメッセージを交換 
リンクステートには、ルータが接続しているリンクの状態、 
そのリンクのネットワークアドレス、コストなどが入っている 
リンクステートの情報に基づきリンクステートデータベース 
(LSDB) を作成、NW 構成を把握 
LSDB より、Shortest Path First (SPF) アルゴリズムにより最 
短パスツリーを作成 
最短パスツリーによる経路テーブル作成 
各ルータがネットワーク構成を把握しているため、ネットワーク構 
成が変化した際、素早く経路テーブルを再構築可能 (素早い収束性) 
17
リンクステートアルゴリズム 
リンクステートの交換から経路テーブルが出来るまで 
リンクステート 
18 
RT A 
RT B 
RT C 
②: LSDB の作成③: 自身を root とした 
最短パスツリーの作成 
prefix next hop 
④: 経路テーブルの作成 
①: リンクステート 
の交換 
A 
B 
C
経路テーブルの作成 
コストを元に経路テーブルを作成 
コストはインターフェースで設定され、packet が送出さ 
れるインタフェースを通過する時に加算 
コストが最小の経路 (最短パス) を経路テーブルに登録 
prefix next hop cost 
◎ 172.16.1.0/24 RT D 20 
172.16.1.0/24 RT A 45 
10 
RT A RT C 
20 
10 10 10 10 
RT D 
19 
10 
20 5 5 
RT B RT E 
172.16.1.0/24
障害時の動作 
各 RT がネットワーク構成を把握しているため、ネットワー 
ク構成が変化した際、素早く経路テーブルを再構築可能 
prefix next hop cost 
◎ 172.16.1.0/24 RT D 20 
172.16.1.0/24 RT A 45 
10 
RT A RT C 
20 
10 10 10 
x x 10 RT D 
172.16.1.0/24 
20 
10 
20 5 5 
RT B RT E
BGP 
21
BGP 概要 
パスベクタ型プロトコル 
Prefix とパス属性を合わせた BGP 経路情報を交換 
パス属性には、経路がどのような AS を経由しているか、経 
路の優先度がいくらか等の情報が入っている 
Prefix とパス属性を用いて、AS 間の経路制御を自 AS のポリ 
シーに従って行なう 
ポリシーは、AS 間のトラフィックの制御方針などを示す 
BGP ピア先の AS 番号によって組織内の BGP ピア (iBGP) か、組 
織外の BGP ピア (eBGP) かを識別し、其々異なった動作をする 
簡易な経路制御の処理により、スケーラビリティがある 
22
BGP の基本動作 
BGP を設定した RT (BGP スピーカ) 間の経路交換の流れ 
BGP テーブル 
23 
BGP 
スピーカ A 
BGP 
スピーカ A 
BGP 
スピーカ A 
BGP 
スピーカ A 
BGP 
スピーカ B 
BGP 
スピーカ B 
BGP 
スピーカ B 
BGP 
スピーカ B 
経路テーブル 
BGP 
スピーカ C 
TCP セッション確立 
BGP ピア確立 
経路情報のやり取り 
Prefix + パス属性 
経路交換終了 
BGP ピア維持ベストパスを広告 
BGP 制御の流れ 
ピア先からの BGP 
① 経路情報を格納 
② 
③ 
④ 
ピア A 以外からの 
BGP 経路情報も含めて 
ベストパス選択を実行
BGP ピアの種類 
eBGP 
組織外 (他 AS) に属する BGP スピーカ間の BGP ピア 
他 AS の BGP スピーカと BGP 経路情報をやり取り 
iBGP 
組織内 (自 AS) に属する BGP スピーカ間の BGP ピア 
自 AS の BGP スピーカと BGP 経路情報をやり取り 
IGP 
iBGP AS 2 AS 1 
RT RT RT 
RT RT RT RT RT 
24 
RT 
RT 
RT RT RT 
eBGP 
AS 4 AS 3
AS 間の経路制御 
AS1 を中心に考えた時の AS 間の経路制御 
AS3 へのトラフィックは AS2 or AS5 どちらに流すか 
AS8 へのトラフィックは AS6 or AS7 どちらに流すか 
AS9 からのトラフィックはどちらの回線から流して欲しいか 
AS3 AS4 
AS2 AS5 
AS6 
AS1 AS8 
25 
AS7 
AS9 
AS_PATH 属性で制御 
LOCAL_PREF 属性! 
で制御 
MED 属性! 
で制御
パス属性を用いた経路制御 
(AS_PATH 属性) 
AS_PATH 属性 
経路情報が通過してきた AS を示す 
AS_PATH のリストが短い経路ほど優先度が高い 
AS_PATH = AS3 
AS_PATH = AS3 AS_PATH = AS3 AS4 
26 
AS3 
172.16.0.0/16 
AS4 
AS2 AS5 
AS_PATH = AS3 AS2 
prefix AS_PATH 
172.16.0.0/24 AS5 AS4 AS3 
◎ 172.16.0.0/24 AS2 AS3 
AS1 
AS_PATH = AS5 AS4 AS3 
: BGP を使った経路情報の流れ 
: AS1 から AS3 へのトラフィック
パス属性を用いた経路制御 
(LOCAL_PREF 属性) 
LOCAL_PREF (local preference) 属性 
自 AS から出て行くトラヒック制御に利用 
値が大きい経路ほど優先度が高い 
AS1 の RT A, B で AS6 及び AS7 から流れてきた経路に LOCAL_PREF 属性を設定 
27 
AS1 
RT A 
RT B 
prefix AS_PATH LOCAL_PREF 
172.16.0.0/24 AS6 AS8 90 
◎ 172.16.0.0/24 AS7 AS8 100 
AS6 
AS7 
AS8 
172.16.0.0/16 
LOCAL_PREF = 90 
LOCAL_PREF = 100 
: BGP を使った経路情報の流れ 
: AS1 から AS8 へのトラフィック
パス属性を用いた経路制御 
(MED 属性) 
MULTI_EXIT_DISCRIMINATOR (MED) 属性 
ある AS 間で複数の接続点があるときの経路制御に利用 
値が小さい経路ほど優先度が高い 
AS1 の出口で AS9 向けに経路を広告するときに MED を設定 
BGP での経路情報 
28 
AS1 
172.16.0.0/16 
AS9 
prefix next hop MED 
172.16.0.0/24 RT A 200 
◎ 172.16.0.0/24 RT B 100 
MED 100 
RT C 
RT D 
RT A 
RT B 
BGP での経路情報 
MED 200 
: BGP を使った経路情報の流れ 
: AS9 から AS1 へのトラフィック
まとめ 
経路制御には静的な経路制御・動的な経路制御がある 
ISP などではネットワークの変化に対応するため動的経路制御 
が必要である 
動的経路制御には AS 内の経路制御を行なう IGP と、AS 間の 
経路制御を行なう EGP がある 
OSPF はネットワークの変化に迅速に対応出来るため、IGP と 
してよく用いられている 
BGP はパス属性を利用することで、ポリシーに従って経路制御 
を行なうことが出来る 
29