クラウド時代のネットワーク入門まとめ

この度「クラウド時代のネットワーク入門」という本を読んだので勉強のためにまとめました。

https://www.amazon.co.jp/%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E6%99%82%E4%BB%A3%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%85%A5%E9%96%80-%E8%A6%81%E7%B4%A0%E6%8A%80%E8%A1%93%E3%80%81%E8%A8%AD%E8%A8%88%E9%81%8B%E7%94%A8%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%80%81%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3-%E5%A4%A7%E5%96%9C%E5%A4%9A-%E5%88%A9%E5%93%89/dp/4798166030

##Chapter 1 ネットワークの全体像と種類
###1-1 ネットワークとは
ネットワークとはコンピュータどうしが繋がって、データのやり取りをする仕組み。

####LANとWAN
コンピュータネットワークはその範囲によってLANとWANの2つに大別される。
- LAN
    - 家庭やオフィスなど、1つの拠点内のネットワークのことを指す。
    - 拠点内を繋ぐ。

- WAN
    - 拠点と拠点を結ぶネットワークのことを指す。
    - 拠点と拠点か拠点とインターネットを繋ぐのがWAN


LANにはLANケーブルを使って接続する有線LANと電波を使って無線で接続する無線LANがある。
有線LANではほとんどの環境でイーサネットが使用されている。イーサネットは規格のことで基本的にLANケーブルのことを指す。

無線LANの規格はIEEEという標準化組織が定めたIEEE 802.11シリーズが標準として使われている。

WANは拠点と拠点を結ぶために、NTTやKDDIのような通信業者が提供する通信回線サービスを利用したネットワーク。
有線によるWANサービスだけでなく無線WANもある(携帯電話の通信など)。

####ネットワークの構成要素
- パソコン、スマートフォンのような端末
- サーバー
- スイッチ
    - 有線LANを束ねるものをスイッチと言う
    - https://news.mynavi.jp/kikaku/switch-1/
- 無線アクセスポイント
    - 無線LANを束ねるものを無線アクセスポイントと呼ぶ
    - https://it-trend.jp/wireless-lan-controller/article/271-0003
- ONU
    - 自宅や会社などに引き込んだ光回線とルーターの間に設置して光回線とデジタル信号の変換を行う装置
- ルーター
- ファイアウォール
    - ネットワークの境界に置かれるネットワーク機器で、ルーターと違ってセキュリティに関する機能を豊富に備えている
- 仮想ルーター
    - パブリッククラウドを仮想的なプライベートクラウドとして利用するVPCというものがある
    - VPCは仮想的なデータセンターと呼ばれるもので、VPCと社内のネットワークはプライベートなネットワークで結ばれることが多い
        - ここでVPC側の結節点となるのが仮想ルーター
        - ルーターが専用のハードウェアとして提供されるのに対して、仮想ルーターはクラウド上で動作するソフトウェアとして提供される

###1-2 ネットワークとインターネット
複数のネットワークを相互接続することをインターネットワーキングと言う。
インターネットは世界中の様々な組織のネットワークが相互接続されたもの。
組織のネットワーク間の接続ポリシーはインターネット共通の決まりごとであるが、各組織内がどのようなポリシーで運用されているかについては各組織に委ねられる。
この組織単位のことをASと言い、ASがたくさん繋がったものがインターネットを形作る。
AS(組織)の例としては、NTTコミュニケーションズやニフティのようなインターネットプロバイダ(ISP)など。

####インターネットとWANの違い
ネットワークとネットワークを繋ぐ際には、通信事業者のWAN観戦を使って接続する。
拠点と拠点をつないでいる部分がWANで、WANによって繋がれたネットワーク全体がインターネット。

####プロトコルについて
コンピュータどうしが通信をするための共通の決まりごとをプロコトルと呼ぶ。
今ではTCP/IPが主流。

##Chapter 2 ネットワークを実現する技術
###2-1 TCP/IP
TCP/IPで扱う範囲はその役割によって4つの階層に分けられる。

- アプリケーション層：アプリケーションの層
- トランスポート層：データの転送を保証する層
- インターネット層：データを実際にやり取りする層
- ネットワークインターフェース層：物理的な層

####OSI参照モデル
プロコトルの階層モデルにはOSI参照モデルもある。
TCP/IPの4階層モデルと同様にコンピュータが持つべき通信機能を階層構造に分割したモデルで、異なるベンダー間で相互通信するための「ネットワークモデル」といわれる統一規格。
OSI参照モデルは通信プロトコルを7つの階層に分ける。

- アプリケーション層
- プレゼンテーション層
- セッション層
- トランスポート層
- ネットワーク層
- データリンク層
- 物理層

https://qiita.com/growsic/items/7b0b461303fd1e8995f2

https://wa3.i-3-i.info/diff322model.html

####アドレス
通信において「アドレス」は「通信相手を特定するための識別情報」。
アドレスがあるから正しい相手と通信ができる。

IPアドレスはTCP/IPの世界においてコンピュータを識別するために割り当てられる番号のこと。
プライベートIPアドレスとグローバルIPアドレスが存在する。

- プライベートIPアドレス
    - LAN内で使われている

- グローバルIPアドレス
    - インターネット上で使用されている

IPアドレスがあればコンピュータどうしが通信できるわけではなく、パソコンやルーターなどの機器に最初から振られているMACアドレスが必要。
イーサネットではハードウェアどうしが通信相手を特定するためにMACアドレスが使用され、TCP/IPでは通信相手の特定にIPアドレスが使用される。

####アドレスを使った通信の流れとARPについて
同じネットワークに所属するコンピュータどうしが通信する場合は、まずIPパケットを送りたい相手のMACアドレスを調べてから、そのMACアドレス宛に通信を送るという流れになる。
このときMACアドレスを調べるために用いられるのがARP。
ARPリクエストをすることでネットワーク全体にパケットを送ってMACアドレスを調べる。
リクエストを受けて自分だとわかったコンピュータはMACアドレスをARPリプライで返事する。

自分とは異なるネットワークのIPアドレスに対して通信を行うときはコンピュータはあらかじめ指定された**デフォルトゲートウェイ**と呼ばれるIPアドレスに通信を送る。
一般的にはルーターがデフォルトゲートウェイの役割を果たす。
このときARPを使って調べるのは送信先のIPアドレスに対応するMACアドレスではなくデフォルトゲートウェイに対応するMACアドレス。

####パケット
通信するときのデータのやりとりには「回線交換」と「パケット交換」の2種類があり、インターネットでは「パケット交換」の方法が採用されている。

- 回線交換
    - 電話に近く、お互いがやり取りしている間はその回線をずっと占有するので他の人とやり取りができない。

- パケット交換
    - やりとりするデータを細かいかたまりにわけて、複数の通信を流す。
    - 複数人で同じ回線を共有できる。


###IPアドレスの仕組み
パソコンをルーターに繋ぐとインターネットが使用できるが、パソコンに最初からインターネットを使うための設定が入っているわけでない。
パソコンはMACアドレスを持っているだけでIPアドレスは持っておらず、ルーターとつなげたときに初めてIPアドレスを受け取る。
ルーターからIPアドレスを自動的に取得する仕組みのことをDHCPと言う。
DHCPではネットワークの設定を取得するために以下の4つの通信を行う。

