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
92
Dynamic Routing Protocols
Haru(utsushiiro)
April 03, 2017
Tweet
Share
More Decks by Haru(utsushiiro)
See All by Haru(utsushiiro)
Webを早くする技術(HTTP)
utsushiiro
1
520
メールの仕組み
utsushiiro
4
830
TCPその他の機能と性能 + TCP Fast Open + TLS False Start
utsushiiro
1
660
TCP
utsushiiro
0
83
Other Decks in Programming
See All in Programming
42 best practices for Symfony, a decade later
tucksaun
1
180
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
Jakarta EE meets AI
ivargrimstad
0
240
快速入門可觀測性
blueswen
0
350
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
3
370
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
2
680
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
100
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
460
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
750
From Translations to Multi Dimension Entities
alexanderschranz
2
130
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
250
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
13k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
The World Runs on Bad Software
bkeepers
PRO
65
11k
BBQ
matthewcrist
85
9.4k
Music & Morning Musume
bryan
46
6.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
How GitHub (no longer) Works
holman
311
140k
Designing for humans not robots
tammielis
250
25k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
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.