Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Dynamic Routing Protocols
Search
Haru(utsushiiro)
April 03, 2017
Programming
0
93
Dynamic Routing Protocols
Haru(utsushiiro)
April 03, 2017
Tweet
Share
More Decks by Haru(utsushiiro)
See All by Haru(utsushiiro)
Webを早くする技術(HTTP)
utsushiiro
1
530
メールの仕組み
utsushiiro
4
860
TCPその他の機能と性能 + TCP Fast Open + TLS False Start
utsushiiro
1
700
TCP
utsushiiro
0
85
Other Decks in Programming
See All in Programming
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
120
『品質』という言葉が嫌いな理由
korimu
0
160
動作確認やテストで漏れがちな観点3選
starfish719
6
1k
Pulsar2 を雰囲気で使ってみよう
anoken
0
240
sappoRo.R #12 初心者セッション
kosugitti
0
260
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
520
Lottieアニメーションをカスタマイズしてみた
tahia910
0
130
楽しく向き合う例外対応
okutsu
0
140
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
0
200
負債になりにくいCSSをデザイナとつくるには?
fsubal
10
2.4k
Spring gRPC について / About Spring gRPC
mackey0225
0
220
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
170
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
A designer walks into a library…
pauljervisheath
205
24k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Designing for humans not robots
tammielis
250
25k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
How to train your dragon (web standard)
notwaldorf
91
5.8k
Done Done
chrislema
182
16k
Gamification - CAS2011
davidbonilla
80
5.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Transcript
Chap.10 Dynamic Routing Protocols 詳解TCP/IP Vol.1 プロトコル @utsushiiro
▪ Static - Dynamic Routing ▪ InternetとAutonomous System ▪ IGPとEGP
▪ RIP ▪ OSPF ▪ BGP ▪ Subnet Mask ▪ CIDR & VSLM Contents 詳細ではなく, とりあえず覚え ておけばいい概要
▪ Static Routing (Chap. 9) テーブルのエントリは コマンド or ICMP Redirect等
- ネットワークが小規模 - 他ネットワークへの接続ポイントが1つ - 経路が二重化されていない これらの条件下では十分機能する これらのいずれかに適合しない場合は Dynamic Routingが用いられる
▪ Dynamic Routing ルータが隣接するルータと 各々が接続しているネットワークの情報を交換し合う この際に使われるプロトコル - RIP (Routing Information
Protocol) - OSPF (Open Shortest Path First) - BGP (Border Gateway Protocol)
InternetとAutonomous System ▪ Internetは自律システム(Autonomous System)の集合体 ▪ ASとは “「単一」の「明確に定義された」ルーティングポリシーを持つ1つ または複数のネットワーク運営組織が運営する、相互に接続さ れた1つまたは複数のIPプレフィックスのグループ
” (RFC 1930) ex. ) Internet Service Provider, 地域ネットワーク
InternetとAutonomous System ▪ もうちょっと簡単に言うと “統一された運用ポリシーで管理されるネットワークの集合” ▪ ASはAS番号と呼ばれる一意な番号を持つ これはAS間でのルーティングで用いられるBGPにて使用される ▪ AS番号はIPアドレスとともにブロック単位でRIRが管理
(RIR : Regional Internet Registry) 日本で申請するなら APNIC(RIR)の下にある
InternetとAutonomous System ▪ JPNICのAS番号リスト https://www.nic.ad.jp/ja/ip/as-numbers.txt So-net(2527)やOCN(4713)などのISPや様々な企業が取得
IX 自律システム(AS) 自律システム内の 組織やISP Network Operation Center Internet Exchange IX
Internetの構造
EGP IGP IX IX Internetの構造
Interior Gateway Protocol (IGP) AS内部のルーティング Exterior Gateway Protocol (EGP) AS間のルーティング
IGPとEGP IX IX
下位 プロトコル 方式 種別 RIP, RIP2 UDP 距離ベクトル IGP OSPF
IP リンク状態 IGP BGP TCP 経路ベクトル EGP IGPとEGP
各プロトコルについて
RIP (Routing Information Protocol) ▪ 距離ベクトル型 距離(通過するルータの数)と方向によって目的のネットワーク やホストの位置を決定する(ルーティングテーブルを作成する) 距離と向きの情報だけなので, テーブルの作成が簡単
逆にそれしか情報がないので, ネットワークが複雑になると経 路の収束に時間がかかる(また経路にループが生じやすくな る)
▪ RIPメッセージの形式 - コマンド 1: 要求 2: 応答 - アドレスファミリー IPアドレスは2
- メトリック 指定したIPアドレスまでのホップ数 16は無限大 (その宛先に対して経路を持っていない)
▪ RIPの大まかな流れ(初期化→恒常) 1. 新たに接続されたルータが稼働中のインタフェースから接続 している各ネットワークに完全なルーティングテーブル情報 を求めるパケットを送る 2. 要求を受信したルータが応答 3. 返ってきた応答をもとにテーブルを更新
4. 以後, 30秒ごとに自分の持つテーブルの全体もしくは一部を 隣接するルータに送る これらは基本ブロードキャスト
192.168.1.0 192.168.2.0 192.168.5.0 192.168.6.0 192.168.7.0 ルータA ルータAは 192.168.1.0まで 距離1 192.168.3.0
192.168.4.0
192.168.1.0 192.168.2.0 192.168.3.0 192.168.4.0 192.168.5.0 192.168.6.0 192.168.7.0 ルータA ルータBは 192.168.1.0まで
距離2 ルータB
192.168.3.0 192.168.1.0まで 距離2 ルータB ルータC 192.168.3.1 IPアドレス (目的地) 方向 距離
192.168.1.0 192.168.3.1 2 RIPメッセージ RIPメッセージパケットのIPヘッダ
Version1 (RFC 1058) Version2 (RFC 2453)
Version1 (RFC 1058) Version2 (RFC 2453) RIP→RIP2では • マルチキャスト使用 •
サブネットマスク対応 • 認証機能 …等が追加された
OSPF (Open Shortest Path First) ▪ リンク状態型 各ルータがネットワーク全体の接続状態を把握し, ルーティングテーブルを作成する ▪
RIPのようにただ自分のもつ接続情報を常時流すのではなく, 役割ごとに5種類のパケットを利用する ▪ ネットワークトポロジーの情報からダイクストラ法を用いて経 路を求める → 規模が大きくなると計算コスト大
192.168.1.0 192.168.2.0 192.168.3.0 192.168.4.0 192.168.5.0 192.168.6.0 192.168.7.0 ネットワークトポロジーの データベース 各ルータが同じ情報を持つ
(ように情報をやり取りする)
192.168.7.0 10 20 100 30 10 20 ▪ 各リンクに重みをつけられる ▪
この重みが小さくなるように経路を計算する ルータBから192.168.7.0ならB→EでなくB→C→D→Eといったように ルータB ルータC ルータD ルータE もうちょっと詳しくはここ
BGP (Border Gateway Protocol) ▪ 経路ベクトル型 距離と向き, そして通過するノード(BGPではAS)のリストをも とに経路を決定 ※ASはAS番号で識別される
▪ Node AからNode Xに行く際に通過するノードがわかるの で距離ベクトルではなく, 単なるリスト(一次元)なのでリンク状 態でもない
IX IX AS1 AS2 AS3 AS4 AS5 AS1からAS5の138.91.1.0/24へのAS経路リスト 138.91.1.0/24 AS3
AS5 AS2 AS4 AS5
AS1からAS5の138.91.1.0/24へのAS経路リスト 138.91.1.0/24 AS3 AS5 AS2 AS4 AS5 ▪ 基本的にAS数の少ない経路が選択されるが, 接続相手の契約内容などによって細かな経路選択が可能
Subnetの話
▪ 1990年代半ばまで, IPアドレスの割当はクラス単位 クラスが決まればネットワーク部とホスト部がわかる ▪ これ(クラスによる判別)だけではもらったIPアドレスにすべて のホストがつながり, 管理しにくい → サブネットワーク化の登場
(RFC950 これにはサブネットマスクではなく, アドレスマスク という言葉が使われている) Subnet Mask
▪ 次なる問題点 ▪ もらったIPからネットワークを作る際に,サブネットマスクの長 さを統一する必要があった (問題1) → 部署ごとにホスト数が異なるのでそれに合わせて サブネットを作りたい…等の要求
▪ ちょうどいいくらいのホスト数のクラスBの要求が多く, 絶対数が不足 (問題2) Subnet Mask
▪ 問題1に対する対処 1つのIPネットワークをサブネット化する際に 複数の長さのサブネットマスクを利用する仕組み ▪ これはネットワーク内で使用されるルーティングプロトコルを サブネットマスクに対応した RIP2やOSPFに変更することで 実現された(RIPのversion1はサブネットを完全にはサポート していない)
Variable Length Subnet Mask
Variable Length Subnet Mask 192.168.1.0/30 192.168.1.0/27 192.168.1.32/27
▪ 問題2に対する対処 クラスの概念を取っ払った新たなIPアドレスブロックの割り当 て法を定義 (RFC1519, RFC4632) ▪ プレフィクスに基いてIPアドレスを解釈する(ネットワーク部と ホスト部の)規格 220.X.0.0/23
←末尾のこれがプレフィクス ▪ クラスCを複数束ねて配布するようにした Classless Inter-Domain Routing
▪ IANA → RIR (→ NIR) → ISP の順でCIDRプレフィクスが長くなる ▪
地理的に近いところに似たようなIP(上位bitが等しい) が割り振られる(を割り振る) → 集約しやすい ▪ 組織間ルーティングプロトコルのBGPが CIDRに対応することで実現 Classless Inter-Domain Routing
Classless Inter-Domain Routing 220.X.1.0/24 220.X.2.0/24 220.X.0.0/24 220.X.1.0/24 220.X.2.0/24 → 220.X.0.0/21
220.X.3.0/24 ・・・ 220.X.7.0/24 8→1へ集約
ホスト部 ざっくり言うと ▪ VLSMはホスト部のbitを利用(消費)して 複数の異なるサブネットを作成 ▪ CIDRはネットワーク部のbitを利用(消費)して 複数のネットワークを1つのネットワークにする CIDRとVLSM ネットワーク部
VLSM CIDR
Reference Presentation template by Slides Carnival Credits W. Richard Stevens.
1993. TCP/IP Illustrated (Vol. 1): The Protocols. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.