OSI参照モデルを紐解いていこう ー第7層(アプリケーション層) ①メールのプロトコル
はじめに
皆さん、こんにちは。ネットワークスペシャリストの左門です。本連載では、難しいネットワークを、身近な事例に置き換えながらわかりやすくお伝えしていきます。
第8回では、第4層(トランスポート層)について説明しました。第9回の今回は、順番からいうと第5層(セッション層)なのですが、第5層から第7層(アプリケーション層)までの3層は線引きが難しく、明確に区分できるものではありません。
そこで今回は、セッション層からアプリケーション層までの3層をまとめてアプリケーション層として解説していきます。また、アプリケーション層の代表的なプロトコルであるメールのプロトコルを取り上げます。
今回も、身近な事例として、郵便を題材にします。
配達員がハガキを相手に手渡ししない理由は?
ハガキをポストに投函すると、郵便局の配達員がハガキを届けてくれます。でも、家のポストに入れるだけで手渡しはしてくれません。その理由はなぜでしょうか。
「あたりまえの質問だな」と思われたかもしれませんね。理由は大きく2つあると思います。
- 家の中に入ってきてほしくない
配達員に家の敷地内に入ってきてほしくないと思う方もいるでしょう。ですから、塀の外にあるポストに投函してほしいのです。 - 受け取る人が不在の場合がある
直接手渡すにも、そもそも本人が不在の場合もあります。それでは直接手渡すことはできません。となると、配達員もわざわざ手渡しするよりポスト投函の方が楽です。
ITのネットワークでも
電子メールは相手に直接送らない
第1回でも、ITにおけるネットワークと郵便における手紙に関して、配送の流れを図に整理しました。そこでも説明しましたが、両者の通信の流れは似ています。ITのネットワークでも相手に直接電子メールを送ることはせず、相手のメールサーバ(のメールボックス)に届けます。
では、相手に直接メールを送ると、どのような不都合があるのでしょうか。説明に入る前に、電子メールを送る流れを説明します。ここでは、A社の山田さん(メールアドレス:yamada@example.com)からB社の後藤さん(メールアドレス:goto@example.co.jp)にメールを送信するとします。
次の図を見てください。山田さんのメールソフトはまず、A社のメールサーバ(SMTPサーバー)のポート番号25番にメールを送信します(図❶)。A社のメールサーバは宛先メールアドレス(example.co.jp)の情報を基に、B社のメールサーバの情報を調べます。そして、受け取った電子メールをB社のメールサーバに送信します(図❷)。最後に、後藤さんがメールサーバへメールを取りに行きます(図❸)。ここで、B社のメールサーバが郵便ポストに該当します。また、後藤さんのPCはファイアウォールなどで防御されています。
なぜ、電子メールを相手に直接送らないのでしょうか。先ほどのハガキの理由と対比して考えます。
ハガキでの理由 | 電子メールでの利用 | |
---|---|---|
1 | 家の中に入ってきてほしくない | 企業や家庭のネットワークに侵入されたくない |
2 | 受け取る人が不在の場合がある | 受け取る人のPCの電源がOFFになっている |
どちらも似たような理由ですね。1に関して、企業のネットワークはファイアウォールで守られています。中には攻撃者もいますから、外部の人がB社の中に勝手に侵入されては困ります。
2に関して、メールを受け取る後藤さんのPCが常に電源ONになっているとは限らないので、仮にファイアウォール等で通信が制限されていなくても電子メールを届けられないかもしれないのです。ですから、メールサーバ(のメールボックス)に電子メールを届けてもらい、自らメールボックスへ電子メールを取りに行く方が効率的です。
メール送信とメール受信のプロトコル
上図で示したように、メールの流れは「メール送信(図の❶❷)」と「メール受信(図の❸)」の2つがあります。それぞれ仕組みやプロトコルが違います。
(1)メール送信プロトコル
電子メールをメールソフトからメールサーバに送信したり、メールサーバ間で電子メールを送信したりする際に使われるのが、メール送信プロトコルであるSMTP(Simple Mail Transfer Protocol)です。SMTPは文字どおり、メール(Mail)を転送する(Transfer)ための簡易な(Simple)プロトコル(Protocol)です。TCPのポート番号25番を使用します。
SMTPは、世界中でインターネットの利用者がごく一部に限られていた時代に考案されたプロトコルです。当時は「悪意を持った利用者はいない」という前提だったので、SMTPにはサーバー側でメールの送信者が正規の利用者かを認証する機能がありません。しかし、これが一因となって大量の迷惑メールが世界中にばらまかれる現在の状況を生んでしまったのです。
そこで、最近はユーザー名とパスワードでメール送信者が正規の利用者かを認証するSMTP AUTHというプロトコルがよく利用されます。ポート番号は通常587番で、メールソフトからSMTPサーバーにメールを投稿(submission)する際に用いられることから、この番号はサブミッションポートと呼ばれることがあります。利用者を認証することで、不正な第三者が大量の迷惑メールを送りつける行為を防ぐことができます。
(2)メール受信プロトコル
宛先のメールサーバに届けられた電子メールは、メールサーバ内にある利用者ごとのメールボックスに格納されます。利用者が届いた電子メールを閲覧したい場合は、メールボックスにアクセスして電子メールを取りにいく必要があります。その際にメールサーバとメールソフトのやり取りで使われる代表的なプロトコルがPOP(Post Office Protocol)です。POPは何度か改良され、現在ではバージョン3のPOP3(POP version 3)が使用されています。POP3はTCPのポート番号110番を使用します。
また、メール受信プロトコルとして、POP3ではなくIMAP(Internet Message Access Protocol)も普及しています。IMAPもPOPと同様に初期バージョンに改良が加えられており、現在ではバージョン4(IMAP4)が使用されています。POP3では電子メールをダウンロードしてPCで管理するのに対し、IMAP4ではメールサーバ側でメールを保持、管理します(ただし、POP3と同様にクライアントのメールソフトにメールを取り込むことは可能です)。
IMAP4はサーバー側で電子メールを管理するため、自宅用とモバイル用の2台のPCを保持していた場合に、両方のPCで同じ電子メールを読むことができます。例えば、一方のPCで受信した電子メールを削除した場合、他方のPCでその電子メールを受信することはありません。
メールのシステム構成
先の図では各社のメールサーバは1台でしたが、セキュリティを保つためには、DMZに設置される外部メールサーバ(中継メールサーバ)と内部セグメントに設置される内部メールサーバの2台構成にすることが望まれます。
詳しく説明します。下図はメールシステムの構成例です。外部からメールを受信するには、メールサーバをDMZに公開する必要があります(図❶)。しかし,メールサーバには機密性が高いデータもあるため、内部メールサーバを構築してメールデータを蓄積する方が望ましいのです(図❷)。
続いて、社外からのメールがPCに届く流れを解説します。社外からのメールは,DMZにある外部メールサーバに届きます(図①)。外部メールサーバは,そのメールを内部メールサーバに転送します(図②)。PCは、内部メールサーバにメールを取りに行きます(図③)。
では、逆に内部のPCから外部にメールを送る場合はどうなるでしょうか。基本的にはこの逆の経路をたどりますが、外部メールサーバを経由することは必須ではありません。内部メールサーバから通信相手のメールサーバに直接送信する場合もあります。
おわりに
さて、今回は第7層(アプリケーション層)のメールのプロトコルについて解説しました。次回は、同じく第7層(アプリケーション層)のDNSについて解説します。
左⾨ ⾄峰 著 |
ストーリーで学ぶ ネットワークの基本実務にひもづく基本知識が身に付く!
|