【TCP/IP階層モデル】プロトコル別メッセージ①(アプリケーション層)

ネットワーク

ネットワークスペシャリスト試験の勉強をしていて、各プロトコル別のメッセージやパケットの種類がなかなか覚えられなかったため一覧にしました。

今回は、アプリケーション層のプロトコルです。

BGP

メッセージ説明
OPENBGPセッション開始時に交換されるメッセージ。自AS番号、ルータID、BGPVersionなどの情報が含まれる。
UPDATEBGPの経路情報の交換に使用されるメッセージ。経路の追加や削除が発生した場合に送信される。
NOTIFICATIONBGPセッションの切断やエラーを検知した場合に送信されるメッセージ。
KEEPALIVE生存確認を行うときに交換されるメッセージ。Ciscoでは、デフォルトでは60秒おきに定期敵に送信される。
OSPFのHelloとは動作が違い、相手ルータがKeepAliveを受信したからといってそれに応答することはない。
ROUTE-REFRESH相手ルータに対して全ての経路情報を要求するメッセージ。

OSPF

以下のパケットを隣接ルータとやり取りをして、動的にネイバー関係を確立した上でネイバーテーブル、LSDB、ルーティングテーブルを最新に保つことが出来る。

パケット説明
Helloネイバーを検出するためのパケット。ネイバーを検出してネイバー関係を確立した後のキープアライブとしても使用される。
Helloパケットの宛先はマルチキャスト(224.0.0.5)。
DBD(Database Description)自身のLSDBに含まれているLSAのリスト一覧。
ネイバーとDBDを交換しあうことにより、自身に不足しているLSAが何なのかを認識することが出来る。
LSR(Link State Request)自身のLSDBに不足しているLSAがあった場合、ネイバールータにその特定のLSAを要求するために使用される。
LSU(Link State Update)LSRによりネイバーから要求されたLSAを送信するために使用。
LSAck(Link State Ack)LSUを受信したことを通知するために確認応答として送信。

DHCP

メッセージ説明
DHCP DiscoverDHCPクライアントから、DHCPサーバを探索するためにネットワーク内の全ての宛先に対してDHCP Discoverをブロードキャストする。
DHCP OfferDHCPクライアントからのDHCP Discoverに対して、DHCPサーバが応答するメッセージ。
このメッセージには提供するIPアドレスの情報を含んでいる。
この時点ではまだDHCPクライアントにはIPアドレスは設定されていないため、ブロードキャストされる。
DHCP RequestDHCPクライアントがDHCPサーバから提供されたIPアドレスの使用を正式に要求する際に使用される。
DHCP AcknowledgeDHCPサーバがDHCPクライアントに対してIPアドレスの割り当てを確認し、その他のネットワーク設定情報を提供する際に使用される。
その他のネットワーク情報は、デフォルトゲートウェイや、DNSサーバのIPアドレスなど。

HTTP

HTTPリクエストユーザがブラウザのアドレスバーにURLを入力し、ブラウザはURLに基づいてHTTPリクエストを作成。
ブラウザからHTTPリクエストをWebサーバに送信する。
HTTPレスポンスWebサーバがリクエストを受け取り、必要な情報やファイルを探してレスポンスを作成。
WebサーバからHTTPレスポンスをブラウザに送り返す。

■HTTPメソッド

メソッド説明
HEAD対象ファイルをGETした時のヘッダ情報を要求する。
GETWebサイトの情報を要求する。
既にアクセスしたことがあり、キャッシュが残っている場合はGETは行われない。
POSTデータをWebサーバに提供する。
会員情報の登録をする際など、情報をサーバ側に送る際にPOSTが行われる。
PUTリソースの更新をする。
記事の投稿や、編集をして更新する際にPUTが行われる。
DELETEデータの削除を要求する。
CONNECTHTTPS通信をプロキシ経由でトンネル化する。
HTTPS通信の場合、PCとWebサーバ間は暗号化されており、暗号化の鍵はPCとWebサーバしか持っていないためプロキシサーバでは通信を中継することが出来ない。(宛先のURLやHTTPリクエスト/レスポンス、データの内容がTLSで暗号化されている)
そのためCONEECTメソッドを使い、PCとWebサーバ間をトンネル化する。
CONNECTメソッドはSMTPなど他のプロトコルでも使用可能であるためセキュリティリスクが発生する可能性があり、利用する場合はポート番号を制限する。(443に限定するなど)
OPTIONSサーバがサポートしているメソッドやオプションの情報を要求する。
TRACEループバック試験用。
リクエストと同じ内容のレスポンスを受信する。

SNMP

■SNMPマネージャから送信

Get RequestSNMPエージェントから得たい情報を、OIDを指定して要求する。
GetNext Request直前に指定したOIDの次のOIDを指定して要求する。
Set RequestSNMPエージェントの設定変更を行いたい場合、OIDを指定して要求する。

SNMPエージェントから送信

Get ResponseSNMPマネージャから要求されたOIDに対して、値を挿入して返信する。
TRAP機器の状態に変化があった場合、SNMPエージェントが自発的に送信する。

SSL/TLS

メッセージ説明
Client HelloSSLの通信開始をクライアントからサーバに通知するメッセージ。
メッセージには以下の内容が含まれている
SSL/TLSのバージョン、乱数、セッションID、クライアントが利用できる暗号化方式と圧縮方法の一覧
Server HelloクライアントからのClient Helloの送信された一覧情報に基づいて、サーバは使用する暗号化とハッシュ関数のアルゴリズムを決定してクライアントに通知する。
Server Hello には以下の内容が含まれている
SSL/TLSのバージョン、乱数、セッションID、サーバ側で決定した暗号化方式と圧縮方法の一覧
Server Certificateサーバからクライアントに向けてSSLサーバ証明書を送信する。
その証明書を発行した認証局の証明書や、上位の認証局の証明書を含むなどルート証明書までの証明書リスト(証明書チェーン)を含んでいる。
Server Key ExchangeSSLサーバ証明書を保持していないサーバである場合、またはServer Certificateで送信したSSLサーバ証明書に公開鍵が含まれない場合に
共通鍵を交換するための公開鍵を送信するメッセージ。
Certificate Requestクライアント認証を行う場合、サーバがクライアントに対してクライアント認証用の証明書を送るように要求するメッセージ。
Certificate Requestには、サーバが信頼するルート証明書のリストを含んでいる。
Server Hello Doneクライアントに対して、Server Hello から始まる上述のメッセージが完了したことを通知する。
Client CertificateサーバからCertificate Requestメッセージを受信した場合に、サーバに対してクライアント証明書を送信する。
この際にルート証明書までの証明書リスト(証明書チェーン)も送信する。
Client Key Exchangeクライアントとサーバだけが知り得る共有鍵を生成するために、プリマスタシークレットという乱数情報を生成する。
クライアントは、生成したプリマスタシークレットをサーバの公開鍵を使用して暗号化したうえで、サーバに送信する。
Certificate VerifyClient Certificateメッセージを送信した場合、クライアント証明書に対する署名データとして送信する。
サーバ側からCertificate Requestがなかった場合には、Client Certificateとともに省略される。
Change Cipher Spec生成されたマスタシークレットから共通鍵を生成し、以降はこの共通鍵を使用した暗号化通信を行うことを通知するために
クライアントとサーバ双方から送信されるメッセージ。
Finishedクライアントとサーバ双方から、認証に成功して共通鍵を共有できたことを通知するメッセージ。

コメント

タイトルとURLをコピーしました