- DHCPディスカバー
    - DHCPクライアントがDHCPサーバーを探すためにネットワーク上に通信をするもの。

- DHCPオファー
    - DHCPサーバーがDHCPクライアントに対して設定を提案する通信をするもの。

- DHCPリクエスト
    - DHCPクライアントがDHCPサーバーに対して提案された設定の詳細を要求する通信を行う。

- DHCPアック
    - DHCPサーバーがDHCPクライアントに対して設定の詳細を指定する通信をするもの。


IPv4アドレスはxxx.xxx.xxx.xxxという形式で表記される。
IPアドレスはネットワーク部とホスト部に分けられる。
ネットワーク部は「あるネットワークを特定する情報」であり、ホスト部は「そのネットワークの中のコンピュータを特定する情報」。
IPv4アドレスのうち「ネットワーク部がどこまでなのか」を表すのがネットマスク(サブネットマスク)と言う。
サブネットマスクが255.255.255.0ならば255の部分までがネットワーク部で0の部分がホスト部にあたる。

###IPアドレスの割当と管理
IPアドレスを割り当てる際には、ホスト部を変えて割り当てる。
例：

- 1はパソコン
- 2はサーバー
- 3はプリンター

ホスト部が第4オクテットのみの場合は0から255までしか使えない。
また、0と255はすでに別のアドレスとして使用されているので実際に使用できるのは1から254。
ホスト部が0はネットワークアドレスと呼ばれ、ネットワークそのものを表す。
ホスト部が255はブロードキャストアドレスと呼ばれ、そのネットワーク全体に通信を送るような場合に使用される。
ネットワークに接続する機器が増えてくるとIPアドレスを管理する必要が出てくる。ネットワークから自動でIPアドレスの使用状況などを取得して管理したりするツールをIPAMと言う。

####クラスと可変長サブネットマスク
IPアドレスはネットワーク部の長さによって、クラスに分けられる。

- ネットワーク部が第1オクテットしかない場合はクラスA
- ネットワーク部が第1オクテットから第2オクテットまでのときはクラスB
- ネットワーク部が第1オクテットから第3オクテットまでのときはクラスC

サブネットマスクは必ずしもクラスに沿っている必要はなく、クラスのサブネットマスクの長さを変えてネットワークの大きさを変えたものを可変長サブネットマスクと呼ぶ。
例: 255.255.255.0 => 255.255.254.0
この例ではサブネットマスクが第4オクテットだけでなく第3オクテットの2進数8桁の最後の桁を使用できるように拡張している。

####データが正しく転送される仕組み
異なるネットワークに所属するコンピュータどうしが通信するときにどのような処理が行われているのか？
例としてそれぞれが違うネットワークに所属する3つのコンピュータがあったとする。

- ネットワークAに所属するコンピュータA
- ネットワークBに所属するコンピュータB
- ネットワークCに所属するコンピュータC

コンピュータAがコンピュータBにデータを送信する時にはルーターと呼ばれるネットワーク機器が仲介する。
コンピュータAがコンピュータBにデータを送信する時にどこのルーターに送信すればわからないときは、コンピュータAはデフォルトゲートウェイと言うルーターに送信する。
デフォルトゲートウェイに届いたデータはまた他のルーターに転送され、バケツリレーのように転送先を探す。
コンピュータがどこのルーターに送信すれば良いかはルーティングテーブルに記録される。

###ネットワークのプロトコル
####ネットワークのレイヤー
ネットワーク機器のスイッチの種類について

- L2スイッチ
    - MACアドレスにもとづいてデータの転送を行うのがL2スイッチ。

- L3スイッチとルーター
    - L2スイッチの機能に加えて、異なるネットワークを結ぶ機能を持っているのがL3スイッチとルーター。
    - L3スイッチの方がルーターよりもポート(LANケーブルを挿す口)が多く、機器と機器を接続する役割を担う。

https://shanai-se.net/l2%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%81%A8l3%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%81%AE%E9%81%95%E3%81%84/

- L4スイッチ/L7スイッチ
    - L4スイッチ/L7スイッチは、「ロードバランサー」とも呼ばれ、システムに対するリクエストを複数のサーバーに分散させ、処理のバランスを調整するためのスイッチ。
        - L4スイッチはTCPヘッダなどのプロトコルヘッダの内容を解析して指定されたアルゴリズムに基づいてデータを分散配送する。
        - L7スイッチはアプリケーション層の中身までも解析してデータの分配配送を行う。

    
####TCPとUDP
TCPとUDPは共にIPの上位であるOSI参照モデルのレイヤー4で動作するプロコトル。
レイヤー3で動作するIPとレイヤー5〜7で動作するアプリケーションの橋渡しをする。
TCPとUDPの違い。

- TCP
    - 信頼性の高い通信を実現するための機能が実装されている。
    - データの整合性が重要になるアプリで使用される。

- UDP
    - 信頼性のための機能を持たない代わりに処理がTCPと比べて高速。
    - 高速性やリアルタイム性を求めるアプリケーションはUDPを使用する。

TCP/UDPともにポート番号というものが存在する。
1台のサーバー上でWebサーバーとメールサーバーの2つが動いている場合、IPアドレスだけではどちらへの通信なのか判別できないので、ポート番号で判別する。

ポート番号には0〜65535の数字が使用され、3種類に分類できる。

| タイプ | 範囲 | 概要 |
|:-:|:-:|:-:|
| ウェルノウンポート番号 | 0〜1023 | アプリケーション(サーバー側)で使うポート番号 |
| 登録済みポート | 1024〜49151 | ウェルノウンポート番号にない独自に作成されたアプリケーションで使用するためのポート番号 |
| ダイナミックポート | 49152〜65535 | アプリケーション(クライアント)側で使うポート番号 |

#####ウェルノウンポート番号のうち、よく使われるもの

| ポート番号 | プロトコル名 | トランスポートプロトコル | 概要 |
|:-:|:-:|:-:|:-:|
| 80 | HTTP | TCP | Webサーバーへのアクセス |
| 443 | HTTPS | TCP | Webサーバーへのアクセス |
| 110 | POP3 | TCP | メールボックスの読み出し |
| 25 | SMTP | TCP | メールサーバー間のメール配達 |
| 22 | SSH | TCP | コンピュータへのリモートログイン |
| 53 | DNS | UDP | DNSサーバーへの問い合わせ |
| 123 | NTP | TCP | 時刻同期 |


#####ダイナミックポート番号について
ダイナミックポート番号は、接続元のポート番号として用いられる。
例えば、パソコンで2つのWebブラウザを同時に立ち上げて同じWebサイトにアクセスしたときに、接続元を識別する機能がないと通信を正しく行うことが出来ない。
そこで、WebブラウザAのHTTP接続とWebブラウザBのHTTP接続に対してそれぞれ別の接続元ポート番号を割り当てることで区別できるようにする。

####ICMP
ICMPはTCP/IPが実装されたコンピュータやネットワーク機器の間で、通信状態を確認するために用いられるプロコトル。
OSI参照モデルのレイヤー3で動作し、IPと同じ階層だがIPの上で動く。
疎通確認などに用いられるpingやtracertなどが、ICMPプロトコルを使用したプログラム。
ICMPはTCPやUDPを使わずに独立して動き、ポート番号は存在しない。

