
【ネスペ】令和5年春午後1問1の解説(ネットワークスペシャリスト試験)
このNoteでは、ネットワークスペシャリスト試験令和5年春午後1問1の解説をします。
解説だけでなく、解答に至る考え方、私の粘った解答・別解も書きました。諦めず解答を作って合格しましょう!
今回は「HTTP/2」「ALPN」で「知らないと失点する問題」が多かったです。不明点を残したまま全体的に正解するのは難しいですよね。プロキシ、DNS、ネットワーク経路と基礎もありましが、バラエティも豊かな設問でした。
「5割は切らないようにはできるかな」という印象。もう1つの問題で7割取っていくしかありません。取れる問題は点数を稼いで、渋めの問題のダメージを抑えるのが合格へのコツです。

今回で、HTTP/2やALPNが試験に出るんだなと分かりました。問われなかった性質・問題文にちょろっと書かれた用語が今後出てくると推測できます。正解できるよう復習するだけではなく、今後「別方向から出てきたときに得点できる準備」もしていきましょう。
同じ問題で間違うのは愚かですよね。そして、少し手口が変わっただけでまた負けるのも愚かだと、私は考えています。
このNoteは、私の独学合格体験・IT専門学校でのネスペ対策授業の経験を活かして作成しました。少しでも信用してくれたら嬉しいです。

それでは始めましょう!
\私の3ヶ月の学習記録/
講座 | HTTP/2, ALPN
以下のWebを参考に講座を作りました。
(最後に再度案内するのでスキップもOK)。
>JPNICさん(HTTP/2)
>Wikipediaさん(ALPN)
従来のHTTP通信は「HTTP/1.1」と云います。HTTP/2は通信効率を上げるために標準化されました。2012頃から普及が進んでいます。
HTTP/1.1では、1問1答(HTTPリクエストとレスポンス)の度にTCPコネクションの確立と切断が必要でした。Webページの操作はたくさんするので、時間がかかります。電話で互いに1回発言したら、電話を切ってかけ直すようなもの。
「HTTP/2」では、1つのTCPコネクションで、複数のHTTPリクエスト/レスポンスができます。1つのHTTPリクエスト/レスポンスをストリームと扱い、1つのTCPコネクション内で複数のストリームを使うことで解決しました。電話をつなげたまま、何度も会話ができるようになったようなものです。
HTTP/2はHTTP/1.1への下位互換はないですが、ポートは80番や443番を使います。よって、通信開始時に通信相手と、HTTP/2を使うよと合意する必要があります。合意に至るネゴシエーション手段は複数あり、今回は「ALPN」プロトコルを使いました。
「ALPN」は、TLSの拡張の1つで、アプリケーション層でどのプロトコルを使うかなどを決定するために使います。
今回必要だった知識を「広め」にピックアップしますね。次回出た時に切り口を変えてきますし、経緯も知っておいた方が合覚えやすいですから。
今後、別の切り口で問われるかもしれません。例えば問題文にヘッダ圧縮アルゴリズム「HPACK」が登場してます。またHTTP/2はgoogle社の「SPDY」を基にしており、HTTP/1.1はテキストベース・HTTP/2はフレームベースの通信、なども私なら出題します。
気が向いたら参考Webを分かる所だけでも読んでみてくださいね。
>JPNICさん(HTTP/2)
>Wikipediaさん(ALPN)
各解説でも再度触れますので、ここで覚えなきゃ!と焦らないでOKです。次へ読み進めてください。
設問1a | 基本なので落とせない
設問1a:リバースプロキシ
一旦受けて、中継(誘導)しているのでプロキシ。しかも外部者向けなのでリバースプロキシ。


特にリバースプロキシは、SSOの実現方式でもあります。ネスペでもセキスペでも重要な機器なのでしっかりと理解しておいてくださいね。>【セキスペ】SSOのNote
設問1b, c | 基本なので落とせない
設問1b:権威サーバ
設問1c:キャッシュサーバ
「権威サーバ(コンテンツサーバ,)」は、外部者から自社に関するDNS問合せに対応します。例えば「貴社のWebサーバのIPアドレス教えて」とか。DMZに置くのが望ましく、外部者向けなので「外部DNSサーバ」とも云います。

「キャッシュサーバ(フルサービスリゾルバ)」は、内部者がインターネットにアクセスする時にサポートします。URLをIPアドレスに変換(名前解決)しますが、キャッシュに登録されたならそのまま返答し、登録がなければインターネットのDNSサーバに聞きに行きます(再帰問い合わせ)。
社内LANに置くのが望ましく、「内部DNSサーバ」とも云われます。

