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
90
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
820
TCPその他の機能と性能 + TCP Fast Open + TLS False Start
utsushiiro
1
650
TCP
utsushiiro
0
82
Other Decks in Programming
See All in Programming
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
120
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
6
2.1k
Functional Event Sourcing using Sekiban
tomohisa
0
110
React への依存を最小にするフロントエンド設計
takonda
19
5.5k
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
1.3k
Djangoの開発環境で工夫したこと - pre-commit / DevContainer
hiroki_yod
1
270
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
210
as(型アサーション)を書く前にできること
marokanatani
10
2.8k
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
1
110
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
1.1k
みんなでプロポーザルを書いてみた
yuriko1211
0
290
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Designing the Hi-DPI Web
ddemaree
280
34k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
GraphQLとの向き合い方2022年版
quramy
43
13k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Code Reviewing Like a Champion
maltzj
520
39k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
For a Future-Friendly Web
brad_frost
175
9.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
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.