####NAT
IPアドレスを変換する技術のことをNATという。
要するにLAN内で使用されているプライベートIPアドレスをグローバルIPアドレスに変換してグローバルIPアドレスを持ったサーバーにアクセスできるようにする。

####プライベートIPアドレスに使えるIPアドレス
プライベートIPアドレスとして使用できるIPアドレスは3つのクラスとして定められている。

| クラス | アドレス |
|:-:|:-:|
| クラスA | 10.0.0.0/8 |
| クラスB | 172.16.0.0/12 |
| クラスC | 192.168.0.0/16 |

####CIDR
CIDRは簡単にいえば「複数の宛先をまとめること」
192.168.0.0/24〜192.168.255.0/24の合計256個のネットワークセグメントがあったときに、これをルーティングテーブルに1行1行書くのは大変。
ホスト部を広げて192.168.0.0/16としてホスト部を広げると1行にまとめられる。

####スタティックルーティングとダイナミックルーティング
ルーターはルーティングケーブルを持っていて、ルーティングケーブルにはネットワークへの通信をどのルーターに転送したら良いかが記録されている。
ルーティングテーブルの情報を管理する方法には大きく分けてスタティックルーティングとダイナミックルーティングという2つの手法がある。

- スタティックルーティング
    - ルーティングテーブルを手動で管理する手法がスタティックルーティング。
    - 構築時も変更も全て手動。

- ダイナミックルーティング
    - ルーターどうしが定期的、または必要に応じてネットワークの接続ルートに関する情報の交換を行い自動的にルーティングテーブルを更新する。
    - ダイナミックルーティングによって情報の交換を行う方式をルーティングプロトコルと呼び、ルーティングプロトコルにもいくつか種類がある。
    - 導入や運用にはそれなりの手間がかかる。

規模が小さく構成変更の頻度が高くないネットワークならスタティックルーティングが良いが、大規模なネットワークを運用するならダイナミックルーティングを使うべき。


##Chapter 3 Webを実現する技術
###Webを構成する仕組み
WebとはWorld Wide Webと呼ばれるインターネット上で提供されているハイパーテキストシステムのこと。
ハイパーテキストとは文書の中に他の文書の位置情報が埋め込まれていることで情報が相互に関連付けられ参照可能な文書の概念。
Web上で提供されるサービスの多くはサービスを提供するサーバーとサービスを受け取るクライアントで成り立ち、このモデルをクライアントサーバーモデルと言う。

####HTTPとHTTPSについて
HTTPはサーバーとクライアントの間でデータのやり取りをするためのプロトコル。
Webの初期は情報共有を目的としたシステムだったので情報通信経路上の情報の秘匿は必要なかったが、Webの利用範囲が拡大したことで機密性を確保する必要が出てきた。
入力された情報をWebサーバーに転送するとき暗号化するために生まれたのがHTTPSというプロトコル。

####SSL証明書について
HTTPSはSSL/TLSという仕組みによって実現されている。(現在はSSLではなく、ほぼTLSが使われている。)
SSL/TLSをWebサイトで利用するにはSSL証明書が必要。
SSL証明書は認証局(CA)と呼ばれる信頼できる第三者期間がドメイン所有者に対して発行する。

SSL証明書の役割

- データの暗号化
    - SSL証明書に含まれる公開鍵を使うことで暗号化通信を行うための秘密鍵を安全にやり取りできる。

- ドメインの保有証明
    - SSL証明書によって「このドメインはAさんの所有物である」ということを第三者期間である認証局が保証している。

- データの改ざん防止
    - 第三者期間が保証している証明書によって暗号化されている通信は「なりすましではなく、確実にAさんからの情報である」ことを保証している。



SSL認証には認証レベルによって3つに分けられる

- ドメイン認証
    - 発光スピードが速く低価格
    - ドメインの所有確認のみ行っているので、ドメインおよび証明書の所有者についての認証機能はない
    - 個人情報を扱わずSEO上の理由で常時SSL化が必要なWebサイトでよく使用される

- 企業認証
    - ドメインに加えて「Webサイトを運営する組織」の実在性を保証する
    - 個人情報やクレジットカード情報などのやり取りがあるサイトなどで使用される

- EV認証
    - 机上の実在性だけでなく、所在地の認証も行う
    - より厳しい審査が必要なことから、オンラインバンキングや金融機関連携機能を有するFintechサービスを提供するサイトなどで使用される


####URLとDNSについて
URLはリソースの場所を特定するための書式として生まれた。
URLの基本的な書式はスキームとサーバーアドレスにディレクトリ名とファイル名を「/」でつないだもの。

例：`https://203.0.113.1/news/index.html`

スキーム：https://
サーバーアドレス：203.0.113.1
ディレクトリ名：news
ファイル名：index.html

IPアドレスで表記されていると人間的には扱いにくいので、
`https://www.example.jp/news/index.html`
のようにドメイン名で置き換えることが可能。
IPアドレスで接続先を指定するときにwww.example.jpが203.0.113.1であることを調べる仕組みがDNS。
DNSはコンテンツDNSサーバーとキャッシュDNSサーバーの2つある。
コンテンツDNSサーバーは各ドメインの元となる情報を持つ。
キャッシュDNSサーバーはパソコンやスマートフォンなどのクライアントからの問い合わせに応じてコンテンツDNSサーバーを探し当て、情報をリクエストしてコンテンツDNSサーバーからの回答をクライアントに伝える。

https://www.kagoya.jp/howto/rentalserver/dns-server/

###ドメインについて
ドメインはインターネット上の住所でグローバルIPアドレスを持つサーバーがどこにあるかを判別する情報として利用する。
ドメインを管理しているのはICANNという非営利団体で、他にはレジストリとレジストラという組織がある。

- レジストリ
    - ドメインの管理期間で、各ドメイン情報のデータベース管理している。
    - レジストリによって管理しているドメインが異なる。
    - 日本のICANN認定のレジストラにはGMOインターネット株式会社などがある。

- レジストラ
    - ドメイン仲介登録業者で、レジストリの管理しているデータベースに直接ドメイン情報を登録することができる。

ドメインの販売はレジストラかレジストラの代理店が行う。
代理店はレジストリの管理するデータベースに直接アクセスができないのでレジストラを経由して登録することになる。

####ドメインの種類について
ドメインはgTLDとccTLDの2つに分けられる。

- gTLD
    - gTLDは全世界に開放されている「.com」「.net」「.org」と登録に制限のある「.edu」「.gov」「.int」「.mil」の7種類からスタートしている。
    - その後たくさん追加されていき、2012年からは技術的、財務的な要件を満たした組織であればgTLDのドメインを申請できるようになった。
    - 今では非常にたくさんのgTLDが存在し、一般の利用者でも申し込めるgTLDの他、特定企業が専用に保有するgTLDも存在するようになった。

- ccTLD
    - ccTLDは「.jp」「.us」「.uk」「.uk」など原則としてその国に在籍している人を対象としている。(あくまで原則なので国外にも開放されていることもある)
    - 日本のccTLDである「.jp」は株式会社日本レジストリサービスという会社がレジストリとして運営している。

###HTTPとWeb技術
###HTTPについて
HTTPはWebブラウザとWebサーバーの間のやり取りを支えるプロトコル。
HTTPではデータを要求するHTTPリクエストと、それに応答してデータを送信するHTTPレスポンスの2つのやり取りを繰り返す。

