インフラ勉強メモ（ネットワーク/サーバー）

#### この記事の概要
インフラ初心者の勉強メモ。間違ってたらご指摘お願いします！

# ネットワーク

## TCP/IPとOSI参照モデル
![スクリーンショット 2019-12-01 11.24.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191739/872d65e3-1b7a-b6e7-13f0-b5908e62be30.png)

### OSI参照モデル
- コンピューターの通信機能を階層構造でモデル化したもの
- OSI参照モデルは概念や考え方として残っているが実際はほとんどTCP/IPで実装されている。
- かつてはネットワークは単一のメーカーのみの製品で構成されていたが、ネットワークが普及する中で複数メーカーの機器と接続する需要が増えたため、異なる機種間での通信を実現するために生まれた

### TCP/IP
- さまざまな通信プロトコルの総称
    - IP/ICMP/TCP/UDP/HTTP/TELNET/SNMP/SMTP...
- 実用性重視のプロトコルであるためOSI参照モデルよりも急速に普及した

#### アプリケーション層
- アプリケーションごとにその機能を実現する

#### トランスポート層
- データ転送の信頼性を確保する
- ポート番号を元にアプリケーション層にデータを渡す
- TCPまたはUDPが用いられる

##### TCPとUDP
- TCP
    - コネクション型
    - 通信の途中でパケットが無くなったり順番が入れ替わっても正しく解決する
    - 通信の回数が増えるため、UDPよりは遅くなる
    - Webやメールなど、データを保証する必要があるアプリケーションで用いる
- UDP
    - コネクションレス型
    - データがきちんと届いてるかなどのチェックはしない
    - パケットが少ない通信やブロードキャスト・マルチキャストの通信に向いている
  
##### TCPとUDPを利用するアプリケーションプロトコル
- TCP
    - HTTP(80)、HTTPS(443)、FTP(20/21)、SMTP(25)、SMTPs(465)、POP3(110)、POP3s(995)、IMAP4(143)、IMAP4s(993)、DNS(53)
- UDP
    - TFTP(69)、DNS(53)、DHCP(67/68)、SNMP(161/162)、Syslog(514)、NTP(123)

#### インターネット層
- IPアドレスを元に宛先にデータを渡す

#### ネットワークインターフェース層
- MACアドレスを元に宛先までデータを渡す
- 物理層を利用するためのインターフェース、NICを動かすためのデバイスドライバのような役割

#### ハードウェア
- イーサネットや電話回線などの物理層のこと
- 使用する通信媒体はケーブルでも無線でもいい（特に制約がない）

##### イーサネットの規格で決めていること
* 物理層レベル（OSI参照モデルの第１層）
    * 利用するインタフェースの形状
    * 利用するケーブル
    * 「0」「1」のデジタルデータと物理信号の変換方式
* データリンク層レベル（OSI参照モデルの第２層）
    * イーサネットインタフェースの特定(MACアドレス)
    * 伝送媒体(ケーブル)のアクセス制御(CSMA/CD)
    * データのフォーマット(フレームフォーマット)
- イーサネットではデータ転送先のイーサネットインターフェースをMACアドレスで識別している
    - PCだけでなくレイヤ2スイッチなどすべてのネットワーク機器のイーサネットインターフェースにMACアドレスが割り当てられている

## コンピュータ同士を接続するための機器
- ネットワークインターフェース
- リピーター
- ブリッジ/L2スイッチ
- ルーター/L3スイッチ
- L4-7スイッチ
- ゲートウェイ

### ネットワークインターフェース
- コンピュータをネットワークに接続するために必要なインターフェース
- NIC（Network Interface Card）はLANを使うための機能が集約された部品

### リピーター
- OSI参照モデルの第１層、物理層でネットワークを延長する機器
- ケーブル上を流れてきた電気や光の信号を受信して、増幅や波形の整形をした後にデータを流す
- 複数の線を収容できるものはリピーターハブ

### ブリッジ/L2スイッチ
- OSI参照モデルの第２層、データリンク層でネットワーク同士を接続する装置
- MACアドレス（物理アドレス）で処置を行う
- フレーム（＝データ）が壊れていないかをチェックし、正常な者のみ流す
- スイッチングハブもブリッジの一種
- L2スイッチにフレーム（＝パケット）が入ってくると、L2スイッチは宛先となるMACアドレスを見て適切なポートにフレームを転送（**スイッチング**）する
- L2スイッチ内のMACアドレステーブルに、該当するMACアドレスが存在しない場合はLAN内全体にブロードキャストを飛ばし、応答があったポートに転送する

