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
100
Dynamic Routing Protocols
Haru(utsushiiro)
April 03, 2017
Tweet
Share
More Decks by Haru(utsushiiro)
See All by Haru(utsushiiro)
Webを早くする技術(HTTP)
utsushiiro
1
570
メールの仕組み
utsushiiro
4
900
TCPその他の機能と性能 + TCP Fast Open + TLS False Start
utsushiiro
1
750
TCP
utsushiiro
0
91
Other Decks in Programming
See All in Programming
テスト分析入門/Test Analysis Tutorial
goyoki
11
2.7k
推論された型の移植性エラーTS2742に挑む
teamlab
PRO
0
150
OpenTelemetry + LLM = OpenLLMetry!?
yunosukey
2
390
Feature Flag 自動お掃除のための TypeScript プログラム変換
azrsh
PRO
4
620
Babylon.js 8.0のアプデ情報を 軽率にキャッチアップ / catch-up-babylonjs-8
drumath2237
0
110
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
7
380
事業KPIを基に価値の解像度を上げる
nealle
0
200
型安全なDrag and Dropの設計を考える
yudppp
5
660
Cloudflare Realtime と Workers でつくるサーバーレス WebRTC
nekoya3
0
230
eBPFを用いたAIネットワーク監視システム論文の実装 / eBPF Japan Meetup #4
yuukit
3
610
從零到一:搭建你的第一個 Observability 平台
blueswen
0
210
コードに語らせよう――自己ドキュメント化が内包する楽しさについて / Let the Code Speak
nrslib
5
980
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Producing Creativity
orderedlist
PRO
346
40k
Become a Pro
speakerdeck
PRO
28
5.4k
Stop Working from a Prison Cell
hatefulcrawdad
269
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
650
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.