HTTPリクエストには行いたい処理を表すメソッド名と、その「対象」の名前が含まれる。
メソッドの種類には以下のような物がある。

- GET：データの取得をWebサーバーに要求する。
- POST：Webサーバーにデータを送信する。
- PUT：Webサーバーにファイルをアップロードする。

HTTPレスポンスにはステータスコードとヘッダと処理結果であるメッセージが含まれる。
ステータスコードには以下のようなものがある。

| ステータスコード | 結果フレーズ | 説明 |
|:-:|:-:|:-:|
| 200 | OK | リクエストが成功 |
| 403 | Forbidden | アクセス権がないページにアクセスした |
| 404 | Not Found | ページが見つからなかった |
| 408 | Request Timeout | リクエストが時間内に完了しなかった |
| 410 | Gone | ページがなくなった |
| 500 | Internal Server Error | サーバー内部エラー |
| 503 | Service Unavailable | サービス利用不可 |


####Cookieとセッションについて
Webサイトにアクセスして行う一連の行動のことをセッションという。
HTTPはデータの要求と送信を行うステートレスなプロトコルなのでサーバーがクライアント側の状態を持たない。
しかしショッピングサイトではユーザーが何をしたかという情報を持つ必要があるため、Cookieが使用される。
CookieはWebサイトで観覧した情報を一時的にクライアント側で保存できる。
セッションを実現するためにはWebサイトにアクセスしたときに、セッションIDという一意のIDを割り当てて、このセッションIDを使ってサーバーはユーザーを特定する。
商品を追加したなどの情報はセッションIDに対応したセッション変数に記録される。

####認証
Webでの認証は、個人ごとの情報に基づいてサービスを利用するためにある。
IDとパスワードによって認証するものがほとんどだが、最近は他要素認証でワンタイムパスワードの入力を求めるものもある。
ある特定のサービスの認証情報を作って、他のサービスにもログインできる許可という仕組みもありOAuthと呼ばれる技術。

####HTTP/2について
HTTP/2はというHTTPの新しい規格でグーグルが開発したSPDYというプロトコルが元になっている。
これまでのHTTPの使用は1つのリクエストに対して1つのレスポンスを返すという基本構造はずっと変わらずにいたので以下の問題があった。

- 1度に1つのファイルしか取得できない
- プロトコルがテキストベース
- ファイル送信のたびにほぼ同じHTTPヘッダを送受信する必要がある

HTTP/2は従来のHTTPと互換性を保ちながら新しい転送手段を提供することで既存の問題点を解決し、より少ない通信量で迅速にやりとりできる。
1つのコネクション内で複数のコンテンツを並列に転送できるようにすることで効率のよいプロトコルになっている。

####Ajax
Webの利便性を高めたものとして知られているものにAjaxがある。
AjaxはXMLHttpRequestという技術を使用することで既に組み込んだページからさらにHTTPリクエストを発することでページ遷移せずにデータを送受信できる。

##Chapter 4 ネットワーク機器の種類
###繋ぐためのネットワーク機器について
####ルーター
ルーターの役割はネットワークとネットワークを繋ぐこと。

#####家庭や小規模なオフィスにおけるルーターの役割
複数のコンピュータで1つの回線を共有する機能を持つ。
1台のコンピュータを直接回線に接続すると、そのコンピュータしか外部と接続できない。
ルーターへの接続方法は有線LANの他に無線LANでも接続できる。
ルーターはDHCPサーバーの機能を持っていて、決められた範囲の中でコンピュータにIPアドレスを割り当て重複がおこらないように管理している。

####スイッチ
L7スイッチは特定のユーザーとサーバーの接続を維持する機能を持つ。
システムによっては複数のサーバーが用意されていて特定のユーザーとの通信を一定期間継続して行う必要があるものがある。
こういう場合に違うサーバーに接続されて不整合が生じないようにするのがL7スイッチの役目。

###まもるためのネットワーク機器について
####ファイアウォール・UTM
ファイアウォールはネットワークの節目点となる場所で、通過させてはいけない通信を遮断するシステム。
このファイアウォールが発展する形でUTMができた。
UTMはファイアウォール、VPN、アンチウイルス、IDS/IPS、コンテンツフィルタリング、アンチスパム、アプリケーションコントロールといった機能を一台の機器にまとめて提供している。

最近のUTMは通信をアプリケーション単位で制御する機能を持つものがあり、以下のような動作をする。

- Webサイトとユーザー属性に基づく通信の制御
    - SNSについてマーケティング部門の参入と投稿を許可し、他部門の参照と投稿は禁止するなど
- Webサイトと行動に基づく通信の制御
    - Webメールでのファイル添付を禁止するなど
- Webブラウザを使わないHTTP/HTTPS通信の制御
    - チャットアプリやファイル交換ソフトの通信を遮断するなど

####WAF
WAFはWebサイトの前段に配置することでWebサイトを狙った攻撃を防御することができる。
防御できる攻撃としてSQLインジェクションやクロスサイトスクリプティングやパスワードリスト攻撃などがある。

WAFの種類には以下のようなものがある。

- アプライアンス型WAF
    - ハードウェアアプライアンスを設置するタイプのWAF
- ソフトウェア型WAF
    - サーバーにソフトウェアをインストールして動作させるタイプのWAF
- クラウド型WAF
    - クラウドサービスとして提供されるタイプのWAF

WAF利用時の注意点として、導入に際して事前検証をしっかりおこなうことが重要。
導入後もアプリが正常に動作するか、レスポンスに問題はないかなどを確認する必要がある。

####IDS/IPS
IDSとIPSはネットワークにおける不正侵入を検知し防御するシステム。
不正侵入に対するシステムの役割を「検知」「通知」「防御」の3つに分けて考えると、IDSは「検知」と「通知」を行い、IPSはこれに加えて「防御」も行う。

IDS/IPSの検出方法にはシグネチャ型とアノマリ型の2種類がある。

- シグネチャ型
    - 既知の攻撃パターンなど異常な通信のパターンをデータベースとして保持しておき、通信の内容が一致した場合に不正と判断する検知方法。
    - 誤検知が少ないが未知の不正アクセスパターンに対応できない。

- アノマリ型
    - 正常な通信パターンをデータベースに保持しておき、通信の内容が正常でないと判断された場合に不正として判断する検知方法。
    - 未知の攻撃にもある程度対応できるが、誤検知が多くなる。

###ソフトウェアで操作するネットワーク
####SDNについて
SDNとは、ソフトウェアによって柔軟に定義することができる「ネットワークを作る技術」もしくはそのようなコンセプトのことを言う。
SDNはSDNコントローラーと呼ばれるソフトウェアにより論理的なネットワークを1カ所でまとめて管理することができるので個別の機器を設定する必要がなく効率的。

SDNの技術としてOpenFlowがある。
OpenFlowの実装方式としては「オーバーレイ方式」と「ポップバイポップ」の2種類がある。

- オーバーレイ方式
    - 仮想サーバーをOpenFlow対応の仮想スイッチで接続し、物理サーバーをまたいだ仮想LANを構成する。
    - 既存のネットワーク機器などを活用して導入できる。
    - ネットワーク全体を見た細かい経路制御などができない。