### ルーター/L3スイッチ
- OSI参照モデルの第３層、ネットワーク層の処理を行う
- ネットワーク層のアドレスで処理を行う(=TCP/IPではIPアドレス)
- 宛先となるIPアドレスを見て適切なポートにパケットを転送（**ルーティング**）する
- L3スイッチ内のルーティングテーブルに、該当するIPアドレスもしくはネットワークアドレスが存在しない場合はデフォルトゲートウェイに繋がるポートに転送する

### L4/L7スイッチ
- トランスポート層とアプリケーション層で通信の内容を分析し、特定の処理、転送を行う
- ロードバランサーもL4/L7スイッチの一種
    - 一定間隔でサーバーの死活を監視し、応答がない場合は負荷分散対象から外す

#### L4スイッチ
- 宛先となるVIPとTCP/UDPポートを見て適切なサーバーにパケットを転送する

#### L7スイッチ
- 宛先となるURLを見て適切なサーバーに転送する

### ゲートウェイ
- トランスポート層からアプリケーション層までの階層でデータを変換して中継する装置
- プロキシサーバーもゲートウェイの一種
    - ネットワークトラフィックの軽減やセキュリティ対策として設定する 

### MACアドレスとIPアドレス
- MACアドレス
    - NICに焼き付けられているアドレス
    - TCP/IPのネットワークインターフェース層の通信に利用
- IPアドレス
    - OSに設定する論理的なアドレス
    - TCP/IPのインターネット層の通信に利用
- ARP
    - Address Resolution Protocol
    - IPアドレスからMACアドレスを知るためのプロトコル
- RARP
    - Reverse Address Resolution Protocol
    - MACアドレスからIPアドレスを知るためのプロトコル

## ルーティング
### スタティックルーティング
- ルータに経路情報を手動で登録する
- 通信経路が限定される場合に適する

### ダイナミックルーティング
- 近隣のルータと通信してルーター同士で経路情報を自動的に更新する
- ISPのような外部ルーターとの接続が頻繁に変化するような場合に適する

## ネットワークトポロジー
コンピューターネットワークの配線に対して、端末や機器がどのような形で接続されているかを表す言葉
また、論理的なネットワークの構成のこと

- バス型
- スター型
- リング型
- フルメッシュ型　

### ポート番号
- 同一コンピューター内のプログラムを識別・区別するための番号
- 送信先のコンピュータのどのアプリケーション（プログラム）にデータを届けるかを判断する
    - IPアドレスだけでは宛先コンピュータに届けるのみで実際にどのプログラムにデータを届けるのか判断できないため、ポート番号が用いられる

# サーバー

### サーバーの主な構成要素
- CPU
- メモリ
- ストレージ
- NIC

## CPU
- 中央処理装置
- CPUの性能が高いほどPCの処理速度も上がる

#### コア
- CPUの処理を実際に行う部品
- コアの数だけ同時に演算できる

#### 動作周波数
- 1秒間に刻むクロック数
    - [クロック周波数とは](https://chimolog.co/bto-cpu-clock/)
- 動作周波数を上げるとCPUの演算能力も上がるが、消費電力・発熱も増える

#### ソケット数
- 物理的なCPUの搭載数

#### スレッド
- CPUが行う処理の単位

## メモリ
- 主記憶装置
- 容量、データ転送速度、消費電力、耐障害性などを考慮する必要がある

## ストレージ
- デジタル情報を記憶/保存する装置
- 接続形態は大きく分けて以下の二つ

### サーバーなどに直接接続する
- DAS(Direct Attached Storage)
    - OSではDAS上の論理ドライブは内蔵ディスクの論理ドライブと同じように認識されるため、区別なく同じ要領で扱うことができる

### ネットワーク上に接続する（＝ネットワークストレージ）
- NAS(Network Attached Storage)
    - ネットワーク経由で複数のサーバーからアクセス可能
    - NFS、SMB/CIFSなどのファイル共有プロトコルを用いる

- SAN(Strage Area Network)
    - ブロックレベルのデータストレージ専用ネットワーク
    - ストレージ専用のネットワークを構成するためアクセスが高速

## NIC
- ネットワークインターフェースカード（前述）

#### チーミング
- NICの冗長化
- 物理NICの一つが故障しても通信を継続したり、通信帯域を拡張できる


## 参考
- 書籍
    - [マスタリングTCP/IP 入門編 第5版](https://www.amazon.co.jp/dp/4274068765/ref=cm_sw_em_r_mt_dp_U_chY4Db7SJ1GTN)
    - [インフラエンジニアの教科書](https://www.amazon.co.jp/dp/4863541333/ref=cm_sw_em_r_mt_dp_U_6hY4DbRCY7N43)
- サイト
    - [ネットワークエンジニアとして](https://www.infraexpert.com/)