なお、名前解決を外部に聞きに行くときは、内部DNSサーバは外部DNSサーバに聞きに行ってもらいます。
DNSサーバが1つである問題も出ます。大抵セキュリティ的な問題を抱えるので、2つに分ける処置が出題されます。DNSサーバは2つに分け、外部DNSをDNZ、内部DNSを社内LANに配置するのが普通、と思って大丈夫です。
DNSレコードの書き方は、ネスペでもセキスペでも具体的にでてくるので、余裕が出たら見ておいてくださいね。他のNoteでも度々でてくるので、スキップしてもOKです。>DNSの全て【SC, NW】
設問1d, e
設問1d:ストリーム
設問1e::method
HTTPでは、1回のHTTPリクエストとHTTPレスポンスのやり取り毎にTCPコネクションを確立していました。もしHTTPSなら、さらにTLSの処理も必要なので、処理時間(オーバヘッド)が大きくなりますね。
HTTP/2では、TCPコネクションを流用します。1回のHTTPリクエストとHTTPレスポンスのやり取りを「ストリーム」として、ストリームを次々に作って使っては消していきます。1つのTCPコネクションを保ったまま、ストリームを複数回やり取りするイメージ。
JPNICによくまとまっていたので、HTTP/1.1の欠点やHTTP/2での改善点などを覗いておいても良いですね。次問題で扱うALPNについても書かれています。>参考Web(JPNIC)
HTTPヘッダの:methodは、HTTPリクエストの内容を保存する属性(いわば変数)。絶対覚えるべきは2つ(GETとPOST)。
GET:情報をURLに含めて伝送する。例えば、「https://www.bing.com/search?q=IPA」で、Webサーバに検索したい言葉「IPA」を伝えています。
POST:情報をHTTPボディに含めて伝送する。


他にも、CONNECT, PUT, DELETEなどのリクエストが、:methodに格納され伝送されます。テキストで総ざらいしてください。R04で出ます。>ネスペ令和4春午後1問1の解説Note(準備中*)
また問題文にわざわざ「:shcme」「:path」「HPACKアルゴリズム」が書いてるのが怪しい。今回は問わないけど次回問うかもよ、と布石をしてるように私には思えます。
余裕が出た時で良いので、:methodに格納するリクエスト(GET, POST, CONNECT, PUT, DELETEなど)と、ヘッダの属性(:method, :scheme, :path)とHPACKを学習ノートにまとめておいてくださいね。
:method:HTTPリクエストメソッドを格納
GETとPOST:データを渡す
CONNECT::サーバとの間にトンネルを確立
HEAD, PUT, DELETE, OPTIONS, TRACE PATCH
:shceme:httpなのかhttpsなのかを格納
:path:アクセスするパス(URLの一部)を格納
設問1f
設問1f:TLS
SSLでもSSL/TLSでも正解にしてくれます。なぜなら、SSL/TLS, SSL, TLSは、全て同じと思って問題ありません。SSLが先に考案され、TLSとして標準化された経緯ですから。>SSL/TLSのNote
事実としてALPNはTLSの拡張、なので仕方ありません。解説のしようもないです。
ただし、問題文の「https://のURIスキームが用いられる」から、fをHTTPSと解答した方は、不正解ですがOK。良い推測。
APLNはTLSの拡張仕様で、セキュア通信(暗号化など)でアプリケーション層で使うプロトコルを決めるネゴシエーションに使われるとのこと。設問2(2)で使う知識です。>参考Web(Wikipedia)
設問2(1) | 特性から想像して粘る
設問2(1):リクエストを受けたのと同じ順序でレスポンスを返す必要がある。
私の解答は「リクエストの順序と同じ順序でレスポンスする」21文字。知らなかったですが、HTTPの特性から想像で正解しました。
Webサーバは「前の質問がxxだったから~」と関連を考えません。
HTTPは1問1答。私たちがWebブラウザで一連の操作をしていますが、実際は1つの操作に1つの返答が届いているだけです。話の流れが分からないAIボットと思ってください。
さらに複数のWebサーバに負荷分散していると、LBが前回処理したサーバに繋げてくれるとは限りません。セッションIDやCookieなどの工夫が必要です。このあたりの配慮がネスペで重要です。>過去問があった記憶があるので探しておきますね*
私は、以上の性質を知っていたので「1つずつ答えるんだろうな」と考えて解答を書きました。
設問2(2) | 知らなくても粘る解答
設問2(2):通信開始時にTCPの上位のプロトコルを決定するため。
APLNはTLSの拡張仕様で、セキュア通信(暗号化など)のアプリケーション層で使うプロトコルを決める、ネゴシエーションをするとのこと。>参考Web(Wikipedia) なおHTTPSでもAPLNは使われています。>参考Web(JPNIC)
知らなければ仕方ありません。今後は正解しましょう。
粘った解答も。私の解答は「HTTP/2通信に必要な取り決めをするため」21文字。多分ダメでしょう。
しかし、無解答や「闇雲な勘」よりはマシ。問題文から抜き出したり、過去問の模範解答を流用したりなど「理屈ある勘」を書けば、別解や部分点があるかもしれませんから。
何とかヒントを探そうと周辺を見て、次の下線③。「HTTP/2の通信を開始する時にALPNを用いて~ネゴシエーションを行う」旨。よって、開始に必要な何かをネゴシエーション(交渉)すると考えました。
しかしネゴシエーションが暗号方式なのかなど具体的には分からないので、「取り決め」と曖昧にして解答しました。
この考え方は設問3(2)でも使います。分からない問題でも粘るのが合格には大事です。空欄・闇雲感は失点確実、理屈があれば望みが持てます。
設問3(1)d, e
設問3(1):d, e
正解できます。