- ホップバイホップ方式
    - ネットワーク機器もOpenFlow対応のものを利用することでOpenFlowの機能がフルで活用できる。
    - OpenFlowコントローラーが物理ネットワーク機器と仮想スイッチの双方を統合的に制御することで柔軟にネットワークの経路制御・帯域制御を行うことができる。
    - まだ発展途上の新しい技術なので今後の発展が期待される。

https://www.sbbit.jp/article/cont1/54505

####SD-WANについて
SDNをLANだけでなくWANにも広げようというのがSD-WAN。
SD-WANの特徴は以下の3つ。

- ソフトウェアによる集中管理
- 新規拠点導入の容易さ
- 仮想化基盤やIaaS型クラウドとの親和性

##Chapter 5 インターネットサービスの基盤
###クラウドとネットワークの関係
クラウドはコンピュータの利用形態の1つで、ネットワーク経由でサーバーが提供するサービスを手元のパソコンなどで利用するもの。

####クラウドの種類について
クラウドにはIaaSとPaaS、SaaSのような種類に分類される。

- IaaS
    - 仮想基板上に自分のサーバーやネットワークを自由に作成できる。

- PaaS
    - IaaSを基盤としてシステム構築に必要なパーツを提供する。

- SaaS
    - 完成品のソフトウェアをネットワーク経由でサービスとして提供する機能

###世の中のクラウドサービス

- Amazon Web Services
    - Amazon Web Servicesは、Amazonが提供するクラウドプラットフォーム(IaaS/PaaS)。
    - EC(仮想サーバー)、S3(オブジェクトストレージ)、RDS(マネージドデータベースサービス)などがある。

- Microsoft Azure/Microsoft365
    - Microsoft AzureはMicrosoftが提供するクラウドプラットフォーム(IaaS/PaaS)。
    - Microsoft365はMicrosoft Office製品のサブスクなど(SaaS)。

- Google Cloud Platform
    - Google Cloud Platformは、Googleが提供するクラウドプラットフォーム(IaaS/PaaS)。

- Firebase
    - FirebaseはFirebase社が2011年に開発したサービスでその後Googleに買収された。
    - mobile Backend as a Service(mBaaS)と呼ばれるサービスでデータベース・ストレージ・メッセージングなどのモバイルアプリケーションに必要な機能をサーバーを意識せずに使うことができる。

- Kintone
    - Kintoneはサイボウズ社が提供しているPaaS型のサービス。
    - 難しいプログラムなしで簡単にアプリケーションを作成することができる。

- さくらのクラウド
    - 日本のクラウドサービス事業者であるさくらインターネットが提供するクラウドプラットフォーム(IaaS)。


###ネットワークとアプリケーション
ネットワークアプリケーションの構成について見ていく。
例えばWardPressを動かすにはWebサーバーとDBサーバーとPHPの実行環境が必要。
####構成するソフトウェアについて

- OS
    - これらのプログラムを動かすためには、基盤となるOSが必要となる。
        - Windows
        - Linux
        - MacOS

- Webサーバーソフトウェア
    - WebサーバーはOSにWebサーバーソフトウェアをインストールすることで機能する。
        - Apache
            - 世界中で最も使われているWebサーバーソフトウェア。
        - nginx
            - Apacheよりも後にできた比較的新しいWebサーバーソフトウェア。
            - 高速な動作や機能の豊富さなどで採用事例が増加している。
        - IIS
            - Microsoft製のWebサーバーソフトウェアでWindows/Windows Server上で動作する。

- DBサーバーソフトウェア
    - 基本的にデータの管理にはRDBMSが使用される。WordPressではMySQLが使用される。
        - MySQL
            - 世界で最も広く使われているオープンソースのRDBMS。
            - MySQLから派生したソフトウェアとしてMariaDBがある。
        - PostgreSQL
            - オープンソースのRDBMSとしてはMySQLに次ぐシェア。
            - MySQLがパフォーマンスを重視しているのに対してPostgreSQLは信頼性を重視している。
        - Oracle
            - オープンソースではないRDBMS。
            - 最大のシェアをもつ商用のDBサーバーソフトウェア。

- プログラミング言語
    - Webシステムの開発に使われるプログラミング言語には以下のようなものがある。
        - PHP
        - Ruby

##Chapter 6 ネットワークの設計と構築
###ネットワークの設計・構築でやること
ネットワークの決系はそのシステムが何をするためのものなのかで全く変わってくる。
自分の会社内で使うアプリとSaaSとして外部に提供するアプリでは必要なネットワークの形が異なる。
システムの要件に応じたネットワークを決めて作ることが、ネットワークの設計と構築で重要なことと言える。

####ネットワークの設計と構築(物理インフラ)
ネットワークの設計の各プロセスはシステムの設計と大きくは変わらない。

- 要件定義
    - どのようなシステムを作るか。
    - どのようなシステムのたのめネットワークを作るか。

- 基本設計
    - ネットワークを構築する上での基本的な事項を整理する。

- 詳細設計
    - 基本設計をもとに、実装方式などの詳細を詰める。

- 設計レビュー
    - 関係者による設計内容の確認、フィードバック、指摘の反映


大まかにネットワークの構築が決まったらネットワーク構成図にしてみる。
ネットワークの構成図には、物理設計図と論理設計図がある。

- 物理設計図
    - ネットワーク機器のポートごとにどこに接続するかを記したポート表
    - ラックのどの位置にどの機器を入れるかを記したラック図
    - ケーブルの接続先・種類・色などの情報をまとめるケーブル結線表

物理設計図に従い、ネットワーク機器やサーバーをラックにマウントし、ネットワークケーブや電源ケーブルなどの配線を行っていく。


- 論理設計図
    - ネットワーク回線のLANの間のルーティング
    - ファイアウォールルールの設定
    - アドレッシングなどの図


####ネットワークの設計と構築(クラウドサービス)
クラウド(IaaS)を使用したネットワーク構築では事業者が構築した仮想化基盤上にシステムを構築する。
物理の場合は機器の設置・初期設定などを手作業で行うが、クラウドでは機器の設置に変わるものとしてインスタンスの作成、初期設定など、あらゆる作業がWebブラウザ上のコントロールパネルからできる。

IaaS上にシステムを構築する流れ

- サブネットの作成
    - インターネットに公開するサーバーを置くパブリックサブネットと公開しないプライベートサブネットを作成する。
    - 可用性を考え、各サーバーを2つのアベイラビリティゾーンに分けて配置するので合計4つのサブネットを配置することになる。

- 仮想サーバーの作成
    - AWSでは仮想サーバーのことをインスタンスと言う。
    - EC2というサービスを使ってWebサーバーのインスタンをを作成可能。
    - RDSというDBサーバー専用のインスタンスが作れるサービスもある。

- セキュリティグループの設定
    - AWSにはセキュリティーグループというサーバーに紐づけできるファイアウォールのようなものがある。
    - 必要なポートだけ外部からの通信を通す用に作成し、インスタンスに割り当てる

- Elastic IPの設定
    - Elastic IPとはインスタンスに紐付ける固定のグルーバルIPアドレスで、外部に公開するWebサーバーのインスタンスに設定する。


