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
97
Dynamic Routing Protocols
Haru(utsushiiro)
April 03, 2017
Tweet
Share
More Decks by Haru(utsushiiro)
See All by Haru(utsushiiro)
Webを早くする技術(HTTP)
utsushiiro
1
550
メールの仕組み
utsushiiro
4
890
TCPその他の機能と性能 + TCP Fast Open + TLS False Start
utsushiiro
1
730
TCP
utsushiiro
0
89
Other Decks in Programming
See All in Programming
ベクトル検索システムの気持ち
monochromegane
31
9.9k
Bedrock×MCPで社内ブログ執筆文化を育てたい!
har1101
6
900
リアクティブシステムの変遷から理解するalien-signals / Learning alien-signals from the evolution of reactive systems
yamanoku
3
1.2k
Rollupのビルド時間高速化によるプレビュー表示速度改善とバンドラとASTを駆使したプロダクト開発の難しさ
plaidtech
PRO
1
160
趣味全開のAITuber開発
kokushin
0
190
[NG India] Event-Based State Management with NgRx SignalStore
markostanimirovic
1
110
PHPで書いたAPIをGoに書き換えてみた 〜パフォーマンス改善の可能性を探る実験レポート〜
koguuum
0
140
SQL Server ベクトル検索
odashinsuke
0
170
State of Namespace
tagomoris
4
760
S3静的ホスティング+Next.js静的エクスポート で格安webアプリ構築
iharuoru
0
220
5年間継続して開発した自作OSSの記録
bebeji_nappa
0
170
custom_lintで始めるチームルール管理
akaboshinit
0
200
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
RailsConf 2023
tenderlove
30
1.1k
How to Think Like a Performance Engineer
csswizardry
23
1.5k
A designer walks into a library…
pauljervisheath
205
24k
Typedesign – Prime Four
hannesfritz
41
2.6k
Optimising Largest Contentful Paint
csswizardry
36
3.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Done Done
chrislema
183
16k
4 Signs Your Business is Dying
shpigford
183
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.1k
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.