Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ネットワーク基礎 - WEBページが表示されるまで

ネットワーク基礎 - WEBページが表示されるまで

OSI参照モデル、TCP/IPの階層モデルからL2、L3でのルーティング、インターネットの話、WEB3層、SSL/TLSの仕組みをざっくり理解して、httpsで通信できるまでの流れをふんわり理解する

tokku5552

May 11, 2022
Tweet

More Decks by tokku5552

Other Decks in Programming

Transcript

  1. 前提知識~OSI参照モデルとTCP/IPの階層モデル~ ・コンピューターの通信を役割に分けて、  仕様を定義したもの。 ・左がOSI参照モデル  右がTCP/IPの  階層モデル 第7層 アプリケーション層 アプリケーション層 第6層

    プレゼンテーション層 第5層 セッション層 第4層 トランスポート層 トランスポート層 第3層 ネットワーク層 インターネット層 第2層 データリンク層 ネットワークインターフェース層 第1層 物理層 (ハードウェア)
  2. TCP/IPによる通信 ・TCP(Transmission Control Protocol)、IP(Internet Protocol)は インターネット環境の通信を実現する ためのプロトコル ・プロトコルとは決めごと。 RFC(Request For

    Comments)とい うドキュメントに内容が書かれてお り、誰でもインターネット上で閲覧す ることが出来る。 RFCってなに? - JPNIC : https://www.nic.ad.jp/ja/rfc-jp/WhatisRFC.html
  3. 機器を繋いで通信する~L2での通信~ ・PC ①からNAS②への送信要求を  スイッチ②に投げる ・スイッチ②が全てのポートへ転送 ・スイッチ①が全てのポートへ転送 ・NAS②からスイッチ①へ応答が返ってくるので  スイッチ②へ転送 ・スイッチ②はさっきの要求で PC①がつながっているポートが分かっているので、

     PC①に転送。 ・スイッチ①はスイッチ②に行けばその先に PC①がいることを覚え、スイッチ②はスイッチ①  に行けばその先にNAS②がいることを覚えたので、今後は全てのポートへ転送しなくなる。 →自己学習する
  4. IPアドレス ・IPアドレスは32bitの整数値 11000000 10101000 00000010 00000001 →192 . 168 .

    2 . 1 ・ネットワーク部とホスト部からなる。セットでネットワークアドレスが存在  通常はネットワークアドレスそのものではなく、サブネットマスクで示す  11111111 11111111 11111111 00000000 → 255 . 255 . 255 . 0  サブネットマスクと論理積(AND)をとる  11000000 10101000 00000010 00000000 → 192.168.2.0 第1オクテット 第2オクテット 第4オクテット 第3オクテット 先頭からのビット数で /24 とも表す
  5. IPアドレスでの通信~スタティックルーティング~ ・L3SW-Aは192.168.1.1/24と192.168.10.2/24  のIPアドレスを持っている ・自分の所属するネットワークのルーティング  とは別に、192.168.3.0/24のNWに行くときは  192.168.10.1(L3SW-Bの下の足)に  行けばよいと教える PC-A L3 SW

    -B .1 .1 192.168.3.0/24 .10 L3 SW -C PC-B PC-C L3 SW -A 192.168.2.0/24 192.168.1.0/24 192.168.11.0/24 192.168.10.0/24 .10 .10 .1 .1 .2 .2 .1 route next hop interface 192.168.1.10/32 192.168.1.10 eth1 192.168.10.0/24 192.168.10.1 eth0 192.168.3.0/24 192.168.10.1 eth0 eth0 eth1 L3SW-A
  6. IPアドレスでの通信~スタティックルーティング~ ・L3SW-Bにも同様に192.168.3.0/24への  ルーティングを設定してやる ・自分の所属するネットワークのルーティング  とは別に、192.168.3.0/24のNWに行くときは  192.168.11.1(L3SW-Cの下の足)に  行けばよいと教える PC-A L3 SW

    -B .1 .1 192.168.3.0/24 .10 L3 SW -C PC-B PC-C L3 SW -A 192.168.2.0/24 192.168.1.0/24 192.168.11.0/24 192.168.10.0/24 .10 .10 .1 .1 .2 .2 .1 route next hop interface 192.168.11.0/24 192.168.11.1 eth0 192.168.2.10/32 192.168.2.10 eth1 192.168.10.2/32 192.168.10.2 eth2 192.168.3.0/24 192.168.11.1 eth0 eth0 eth1 eth2 L3SW-B
  7. IPアドレスでの通信~スタティックルーティング~ ・L3SW-Cは192.168.3.0/24への足を  持っているので、PC-Cへ到達できる ・帰りのルーティングを設定する必要がある  192.168.1.0/24のNWに行くときは  192.168.11.2(L3SW-Bの上の足)に  行けばよいと教える PC-A L3 SW

    -B .1 .1 192.168.3.0/24 .10 L3 SW -C PC-B PC-C L3 SW -A 192.168.2.0/24 192.168.1.0/24 192.168.11.0/24 192.168.10.0/24 .10 .10 .1 .1 .2 .2 .1 route next hop interface 192.168.11.2/32 192.168.11.2 eth0 192.168.3.10/32 192.168.3.10 eth1 192.168.1.0/24 192.168.11.2 eth0 eth0 eth1 L3SW-C
  8. IPアドレスでの通信~スタティックルーティング~ ・L3SW-Bにも同様に192.168.1.0/24への  ルーティングを設定してやる ・192.168.1.0/24のNWに行くときは  192.168.10.2(L3SW-Aの上の足)に  行けばよいと教える PC-A L3 SW -B

    .1 .1 192.168.3.0/24 .10 L3 SW -C PC-B PC-C L3 SW -A 192.168.2.0/24 192.168.1.0/24 192.168.11.0/24 192.168.10.0/24 .10 .10 .1 .1 .2 .2 .1 route next hop interface 192.168.11.0/24 192.168.11.1 eth0 192.168.2.10/32 192.168.2.10 eth1 192.168.10.2/32 192.168.10.2 eth2 192.168.3.0/24 192.168.11.1 eth0 192.168.1.0/24 192.168.10.2 eth2 eth0 eth1 eth2 L3SW-B ・L3SW-AはPC-Aの場所を知っているので  追加設定なし
  9. IPアドレスでの通信~スタティックルーティング~ ・L3SW-Aは192.168.1.1/24と192.168.10.2/24  のIPアドレスを持っている ・自分の所属するネットワークのルーティング  とは別に、192.168.3.0/24のNWに行くときは  192.168.10.1に行けばよいと教える PC-A L3 SW -B

    .1 .1 192.168.3.0/24 .10 L3 SW -C PC-B PC-C L3 SW -A 192.168.2.0/24 192.168.1.0/24 192.168.11.0/24 192.168.10.0/24 .10 .10 .1 .1 .2 .2 .1 route next hop interface 192.168.1.10/32 192.168.1.10 eth1 192.168.10.0/24 192.168.10.1 eth0 192.168.3.0/24 192.168.10.1 eth0 eth0 eth1 L3SW-A
  10. IPアドレスでの通信~スタティックルーティング~ ・L3SW-Aは192.168.1.1/24と192.168.10.2/24  のIPアドレスを持っている ・自分の所属するネットワークのルーティング  とは別に、192.168.3.0/24のNWに行くときは  192.168.10.1に行けばよいと教える PC-A L3 SW -B

    .1 .1 192.168.3.0/24 .10 L3 SW -C PC-B PC-C L3 SW -A 192.168.2.0/24 192.168.1.0/24 192.168.11.0/24 192.168.10.0/24 .10 .10 .1 .1 .2 .2 .1 route next hop interface 192.168.1.10/32 192.168.1.10 eth1 192.168.10.0/24 192.168.10.1 eth0 192.168.3.0/24 192.168.10.1 eth0 eth0 eth1 L3SW-A 一つ一つ設定するのは面倒くさい
  11. インターネットに出る前に~ダイナミックルーティング~ ・BGP(Border Gateway Protocol)  IANA(Internet Assigned Numbers Authority)という機関が管理している    AS(Autonomous System)番号をもとに経路制御を行う。

     日本ではJPNICという機関がASを割り当てている ・通信ができる相手のことをピアと呼ぶ ・インターネット上ではBGPでルーティングが行われていると思ってよい 参考:インターネット10分講座:BGP - JPNIC https://www.nic.ad.jp/ja/newsletter/No35/0800.html
  12. インターネットに出る前に~プライベートIPとNAT~ ・プライベートIPアドレスを持った端末たちは組織内のネットワークから  外に出るときに、ISP(Internet Service Provider)から割り当てられた  グローバルIPアドレスに変換されて出ていく。  これがNAT(Network Address Translation) ・NATは送信元のIPアドレスを変換するSNAT(Source

    NAT)、  宛先のIPアドレスを変換するDNAT(Destination NAT)がある。 ・今は単にプライベートIPアドレスとグローバルIPアドレスを変換するもの  と覚えてもらえればいいが、ポートも同時に変換するNAPTなど、  用途や行うことによって様々な呼び方があるので注意  (ポートフォワーディング、IPマスカレード など)
  13. インターネットの世界 ・ISP(Internet Service Provider)  所謂プロバイダー。  インターネットの契約を  皆さんがする業者 ・IX(Internet Exchange)  AS間の通信や国家間の通信を 

    相互接続する拠点。  安全保障上の理由から  所在地はあまり  公になっていない 参考 jpix : https://www.jpix.ad.jp/jp/index.php
  14. https通信で抑えておくべきプロトコル ・http(tcp80) Hyper Text Transfer Protocol  HTMLでファイルをやり取りするためのプロトコル  GET/POSTなどのコマンドと応答、データによる  メッセージの送受信を行う ・dns(tcp/udp53)

    Domain Name System  ドメインとIPアドレスの変換(これを名前解決  という)を行う。DNS自体は超巨大な  分散データベースのようなもの ・https(tcp443) Hypertext Transfer Protocol Secure  実はこれ自体はプロトコルではなく、SSL/TLS  の元で暗号化されたセキュアなhttp通信のこと
  15. http - Hyper Text Transfer Protocol ・TCPの80番で通信を行う ・GETコマンド:URLの後に?を付けパラメータを渡す。  YouTubeなんかがそれ  https://www.youtube.com/results?search_query=KBOY

    ・POSTコマンド:URL内とは別にbody部に  リクエストパラメータを含める。  申し込みフォームとかで情報を送るとき等  ※他の人から見えなくなるわけではない
  16. http - Hyper Text Transfer Protocol ・右は先ほどの検索画面を  Google Chromeの開発者ツールで  見たもの(F12を押すと見れます)

    ・Status Codeが200となっているが  200が正常に応答が返ってきた  というしるし ・400番代がClient Error、500番代が  Server Errorと区分けされている
  17. dns - Domain Name System ・名前解決を行うDNSサーバーをフルサービスリゾルバーと呼ぶ ・ドメイン内のレコード(IPとホスト名のペア)を持っているサーバを  権威サーバという。  特にTLDの情報を持っている権威DNSサーバをルートサーバーといい、  世界に13台存在する。

    ・フルサービスリゾルバは問い合わせを受け、再帰的に目的の名前解決を行う。 クライアント ルートサーバ 権威DNS サーバ jp kboy.jp/はどこ? 35.194.122.208 やで~ kboy.jp/はどこ? kboy.jpは知らんけどjpの権威サーバはここやで~
  18. ・クライアントから要求を受けて  ISPのDNSサーバが  再帰問い合わせを行う ・testドメインは目的のDCの  DMZにあるので、そいつがwwwの  IPアドレスを返却する  (LBのグローバルIPアドレス) ISPのDNS サーバー ルートサーバ

    権威DNS サーバ jp www.test.co.jpはど こ? <LBのグローバルアドレス >や で~ https://www.test.co.jp/が表示されるまで 権威DNS サーバ co test.co.jpの権威サーバはここやで~
  19. ・サーバーは公開鍵と一緒にサーバ証明書をクライアントに送る ・クライアントはルート証明書を用いてサーバ証明書を検証 ・共通鍵を共有  *実際には共通鍵を公開鍵で暗号化して送るのではなく、  Diffie Hellman鍵交換方式を使って共通鍵を交換する クライアン ト サーバー (LB)

    共通鍵を公開鍵で 暗号化* 復号して共通鍵 を得る* ルート証明書 サーバ証明書 https://www.test.co.jp/が表示されるまで TLSセッションが確立したら、 WEB サーバーにリクエストを 流し、WEBサーバーはindex.html をレスポンスとして 返却する
  20. 最後の要点 要点を 1 行で説明します   まとめ ・ネットワークの仕組みが少しだけイメージできるようになって  いただけたらこのスライドの目的は達成です ・興味がありましたら、スライドを立ち返ってキーワードを調べて  みるなどして、知識を深めてください

    ・書籍で勉強するのであれば”マスタリングTCP/IP―入門編―”という 本 がお勧めです。NWエンジニアにでもならない限り必要十分な  内容かと思います。 ご清聴ありがとうございました このスライドの作成者:@tokkuu https://tokku-engineer.tech/profile/