###Webの信頼性を高める技術
####共通暗号方式と公開鍵暗号方式
通信では第三者が盗み見てもわからないように暗号化する必要がある。

- 共通鍵暗号方式
    - 暗号化と復号の際に同じ鍵(共通鍵)を用いる。
    - 家のドアを開けるときも閉めるときも同じ鍵を使うのと同じ。
    - ファイルの暗号化などに良く用いられる。
        - ファイルを受信する側は鍵を送信者に渡すことでファイルを暗号化する。
        - 問題点は鍵の受け渡しを安全に行うのが難しいこと。

- 公開鍵暗号方式
    - 暗号化と復号で別々の鍵を使う方式。暗号化に使うのは公開鍵、復号に使うのは秘密鍵を呼ぶ。
    - 送信者全員に同じ公開鍵を渡せば良いので共通鍵暗号方式と違ってユーザーごとに鍵を使い分ける必要がない。

SSL/TLS通信は共通鍵暗号方式と公開鍵暗号方式の2種類が併用される。
SSL/TLS通信そのものは共通鍵暗号方式を使用して通信の暗号化を行うが、共通鍵の受け渡しには公開鍵暗号方式が使用される。
SSL/TLS通信の開始時にクライアントに渡す認証情報や公開鍵情報について1つにまとめたものがSSL/TLSサーバー証明書。

####常時SSL化について
Webサイト全体をSSL化することを「常時SSL化」という。
昔は暗号化するのはフォームだけで全体を暗号化すると遅くなるというのが一般的であったが最近は以下の理由で常時SSL化が推奨される。

- HTTP/2ではSSL化で表示速度がむしろ速くなる
- SEOでメリットがある
- 現在のブラウザはHTTPだと警告が出る

####負荷分散
Webサイトの耐障害性や処理能力を高めるために1台のWebサーバーだけでなく複数台のWebサーバーでWebサイトをホストすることがある。
このようなときにアクセスを分散して割り当てることを負荷分散と呼ぶ。
負荷分散をするための手法として以下のものがある。

- DNSラウンドロビン
    - DNSラウンドロビンはDNSの仕組みを使ってリクエストを複数のサーバーに分散する。
    - 1つのホスト名に対して複数のIPアドレスを設定することでリクエストを受けたDNSサーバーは順番にIPアドレスを返す。
    - 特別な機器なしで負荷分散を行えるが、サーバーの負荷状態に関係なく均等に割り振るのでダウンしているサーバーに割り振ったりサーバーの処理能力に差があると処理能力が低いサーバーがボトルネックになりがち。

- NAT型
    - VIPと呼ばれる仮想的なIPアドレスに対してのリクエストを複数の実サーバーに振り分ける方式。
    - ハードウェア/ソフトウェアなどで提供される一般的なロードバランサー(L4、L7スイッチとも呼ばれる)で採用される。

- GSLB
    - 複数のロケーションをまたいだ負荷分散を実現する方式。
    - 例えば東京と大阪のデータセンターにサーバーを設置し、正常時には両方にリクエストを送り、どちらかに障害が発生した場合には障害が発生したデータセンターには割り振らないようにすることが可能。

####リバーシプロキシ
リバーシプロキシはWebサーバーの代わりにクライアントからのアクセスを受け付けるプロキシサーバーの一種。

- プロキシサーバー
    - クライアントに置かれる
    - クライアントがWebサーバーにアクセスするのを中継する役割

- リバーシプロキシ
    - サーバー側に置かれる
    - サーバーに対する要求を受け取り、背後のサーバーに受け渡すために用いられる

どちらもキャッシュ機能を提供するものがある。
すでにリクエストがあったものを一定時間キャッシュしておくことでWebサーバーの負担を軽減する。

リバースプロキシにはキャッシュ機能を提供するものの他に、負荷分散の機能を提供するものや、WAF7の機能を提供するものもある。

####CDNについて
CDNは同一のコンテンツを多くのユーザーのPCやスマホに効率的に配布するために使われるもの。
容量の大きいデータをたくさんのサーバーとネットワーク帯域を使ってクライアントの元に届けるために使われる。
構成としてはコンテンツ配布先に近いネットワークにコンテンツを配布するサーバー（エッジサーバー）を配置し、エッジサーバーはオリジンサーバーのデータのコピーをキャッシュとして持ちオリジンサーバーに変わってクライアントからのリクエストに対応する。
CDNはコンテンツの高速で効率的な配信の他に、DDoS攻撃対策にも使われる。

以下有名なCDNサービス

- Akamai
- Amazon CloudFront
- Cloudflare
- Fastly
- Imperva Incapsula

##Chapter 7 ネットワークの運用とセキュリティ
###ネットワークの運用
ネットワークの設計・構築完了後の運用業務内容

1. ネットワーク機器に設定変更の必要性が生じたときに設定変更作業を行う。
2. 監視ソフトウェアなどにより、ネットワークの稼働時間やトラフィックを監視する。
3. 障害を検知した場合は正常な状態に回復するように各種対応を実施する。
4. 必要に応じてサーバーエンジニアと協力して不具合などの切り分けを実施する。
5. 必要に応じて、ネットワークの改善提案を行う。

####設定変更作業について
設定変更作業の具体的な例：
許可する通信を限定している環境において、新たに接続元が増えたり、通信を固定するポートが増えたりしたときにファイアウォールの設定変更を行う。

ネットワークの設定変更を実施する場合の大まかな流れ

1. 設定変更の内容を明らかにする
    - 設定変更の目的や期待される結果などを明らかにして必要に応じてドキュメントを作成する。
2. 設定変更作業前の手順レビュー
    - 関係者を集めて設定変更作業をどのような手順で実施するのかを説明しレビューを受ける。
    - ここで用意されるドキュメントは、設計書、設計変更手順書、作業スケジュール表など。
3. 設定変更作業の実施
    - 実際に設定変更作業を行う。トラブル防止のため、複数人で実施して手順通り実施しているか、想定外の事態はないか、などを確認する。
4. テスト
    - 設定変更後に期待された動作をするかテストする。
5. 切り戻し
    - 作業が正常に完了しなかった場合に設定変更前の状態に戻すことを切り戻しと言う。

###セキュリティ対策の基礎知識
####セキュリティの3要素

- 機密性
    - 許可を持っている人だけがその情報を利用できる状態にしておくこと。
- 完全性
    - 許可を持たない人が情報を変更できない状態にしておくこと。
- 可用性
    - 情報が必要なときに利用できる状態にしておくこと。
    - 電源やシステムの二重化、バックアップ、災害時の対応策定などの対策が用いられる。


####情報セキュリティにおける脅威と攻撃の手法

- 標準型攻撃
    - ターゲットを特定の企業やユーザー層に絞って行われる攻撃。
    - ターゲットに対して知り合いや取引先を装って悪意のあるファイルを添付したり悪意あるサイトに誘導し、マルウェアに感染させようとする。

 - ランサムウェア
    - トロイの木馬としてPC内部に侵入し、データを暗号化させたりパスワードをかけて参照できなくする。
    - 有用なソフトウェアを装ってインストールされることを狙っているソフトウェアをトロイの木馬という。
    - データを復元するために身代金を要求する。