下線③前に「HTTP/2の通信を開始するとき」なので。f,gやh,iのHTTP/2通信より前。a~cはTCP。よってdとe。
ネゴシエーション(交渉)なので、dとeがやり取りしてるのも、将に交渉でグッド!(d:クライアント→サーバ, e:クライアント←サーバ)
設問3(2) | 知らなくても粘る解答
設問3(2):クライアントが利用可能なアプリケーション層のプロトコル
設問2(2)「上位のプロトコルを決定」が正解できないと無理ですね。次回から正解しましょう。
APLNはTLSの拡張仕様で、セキュア通信(暗号化など)のアプリケーション層で使うプロトコルを決めるネゴシエーションをします。>参考Web(Wikipedia) なおHTTPSでもAPLNは使われています。>参考Web(JPNIC)
とはいえ粘ってみます。私の解答は「対応しているTLSのバージョン」15文字。35文字制限に対して短いですが、知らないので仕方ありません。勿論不正解でしょうが、望みも持ちたいです。
どう捻り出したか。
下線③周辺から「クライアントから送られる情報」を探しました。「TLSのバージョンとして1.2以上が必要」なので、クライアントから、どのバージョンなのか情報が送られるはずだ、と考えました
良い問題は「知らなかったら×」よりも「知らなくても推測できる仕掛け」があります。分からない、ではなく、問題文にヒントがあるはず!と信じて解答を捻り出します。
例えば会計の公式を知らなくても昨年度の会計計算を全部載せてて、計算式を推測できるなど。>【AP】R05秋経営戦略の解説Note

知らなくても問題文の情報と自分の知識を使って、採点者に考えが伝わるような解答をしてくださいね。
設問4(1)ア, イ, ウ
設問4(1)ア:172. 21. 10. 0/24
(J社クラウドのG社用セグメント)設問4(1)イ:172. 21. 11. 2
(J社クラウドの仮想ルータ)設問4(1)ウ:172. 21. 11. 1
(G社のL3SW:専用線)
必ず正解してください。
表1上に「G社データセンタとJ社クラウドとの間で通信できるように」とあります。なお表1の「ネスクトホップ」とは、次の機器のこと。ルータの「ホップ数」で知っていますね。>ルーティングプロトコルのNote(RIP)

L3SWは、J社クラウドに専用線でアクセスするので
宛先ネットワーク:172. 21. 10. 0/24(J社クラウドのG社用セグメント)
ネスクトホップ:172. 21. 11. 2(J社クラウドの仮想ルータ)
J社の仮想ルータは、専用線でG社L3SWにアクセスするので
宛先ネットワーク:0.0.0.0/0
ネスクトホップ:172. 21. 11. 1(G社のL3SW:専用線)
「0.0.0.0/0」は、無効/不明/適用外を指します(Wikipedia)。全てのIPアドレスを指したり、デフォルトルートの宛先を指したりもします。過去問によく出ています。
設問4(2)
設問4(2)動作モード:アプリケーションモード
設問4(2)理由:HTTP/2リクエストをHTTP/1.1に変換して負荷分散するから
動作モードは正解しておきましょう。
理由は、色んな書き方があると思います。最後の問題なので失点しても仕方ないですし、今後出てきたら確実に仕留めればOKです。
負荷分散絡みの情報を問題文から探します。図2を見るとHTTP/2とHTTP/1.1が目に入ります。

よってHTTP/2だとかHTTP/1.1は、HTTP。アプリケーション層(レイヤー7)のプロトコルだから「アプリケーションモード」と推測。
私が書いた採用理由は「HTTP/2からHTTP/1.1に切り替えるから」24文字。多分正解にしてくれるかなと。
まとめ
お疲れ様でした!
今回は5割を切らなければOK。HTTP/2やALPNに次出くわしたら狩りましょう。

また1点気になるのは、4頁のヘッダフィールド(:methodなど)とHPACK。再度HTTP/2で攻める時に切り口を変えてくるはずなので、布石のようにも思えます。
:method:HTTPリクエストメソッドを格納
GETとPOST:データを渡す
CONNECT::サーバとの間にトンネルを確立
HEAD, PUT, DELETE, OPTIONS, TRACE PATCH
:shceme:httpなのかhttpsなのかを格納
:path:アクセスするパス(URLの一部)を格納
参考Webサイト様も覗いてみてくださいね。
>mozilla社
>@0xfffffff7様(Qiita)
以上になります。でわでわ。
\私の3ヶ月の学習記録/
いいなと思ったら応援しよう!
