『この一冊で全部わかる ネットワークの基本』　

# 何をするか
最近『この一冊で全部わかる　ネットワークの基本』(以下『ネットワークの基本』と記述。また、以下特に断りがない場合のページ数は『ネットワークの基本』のページ数を指す)(福永勇二/SBクリエイティブ株式会社/2021年3月12日初版第12刷発行)を読んでいる。
ただ読むだけでは頭に入らないので、見開き2ページごとに要点、疑問、感想、関連事項等を書いていく。

＊完全に勉強用に使っています。思い付き・メモ書き・ちゃんと言葉(文章?)になっていないものもどんどん書いていくつもりですので、ご了承ください。
＊＊あくまでアウトプットの場として利用しているので、断定的に書いている箇所でも情報に誤りがある可能性があります。疑問に思われた点については、ご自身でさらにお調べください。

# SMTP　pp.118～ Chapter5 04

#### SMTPとは
pp.118 1~2行目に次の記述がある
>SMTP(Simple Mail Transfer Protocol)は、電子メールの配送に用いられるプロトコルです。

まず、「プロトコル」という語について、自分は「この方法で通信をするという**取り決め**」と理解している。それで、その取り決めは、OSI参照モデル(ネットワークが持つべき機能を7つの層に可視化して説明したもの)・TCP/IP(それぞれネットワークに必要な機能を4つの層に可視化して説明したもの)の各層について設定する必要がある。本ページで登場するSMTPは、TCP/IPでいうアプリケーション層のプロトコル。


#### 疑問・関連事項
##### 1.「自分が使用権をもつメールサーバーにメールをSMTP形式で送信する」が具体的にイメージできない
pp.118 4段落目の2行目に

>①自分が使用権を持つメールサーバーにメールをSMTPで送信する
>②自分が使用権をもつメールサーバーから受取人メールボックスがあるメールサーバーへメールがSMTPで転送される
>③転送したメールが受取人のメールボックスに入る

という記述があって、①と②で何が起きているのか具体的なイメージが持てない。

##### 1.に対しての暫定的な答え
姉妹書の『この一冊で全部わかる　サーバーの基本』(きはしまさひろ/SBクリエイティブ株式会社/2018年3月16日初版第7刷発行、以下『サーバーの基本』と記述)のpp.102～103を参考にすると、上記①は、自分のPCからメールサーバへメールを送るときの話で、上記②は、そのメールサーバから送信先のメールサーバへメールを送るときの話らしい。
つまり、自分のPCとメールサーバで通信するときも、メールサーバ同士で通信するときもSMTPが使われているということらしい。



##### 2.「その接続しているISPのネットワーク外にあるメールサーバーに対して25番ポートで接続すること」とはどういうことか
pp.118　3段落目に以下の記述がある
>日本で提供されている大部分のインターネット接続サービスは、その接続しているISPのネットワーク外にあるメールサーバーに対して25番ポートで接続することを禁止しています。これは迷惑メール防止策として導入されたOP25B(OutBound Port 25 Blocking)によるものです。

この文章の「その接続しているISPのネットワーク外にあるメールサーバーに対して25番ポートで接続すること」が具体的にイメージができない。特に「25番ポートで接続する」という部分がわからない。
「OP25B」についてはややこしそうなのでパス。

##### 2.に対しての回答とまではいかないけど、いろいろ考えたこと
まず、「ISP」というのはInternet Service Providerの略で、広い範囲のネットワークを利用するならISPに頼んで通信網を使わせてもらう必要があるみたい。
で、「25番ポートで接続する」の部分は、pp.119の絵からして**送信元**のポートのどれを使うか、という話なのかなと思っている。

と、ここまで書いてpp.58に参考になりそうな箇所を発見したので引用しておく
>トランスポート層プロトコルにTCPを使用する通信では、通信開始時の接続において、相手のIPアドレスと合わせて相手のサービスを特定するポート番号を指定します。例えば、Webサービスなら80番を指定します。

ということは、上の「25番ポートに接続する」というのはクライアント(メールの送信側)ではなくて、SMTPサーバの25番目のポートのことを言っているらしい。


# POP3とIMAP4 pp.120～　Chapter5 05

#### POP3・IMAP4とは

上で紹介したのがSMTPで、メールを**送信**するときに使われるプロトコルだった。
『サーバーの基本』pp.101の図を参考にすると、メールの送受信には以下が登場する。

①送信元のメールソフト
②送信元のSMTPサーバー
③DNSサーバー
④送信先のSMTPサーバー
⑤送信先のメールボックス
⑥送信先のメールソフト

SMTPは、①→②、②→③、③→④、④→⑤あたりで使われているプロトコルらしい。
対してPOP3とかIMAP4は、メールの**受信**時に、⑤→⑥の間の通信で使われているプロトコルのよう。
送信されたメールは、SMTPのプロトコルを使った通信によっていったん⑤のメールボックス(の役割を果たしているサーバー)に入る。
で、メールソフトから「メールを受け取りたい」という要求を受けたら、メールソフトにメールを渡すというイメージだろうか。