- DoS攻撃/DDoS攻撃
    - 目標のサーバーに対して大量のデータを送りつけトラフィック増加によるネットワークやサーバーのパンクを起こしたりするもの。
    - 攻撃を仕掛けるコンピュータが1台のものがDoS攻撃、複数台のコンピュータで攻撃を仕掛けるのがDDoS攻撃。
    - DDoS攻撃には不正に乗っ取られたサーバーが使用される。

- F5アタック
    - DoS攻撃/DDoS攻撃の一種でWebサイトにアクセスして大量のリロードを行い、サーバーを過負荷状態にしてダウンさせる。
    - Webサイトの読み込み自体は不正な通信ではないので攻撃かどうかを検知するのが難しい。

- SQLインジェクション
    - 入力フォームに悪意ある攻撃用のSQL文を入力し、SQL文として生成させDBに処理を実行させる攻撃。
    - DBから個人情報や機密情報を抜き取る。

- クロスサイトスクリプティング
    - SQLインジェクション同様にWebアプリケーションの脆弱性をつく攻撃。
    - 入力フォームに悪意あるスクリプトを入力し、それを実行させる。

- ブルートフォースアタック
    - IDとパスワードの組み合わせでログインできるシステムに対して可能な組み合わせを全て試して不正にアクセスしようとする攻撃。
    - 人間が行うのは非現実的なのでツールが使用される。

- パスワードリスト攻撃
    - 他のサイトで不正に入手したIDとパスワードのセットを使ってログインを試行する攻撃。
    - ユーザーが複数のシステムでパスワードを使い回す傾向を利用している。

###ネットワークのセキュリティ対策
####ネットワーク機器やサービスを使った防御
ファイアウォールはネットワークの結節点となる場所で、通過させてはならない通信を遮断するシステム。
形態としてはルーターに内蔵されたアプライアンス型のものとパソコンにインストールするソフトウェア型のものがある。

ファイアウォールの種類
- パケットフィルタ
- ステートフルパケットインスペクション

####パケットフィルタ
パケットのIPアドレスとポート番号をもとに許可する通信を設定し、それ以外の通信は拒否するようにする。
パケットフィルタには許可する通信のルールと拒否する通信のルールを列挙していき、これをファイアウォールルールと呼ばれる。
パケットフィルタは上から順番に照合して許可するかどうかを決めるので許可するルールの前に拒否するルールを書くと許可されるものが拒否されるので気をつける。

####ステートフルパケットインスペクション
パケットフィルタを基本としつつより高度なチェックを行うのがステートフルパケットインスペクション(SPI)。
TCP/UDPのセッションを記憶して、正当な手順のTCP/UDPセッションかどうかを判断し、不正なセッションと判断した場合通信を遮断する。
内部から発信する通信を記憶して、通信が来たら内部から発信した戻りの通信であるかどうかを判断する。外部から発信された通信は許可するルールがない限りは許可されない。


####ログ解析
業務で使用するパソコンやシステムの操作や変更した履歴のことをログと呼ぶ。
セキュリティ対策の1つとしてログ解析が挙げられ以下のことが期待できる。

- 外部からの不正アクセスを早期検知する
    - ログを適切に解析することで外部から攻撃を受けていることを検知できる。

- 内部からの脅威に対応する。
    - セキュリティの脅威は外部からだけでなく、内部犯行やオペレーションミスなどの内部からの脅威もある。
    - システムの変更や操作のログをとっておくことで、これらを検知したり追跡できるようになる。

####パソコンセキュリティの保ち方

- OSを常に最新に保つ
- ウイルス対策ソフトをインストールし定義ファイルを常に最新に保つ
- 多要素認証を用いる

最近ではノートパソコンの普及によって紛失/盗難のリスクが増大していてデータの管理方法が課題になっている。
その課題を解決するための方法としてシンクライアントというものがある。
シンクライアントはユーザーのパソコンに記憶媒体を搭載せずにネットワークを経由して利用可能にするというパソコンの利用形態。
OSやデータはサーバーに保存されていて、それをシンクライアント端末からネットワークを経由して利用するイメージ。

- シンクライアントのメリット
    - ネットワークにつながっていればどこからでも利用できる。
    - 一元管理が可能
    - 紛失、盗難によるリスクがない

- シンクライアントのデメリット
    - ネットワークの負荷が増大する。
    - シンクライアント端末やサーバーの導入など、シンクライアントの導入には初期投資が必要。


###ネットワーク監視のパターン
ネットワーク運用における監視のパターンについて

- リソース監視
    - サーバーやネットワーク機器のメモリ、CPU使用率、ディスク管理など監視することを広く監視することをリソース監視という。
    - サーバーやネットワーク機器が動作する上でボトルネックが発生していないかをチェックする。

- トラフィック監視
    - サーバーやネットワーク機器の通信量を監視することをトラフィック監視という。
    - 目的はリソース監視に近くボトルネックの発生をチェックする。
    - サーバーやネットワーク機器の動作に影響を与える可能性を事前に察知するために行うもののうち、ネットワーク転送量に着目したものがトラフィック監視。

- 死活監視
    - サーバーが正常に動作しているかどうかを監視するのが死活監視。
    - インターネット経由でpingを送ったり、Webサーバーとは別の場所に設置した監視サーバーからインターネット経由でHTTPリクエストを送り、ステータスコード(200)を確認する。


##Chapter8　ネットワークのパターン
###宅内のネットワーク
無線LANには2.4GHzと5GHz対の2種類がある。

- 2.4GHz：障害物に強く対応機器が多い。
- 5Ghz：速度が速く混雑が少ない。

無線LANルータにはSSIDというものが設定されている。
これは無線LANのアクセスポイントを識別するための名前でSSIDを指定することでパソコンやスマートフォンは無線LANに接続することができる。

無線LANの暗号化方式の規格にはWEP、WPA、WPA2の3種類がある。

- WEP：現在脆弱性が見つかっているので使うべきではない。
- WPA：特に理由がなければWPA2を使うべき。
- WPA2：基本的にはこれを使う

自宅からインターネットに繋げるための回線には、光回線、ASDLのような固定回線のほか、携帯電話の電波やWiMAXのような無線回線も存在する。
一時的に利用したい場合や固定回線のエリア外の場合は無線回線は便利だが、通信量の制限や速度規制などが設けられていることが多い。

###会社ネットワーク
会社のネットワークではVLANという技術を使ってLANを分割することがある。
VLANとは物理的な接続とは独立した形で仮想的なLANを作る技術。

VLANの特徴

- ブロードキャストドメインの分割
    - ブロードキャストはLAN全体に通信をするのでPCやネットワーク機器の台数が多いほどネットワークに負荷がかかる。
    - 400台あるところを100ずつ4つに分割するなどして通信量の削減を図る。

- 複数のスイッチにまたがって設定できる
    - フロアをまたいで置かれているVLANがあってもそれぞれのVLANで同じ通信をVLAN番号をつけて区別できる(詳しくは書籍173ページ参照)。

####会社の事業所間をつなぐインターネット
企業向けのネットワークにはアクセス回線と網という基本的な考え方がある。
各拠点と網をつなぐWAN回線のことをアクセス回線、アクセス回線どうしの通信をとりもち、各拠点感の通信を通すために使われているものが網。
閉域網という拠点間サービスには「広域イーサネット」と「IP-VPN」がある。

