154 Views
April 13, 26
スライド概要
ネットワーク爆速入門 45th crashRT
はじめに • インフラ監視をする前に、必要な前提知識を共有します • 何を監視しようとしているのか?が分かるとより楽しいはず! • ( 1回生が多いので)初心者向けにしたつもり …ではある • けど多分分からない部分はあるので雑に遮って質問してください • #はたらくインターネット のために!!お願いします!! • イメージの話多めなので、厳密には違う部分もあります … • ネットワーク編とサーバー編があります • インフラ技術って面白いよ!!!!! 3
Web サイトを見るとき何が起きてる? • クライアントとサーバーの間でデータを届けるのが インターネット • Webアプリを動かす土台になるのが サーバー 5
もくじ 1. インターネット 2. パケットとアドレス 3. プロトコルと :世界をつなぐ巨大システムの裏側 :どうやってデータを届けるか? TCP/IP:うまくデータを届けるための約束事 4. パケットを送信してから相手に届くまで 5. Wi-Fiに接続してから Webサイトを表示するまで 6
インターネット 世界をつなぐ巨大システムの裏側 7
コンピュータネットワーク コンピュータネットワーク: コンピュータ同士が通信できるように繋ぐ技術 • コンピュータ同士を物理的につなぐ • 正しい相手と効率よく ケーブルや機器 通信するための約束事 の組合せで成り立っている 8
インターネット( The Internet ) いろんなネットワークを繋いで世界中どこでも繋がるようにした めちゃめちゃ巨大なシステム 9
物理的なケーブルたち ここは電力 電柱の光ファイバ 光ファイバ 地下から 架空へ 各建物へ 光ファイバ 10
物理的なケーブルたち 通信用ケーブル ケーブル用のトンネル(とう道)@ NTT技術史料館 日本橋共同溝 11
物理的なケーブルたち 海底ケーブル陸揚標識@志摩 日本の周りの海底ケーブル Submarine Cable Map https://www.submarinecablemap.com/ 海底ケーブル@ NTT技術史料館 14
KMC のネットワーク 15
ネットワークのネットワーク インターネットはいろんな組織のネットワークが繋がってできている! 17
プロトコル 物理的なケーブルの網の上で正しい相手と効率よく通信するための約束事 • 今のインターネットは IP( Internet Protocol) というプロトコルを中心とし た約束事の集まりによって保たれている • インターネットに関わる 全ての機器が一定の約束事に従って動くことで 世界中のとことでも通信ができるようになっている!!! この約束事を構成する技術について、これから紹介 19
インターネット まとめ • インターネットは魔法じゃない!! • 物理的なケーブルの網と一定の約束事(プロトコル)によって 世界中どことでも通信できるようになっためちゃ大きな技術! • ケーブルは結構身近 なところを通ってる ぞ! 20
パケットとアドレス どうやってデータを届けるか? 21
パケット交換方式 宅配のイメージ :いくつかの段ボールに詰めて、宛先を書いた送り状を貼る 送り状を見れば誰宛かが分かるので、トラックでまとめて運ぶことができる 22
ネットワークにおけるアドレス • 代表的なアドレス: IPアドレス と MACアドレス • MACアドレス • 物理的な通信で使う値 • 製造時に世界で一意の値が設定される • IPアドレス • インターネット上の位置を表す住所のようなもの • (基本的には)管理者が設定する 23
MACアドレス ハードウェア固有の 48bitのアドレス 00:00:5E:00:53:AE 1ビット目:マルチキャストか? 25-48ビット:ベンダ内での識別子 2ビット目:ローカルアドレスか? (重複が無いようベンダが管理) 3-24ビット:ベンダ識別子 • ベンダが NIC(ネットワークインターフェース)に設定する • 物理的な媒体上での伝送処理で使われる(データリンク層) ハードウェアアドレスとも 24
IPアドレス( IPv4 の場合) インターネット上の住所を表す 32bitのアドレス 192.0.2.1/24 ネットワーク部 ホスト部 サブネットマスク(ネットワーク部の長さ) • 基本的には管理者がNICに設定する • ルーターなどは IPアドレスを見て、どこに転送すれば良いか判断する • 一定の集まりを示すネットワーク部と、その中でホストを識別するホスト部 • ネットワーク部の長さは必ずしも固定ではない 25
ドメイン名と DNS • IPアドレスは覚えるのが難しい( 192.50.220.129 覚えれる?) • ので、「名前」を付けて人間に読みやすくする • kmc.gr.jp とか • この名前のことを ドメイン名 と呼ぶ • ドメイン名から IPアドレスを調べることを 名前解決をするためのプロトコルが 名前解決と呼び、 DNS 27
プロトコルと TCP/IP うまくデータを届けるための決まり事 28
プロトコル 物理的なケーブルの網の上で正しい相手と効率よく通信するための約束事 • こういう手順で、こういうデータを送りましょう …みたいな感じ • テーブルマナーとかにイメージはちょっと似てるかも • 「カトラリーは外側から使う」というプロトコル • プロトコルは階層分けされている • 全世界の機器を繋ぐ、というのは当然めちゃくちゃ難しい • なので、必要な機能をいくつかの レイヤー に分割している 29
プロトコルの例 プロトコルの内容は RFC (Request for Comments) に書かれている • ←データはこういうふうに並べましょう ( 32bitごとに折り返して書くことが多い) • 各フィールドにはこういう値を入れましょう • 受け取ったパケットの値を読んで、こういう 処理をしたらこういう値を入れて返しましょう みたいなことが書かれている 30
TCP/IP プロトコルスタック • 今世界に普及しているプロトコル群 • 以下のようなレイヤーに分けられている 31
アプリケーション層( L7) • 各アプリケーションで必要なデータをどう送るか?のフォーマット • アプリごとにプロトコルが定められている • WebのためのHTTPとか、メールのための SMTPとか • 履歴書とか婚姻届とかはイメージに近いかも • 就活用の情報を送るための履歴書 • 婚約しましたって役所に送るための婚姻届 • DNSやDHCPなどの、ネットワークをうまく使うためのプロトコルもある 32
トランスポート層( L4) • 送信元と宛先との間で、通信を制御するためのプロトコル • ( TCP/UDP)どのプロセスのための通信か?(ポート番号で識別) • ( TCP)データはちゃんと相手に届いたか? • ( TCP)送るスピードはこれで適切か? • TCPと UDPの2つが代表的 • TCP:ちゃんと送れたか確認する。イメージは書留 • UDP:ただ送るだけ、代わりに速い。普通の郵便のイメージ 33
ネットワーク層( L3) • IPアドレスを用いて、宛先へ向けてデータを転送するプロトコル • いくつかの機器でバケツリレーをして、全世界の機器と通信 • IPv4と IPv6の2つのバージョンがある • パケットちゃん「 • ルーターさん「 192.0.2.1宛のお荷物ですー」 192.0.2.0/24方面なら次は 203.0.113.1に向かって下さいー」 34
データリンク層( L2) 物理的に繋がった機器同士で通信するためのプロトコル(というか規格) • 有線のEthernetや無線の802.11( Wi-Fi)などの通信はこれ • 通信したい相手の IPアドレスから MACアドレスを取得して( ARP)、 そのMACアドレス宛ての物理信号を生成して送信 35
パケットを送信してから 相手に届くまで 36
L7~L4 クライアント( PCとか) プロセス Webサイト 見たいなあ 了解ー! 192.0.2.1の80番にいる人に このデータを届けて欲しいです TCPで届いたかの確認もお願い ポート番号を管理 宛先からの確認応答を受信 送信スピードを調整 OS 37
L3~L2 送信元: 192.0.2.2 宛先: 198.51.100.2 とりあえず 192.0.2.1に行って下さい 198.51.100.2 00:00:5E:00:53:DD 192.0.2.2 00:00:5E:00:53:AA 00:00:5E:00:53:AAから 00:00:5E:00:53:BBへ 192.0.2.1 00:00:5E:00:53:BB 198.51.100.1 00:00:5E:00:53:CC 38
L3~L2 192.0.2.2 00:00:5E:00:53:AA 送信元: 192.0.2.2 宛先: 198.51.100.2 198.51.100.2 00:00:5E:00:53:DD 198.51.100.0/24方面だね 次は198.51.100.1に行ってね 192.0.2.1 00:00:5E:00:53:BB 198.51.100.1 00:00:5E:00:53:CC 00:00:5E:00:53:BBから 00:00:5E:00:53:CCへ 39
L3~L2 192.0.2.2 00:00:5E:00:53:AA 配達完了 送信元: 192.0.2.2 宛先: 198.51.100.2 198.51.100.2 00:00:5E:00:53:DD 198.51.100.2なら繋がってるよ 00:00:5E:00:53:CCから 00:00:5E:00:53:DDへ 192.0.2.1 00:00:5E:00:53:BB 198.51.100.1 00:00:5E:00:53:CC 40
L4~L7 サーバー Webアプリ( 80番ポート) 80番さんお荷物届いてますよー 荷物確かに受け取りました! って送り主に返しておいて~ OS 41
KMC のWi -Fiに接続してから Web サイトを表示するまで 42
Wi -Fiへの接続 SSID:KMCでパスワードを入力 接続確立 認証OK!KMCに接続していいよー (その他通信のためのやりとり色々) 43
DHCP (自動設定のためのプロトコル) 僕が答えます! IPアドレスは 192.168.200.x デフォルトゲートウェイは 192.168.200.1 DNSは192.168.220.53 を使ってね! KMCのネットワークに来ました! 誰か設定教えて欲しい! 44
DNS (名前解決) www.kyoto-u.ac.jp に接続したいから、 調べてきたよー 僕の代わりに IPアドレス調べて欲しい www.kyoto-u.ac.jp のIPアドレスは 151.101.110.132 affine (vm @ tamanegi) 45
Web サイトの表示 京大webサイト 151.101.110.132 Webサイトのデータ あげるー Webサイト見せてー 46
最後に 47
JANOG の宣伝 • インターネットに関わる技術者が集まるイベント • 技術や運用上の知見を共有したり議論したり • インターネットに関わる色んな企業の人が集まってる • 学生も結構歓迎されているので気軽に行ってみよう • プログラム聞いてると今はこういうのが流行りなのか~ってなる • 次回は大阪です!!!!!!(梅田のグランフロント) • 2/11-13 なのできっと春休み中!行こう!! • https://www.janog.gr.jp/meeting/janog57/ 48
今まで参考にしてきた文献 • 京大マイコンクラブ:京大マイコンクラブのインフラ~ • 土屋 太二:新人のためのインターネット AS59128完全解剖~ &ネットワーク超入門 2025, JANOG56 (2025) https://www.janog.gr.jp/meeting/janog56/showint/ • マスタリング TCP/IP • コンピュータネットワーク • DNSがよく分かる教科書 • プロフェッショナル IPv6 • KMCで教えてもらった大量の知見 50