失礼。ここにPOP3とIMAP4の違いがあるみたい。POP3は、メールボックスに送られてきたメールをPCに取り込んでから閲覧して、メールボックスのメールは定期的に消されるらしい(消さないこともできる、とある)。IMAP4のほうは、メールボックスにメールを残したままPCでメールを閲覧する。


#### 疑問・関連事項

##### 1.特になし

# FTP pp.122～　Chapter5 06
ファイルを送受信するために使われるプロトコルらしい。

#### 疑問・関連事項

##### 1.特になし

# SSH pp.124～　Chapter5 07
サーバーの設定をするときに、コマンドプロンプトみたいな画面で操作することになるらしく、そしてその操作のためには、そもそも操作したいサーバーと通信しておく必要がある。で、その通信の時のルール(取り決め)のことをSSHというらしい。

#### 疑問・関連事項

##### 1.「サーバーやネットワーク機器をCUIで操作する」こと自体があまりイメージできていない
自分のPCにあるサーバ(ex.SQLServer)が入っているとして、そのサーバの設定を変更するとしたら、そのサーバの設定画面みたいなところに行って、その画面でプロパティを変更すればよかった。
その時はコマンドプロンプトは使っていなかった。
だからここで言っている「サーバー」というのは、物理的に他の場所にあるサーバのことだろうと思う。
そもそもそうでなければ通信する必要がないし。

##### 2.「公開鍵」とか「秘密鍵」とかよく分かっていない
SSHでは「公開鍵認証」が使われているらしいけど、全然わからない。

# DNS pp.126～　Chapter5 08
IPアドレスは、そのままだと人間が認識しずらいので、ドメインという文字列に置き換えられている。IPアドレスとドメインを変換する機能を果たしているのがDNSサーバ。

#### 疑問・関連事項

##### 1.ここでいう「IPアドレス」はグローバルIPかプライベートIPのどちらか
「IPアドレス」と書いてあるのを見ると、それがグローバルIPのことを指しているのか、プライベートIPのことを指しいているのか気になる。おそらくここでのIPアドレスは、グローバルIPのことだろう。
理由は、一つのネットワーク内でドメインを持ち出して相手を指定する必要性が低いと思うから。
上に書いたように、IPをわざわざ「人間が認識」しやすい形に直しているのは、それを初めて見る人がどこのアドレスかをわかりやすくするためなので、同ネットワーク内でそのようなわかりやすさを求める必要性は低いし、だからグローバルIPのことをここでは言っているのだと思った。

# ファイアウォールとDMZ pp.148～　Chapter6 05
　ファイアウォールは、「危険な通信をさせないという役割(機能)」の名前で、その役割であったり機能であったりを実行しているのがパケットフィルタリングやプロキシサーバ。

#### 疑問・関連事項

##### 1.「IPアドレスとポート番号を条件に、通信を許可/拒否します」が具体的にイメージできない
　pp.148に次の記述がある
>パケットフィルタ型のファイアウォールは、インターネットと内部ネットワークの境界に設置して、パケットのIPアドレスとポート番号を条件に、通信を許可/拒否します

ここで、pp.149の具体例を見ると次のようになっている。

>【通してよい】
>方向：外→内
>送信元IP：全て
>送信元ポート：80(HTTP)
>宛先IP：全て
>宛先ポート：全て
>
>方向：内→外
>送信元IP：全て
>送信元ポート：全て
>宛先IP：全て
>宛先ポート：80(HTTP)

この具体例で想定されているのは、おそらく「内部ネットワークからインターネットのWebブラウザにリクエストする場合」と「インターネットから内部ネットワーク内にあるWebサーバにリクエストがくる場合」。
ここで分からないのは、「外→内」の場合に「送信元ポート」のポート番号を指定している理由。
「外→内」は、「インターネットから内部ネットワーク内にあるWebサーバにリクエストがくる場合」だから(のはずだから)そのリクエストを受け取るポート、つまり「宛先ポート」を「80(HTTP)」に指定しておけばいいのでは？と思った。
　つまりは、もしここで「この通信だけに制限したい」というものが「webの通信」なのであれば、内部→外部に出る時も、外部→内部に入ってくるときも、受けて(宛先)のポート番号を指定(そのポート番号宛ての通信以外は制限する)ようにすれば、内部→外部・外部→内部の両方で「宛先ポート」を指定するようになってわかりやすいのにな、と思ったということ。

# 参考(本文では自分が使っている版を書きましたが、こちらでは初版発行年を記しています)
1. 福永勇二,『この一冊で全部わかる ネットワークの基本』,SBクリエイティブ株式会社,2016年初版第1刷発行
2. きはしまさひろ,『この一冊で全部わかる　サーバーの基本』,SBクリエイティブ株式会社,2016年初版第1刷発行