#####広域イーサネット
拠点間をイーサネットで接続する。
レイヤー2接続、つまりWAN越しにLANをそのまま延長するようなイメージになるので全体を1つのLANネットワークセグメントとすることができる。
レイヤー2なのでIP以外のプロトコルを通すことができ、各拠点のネットワーク機器の設定も自社で管理することになるためネットワークに自由度が必要な要件に適している。

#####IP-VPN
IP-VPNはWAN回線を使って通信事業者の閉域網にレイヤー3接続、つまり間にルーターを挟んでLANとLANを接続するようなイメージになる。
各拠点に設置されるルーターとその対向の網側のルーター、いずれも設定や管理通信事業者に委託することになる。

### インターネットVPN
広域イーサネットやIP-VPNは「インターネットを経由しない閉じた網」である閉域網であるが、インターネットVPNはインターネット上に作られた仮想的な専用ネットワークである。
各拠点にインターネット回線を敷設しVPN装置を設置して各拠点間をVPNによって接続することで、閉域網よりも比較的安価に拠点間接続ができる。
外出先にあるパソコンと拠点にあるVPN装置とでトンネルを作り社内ネットワークに接続するリモートアクセスVPNという形態もある。

VPNに必要な機能は以下の3つ

- トンネルを作ること
- 暗号化すること
- 認証すること

VPNの方式

- IPsec-VPN
    - IPsecを使って暗号化するVPN方式。

- SSL-VPN
    - SSL-VPNはSSL/TSLを使って暗号化を行うVPN方式。

- L2TP
    - ネットワーク間に仮想的なトンネルを構築する技術。
    - L2TPには暗号化や認証の仕組みがないのでIPsec-VPNと組み合わせて使用される。

###Webサービスネットワークのパターン
####クラウドにおけるネットワーク
クラウドでは多くの場合、使った分だけ課金されるのでネットワークの料金にも転送量価格という考え方がある。
この考え方ではインターネット側からクラウドへの通信(インバウンドトラフィック)では課金されず、クラウドからインターネットへの通信(アウトバウンドトラフィック)で課金される。
なのでCDNなどを使用してトラフィック量を削減し、コストの最適化を図る。

####Webサービスのネットワーク構成
Webサーバーは常時インターネットに公開されていてサービスを提供するのに対して、DBサーバーはインターネットに公開せずにプライベートネットワークでWebサーバーと通信する構成が一般的。
一方でWebサーバーとDBサーバーを1台のコンピュータとする場合もある。
また、WebサーバーとDBサーバーを複数用意して処理能力を高め、耐障害性を高める構成もある。
ロードバランサー(L4スイッチ)やリバースプロキシを使ってトラフィックを分散する。

####インターネットの相互接続のパターン
インターネットサービスプロバイダ(ISP)のような組織がどのようにそれぞれ相互接続しているのか？
組織間の接続にはピアリングとトランジットという2つの形態がある。

- ピアリング
    - 組織同士が他の組織を介することなく直接通信するもの

- トランジット
    - ある組織が他の組織への接続を提供する

####ピアリングについて
ピアリングをするための条件には、

- 何らかの方法で組織どうしが物理的に接続されていること
- 組織どうしでルーティングを行うための調整、設定が行われていること

の２つがある。
他にも「そもそもピアリングを受け入れるかどうか」を決定するためのピアリングポリシーというものが定められている。

- プライベートピアリング
    - 組織同士を専用の回線を使い、一対一で直接接続する形態。
    - 特定の組織との通信量が多い場合にこの形態が選択される。
    - キャリアホテルを介してピアリングが行われる。

- パブリックピアリング
    - インターネットエクスチェンジ(IX)と呼ばれる相互作用点を介して、多対多のピアリングを行う形態。
    - IXを管理する事業者が運営するL2スイッチ群に多数の組織が物理的に接続し、このIXに接続している組織どうしが論理的にピアリングを行うか個別に決定する。
    - 日本の代表的なIX事業者
        - JPIX(KDDI系列)
        - BBIX(ソフトバンク系列)
        - インターネットマルチフィード(NTT系列)


####トランジットについて
トランジットは、ある組織が接続している別の組織に対してインターネット全体への接続性を提供する方式。
基本的に有償の通信サービスとして提供される。
1本の回線と1つの組織への接続によってインターネット全体への接続が得られる。

###ネットワークの冗長化
冗長化とは一部に何かの障害が発生しても、機能を維持できるように予備となる機器を平常時からバックアップとして配置して運用すること。
以下はネットワークの冗長化を行う際の具体的な手法について。

####ボンディング/チーミング
ボンディング/チーミングは複数のポートを束ねて使うこと。
1台のサーバーに複数のLANポートを用意して、1つが故障しても通信を維持できるようにする。
大きく分けて3種類のパターンがある。

- ロードバランシング
    - 通信を複数のLANポートに分散して流すことで通信速度の向上を目指す

- リンクアグリゲーション
    - 複数のLANポートを束ねて論理的な1つのLANポートとして扱う。
    - 複数のLANポートに通信を流すことで帯域幅が増える。

- フォールトトレランス
    - 純粋に耐障害性を高めるために用いる。
    - 2つのLANポートを束ねて1つはアクティブ、もう1つをスタンバイにしてアクティブに問題が発生したらスタンバイと切り替わる。

####マルチホーミング
インターネット回線を複数契約してトラフィックを分散して速度の向上を図ったり、インターネット回線に障害が発生しても別の回線を使用して通信を継続できるようにしたりする。

####スパニング・ツリー・プロトコル
LANの冗長化技術の1つでL2スイッチは経路を制御する機能がないので複数の経路ができるようにつなぐとループが発生する。
スパニング・ツリー・プロトコルでは各L2スイッチが情報のやり取りをして、複数の経路がある場合は1つの経路以外をブロッキングしてループを防ぐ。

####VRRP
ルーターまたはL3スイッチを冗長化するための技術。
ルーターを2台にしてネットワークを冗長化したときに、ルーターAとルーターBを論理的な1つのまとまりにする。
片方をアクティブ、もう片方をスタンバイとして、アクティブ側に問題が発生したらスタンバイに切り替わる。
VRRPは仮想IPアドレスという仕組みを使って実現されている。

###インターネット回線の高速化
- PPP
    - 昔はインターネットに繋ぐときには電話回線を使ってISPに接続し、ISPを介してインターネットに接続していた。
    - このときに用いられていたのがPPPという技術。

- PPPoE
    - 通信技術の発達で、ADSLや光回線が登場して、PPPをLANの規格であるイーサネット上でも使う必要がでてきた。
    - このときに生まれたのがPPPoEという技術。電話回線上で使用していた技術をイーサネットに応用した。

- IPoE
    - 企業内のLANなどと同じやり方で接続する方式。
    - PPPoEでは認証のためにIDとパスワードを使用していたが、IPoEでは回線に対して認証を行うのでIDとパスワードが不要。
    - PPPoEが混雑してきたので、IPoEという新しい道を作った。

####IPv4 over IPv6
IPoEはIPv6の通信にしか対応しておらずIPv6に対応しているサイトしか高速化できない問題がある。
IPv4のWebサイトでもIPoEを使って観覧できるするための技術がIPv4 over IPv6。
MAP-Eという方式とDS-Liteという方式があるが両者に違いはあまりない。