インターネットルーティングチュートリアル

自律分散協調システム論
北陸先端科学技術大学院大学
情報科学センター 助教
小原泰弘 (yasu)
[email protected]
2008/06/23
自己紹介
• 慶應義塾
– 高校(1995卒)、環境情報学部(1999卒)、政策・
メディア研究科 修士(2001卒)、博士(2008取
得)
• 2008年4月〜 北陸先端科学技術大学院
大学 情報科学センター助教
• 専門:インターネット経路制御
– IPv6 OSPF を実装、WIDE 6Bone で運用
– 新しい経路制御アルゴリズム、アーキテクチャを
開発
経路制御とは
• 通信経路を決めるシステム
– どのネットワークがどこにつながっているのか?
– 手動で設定する:静的(static)経路制御
– 自動的に計算:動的(dynamic)経路制御
•
•
•
•
•
規模性
耐故障性(単一障害点の回避)
独立性、協調性、自律ポリシの実現
自律分散システム
ピアツーピアの概念
イメージしてみましょう
•実際のネットワーク
•この規模で動作するシステム
これだと?
これだと?
• インプレスISPマップ
これだと?
インターネットの規模と構造
• インターネットの爆発的な成長
• 経路制御機構の重要性,要求される能力
489,774,269 hosts at Jul 2007
(http://www.isc.org/)
1,319,872,109 users
at Dec 31, 2007
grow 100+ million/year
www.internetworldstats.com
8
自律分散と動的経路制御
• 目的:
– 規模性:巨大なネットワークを自動で計算する
– 耐故障性:回線の故障等を回避する
• 自律性、分散性、協調性
– 各ルータが故障の有無を独立に調べる(自律性)
– 分散したルータ(分散性)が回線で接続されている
– 各ルータが情報をやり取りして(協調性)経路を計
算する
自律分散システムで重要なこと
• 単純さ
– 役割の少なさ、構造の少なさ、単純な処理
• 独立性(≒自律性)
– どの部分それ単体でも動作すること
– 最小のインタラクション、局所性、依存関係の少なさ
• 単純な処理を分散させる
– 単一障害点の回避
• 管理の容易さ
– 集中管理のほうが管理しやすい
• それらのバランスが大事
今日の授業の目的
• 経路制御はインターネット規模でどのように
動いているかを学ぶ
– 原理
– どのような工夫がされているか
– 挑戦と失敗、現状
流れ
• IP の復習:IP アドレス、IP 転送と経路(表)
– 経路集約という規模性に対する工夫など
• 原理:
– ディスタンスベクタ
– リンクステート
– パスベクタ
• 挑戦と失敗、現状など
汎用ネットワークの実現
(階層構造)
layering model
• D. E. Comer. Internetworking with TCP/IP, vol-1. Prentice Hall
(TCP/IPによるネットワーク構築〈Vol.1〉)
OSI 7-layer model
Application
TCP/IP internet layering model
Presentation
Session
Application
Transport
Transport
Network
Internet
Datalink
Network Interface
Physical
Hardware
データの作成と解析
TCPセッションの制御
IPパケットの送受信
イーサネットフレーム送受信
物理媒体への送受信
アプリケーション
ソフトウェア
ホスト
終点は
終点は
どっちだ? どっちだ?
ルータ
ルータ
終点は
どっちだ?
ルータ
アプリケーション
ソフトウェア
ホスト
経路表
• シンプルな構造
– 宛先が共有(同一)ネットワーク → 直接転送
– 宛先が別のネットワーク → 経路表に基づき転送
• ルーティングテーブル
終点
終点
終点
終点
次ホップ
次ホップ
次ホップ
次ホップ
方向(interface)
方向(interface)
方向(interface)
方向(interface)
Ver IHL
TOS
Identification
TTL
IPパケット
ペイロード
終点は
どっちだ
(経路検索)
終点は
どっちだ
(経路検索)
パケット長
FlagFlagment Offset
Protocol Header Checksum
始点IPアドレス
終点IPアドレス
IPヘッダ
IP アドレス
– 同一ネットワーク上のIPアドレスは、同じネット
ワークアドレスを持つ(ネットワーク部が同じ)
–IPアドレスはネットワークインター
フェースに付く
N1内のアドレス
R
10.1.0.2
N1内のアドレス
10.0.0.1
N1
10.0.0.0/8
N2のアドレス
192.168.0.1
R
N2
192.168.0.0/16
IPv4アドレス表記方法
• IPv4アドレスは32bit
203.178.142.130
• 例:
• 10進数で1バイトずつ表記(0~255)
• ピリオドで区切る
• 実際には
.
.
203
178
142
.
130
11001011 10110010 10001110 10000010
16
32
64
128
842 1
128 + 8 + 4 + 2
=142
most ← (significant bit) → least
MSB
LSB
IPアドレスの構造の理由
– Aまで行ければBにもCにも行ける(ARPで)
– BとCを区別する必要があるのはAのみ
– 「現地に行けば分かる」
A
D
E
N1
B
C
複数のネットワークをまとめて一
つのネットワークとして扱う
(アドレス集約,プレフィックス)
複数のホストをまとめて一つのネット
ワークとして扱う
(ネットワークアドレス)
プレフィックスとは
• IPアドレスの「範囲」
• 範囲はどこでも切れるわけではない
0
0x00000000
0.0.0.0
192.168.255.255
4294967296
0xffffffff
255.255.255.255
192.168.0.0/16
192.0.0.0/8
/32→ホスト経路
0.0.0.0/0
(= 255.255.255.255/0)
アドレス全体
→デフォルト経路
ネットワークアドレスとネットマスク
•
•
•
•
IPアドレスの範囲を指定
203.178.142.128~159の31個のアドレス範囲
例:203.178.142.128 netmask 0xffffffe0
例:203.178.142.128/27(プレフィックス)
.
.
.
203
178
142
130
11001011 10110010 10001110 10000010
11111111 11111111 11111111 11100000
0x
255
ff
.
255
ff
.
255
ff
.
224
e0
203
.
178
.
142
.
128
/ 27
11001011 10110010 10001110 100*****
IPv6アドレス
• IPアドレスは16バイト(128bit)
• IPv4と同様の表記は長すぎ
– IPv4アドレスと同様の表記をすると、
– 123.123.123.123.123.123.123.123.123.123.123.123.123.123.12
3.123
•
•
•
•
16ビットずつ16進数で表現
ピリオド「.」ではなく、コロン「:」で区切る
16ビットの始まりの0は省略できる
コロン間が全て0の連続の場合、1回だけ省略できる
2001:0000:0000:0000:220:e0ff:fe89:dc8
= 2001::220:e0ff:fe80:dc8
IPv6アドレス表記方法
• IPv6アドレスは128bit
•
•
•
•
2001::200:e0ff:fe80:dc8
例:
16進数で2バイトずつ表記(0x00~0xff)
コロンで区切る
実際には
00100000 00000001 00000000 00000000
00000000 00000000 00000000 00000000
00000010 00000000 11100000 11111111
11111110 10000000 00001101 11001000
IP Forwarding
実際には Dst が IP prefix になっている
Routing Table Lookup
Dst NH I/F
A B B N1
C
B N1
D
B N1
N1
AからDへの通信
C
N2
B
D
Routing Table Lookup
Dst NH I/F
A
A N1
C
C N2
D
D N3
N3
経路 match・longest match
203.178.142.130 は 203.178.128.0/17 に match
203.178.142.130 は 203.178.128.0/20 にも match
203.178.142.130 は 203.178.128.0/21 には?
203
.
178
.
142
.
130
110 0 1 011 101 1 0 010 100 0 1 111 010 1 1 001
203
.
178
.
128
.
0/17
110 0 1 011 101 1 0 010 100 0 0 000 000 0 0 000
203
.
178
.
128
.
0/20
110 0 1 011 101 1 0 010 100 0 0 000 000 0 0 000
203
.
178
.
128
.
0/21
110 0 1 011 101 1 0 010 100 0 0 000 000 0 0 000
挑戦、工夫、失敗(1)
• 不連続ネットマスク
– 人類はうまい利用法を考え付かなかった
– 現在は連続ネットマスクのみ→先頭からのビット数を示せば良い(/18
など)→ということは接頭辞(プレフィックス)のみでよい
• Class A/B/C/D/E
– 先頭のビットで判断:0, 10, 110, 1110, 1111
– default mask:A: /8, B: /16, C: /24,
– アドレス利用効率
• VLSM/CIDR
– Variable Length Subnet Mask
– Classless Inter Domain Routing
– RIPv1/IGRPは Classfull なので × になった
• IPv6
IP 転送の特徴
• IP アドレスの構造
– 単純、柔軟
– 失敗もあった
– それでも作り直す必要が出る(IPv6)
• IP 転送の特徴
– 単純:役割はルータとホストのみ
– 状態への依存性も最小
経路表の正確さ
• 経路が無い場合
– 通信が全く行えない
• 到達できない終点への経路がある場合
– 通信が全く行えない(どちらにせよ)
– 無駄なトラフィック
• 経路がループ(矛盾)している場合
– 通信が全く行えない
– リンクの輻輳
• 経路表は正確でなくてはならない/経路表が正確
であれば通信できる
• 経路制御システムの目的:経路表を正しく作成する
経路制御
• 静的経路制御(static routing)
– 人間が手で経路を設定する
– ネットワークが複雑だと、大変面倒臭い
• 動的経路制御(dynamic routing)
– コンピュータが自動的に経路を計算
– 迂回経路があれば、自動的に通信可能性が回
復
インターネットルーティングプロト
コル
まあまあ良書
• Christian Huitema, Routing in the Internet,
Prentice Hall
• インターネットルーティング, 翔泳社
• 是非英語で!
RIP
• 伝言式
• 隣接ルータと経路表を交換
– 経路表をまる投げ(ブロードキャスト)
• コストはホップ数で表す
– ディスタンスベクター型アルゴリズム
– 通知されたコストに1を追加
– 16ホップを無限大(infinity)
経路表の更新
• 必要に応じて経路表を更新
– 経路表にない経路が通知された場合
– 終点までコストが低い経路が通知された場合
– 経路表のネクストホップから通知された場合
• 各ルータは30秒毎に経路表を通知
– トポロジの変化への対応
– 180秒通知がない経路は切断とみなす
経路表の交換
A
B
A=0
L1
C
A=1
A=0
A=1
B=0
L3
L4
D
L2
C=0
E
A=1
D=0
L5
L6
From E to Link Cost
E
B
C
D
A
local
L4
L5
L6
L6
0
1
1
1
2
A
L4
same cost
No Update!
2
経路表の交換
A
B
C
L1
L3
L2
L4
D
A=2
E
L5
L6
From E to Link Cost
E
B
C
D
A
local
L4
L5
L6
L6
0
1
1
1
2
A
L5
bigger cost
No Update!
3
経路表の交換
A
B
A=0
F L7
A=0
L1
L3
L2
A=1
L3
A=1
C
L4
D
E
A=2
L5
L6
From E to Link Cost
E
B
C
D
A
local
L4
L5
L6
L6
0
1
1
1
2
A
L6
3
経路表のNext Hopから!
Update!
経路表の交換
A
B
A=0
F L7
L1
L2
A=1
L3
L3
C
L4
D
E
L5
L6
From E to Link Cost
E
B
C
D
A
local
L4
L5
L6
L6
0
1
1
1
3
→2。 Fも追加される
Counting to Infinity again…
• 必ずしもCounting to Infinityは防げない
D
From D to Link Cost
A
L3
C
L2
2
A
L3
Error!
B
A
A=16
L1
X
L4
From B to Link Cost
A
L1
From C to Link Cost
16
1
L4
16
2
Counting to Infinity again…
• 必ずしもCounting to Infinityは防げない
D
From D to Link Cost
A
L3
2
5
C
A=2
L2
From C to Link Cost
A
L4
L2
4
16
32
L3
A=4
B
A
A=3
L1
X
L4
From B to Link Cost
A
L1
L4
1
16
41
CよりもDが先に
通知してしまった場合
再び無限ループが発生
Counting to Infinity
RIPまとめ
• Why RIP is so simple ?
– 強さとシンプルさのトレードオフ
• とてもシンプル
– ディスタンスベクター型
– 簡単なプロトコルアルゴリズム
• 小規模ネットワーク用
– 16ホップを Infinity と認識(到達不可能)
• Counting to Infinity という問題
• 解決案
– まったく別のアルゴリズム(リンクステート型)
– 途中経路(パスリスト)を記録する(パスベクタ)
– シーケンス番号
OSPF
• Open Shortest Path First (RFC2328)
• リンクステート型ルーティングプロトコル
– 分散型データベース
– Dijkstra’s SPF algorithm
What is OSPF
• Open Shortest Path First protocol
• the open routing protocol that employs SPF
calculation (developed before 1991)
– specification is OPEN
– SPF calculation = Dijkstra algorithm
• Link state routing protocol
• Loop free
– as long as LSDB is synchronized
– as long as all routers employs the same calculation
• LSA (Link State Advertisement)
• LSDB (Link State DataBase)
用語説明
•
•
•
•
Node:ルータかマルチアクセスネットワーク
Neighbor:近接するルータ
Adjacency:OSPFの経路制御用セッション
LSA (Link State Advertisement):
– OSPF経路制御情報の単位
• LSDB (Link State Database):
– LSA のデータベース
OSPF
Open Shortest Path First
• 地図で計算型
• リンクステート型アルゴリズム
– Loop Free
– DV型に比べ、ルータ当たりの計算量が多い
• 信頼性がある(受信確認:LSAck)
• IP 用に作られた
– IP以外は not supported
• IAB が推奨している
OSPF
Open Shortest Path First
• Hello Sub-protocol
– リンク、ネットワークの接続性を監視
• LSA Flooding
– LSA(Link State Advertisement): ルータの接続情報
– 経路制御情報の伝播
• SPF 計算
– トポロジ、経路の計算
• Area functionality
– 経路制御ドメインの分割
LSA
• TLV:Type-Length-Value
– 任意の情報を格納できる
– 経路計算に使う情報が格納される
• LS Type, Link State ID, Advertising Router の組
で識別
• ネットワークの全ルータが同じLSAセット(LSDB)を
持つ
– Router-LSA, Network-LSA, AS-External-LSA, Type-3
Summary-LSA, Type-4 Summary-LSA
OSPFイメージ
LSA
LSDB
AS (Autonomous System)
Neighbor
Adjacency
各ルータは、neighbor と LSA を交換(全ルータで
LSDBを同期)。その後、それぞれのルータが
LSDBから経路を独自に計算する。
リンクコスト
• 管理者の意向を経路に反映するために、ネッ
トワークには「コスト」を設定できる
• コストは、出力側にかかる(有向)
B
D-A: 5
4
1
A 5
1
8
1
2
C
3
A-D: 4
D
マルチアクセスネットワーク
←データベース内の「接続」
←プロトコルセッション(Adjacency)
仮想ノード:O(n)
フルメッシュ:O(n^2) 無駄!
Router-LSA
A
Router-LSA
B
Router-LSA
C
Router-LSA
A
Router-LSA
B
Router-LSA
C
Network-LSA
D
E
Router-LSA
F
D
Router-LSA
Router-LSA
Router-LSA
Designated Router
Router-LSA
Network-LSA
D
Router-LSA
A
Router-LSA
B
E
Router-LSA
Router-LSA
C
F
Router-LSA
E
F
Router-LSA
Router-LSA
DR/Backup(実際)
DR
A
D
B
E
Backup
C
F
DR
• マルチアクセスネットワーク毎に選ばれる
• インターフェイスの状態(State)
– DR/Backup/DROther (/Down/PointToPoint/…)
A
B
C
N1
D
Backup
E
DR
F
Backup
DR
N2
H
I
J
G
Without Designated Router
and Network-LSA
A
1
B
2
7
D
A
1
C
8
3
E
B
2
7
D
C
8
3
E
Router A
B-1
C-1
D-1
E-1
Router B
A-2
C-2
D-2
E-2
Router D
A-7
B-7
C-7
E-7
Router C
A-8
B-8
D-8
E-8
Router E
A-3
B-3
C-3
D-3
With Designated Router
and Network-LSA
A
1
B
2
7
D
A
1
C
8
3
E
B
2
7
D
C
8
3
E
Router B
N1 - 2
Router A
N1 - 1
Network1
A-0
B-0
C-0
D-0
E-0
Router D
N1 - 7
Router C
N1 - 8
Router E
N1 - 3
SPF 計算
D
SPF Tree
B
3
D’s LSDB
LSA D
LSA B
LSA C
LSA A
C
1 計算
A
2
経路表
C|1|2
B|1|3
:
D
C
2
3
A
1
A’s LSDB
LSA A
LSA D
LSA B
LSA C
C’s LSDB
LSA C
LSA D
LSA B
LSA A
全トポロジ情報を持って
いるので、ループを含めた
B
トポロジが計算できる
4
B’s LSDB
LSA B
LSA D
LSA C
LSA A
トポロジ情報から、
それぞれが
独自に経路を計算
topology representation
Router A
B-3
D-1
A
3
1
2
B
3
D
4
1
2
4
C
Router B
A-2
C-4
Router D
A-3
C-1
E-8
8
6
E
Router C
B-2
D-4
Router E
D-6
Dijkstra algorithm
(N)Sc = Shortest path found as cost c at Nth step
(N)Cc = found as Candidate as cost c at Nth step
(0)S0
1. Install shortest path to self
Router A
2. follow the link of the node
B-3
(1)C3
(1)C1
whose shortest path have
D-1
(3)S3
(1)S1
just found in prev-step,
Router B
A-2
C-4
(2)C2
(2)S2
Router C
B-2
D-4
Router D
make those candidate
A - 3 3. Install shortest path of
C-1
candidate that has least
E-8
cost among candidates
Router E (2)C9
(4)C9
D-6
Dijkstra algorithm
• the paths to the candidate vertex that is closest
to the root are guaranteed to be shortest
• OSPF cost is defined to be a positive integer
1. Let C(B-E) be the cost from B
A
to E
G
2. Suppose C(I) is the least cost
C
B
among candidates
D
K
3. Can any I’ that satisfies C(I) >
F
E
C(I’) exist ?
H
?
•C(I) > C(?) + C(?-I’) from 3
I
J
•C(I) < C(?) from 2
I’
C(?-I’) satisfies above will be
negative, so contradiction
Dijkstra algorithm
• Is the path A-B-E-I Loop free ?
• Yes, As long as LSDBs are synchronized
1. C(A-C-F-?-I’) > C(A-B-E-I) so
C(B-A-C-F-?-I’) > C(B-E-I),
no chance for B to get back to
A (unless there’s another path
that we don’t know)
2. the same goes for E and B,
and for I and E
A
G
C
B
D
H
I
K
F
E
?
J
I’
OSPF Hierarchy
• Area を区切って階層化
• AS内には一つ Backbone Area が必要
• 各 Area は Backbone に接続されていなくて
はならない (Virtual Linkの利用)
Backbone
Area
Area
AS
Backbone = Area 0.0.0.0
Area内の計算:SPF algorithm
Area間の計算:Distance Vector algorithm
Area 境界はルータ内部にある
Interface が属する Area は一つ
Area
Area
DV
SPF
OSPF Area Hierarchy
ABR (Area Border Router)
Area 0.0.0.1
Backbone Area
(Area 0.0.0.0)
Area 128.0.0.0
Area 255.0.0.1
Area 0.0.0.128
Area 10.0.0.0
•Normal Area
•Transit Area
•Stub Area
•NSSA Area
Virtual Link
Backbone area must be adjacent to all other areas
設定項目
• OSPF Router-ID:ルータ識別子
• Interface
– Area ID:インターフェースが属する Area ID
– Hello Interval:Hello 送信間隔
– Router Dead Interval:ルータ消滅検知の間隔
– Priority:DRになる優先度
2WAY or FULL
cisco1.fujisawa#
show ip ospf neighbor
Neighbor ID
Pri
lo-0.cisco1.not
1
foundry2.otemac
0
lo-1.foundry1.f
1
lo-1.cisco1.nez
0
lo-1.foundry4.o
1
fe-0-7.hitachi2
0
ge-0-1-0-v4.jun
1
eth2.pc1.hongo.
0
ge-0-0-0-v4.cis
0
203.178.138.234
1
ve-4.foundry2.n
0
ve-4.foundry1.y
0
nec1.yagami.wid
0
ve-4.foundry3.n
1
fe-fxp1.pc3.yag
0
fe-fxp0.pc3.fuj
0
lo-0.cisco11.fu
1
lo-1.foundry1.f
1
fe-fxp0.pc1.fuj
0
fe-0-7.hitachi2
0
ve-100.foundry2
1
State
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
FULL/BDR
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
FULL/DR
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
FULL/BDR
2WAY/DROTHER
2WAY/DROTHER
2WAY/DROTHER
Dead Time
00:00:31
00:00:30
00:00:29
00:00:31
00:00:31
00:00:35
00:00:31
00:00:34
00:00:32
00:00:30
00:00:37
00:00:33
00:00:32
00:00:35
00:00:31
00:00:29
00:00:25
00:00:19
00:00:20
00:00:27
00:00:20
Address
203.178.138.225
203.178.138.227
203.178.138.253
203.178.138.231
203.178.138.241
203.178.138.251
203.178.138.228
203.178.138.230
203.178.138.233
203.178.138.234
203.178.138.237
203.178.138.240
203.178.138.242
203.178.138.244
203.178.138.245
203.178.138.254
203.178.137.78
203.178.137.91
203.178.137.69
203.178.137.70
203.178.137.74
Interface
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet2/0.4
GigabitEthernet1/0.100
GigabitEthernet1/0.100
GigabitEthernet1/0.100
GigabitEthernet1/0.100
GigabitEthernet1/0.100
Open Issues
• LSA 更新間隔
– 定期的、間隔は変えられない(30 min.)
– 140,000 LSA だと一リンク上に流れるのは 77 LSA/sec
– IS-IS にはこの問題が無い
• 最適なコスト設定は数学的に困難な問題
• エリアへの分割の仕方が確立されていない
• 一エリア内の規模性は未知
– Hello メッセージのサイズ制限問題
– ルータ 200 台以内に抑えるのが良いと言う(経験則)
– ルータ 500 台以上でも動いたという噂もある
OSPFまとめ
(利点、工夫、欠点、失敗)
•
•
•
•
•
設定が簡単
ループフリー
受信確認
DR, Network-LSA
LSDB同期処理が規模性の限界
– LSA 再広告間隔
• 最短経路制御のみサポート
– 最適コスト設定問題
その他のルーティングプロトコル
IS-IS
Intermediate System-Intermediate System
• Link state algorithm
– ほぼOSPFと同じ、長い間競争中
• マルチプロトコル対応
– Defined for OSI CLNP by ISO
– TLV
• 制限
– Metric 6bit (4-Types of Metrics)
– 1ルータにつき最大256の状態広告
– エリア機能が貧弱
IGRP
• Interior Gateway Routing Protocol
– Cisco’s proprietary protocol (特許)
• ディスタンスベクタ型アルゴリズム
• Composite metrics (合成メトリック)
– (delay, bandwidth, reliability, load)
• Loop Detection
– Path hold down (隔離期間)
– Route poisoning (ホップ数監視)
EIGRP
• Enhanced IGRP
• VLSMサポート
• Loop Detection
– DUAL (Diffusing Update Algorithm)
Inter Domain Routing / BGP
経路制御の階層化
• 規模性の向上には、階層化が不可欠
– ⇔フラットルーティング
• AS(Autonomous System:自律システム)
– 階層化のための、経路制御ドメインの単位
– 「単一のルーティングポリシを持つ組織」
– 現実の組織と緩く一致
• EGP: Exterior Gateway Protocol、AS間
• IGP: Interior Gateway Protocol、AS内
AS
Autonomous System
• 自律システム
– 元の定義:「単一のポリシで運用される経路制御
ドメイン」
– 今の一般的な定義:「経路制御のためのドメイン」
• インターネットをAS単位に分割
• AS番号の割り当て
– http://www.nic.ad.jp/jpnic/ipaddress/as-numbers.txt
AS Hierarchy
Internet Exchange (IX)
The Internet
3
4
Interior Gateway
Protocol (IGP)
k
8
10
b
f
2
5
6
7
a
j
1
d
c
l
s
m
u
11
e
i
h
g
p
o
n
q
t
v
r
AS (Autonomous System)
x
9
w
Exterior Gateway
Protocol (EGP)
AS Hierarchy
The Internet
EGP
(Exterior Gateway Protocol)
IGP
(Interior Gateway Protocol)
Private Peering
IX (Internet eXchange)
AS (Autonomous System)
IGP
Interior Gateway Protocol
• AS内で用いる経路制御プロトコル
• RIP, OSPF, IS-IS, IGRP, …
IGP
AS
EGP
Exterior Gateway Protocol
• AS間で用いる経路制御プロトコル
• BGP
EGP
AS
Inter Domain Topology
IX: Internet eXchange
AS
F
AS
F
AS
E
AS
AS
A
B
AS
C
AS
D
BGP
Border Gateway Protocol
• 現在のAS間経路制御プロトコル(EGP)
• パスベクタ型アルゴリズム
– Loop Free
• ASレベルでのルーティングポリシーを実現
Path Vector Algorithm
には自分 A が既に
現れているので、ループを検知
D A C
A C
AS
A
C
AS
1
A C 2
B
Loop?
D A C
C
AS
3
4 B A C
AS
D
B A C と
A C
短いパス A C を採用
Internal BGP peer
Internal BGP Peer
eBGP
eBGP
External BGP Peer
R
iBGP
R
IGP
AS
BGPの経路制御情報を
伝播できない
Route reflector
Reflector and cluster
ルーティングポリシ
• ポリシーに基づく経路選択
– 他のISP(AS)とどのようにトラフィックをやりとりしたいか
• 単に近さやコストをもとにした選択ではない
• 他のISPとの間でどのように経路情報をやり取りする
か
• 個々の目的地ごとに経路を選択する
• BGPのパス属性を用いる
– 経路情報のやり取りの制御だけでは実現できないポリ
シーもある
• ネットワークトポロジの再考などが必要
ルーティングポリシの実現
• Multi Exit Discriminator
• Local Preference
• AS Path Prepend
As-path prepend
As-path prepend
MED
Local Pref
BGPまとめ
• ダイナミックな経路情報の更新
– 初期情報の流通(準備)
– 変化の検知とその伝播
• スケーラビリティ
– 規模
– 正確さ
• 自律分散性
– 切断・故障のあとの生き残り部分の経路制御
経路制御の現状
• OSPF/BGP を利用するのが一般的
– IS-IS/BGP や、BGP のみという選択肢もある
• AS内は最短経路制御
– 遠回りさせたいという要求: Traffic Engineering,
QoS Routing
– そのために MPLS が良く利用される
• 帯域保証の NGN (経路制御に変更は無さそ
う)
自律分散システムで重要なこと
• 単純さ
– 役割の少なさ、構造の少なさ、単純な処理
• 独立性(≒自律性)
– どの部分それ単体でも動作すること
– 最小のインタラクション、局所性、依存関係の少なさ
• 単純な処理を分散させる
– 単一障害点の回避
• 管理の容易さ
– 集中管理のほうが管理しやすい
• それらのバランスが大事
まとめ
• 自律分散システムの例として、経路制御シス
テムを説明した
– 人工物で最大規模の自律分散システム
– インターネット自身
• 通信性能、耐故障性、等々
• 様々なものが関わる
– 数学的理論
– 組織や管理などの工学
– 経験則
– 政治経済
終わり
計算量
わかっておくべきこと
• 平均,分散・標準偏差
– 正規分布であれば平均の±2標準偏差の範囲内
に全体の95%が含まれる
• 線形,対数関数,二(x)次関数,指数関数
– y = cn, log(n), n^x, x^n
計算量とは
• 成長率!
– 入力変数に対する成長率のみ
– 実際にどれだけの時間や空間が必要であるのか
はまったくわからない
• 二つの別のアルゴリズムで,O(n) が O(n^2) より短時
間であってもおかしくない
• 計算時間(ステップ数),計算空間(メモリ量)
• 平均と最悪がある
計算量の出し方
• 係数は重要ではない
– n が巨大になったとき,係数の違いは単なる定数倍にな
る
• 支配項
– 最も重要(巨大)になる項を重要視する
– 他の項は消す場合も: O(n^2 + n) → O(n^2)
• アルゴリズムの解析
– for ループの回数
– 各ステップでの内部計算
• データ構造や検索手法など
良書
• アルゴリズムC・新版―基礎・データ構造・整
列・探索 (単行本)
R. セジウィック (著), Robert Sedgewick (原
著), 野下 浩平 (翻訳), 佐藤 創 (翻訳), 星 守
(翻訳), 田口 東 (翻訳)近代科学社; 新版版
(2004/06)
グラフ理論
グラフ理論
• 数学記号に慣れる
– G = (V, E)
• 専門用語を勉強する
– 道,路,(出・入)次数,非循環,閉路
– 有向・無向などなど
• あとはパズル的
• ネットワーク全体を俯瞰するという感覚が重
要
用語
•
•
•
•
•
•
•
•
歩道(walk) – グラフに添った道順
小道(trail) – 辺が重複しない walk
路(path) – 頂点が重複しない trail
閉路(cycle) – 始点=終点な trail
次数(degree) – ノードの接続辺の数
有向グラフ(directed graph)
容量付きグラフ(capacitated graph)
多重グラフ(multigraph)
良書
• 滝根 哲哉,伊藤 大雄,西尾 章治郎,岩
波講座 インターネット 5 ネットワーク設計
理論 ISBN4-00-011055-1
– すごくいい本
– 待ち行列の章は飛ばしても理解できる
最後に
研究とは
• よく調べること.
• 新しいものを発明しなくても良い
– サーベイ論文
– 制度・政策の研究
– ピンクフロイドの歌詞研究!
• 論理的,合理的であることが重要
いろいろなきっかけ
• 甲殻機動隊2
– 全身サイボーグ
– 体中に通信ネットワーク張り巡らされてる
– きっとIPだろう(じゃなくてもいいけど)
– 右腕乗っ取られたので,体と右腕との間で制御の
奪い合い,ウィルス攻撃合戦
–そのときのルーティングシステムって
何?
– (RIPもOSPFも有り得ない・・・)
研究者の心得・勉強の仕方
• 図書館行く
– 書籍を片っ端から開いてみる
– わかんなかったら無視
– 雑多なものも適当に読み,その上で珠玉の一冊を探す
• 論文を探す
– デジタルライブラリでキーワード検索
– 良い論文を見つける(有名な論文,良く参照される論文,
分かりやすい論文,まとまっている論文,・・・)
– 芋づる方式
• 論文の参考文献から手繰る・辿る(書籍も見つかる)
研究者の心得・勉強の仕方
• 論文読む(efficient reading, skimming)
1. タイトルを読む
2. アブストを読む → 2.を繰り返す or 次の論文に行く
3. イントロを読む → 2. に戻る or 3. を繰り返す or 次の論
文に行く
4. 結論を読む → 2. に戻る or 次の論文に行く
5. 図だけ適当に見る → 2. に戻る or 次の論文に行く
6. 真面目に読む or どうしても知りたいところをしっかり読む
7. 次の論文に行く
• 論文,英語の書き方を知る
– 論文を読み,模倣する(コピペしないように!)
– 論文や英語の書き方の書籍を見る
科学者として
• 目標は高く持て
• ズルすんな
– データ改ざんしない
– 文章の盗作しない
– 研究ネタを使いまわさない
• 誠実であれ
– 見栄張らない,嘘をつく,隠す(出来てないところは言わない等)をし
ない
• 自分が少しでも強引だと思うことはしない
– 自分の研究の欠点を述べる
• ちゃんと評価する
• 無駄を省け
– とことんまで無駄を省き,できるだけ短く
科学者として
• 論理的に,明確に説明せよ
–
–
–
–
–
–
–
–
何を目的としたか
前提は何か
どうしたらどうなると予想したか
なぜそのようになると予想したか(予想の根拠)
何をしたか
どういう結果が出たか
欠点は何か
新規性は何か
• 人の意見を聞く
– 論文を見せる
– 言われたことはちゃんと直す,反論を用意する