<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Study</title>
	<atom:link href="https://ascend-beyond.com/category/study/feed/" rel="self" type="application/rss+xml" />
	<link>https://ascend-beyond.com</link>
	<description></description>
	<lastBuildDate>Mon, 03 Aug 2026 01:19:50 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://ascend-beyond.com/wp-content/uploads/2024/03/cropped-9376b452e9b0c7a8bdf82cd2e63920ee-32x32.jpg</url>
	<title>Study</title>
	<link>https://ascend-beyond.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href=""/>	<item>
		<title>令和7年（2025年）ネスペ午後Ⅱ　問２　解答解説</title>
		<link>https://ascend-beyond.com/study/7878/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 02 Aug 2026 06:38:49 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7878</guid>

					<description><![CDATA[設問１a:消費　b:非セルラー　c:セルラー　d:ISM　e:干渉　f:3GPPa:消費　空欄の前にあるLPWA（LowPowerWideArea）の説明としての穴埋め問題。LPWAとは「省電力（LowPower）」で「 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問１</strong></span></span></span><br><span class="fz-20px"><span class="marker"><strong><span style="text-decoration: underline;">a:消費　b:非セルラー　c:セルラー　d:ISM　e:干渉　f:3GPP</span></strong></span><br></span><strong><span style="text-decoration: underline;">a:消費<br></span></strong>　空欄の前にあるLPWA（LowPowerWideArea）の説明としての穴埋め問題。LPWAとは「省電力（LowPower）」で「遠域・広範囲まで届く（WideArea）」という特徴を持つ無線通信技術の総称。ここから、空欄aには低消費電力であることが分かる。</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">b:非セルラー<br>c:セルラー</span></strong><br><strong><span style="text-decoration: underline;">d:ISM<br>e:干渉</span><br></strong>　LPWAにはセルラーと非セルラーがある。<br>セルラーは国から許可を得た（＝免許がある）事業者が運用するLPWAのこと。一方、非セルラーは免許がなくても運用できるLPWAのこと。ほかにもいろいろな違いがあるので見ていこう！<br><strong>▼セルラーと非セルラー</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>セルラー系（LTE-M, NB-IoTなど）</strong></td><td><strong>非セルラー系（LoRaWAN, Sigfoxなど）</strong></td></tr></thead><tbody><tr><td><strong>代表的な規格</strong></td><td><strong>LTE-M</strong> (Cat.M1), <strong>NB-IoT</strong> (Cat.NB1)</td><td><strong>LoRaWAN</strong>, <strong>Sigfox</strong></td></tr><tr><td><strong>通信インフラ</strong></td><td>大手携帯キャリアの基地局・通信網を利用</td><td>自社・自治体・個人などで独自に基地局を設置</td></tr><tr><td><strong>電波の利用ルール</strong></td><td><strong>ライセンス帯</strong>（国からの許可・免許が必要）</td><td><strong>アンライセンス帯（<span class="blue">ISM</span>バンド）</strong>（免許不要）</td></tr><tr><td><strong>周波数帯</strong></td><td>プラチナバンド（700M〜900MHz帯）や1.7G〜2GHz帯など</td><td><strong>Sub-GHz帯（920MHz帯）</strong> など</td></tr><tr><td><strong><span class="blue">電波干渉</span>リスク</strong></td><td><strong>非常に低い</strong>（キャリアが独占して利用するため）</td><td><strong>ややある</strong>（同じ周波数を誰でも使えるため）</td></tr><tr><td><strong><span class="blue">SIM</span>カード</strong></td><td><strong>必要</strong>（通信事業者との契約が必要）</td><td><strong>不要</strong>（機器固有ID等で認識）</td></tr><tr><td><strong>エリア展開</strong></td><td>契約すれば<strong>全国どこでもすぐ繋がる</strong></td><td>基地局が届くエリアのみ（未開拓地は自前設置が必要）</td></tr><tr><td><strong>コスト構造</strong></td><td>初期費用（アンテナ代）は不要。<br><strong>毎月の通信料（基本料金）が発生</strong>する</td><td>自前で基地局を建てる初期費用が発生。<br><strong>月額の通信料はゼロ〜格安</strong></td></tr><tr><td><strong>消費電力</strong></td><td>スマホより劇的に低いが、非セルラーよりはやや大きい</td><td><strong>極限まで低い</strong>（乾電池で10年近く動作）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">以上の表より、bには非セルラーが、cにはセルラーが、dにはISM、eには干渉が入る。</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><strong>f:3GPP</strong><br></span>　3GPPは3rd Generation Partnership Project（第3世代パートナーシッププロジェクト）の略。３GPPとは携帯キャリアが使う通信規格をすべて取り仕切っている世界規模の標準化プロジェクト。<br>昔は、日本の携帯を海外に持って行っても使用できなかった。それは日本と他国が違う方式で通信を運用していたから。しかし、３GPPが発足したことにより世界標準の取り決めができたため、どこの国に行っても通信を維持できるようになった。<br>LPWAの分野で３GPPがでてきたが、LPWAの独自ワードというよりも携帯通信全般（3G,4G,5Gなどなど）の標準化を実施しているのが３GPPという解釈で進んでいこう！</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問２</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">g:2　h:Gメーター管理サーバ　i:SIM　j:372　k:RESTful</span></span></strong></span><br><strong><span class="fz-20px"><span style="text-decoration: underline;">g:2</span></span></strong><br>　まずそもそも、IKEv2の目的はESPで共通鍵を交換する際の安全な土台を作ること。具体的には、相手の正当性の確認と共通鍵の生成がミッションとしてある。そのうえで、そのやり取りを何メッセージでやれるかということを考える。<br>　IKEv１では６メッセージ使っていた（アグレッシブモード）。しかし、IKEv2では４メッセージで終わる。そのからくりはTLS1.2からTLS1.3への進化と非常に酷似している。では、流れを見ていこう！<br>▼IKEv2のメッセージ<br><strong>１．IKE_SA_INIT　Request（クライアント→サーバ）<br></strong><span class="fz-16px">　クライアントはサーバに以下を送付する<br>a 暗号化方式の提案（AESやSHAとか）<br>b 暗号化方式に付随する公開鍵<br>c 暗号化方式に付随する鍵生成のための材料（ノンス）</span><br><strong>２．IKE_SA_INIT　Response（サーバ→クライアント）<br></strong><span class="fz-16px">　サーバは以下の情報をクライアントに返す<br>d 暗号化方式の決定<br>e 暗号化方式に付随する公開鍵<br>f 暗号化方式に付随する鍵生成のための材料</span><br>＊<span class="fz-16px">この時点でサーバは<strong><span style="text-decoration: underline;">共通鍵の生成</span></strong>に成功している！<br></span><strong>３．IKE_AUTH　Request（クライアント→サーバ）<br></strong><span class="fz-16px">決定された方式で<strong><span style="text-decoration: underline;">共通鍵を生成</span></strong>する。これ以降、送付するすべてのデータはこのカギによって暗号化される</span><br><span class="fz-16px">　クライアントは以下の情報をサーバに返す<br>g 暗号化したID（IPアドレス、証明書など）<br>h 暗号化した認証データ（ハッシュ値など）</span><br><span class="fz-16px">i 暗号化した<span class="blue">IPsec SAの提案</span></span><br><span class="fz-16px">＊IKEなのにIPsec SA(ESPの定義）とかをやるの？と思うが、IKEv2ではESPもまとめてやっちゃおうよ！という思想のもとわずか４メッセージの中でIKE～ESPまで実行する<br></span><strong>４．IKE_AUTH　Response（サーバ→クライアント）<br></strong><span class="fz-16px">共通鍵を使ってIDを復号し相手の正当性を確かめる</span><br><span class="fz-16px">　サーバは以下の情報をクライアントに返す<br>j 暗号化したID<br>k 暗号化した認証データ<br>l IPsec SAの決定</span><br>以上が大まかな流れ。また、ここからわかる通り２往復で処理していることが分かるので答えには２が入る。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">k:RESTful</span></span></strong><br>　CoAPはWebシステムにおけるAPIシステムである<strong>RESTful</strong>APIアーキテクチャを採用している。RESTやRestAPIなどと呼ばれることもある。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問３</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）l:トランスポート　m:順不同　n:重複　o:同期　p:バックオフ</span></span></strong></span></p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">m:順不同　n:重複</span></span></strong><br>　順不同の意味は「順番がそろっておらずバラバラである状態」のこと。また、ｍ、ｎには様々な用語を入れられそうだが、同じ段落中に「CoAPではメッセージIDを利用することによってこれらのエラーに対処する」旨の記述があるので、メッセージIDで解決できる事象に紐づかなくてはならない。<br>メッセージIDでできるのは順番制御、重複検知なので、それを素直に書けばよい。<br>おまけで３大パケットトラブルを見ていこう！<br>▼３大パケットトラブル</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="1. 消失（パケットが消える）       ─── Loss
2. 重複（同じパケットが2個届く）   ─── Duplication
3. 順不同（順番が入れ替わって届く） ─── Reordering" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #AE81FF">1.</span><span style="color: #F8F8F2"> 消失（パケットが消える）       ─── Loss</span></span>
<span class="line"><span style="color: #AE81FF">2.</span><span style="color: #F8F8F2"> 重複（同じパケットが2個届く）   ─── Duplication</span></span>
<span class="line"><span style="color: #AE81FF">3.</span><span style="color: #F8F8F2"> 順不同（順番が入れ替わって届く） ─── Reordering</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">p:バックオフ</span></span></strong><br>　バックオフとは、直訳すると引き下がる、遠慮するという意味。通信の世界におけるバックオフとは、「パケットが届かなかった時にすぐに再送するのではなく、待ち時間を少しずつ伸ばして遠慮しながら再送する仕組み」のこと。<br>で、指数バックオフとは、遠慮する感覚を指数関数的に広げていくこと。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="・1回目の再送待ち： 2秒間 待って再送する
・2回目の再送待ち： 4秒間（2倍）待って再送する
・3回目の再送待ち： 8秒間（さらに2倍）待って再送する
・4回目の再送待ち： 16秒間（さらに2倍）待って再送する" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">・</span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2">回目の再送待ち： </span><span style="color: #AE81FF">2</span><span style="color: #F8F8F2">秒間 待って再送する</span></span>
<span class="line"><span style="color: #F8F8F2">・</span><span style="color: #AE81FF">2</span><span style="color: #F8F8F2">回目の再送待ち： </span><span style="color: #AE81FF">4</span><span style="color: #F8F8F2">秒間（</span><span style="color: #AE81FF">2</span><span style="color: #F8F8F2">倍）待って再送する</span></span>
<span class="line"><span style="color: #F8F8F2">・</span><span style="color: #AE81FF">3</span><span style="color: #F8F8F2">回目の再送待ち： </span><span style="color: #AE81FF">8</span><span style="color: #F8F8F2">秒間（さらに2倍）待って再送する</span></span>
<span class="line"><span style="color: #F8F8F2">・</span><span style="color: #AE81FF">4</span><span style="color: #F8F8F2">回目の再送待ち： </span><span style="color: #AE81FF">16</span><span style="color: #F8F8F2">秒間（さらに2倍）待って再送する</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>Q.なぜ指数バックオフが必要なの？</strong><br>　再送が起きる多くの原因はネットワークの混雑であることが多い。そのような状況の中で１秒ごとに再送していると、さらに帯域が圧迫されてしまい、どんどん状況が悪化する。そのような状況を避けるために、待ち時間を長くしていき、遠慮しながら送信すれば帯域に負荷を最小限に抑えつつ再送もできるようになるという仕組み</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）メッセージ：viii　理由：トークン値が一致するから　</span></span></strong></span></span></span></strong></span></p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="856" height="538" src="https://ascend-beyond.com/wp-content/uploads/2026/08/image-1.jpg" alt="" class="wp-image-7897" srcset="https://ascend-beyond.com/wp-content/uploads/2026/08/image-1.jpg 856w, https://ascend-beyond.com/wp-content/uploads/2026/08/image-1-300x189.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/08/image-1-768x483.jpg 768w" sizes="(max-width: 856px) 100vw, 856px" /></figure>



<p class="wp-block-paragraph">まず、前提としてCoAPのACKはリクエストと同一のメッセージIDを使ってACKを返す。そのことより、(iv)では[0xbc90]をメッセージIDとしている。これと同一のメッセージIDを持つものは(i)である。そして、(i)のトークンは0x71である。そのトークンを持っているのは、(viii)である。以上より、(viii)は<span class="bold">トークンの値が同一</span>だから(i)の応答であると判断できる。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（６）判断できること：(i)の送信元が偽装されていないこと　</span></span></strong></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">対応：(iv)を送信せずハンドシェイクを終了する</span></span></strong></span></p>



<figure class="wp-block-image size-full"><img decoding="async" width="425" height="287" src="https://ascend-beyond.com/wp-content/uploads/2026/08/image.png" alt="" class="wp-image-7898" srcset="https://ascend-beyond.com/wp-content/uploads/2026/08/image.png 425w, https://ascend-beyond.com/wp-content/uploads/2026/08/image-300x203.png 300w" sizes="(max-width: 425px) 100vw, 425px" /></figure>



<p class="wp-block-paragraph">DTLSはUDP上で動作するTLSのようなもの。通常、TLSはTCP上で動作する。TCPでは既に３ウェイハンドシェークによって相手の正当性は確認できるのでTLSにわざわざ相手の正当性確認を組み込まない。しかし、UDPでは簡単に送信元を偽装できてしまうためDTLS上で相手の正当性を保証する仕組みが必要になる。それがcookieだ。cookieは相手の送信元IPなどをベースに作成されるため、本来の送信元と違うと不正な相手であると簡単に判断できる。<br>つまり、cookieがあると判断できることは、「送信元が偽装されていないこと」であり、もし、偽装されたと判断すると「ハンドシェイクを中断する」という挙動になる。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問4</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">(1) Gメーター管理サーバやネットワークへの負荷の集中を避けられる</span></span></strong></span><br>数万台のIoTデバイスが同時にGメーター管理サーバへ接続すると、Gメーター管理サーバーは、一瞬で数万同時接続を処理する必要がある。どんなにIoTデバイスのパケットサイズが小さかろうが、接続処理数が多いとその分だけ接続処理のためのCPUが消費されるため大きな負荷がかかってしまう。そのため、ランダム時間によって分散させる必要がある。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">(３) TCPコネクション確立とコネクション切断の処理が行われるから</span></span></strong></span><br>ここでは、HTTPとCoAPの違いによるHTTPのデメリットを聞かれている。前提としてHTTPはTCP上で動作し、CoAPはUDP上で動作する。そのため、HTTPだとセッションが切れると再度３ウェイハンドシェイクをしたりする必要があるため、必然的にパケット数が増える。一方、CoAPはUDPであるため必要な時に必要なやり取りだけを実施すればよい。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-22px"><span class="marker-red"><strong>p.15 Q.そもそもLPガスって何？</strong><br></span></span></span>LPガス（Liquefied Petroleum Gas：液化石油ガス）とは、一般的にプロパンガスと呼ばれる。道路の下のガス管から直接供給される「<span class="blue">都市ガス</span>」とは違い、ボンベを使う。<br>郊外の一戸建てやマンションの裏手にあるグレーのボンベがLPガス。LPガスはボンベ内のガスを使うため、「いつ、どのくらい使われたか」を把握する必要がある。<br>一昔前まではガス会社の社員がガスメータを目視で確認していたが、現在ではIoTによってわざわざ出向かなくてもいい構成になりつつある。</p>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker-red"><strong><span style="text-decoration: underline;">p.15　LPWAとは</span></strong><br></span></span>LPWA（LowPowerWideArea）とは「省電力（LowPower）」で「遠域・広範囲まで届く（WideArea）」という特徴を持つ無線通信技術の総称。<br>無線通信技術にはWi-FiやLTEなどがある。では、それらと何が違うのか、表を見て理解しよう！<br><strong>▼LPWAとLTEとWi-Fiの違い</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>通信の種類</strong></td><td><strong>届く距離</strong></td><td><strong>電池の持ち</strong></td><td><strong>送れるデータの量（通信速度）</strong></td><td><strong>主な用途</strong></td></tr></thead><tbody><tr><td><strong>Wi-Fi</strong></td><td>短い（家の中くらい）</td><td>悪い（コンセント必須）</td><td><strong>超大きい</strong>（動画もサクサク）</td><td>スマホ、PC、YouTube視聴</td></tr><tr><td><strong>4G / 5G (スマホ用)</strong></td><td>広い（全国）</td><td>悪い（毎日充電が必要）</td><td><strong>超大きい</strong>（動画やゲーム）</td><td>スマホ通信、テザリング</td></tr><tr><td><strong>LPWA</strong></td><td><strong>めちゃくちゃ広い</strong>（数km〜数十km）</td><td><strong>超良い</strong>（乾電池1個で数年間〜10年）</td><td><strong>超小さい</strong>（文字や数字だけ）</td><td>ガスメーター、センサー、位置トラッキング</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;"><span class="fz-22px"><span class="marker-red">p.15 Sub-GHz帯とは？</span></span></span></strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="841" height="38" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-15.png" alt="" class="wp-image-7879" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-15.png 841w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-15-300x14.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-15-768x35.png 768w" sizes="(max-width: 841px) 100vw, 841px" /></figure>



<p class="wp-block-paragraph">SubｰGHz帯とは、「Sub（～より低い）」＋「GHz」とういことなので１GHz以下の周波数のことを指す。日本だと920MHzが該当する。<br>ちなみに、低い周波数の特徴を以下で確認しておこう！<br><strong>▼高周波と低周波の違い</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>高い周波数（例: 2.4GHz / 5GHz / 5Gなど）</strong></td><td><strong>低い周波数（例: Sub-GHz帯(920MHz) / プラチナバンドなど）</strong></td></tr></thead><tbody><tr><td><strong>データ通信速度</strong></td><td><strong>速い（データ量が大きい）</strong> ⭕️</td><td><strong>遅い（データ量が小さい）</strong> ❌</td></tr><tr><td><strong>飛距離</strong></td><td>短い（遠くまで届きにくい） ❌</td><td><strong>長い（遠くまで届く）</strong> ⭕️</td></tr><tr><td><strong>障害物の乗り越え</strong></td><td>弱い（壁や建物で跳ね返る/吸収される） ❌</td><td><strong>強い（壁を回り込んだり通り抜けたりする）</strong> ⭕️</td></tr><tr><td><strong>減衰（弱まりやすさ）</strong></td><td><strong>遠くに行くとすぐ弱まる（減衰しやすい）</strong></td><td><strong>遠くまで届いても弱まりにくい（減衰しにくい）</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker-red"><strong><span style="text-decoration: underline;">Q.3G,4G,5G,6Gって結局何？</span></strong><br></span></span>3GPPで、3G,4G,5Gなどの携帯キャリア通信の標準化を実施ているという話がでた。でも実際、それらがよくわかっていない。なので、見ていこう！</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>世代</strong></td><td><strong>主な時代</strong></td><td><strong>通信速度のイメージ</strong></td><td><strong>何が変わったのか？（技術の変革）</strong></td><td><strong>主な用途</strong></td></tr></thead><tbody><tr><td><strong>1G</strong></td><td>1980年代</td><td>めちゃ遅い</td><td><strong>「アナログ通信」</strong>。音声をそのまま電波に乗せていた。</td><td>肩掛け携帯・自動車電話（通話のみ）</td></tr><tr><td><strong>2G</strong></td><td>1990年代</td><td>数十kbps</td><td><strong>「デジタル化」</strong>。データを「0と1」に変換して送るようになった。</td><td>ガラケー（メール、文字Web）</td></tr><tr><td><strong>3G</strong></td><td>2000年代</td><td>数百k〜数Mbps</td><td><strong>「世界標準化（3GPP発足）」</strong>。画像や着うたがダウンロード可能に。</td><td>ガラケー最盛期、初期スマホ</td></tr><tr><td><strong>4G</strong> (LTE)</td><td>2010年代</td><td>100M〜1Gbps</td><td><strong>「完全IP化」</strong>。通話もデータもすべて「IPパケット」に統一された。</td><td>スマホ、動画配信（YouTube等）</td></tr><tr><td><strong>5G</strong></td><td>2020年代</td><td>最大20Gbps</td><td><strong>「超高周波数（ミリ波等）の利用 ＋ 超低遅延 ＋ 多接続」</strong></td><td>4K/8K動画、自動運転、IoT</td></tr><tr><td><strong>6G</strong></td><td>2030年代〜</td><td>100Gbps〜</td><td><strong>「テラヘルツ波の利用 ＋ 超広域（宇宙・空まで）」</strong></td><td>完全自動運転、メタバース</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-22px"><span class="marker-red"><strong>Q.4Gってなに？</strong><br></span></span></span>4Gは4Generation(第4世代）の略で、携帯キャリアにおける無線通信規格の一つ。これは3GPPによって標準化されている。<br>簡単に言うと、４G≒LTEという解釈で問題ない。<br><strong>▼4Gの流れ</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="[スマホ/IoT機器]
   │ （無線電波：LTE）
   │ （ベアラ通信）
   ▼
[LTE基地局 (eNodeB)]
   │ （キャリア専用の有線網）
   │ （MME/HSS）
   │ 
   ▼
[キャリアのコアネットワーク (EPC)] ★ここでSIMの認証やパケット処理をする
   │ 
   │ （GTPトンネル）
   │ 
   ├─▶ (A) インターネットへ出る場合 ──▶ [ISP/Internet (BGP等)] ──▶ [相手のサーバ]
   │
   └─▶ (B) 今回のZ社のような閉域網 ──▶ (IPsec VPN) ──▶ [Y社データセンター]" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">[スマホ</span><span style="color: #F92672">/</span><span style="color: #F8F8F2">IoT機器]</span></span>
<span class="line"><span style="color: #F8F8F2">   │ （無線電波：LTE）</span></span>
<span class="line"><span style="color: #F8F8F2">   │ （ベアラ通信）</span></span>
<span class="line"><span style="color: #F8F8F2">   ▼</span></span>
<span class="line"><span style="color: #F8F8F2">[LTE基地局 (eNodeB)]</span></span>
<span class="line"><span style="color: #F8F8F2">   │ （キャリア専用の有線網）</span></span>
<span class="line"><span style="color: #F8F8F2">   │ （MME</span><span style="color: #F92672">/</span><span style="color: #F8F8F2">HSS）</span></span>
<span class="line"><span style="color: #F8F8F2">   │ </span></span>
<span class="line"><span style="color: #F8F8F2">   ▼</span></span>
<span class="line"><span style="color: #F8F8F2">[キャリアのコアネットワーク (EPC)] ★ここでSIMの認証やパケット処理をする</span></span>
<span class="line"><span style="color: #F8F8F2">   │ </span></span>
<span class="line"><span style="color: #F8F8F2">   │ （GTPトンネル）</span></span>
<span class="line"><span style="color: #F8F8F2">   │ </span></span>
<span class="line"><span style="color: #F8F8F2">   ├─▶ (A) インターネットへ出る場合 ──▶ [ISP</span><span style="color: #F92672">/</span><span style="color: #F8F8F2">Internet (BGP等)] ──▶ [相手のサーバ]</span></span>
<span class="line"><span style="color: #F8F8F2">   │</span></span>
<span class="line"><span style="color: #F8F8F2">   └─▶ (B) 今回のZ社のような閉域網 ──▶ (IPsec VPN) ──▶ [Y社データセンター]</span></span></code></pre></div>



<p class="wp-block-paragraph">用語解説：<br><strong>MME(Mobility Management Entity)<br></strong><span class="fz-16px">　LTEにおけるユーザを認証する司令塔。ユーザからの認証を確認するためにHSSを呼び出したり、GTPトンネル確立の指示やベアラ通信の指示を出したりする。<br></span><strong>HSS(Home Subscriber Server)</strong><br><span class="fz-16px">　MMEが認証をする際に使うデータベース。MMEは受け付け業務なので、実際のユーザ情報は保持していない。そのためHSSを使って、ユーザ情報を確認する。</span><br><strong>ベアラ</strong><br>　ベアラは仮想的な通信パイプのこと。<br>携帯電話の電波にはいろいろなデータが流れる。音声、動画、緊急速報。これらは緊急度合いが違う。そのため、すべてを同じ優先度で扱ってはならない。そこで、要はQoSを実現するためにベアラと呼ばれる、仮想的なパイプを準備する。用途ごとにベアラは作られる。＝それに応じてGTPも増える。</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;"><span class="fz-22px"><span class="marker-red">Q.5Gって何？<br></span></span></span></strong>5Gも基本的な挙動は4Gと同じ。しかし、使っている機器や周波数帯などが少しずつ違う。ということで、それを見ていこう！</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>役割・項目</strong></td><td><strong>4G (LTE)</strong></td><td><strong>5G</strong></td></tr></thead><tbody><tr><td><strong>主に使用する周波数帯</strong></td><td><strong>700MHz 〜 3.5GHz</strong><br>（プラチナバンド〜ローバンド）</td><td><strong>3.7GHz 〜 28GHz超</strong><br>（Sub6 / ミリ波）</td></tr><tr><td><strong>電波の性質・届きやすさ</strong></td><td><strong>遠くまで届き、障害物を回り込む</strong><br>（1つの基地局で数kmカバー）</td><td><strong>遠くに届きにくく、障害物に弱い</strong><br>（数メートル〜数百メートル単位）</td></tr><tr><td><strong>無線通信規格</strong></td><td>LTE</td><td>5G NR (New Radio)</td></tr><tr><td><strong>基地局</strong></td><td>eNodeB</td><td>gNodeB</td></tr><tr><td><strong>司令塔（移動管理）</strong></td><td>MME</td><td>AMF <em>(Access and Mobility Management Function)</em></td></tr><tr><td><strong>契約者データベース</strong></td><td>HSS</td><td>UDM <em>(Unified Data Management)</em></td></tr><tr><td><strong>ゲートウェイ（出口）</strong></td><td>S-GW / P-GW</td><td>UPF <em>(User Plane Function)</em></td></tr><tr><td><strong>コアネットワーク全体</strong></td><td>EPC</td><td>5GC <em>(5G Core)</em></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">要は、使う周波数帯をより高周波にすることによって、より高速性を出したのが５G。で、異なる周波数を出すには、異なる媒体が必要なので、４Gとは別の機器・名称として扱われる。<br>また、高周波は障害物や長距離に弱いため、各地にミニ基地局を新たに施設することによってその弱点を補っている。</p>



<p class="wp-block-paragraph"><strong>▼プラチナバンド、ミリ波、subGHz、sub6などの違い</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>グループ</strong></td><td><strong>呼び名</strong></td><td><strong>主な周波数</strong></td><td><strong>特徴</strong></td><td><strong>主な使い道</strong></td></tr></thead><tbody><tr><td><strong>携帯（免許あり）</strong></td><td><strong>プラチナバンド</strong><br><em>(ローバンド)</em></td><td>700〜900MHz<br><em>(サブギガ)</em></td><td>屋内や山奥まで届く</td><td>4G/5Gのエリアの基礎（つながりやすさ重視）</td></tr><tr><td><strong>携帯（免許あり）</strong></td><td><strong>Sub6</strong><br><em>(ミドルバンド)</em></td><td>3.7GHz / 4.5GHz</td><td>速さと広がりのバランス◎</td><td>5Gのメイン回線</td></tr><tr><td><strong>携帯（免許あり）</strong></td><td><strong>ミリ波</strong><br><em>(ハイバンド)</em></td><td>28GHz〜</td><td>障害物に弱いが超爆速</td><td>5Gの局所的な爆速スポット（スタジアム等）</td></tr><tr><td><strong>自由（免許不要）</strong></td><td><strong>ISMバンド</strong></td><td>920MHz <em>(サブギガ)</em><br>2.4GHz / 5GHz</td><td>誰でも自由に使える</td><td>Wi-Fi、Bluetooth、IoTセンサー、電子レンジ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">＊プラチナバンド：携帯キャリアが保証している<ruby>＆<rt>かつ</rt></ruby>SubGHz帯のこと。</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-22px"><span class="marker-red"><strong>Q.Sigfox,LoRaWAN,LTE-M,NB-IoT</strong><br></span></span></span>LPWAには様々な方式がある。では、以下で見ていこう<br><strong>▼LPWA（省電力・広域通信）のまとめ</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>電池寿命順位</strong></td><td><strong>規格名</strong></td><td><strong>種類</strong></td><td><strong>使う電波（ルールの違い）</strong></td><th>通信方向</th><td><strong>電池寿命</strong></td><td><strong>データ量・速度</strong></td><td><strong>モビリティ（移動）</strong></td><td><strong>主な特徴・用途</strong></td></tr></thead><tbody><tr><td><strong>1位</strong></td><td><strong>Sigfox</strong></td><td>非セルラー</td><td><strong>ISMバンド</strong><br>（免許不要・誰でも可）</td><td>送信のみ<br>（通常時は、受信機能を閉じているため）</td><td><strong>超長持ち</strong><br>（最長・10年以上）</td><td>超極小<br>（数バイト）</td><td>✕</td><td>文字通り電池が圧倒的に持つ。検針やボタン通知用。</td></tr><tr><td><strong>2位</strong></td><td><strong>LoRaWAN</strong></td><td>非セルラー</td><td><strong>ISMバンド</strong><br>（免許不要・自作可）</td><td>双方向<br>（Sigfoxよりは可能だがセルラー系には劣る）</td><td><strong>かなり長持ち</strong></td><td>小〜中<br>（双方向OK）</td><td>△</td><td>自前で基地局を作れる。農地や工場のセンサー監視用。</td></tr><tr><td><strong>3位</strong></td><td><strong>NB-IoT</strong></td><td>セルラー</td><td><strong>キャリア電波</strong><br>（免許あり・高品質）</td><td>双方向<br>（LoRaWANよりはできるがLTE-Mには劣る）</td><td><strong>長持ち</strong></td><td>中<br>（非セルラーより速い）</td><td><strong>✕（固定のみ）</strong></td><td>キャリアの安心感。動かないスマートメーターや街灯用。</td></tr><tr><td><strong>4位</strong></td><td><strong>LTE-M</strong></td><td>セルラー</td><td><strong>キャリア電波</strong><br>（免許あり・高品質）</td><td>双方向<br>（下りも問題なくできる）</td><td>この中では一番短い<br>（数年程度）</td><td><strong>最大</strong><br>（動画以外は快適）</td><td><strong>◯（移動OK）</strong></td><td><strong>移動追跡ができる！</strong> 子供のGPS、ペット、物流用。</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>▼具体例<br></strong>では、農家でのLoRaWAN使用例を見ていこう！<br>前提：<br>　・LoRaWANは基地局を個人で立てれる（1~3万程度)<br>　・農家は田畑の状況をリアルタイムで知りたい<br>　・家のあたりには数キロに及ぶ自分の田畑がある<br>　　→これを目視確認したりするのは面倒くさい<br>では、以上の前提をユースケースとしてやっていこう！<br><strong>１．LoRaWANの基地局をたてる</strong><br><span class="fz-16px">　基地局は1~3万程度で立てられる。<br>　コンセントにつないだり自宅のLANにつなげれば簡単に起動できる</span><br><strong>２．田畑用のLoRaWANセンサを購入/設置する<br></strong><span class="fz-16px">　①製品の<span class="blue">DevEUI</span>(製品識別子)と<span class="blue">AppKey</span>(パスワード)を確認する<br>　②①の情報を製品に紐づくアプリケーションで登録する<br>＊AppKeyがあることによって、センサーからのデータは既に暗号化された状態でネットワークを経由するため、正しいAppKeyを持っているユーザでなければ復号できない。</span><br><span class="fz-16px">　③目的の箇所にセンサーを設置する<br></span><strong>３．アプリケーションで状況を確認<br></strong><span class="fz-16px">　アプリケーションにログインし、リアルタイムで現状を把握する。<br>＊アクチュエータ（物理的な動作をする機器）も購入しているなら、そのリアルタイム情報からサーバがアクチュエータに適切な指示を出し、水流を調整したりといった物理的な制御もできるようになる。　</span><br><span class="fz-16px">→ちなみにSigfoxは通常時は受信機能を閉じているためサーバからアクチュエータへの命令動作には向いていない。Sigfoxがデータを送信するタイミングで受信機能も解放されるがそれ以外は無理。また、１日に送信できる量は140、受信できる量は4回までという制限もある。</span></p>



<p class="wp-block-paragraph">以上がLoRaWANの流れだった。ちなみに、Sigfox、LTE-M、NB-IoTも基本的には同様の流れで処理される。ただ、使われている個々の名称が若干異なる。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>通信規格</strong></td><td><strong>端末のID（公開されてOKなシリアル番号）</strong></td><td><strong>秘密の鍵（絶対バレちゃダメな暗号キー）</strong></td></tr></thead><tbody><tr><td><strong>LoRaWAN</strong></td><td><strong>DevEUI</strong>（デブ・イーユーアイ）</td><td><strong>AppKey</strong>（アップ・キー）</td></tr><tr><td><strong>Sigfox</strong></td><td><strong>Device ID</strong>（デバイスID）</td><td><strong>PAC</strong>（パック）/ <strong>NKEY</strong></td></tr><tr><td><strong>LTE-M / NB-IoT</strong></td><td><strong>IMEI</strong>（アイエムイーアイ）</td><td><strong>SIMカード内の暗号鍵</strong>（IMSI等）<br>=デバイス一つ一つにSIMを用意する必要がある。</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;"><span class="fz-22px"><span class="marker-red">p.16　LPWA閉域接続サービスってなに？</span></span></span></strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="855" height="577" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-18.jpg" alt="" class="wp-image-7886" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-18.jpg 855w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-18-300x202.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-18-768x518.jpg 768w" sizes="(max-width: 855px) 100vw, 855px" /></figure>



<p class="wp-block-paragraph"><span class="marker-red"><strong>Q.そもそも閉域網って何？普通のインターネット接続と何が違うの？</strong><br></span>A.インターネットという公道から完全に隔離された、関係者しか入れない私道のこと。よく耳にするMPLSも閉域網技術の代表例である。<br>このような閉域網があることによって、『外部に公開する必要のないサーバ<ruby>＆<rt>かつ</rt></ruby>正規の人からはリモートからでもアクセスさせたい』という要件において、プレフィックスをインターネットに公開することなくアクセスできるようになる。</p>



<p class="wp-block-paragraph">▼一般的にインターネット接続</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="【一般的なスマホや光回線（インターネット接続）】
[スマホ] ──＞ [キャリア基地局] ──＞[キャリアコア網] ──(APNによって選出されたインターネットGW)──＞ 【一般のインターネット】 ──＞ YouTube等
                                                            ▲ ここで公道（インターネット）に出る！" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">【一般的なスマホや光回線（インターネット接続）】</span></span>
<span class="line"><span style="color: #F8F8F2">[スマホ] ──＞ [キャリア基地局] ──＞[キャリアコア網] ──(APNによって選出されたインターネットGW)──＞ 【一般のインターネット】 ──＞ YouTube等</span></span>
<span class="line"><span style="color: #F8F8F2">                                                            ▲ ここで公道（インターネット）に出る！</span></span></code></pre></div>



<p class="wp-block-paragraph">▼閉域網の接続</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="【LPWA閉域接続サービス】
[Gメーター] ──＞ [キャリア基地局] ──＞ [キャリアコア網] ──(APNによって選出された専用GW)──＞ 【Z社の専用閉域網】 ──＞ Z社拠点ルータ
                                                                ▲ インターネットに1ミリも出ない！" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">【LPWA閉域接続サービス】</span></span>
<span class="line"><span style="color: #F8F8F2">[Gメーター] ──＞ [キャリア基地局] ──＞ [キャリアコア網] ──(APNによって選出された専用GW)──＞ 【Z社の専用閉域網】 ──＞ Z社拠点ルータ</span></span>
<span class="line"><span style="color: #F8F8F2">                                                                ▲ インターネットに1ミリも出ない！</span></span></code></pre></div>



<p class="wp-block-paragraph"><span class="marker-red"><strong>Q.そもそもなんでZ社を経由するの？</strong><br></span>シンプルに、Z社を中継点とする意味が分からない。LTEを使っているなら、そのままISPに行き、そのISP経由でY社まで転送してくれれば通信自体は成立するように見える。しかし、本文中にはなぜかD社を経由している。その理由を紐解いていこう！<br><strong>理由1：暗号化の肩代わり</strong><br><span class="fz-16px">　IoTデバイス（Ｇメータ）は極力軽い処理を担当させたい。そのためIPsecのような強力な暗号化処理は外部に委託したい。そのためZ社にIPsecをやってもらうという対策が取られている。<br>*ただ、LTEによって、端末⇔基地局間はデフォルトで暗号化済み。ここで述べている暗号化はインターネット上の話。</span><br><strong>理由２：そもそもIPsecは拠点間通信に向いている</strong><br><span class="fz-16px">　もし、Ｇメータが暗号化処理をできたとしても、１台1台とIPsecルータ２がセッションを張るとなるとものすごい負担になる。そのため、Z社側で一度集約してから１対１でIPsecルータ２とやり取りをした方がはるかに運用が楽だから。</span><br><strong>理由３：コスト削減<br></strong>　閉域網サービスを利用するには、ISPと閉域用の契約が必要になる。これは月額数百～千万の費用が掛かる。しかし、Z社のような、他社クライアントと共有利用させることによって閉域網サービス提供を生業としている業者に頼めば安く抑えられるから。<br><strong>理由４：マルチキャリア対応のため</strong><br><span class="fz-16px">　閉域網の用途はわかったけど正直、Y社が契約しているSIMのキャリア専用の閉域網を利用すれば解決すると感じる。なぜわざわざ外部のZ社の閉域網を使うのか。それはマルチキャリア対応のため。もし、SIM提供キャリアの閉域網を使うと、ほかのキャリアのデバイスを扱ったときに、またそのキャリアと閉域網契約を結ばなくてはならなくなる。しかし、中間でZ社を挟ませればY社はZ社とのみIPsec通信をする準備をすればよいだけになるので運用やコストの面、また、マルチキャリアの面からもメリットが得られる。<br>＊Z社はおそらく閉域網サービス接続を生業としているため、ソフトバンク、ドコモなどの複数のキャリアと既に閉域網接続をしている。その中の一部をY社に割り当てるというながれ。</span></p>



<p class="wp-block-paragraph">👆のことからもわかる通り、逆を言えばIoTデバイス自体がIPsecをできるようになったら閉域網は不要ということになる。というわけでもない。結局IPsecでは１対１の通信に集約させたいから、その集約点が必要になる。IoTデバイス１台１台がIPsecを張ると、ルータのセッション情報がパンクする。なぜならIoTデバイスは概して何万台もあるから。そこらのリモートワーカーがIPsecをするのとではわけが違う。リモートワーカーの場合は人数が少ないから閉域網を通らずとも直接PCがIPsec処理をして接続できる。</p>



<p class="wp-block-paragraph"><span class="marker-red"><strong><span class="fz-22px">p.16　物理的なデータの流れの全貌</span></strong><br></span>閉域網やIPsec、Z社サービス拠点、などいろいろなものが一気に記されていて頭がこんがらがる&#8230;では、それを解決していこう！</p>



<figure class="wp-block-image size-full"><img decoding="async" width="880" height="411" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-18.png" alt="" class="wp-image-7888" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-18.png 880w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-18-300x140.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-18-768x359.png 768w" sizes="(max-width: 880px) 100vw, 880px" /></figure>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="[ Gメーター ]
    │ ① 無線（LTE-M）
    ▼
[ キャリア基地局 ]
    │ ② 有線（キャリアの社内光ファイバー網）
    ▼
[ キャリアのコア網 ＆ GW（ゲートウェイ）]
    │ ★APNを見て「Y社用だな」と判別！
    │ ★MPLSラベル（専用タグ）を貼って専用ルートを通す！
    │ ③ 有線（専用線）
    ▼
[ Z社拠点（ルータ1）]  ※ここまでが「閉域網」！
    │
    │ ★ここでMPLSラベルを剥がす！
    │ ★Y社に向けてデータを「IPsec（カプセル化暗号化）」する！
    │ ④ 有線（一般的なインターネット回線）
    ▼
[ イ ン タ ー ネ ッ ト ] （公道）
    │ ⑤ 有線
    ▼
[ Y社拠点（ルータ2）]
    │ ★IPsecの暗号化カプセルを解く！
    │ ⑥ 有線（Y社の社内LAN）
    ▼
[ Gメーター管理サーバ ]  ★無事到着！" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">[ Gメーター ]</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ① 無線（LTE</span><span style="color: #F92672">-</span><span style="color: #F8F8F2">M）</span></span>
<span class="line"><span style="color: #F8F8F2">    ▼</span></span>
<span class="line"><span style="color: #F8F8F2">[ キャリア基地局 ]</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ② 有線（キャリアの社内光ファイバー網）</span></span>
<span class="line"><span style="color: #F8F8F2">    ▼</span></span>
<span class="line"><span style="color: #F8F8F2">[ キャリアのコア網 ＆ GW（ゲートウェイ）]</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ★APNを見て「Y社用だな」と判別！</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ★MPLSラベル（専用タグ）を貼って専用ルートを通す！</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ③ 有線（専用線）</span></span>
<span class="line"><span style="color: #F8F8F2">    ▼</span></span>
<span class="line"><span style="color: #F8F8F2">[ Z社拠点（ルータ1）]  ※ここまでが「閉域網」！</span></span>
<span class="line"><span style="color: #F8F8F2">    │</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ★ここでMPLSラベルを剥がす！</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ★Y社に向けてデータを「IPsec（カプセル化暗号化）」する！</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ④ 有線（一般的なインターネット回線）</span></span>
<span class="line"><span style="color: #F8F8F2">    ▼</span></span>
<span class="line"><span style="color: #F8F8F2">[ イ ン タ ー ネ ッ ト ] （公道）</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ⑤ 有線</span></span>
<span class="line"><span style="color: #F8F8F2">    ▼</span></span>
<span class="line"><span style="color: #F8F8F2">[ Y社拠点（ルータ2）]</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ★IPsecの暗号化カプセルを解く！</span></span>
<span class="line"><span style="color: #F8F8F2">    │ ⑥ 有線（Y社の社内LAN）</span></span>
<span class="line"><span style="color: #F8F8F2">    ▼</span></span>
<span class="line"><span style="color: #F8F8F2">[ Gメーター管理サーバ ]  ★無事到着！</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>１．Gメータ→キャリア（基地局）<br></strong><span class="fz-16px">　GメータはLTE回線を使ってキャリアまで行く。<br>　　その際にキャリアはSIMで認証をする。</span><br><strong>２．キャリア（基地局）→キャリア（MME）→キャリアのゲートウェイ<br></strong><span class="fz-16px">　①キャリアにつくと、まずSIM情報の認証が必要になるため、MMEに渡す。<br>　②MMEはHSSと呼ばれるデータベースを使い認証処理をする。<br>　③SIM内のAPNから適切なゲートウェイを判別する<br>　④処理が完了すると、無線ベアラやGTPトンネルなどを構築しネットワーク接続可能な状態になる</span><br><strong>３．Gメータ→閉域網→Z社ルータ</strong><br><span class="fz-16px">　①Gメータは無線ベアラを通して基地局にいく<br>　②基地局がGTPトンネルを通してAPNのゲートウェイまで行く<br>　③ゲートウェイは適切なラベルを張りZ社ルータ（CEルータ）まで運ぶ（＝MPLS）</span><br><span class="fz-16px">　④Z社ルータの手前のPEルータでラベルを外してからZ社ルータに届かせる<br></span><strong>４．Z社ルータ→Z社IPsecルータ１</strong><br><span class="fz-16px">Z社ルータに届いたパケットは普通にルーティングをしてZ社IPsecルータに渡す<br></span><strong>５．Z社IPsecルータ１→Y社IPsecルータ２</strong><br><span class="fz-16px">　①Z社IPsecルータ１は宛先からIPsecが必要であると判断する<br>　＊この時に使うのが<span class="blue">SPD</span>（SecurityPolicyDatabase）と呼ばれるどの通信をIPsec適用にするかのデータベース。この中にSPIがあるので、それに基づいてSAD内を検索する<br>　②<span class="blue">SAD</span>からSAを取り出し、パケットヘッダーに<span class="blue">SPI</span>を付与する</span><br><span class="fz-16px">　＊SAD（SecurityAssociationDatabase）はSAを保持しているでーばベース<br>　＊SPI（SecurityParameterIndex）はSAを特定するための識別子<br>　③適切な暗号化をしてY社ルータ２まで届かせる</span><br><strong>６．Y社IPsecルータ２→Gメータ管理サーバ</strong><br><span class="fz-16px">　①パケット内のSPIを確認する<br>　②SPIでSADを検索し、SAを割り出し、SAに従って復号や正当性確認を実施する</span><br><span class="fz-16px">　③復号された中身をSPDと比較して正当性を確認する<br>　④Gメータ管理サーバへ転送する</span></p>



<p class="wp-block-paragraph">👇IPsecの詳細はこちら👇</p>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<a href="https://ascend-beyond.com/study/7825/" title="平成28年（2016年）ネスペ午後Ⅰ　問二　解答解説" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://ascend-beyond.com/wp-content/uploads/2026/07/5d455f0907db0366a578b93e1ac39855-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/5d455f0907db0366a578b93e1ac39855-160x90.jpg 160w, https://ascend-beyond.com/wp-content/uploads/2026/07/5d455f0907db0366a578b93e1ac39855-300x169.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/5d455f0907db0366a578b93e1ac39855-1024x576.jpg 1024w, https://ascend-beyond.com/wp-content/uploads/2026/07/5d455f0907db0366a578b93e1ac39855-768x432.jpg 768w, https://ascend-beyond.com/wp-content/uploads/2026/07/5d455f0907db0366a578b93e1ac39855-120x68.jpg 120w, https://ascend-beyond.com/wp-content/uploads/2026/07/5d455f0907db0366a578b93e1ac39855-320x180.jpg 320w, https://ascend-beyond.com/wp-content/uploads/2026/07/5d455f0907db0366a578b93e1ac39855.jpg 1200w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">平成28年（2016年）ネスペ午後Ⅰ　問二　解答解説</div><div class="blogcard-snippet internal-blogcard-snippet">設問1 ア：AES　イ：事前共有鍵　ウ：SIMカード　エ：APN　オ：NAPT　カ：CONNECTア：AES　　WEPやWAPまではRC4ベースの暗号化を採用していた。しかしこれには脆弱性があるので、WPA2からは、より強固なAESが使わ...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://ascend-beyond.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">ascend-beyond.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.07.15</div></div></div></div></a>
</div></figure>



<p class="wp-block-paragraph"><span class="marker-red"><strong><span class="fz-22px"><span style="text-decoration: underline;">Q.IKEv1 phase1アグレッシブモード+phase2について</span></span></strong><br></span>IKEv1のフェーズ１（isakmp sa）のアグレッシブモードの流れを見ていこう！<br><strong>１．クライアント→サーバ<br></strong><span class="fz-16px">以下の情報を渡す<br>・暗号化方式の提案<br>・暗号化方式に付随する公開鍵,パラメータ<br>・ID</span><br><strong>２．サーバ→クライアント<br></strong><span class="fz-16px">以下の情報を渡す<br>・暗号化方式の決定<br>・暗号化方式に付随する公開鍵,パラメータ<br>・ID<br>・認証データ</span><br><strong>３．クライアント→サーバ<br></strong><span class="fz-16px">以下の情報を渡す<br>・認証データ</span><br><span class="fz-16px">＊ここまでがフェーズ１のアグレッシブモード。ここからはついでにフェーズ２を記載していく<br></span><strong>４．クライアント→サーバ<br></strong><span class="fz-16px">フェーズ1で作成された共通鍵をを使いIPsec SA（ESP）の方式を提案する<br></span><strong>５．サーバ→クライアント</strong><br><span class="fz-16px">IPsec SAの方式を決定する<br></span><strong>６．クライアント→サーバ<br></strong><span class="fz-16px">ESPの準備完了したよ！と通知する</span></p>



<p class="wp-block-paragraph"><span class="marker-red"><strong><span class="fz-22px"><span style="text-decoration: underline;">Q.IKEv1 phase1メインモード+phase2について</span></span></strong><br></span>IKEv1のフェーズ１（isakmp sa）のメインモードの流れを見ていこう！<br><strong>１．クライアント→サーバ<br></strong><span class="fz-16px">僕がサポートしている暗号化方式はこれです！と教える<br></span><strong>２．サーバ→クライアント<br></strong><span class="fz-16px">よし、じゃあ暗号化方式はこれでいこう！と決定する<br></span><strong>３．クライアント→サーバ<br></strong><span class="fz-16px">では、実際の鍵生成のフェーズに入ろう！<br>・公開鍵<br>・ノンス<br>をサーバへ渡す</span><br><strong>４．サーバ→クライアント<br></strong><span class="fz-16px">・公開鍵<br>・ノンス<br>をクライアントに返す</span><br><strong>５．クライアント→サーバ<br></strong><span class="fz-16px">ID、認証データを暗号化してサーバへ渡す<br>＊サーバはこれを検証して正当性を確認できる</span><br><strong>６．サーバ→クライアント<br></strong><span class="fz-16px">ID、認証データを暗号化してクライアントへ渡す<br>＊クライアントはこれを検証して正当性を確認できる</span><br>以上の６メッセージを交換後にフェーズ２へ移行する</p>



<p class="wp-block-paragraph"><strong><span class="marker-red"><span class="fz-22px"><span style="text-decoration: underline;">p.17 CoAPとは</span></span></span></strong><br>CoAPはConstraind Application Protocolの略。その名前の通り、制約下のもと動作させることができるプロトコル。特徴を以下にまとめる。<br><strong>・UDPベース<br></strong><span class="fz-16px">　制約の多い環境では軽量さが好まれる。TCPだとセッションなどがありとても面倒くさい。また、順序制御などはアプリケーション側のメッセージを使って実施する<br></span><strong>・RESTfulAPI<span class="marker-red"><span class="fz-22px"><span style="text-decoration: underline;"><br></span></span></span></strong><span class="fz-16px">　RESTfulAPIと呼ばれる、GET,POST,PUT,DELETEなどのようにHTTPと同じように操作できるためWebエンジニアにはなじみやすい<br></span><strong>・IoT向け</strong><br><span class="fz-16px">　IoTで求められるものは、貧弱な環境でも利用できること。貧弱とは、「バッテリー容量が極小」、「ネットワーク帯域が極細」、「CPU能力が低い」、「メモリ少ない」という環境のことを指している。このような環境で動作できるのがCoAP。</span></p>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker-red"><strong><span style="text-decoration: underline;">p.17 CoAPのメッセージIDとトークン</span></strong></span></span><br>メッセージIDやらトークンやらが出てきていまいちよくわからない。なので、ここではメッセージIDとトークンの役割を明確にしつつ、それらの違いを紐解いていこう！<br><strong>メッセージID：<br></strong>　再送制御、順序保証などのTCP機能を肩代わりしてくれる機能。<br><strong>トークン：<br></strong>　リクエストに対するレスポンスを対応づける機能。</p>



<p class="wp-block-paragraph"><strong>Q.なんでメッセージIDだけじゃダメなの？トークンいらなくね？<br></strong>メッセージＩＤとトークンは管理対象が異なる。メッセージＩＤはいわばパケットの管理を行う。一方トークンはリクエストとレスポンスの対応関係を整理するもの。<br>もし、メッセージＩＤだけになると、受信側は「あれ？これはどのリクエストに対する回答なの？」と処理ができなくなってしまう。たとえ、「あー、順番通りにきているな。欠損ないな。」というところまで分かったとしても、どのリクエストに対応しているかまではわからない。<br>そういった観点で、やはりトークンは必要と言える。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span class="marker-red">Q.TCPにおける欠損の処理方法</span></span></strong><br>TCPでは様々な方法を使ってパケットロスを検知している。<br><strong>タイマー</strong>：<br><span class="fz-16px">　通常は受信側はACKを返す。それによって送信側は、「あ、俺のパケット届いたな」と判断できる。しかし、欠損すると受信側からはACKが返ってこない。その際にタイマーを稼働させておけば「あ、送信からタイマーの時間経過したけどACKなしか。。ということは欠損してるかも！」ということで欠損を検知して再送をする<br></span><strong><span class="fz-16px"><span class="fz-18px">重複ACK：</span></span><br></strong>　受信側は、順番を飛ばしたパケットが届くと「いや、○○番のパケット届いていないよ！ちょうだい！」と送信側に伝える。これを３回受け取ると送信側は「あ、欠損してるかも」と判断して再送する。<br>＊１，２回だと一時的な遅延や順不同によるものかもしれないため、再送が無駄になることがあり非効率。</p>



<p class="wp-block-paragraph"><strong><span class="marker-red">Q.CoAPにおける欠損の処理方法</span></strong><br>CoAPにおける欠損パケットの処理方法はタイマー方式のみ。CoAPにはCON、NONの２つのメッセージがある。CONは確認応答が必須で、NONは確認応答が不要。<br>CONの場合に確認応答が一定時間返ってこない場合は、欠損と判断して再送される。</p>



<p class="wp-block-paragraph"><span class="fz-22px"><strong><span class="marker-red"><span style="text-decoration: underline;">p.23 HTTP1.1について</span></span></strong></span><br>HTTPには様々なプロトコルがあるHTTP/1.0から始まり現在のHTTP/3まで続いている。では、それらの進化を理解していこう！</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>バージョン</strong></td><td><strong>ベースとなる通信</strong></td><td><strong>主な特徴・新機能</strong></td><td><strong>パケット転送・並列処理</strong></td><td><strong>主な課題・限界（デメリット）</strong></td></tr></thead><tbody><tr><td><strong>HTTP/1.0</strong></td><td><strong>TCP</strong></td><td>・1リクエストごとに接続（TCP確立）・切断を行うシンプルな仕組み</td><td>・並列処理不可<br>・リクエストごとに3-way handshakeが発生</td><td>・接続オーバーヘッドが非常に大きく、通信が非常に遅い</td></tr><tr><td><strong>HTTP/1.1</strong></td><td><strong>TCP</strong></td><td>・<strong>Keep-Alive（持続接続）</strong> を導入<br>・1つのTCP接続を使い回せるようになった</td><td>・パイプライニング機能はあるが基本は順番に処理</td><td>・<strong>アプリ層のHOLブロッキング</strong>（前のレスポンスが詰まると後ろも止まる）</td></tr><tr><td><strong>HTTP/2</strong></td><td><strong>TCP</strong></td><td>・<strong>バイナリフォーマット</strong>化<br>・<strong>HPACK</strong>（ヘッダー圧縮）<br>・マルチプレクス（ストリーム化）</td><td>・1つの接続内で<strong>複数ストリームによる並列処理</strong>が可能</td><td>・<strong>TCP層のHOLブロッキング</strong>（パケットロスが1つあると全ストリームの処理が止まる）</td></tr><tr><td><strong>HTTP/3</strong></td><td>UDP<br>(+ QUIC)</td><td>・トランスポート層をUDP＋<strong>QUIC</strong>に刷新<br>・順序制御・再送・TLS1.3暗号化をQUIC側で一括処理</td><td>・<strong>ストリームごとに完全独立して並列処理</strong></td><td>・UDP通信をブロック・制御する一部の古いネットワーク機器/FWでの対応</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><span class="fz-22px"><strong><span class="marker-red"><span style="text-decoration: underline;"><br></span></span></strong></span></p>



<p class="wp-block-paragraph"><br><strong><span class="fz-18px"><span class="fz-20px"><span class="marker-red"><span class="fz-22px"><span style="text-decoration: underline;"><span class="fz-16px"><br></span></span></span></span></span></span></strong><br><br><br><br><span class="fz-16px"><strong><br></strong></span><span class="marker"><br></span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>令和7年（2025年）ネスペ午後Ⅱ　問１　解答解説</title>
		<link>https://ascend-beyond.com/study/7855/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sat, 25 Jul 2026 04:31:48 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7855</guid>

					<description><![CDATA[設問１（１）a:宛先IPアドレス　b:ブロード　c:リプライ ARPパケットには４つの専用フィールドがある。▼ARPパケットのフィールド では、ARPパケットのやり取りを具体的に見ていこう！▼ARPパケットの流れ端末Aが [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問１</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）a:宛先IPアドレス　b:ブロード　c:リプライ</span></span></strong></span></p>



<figure class="wp-block-image size-full"><img decoding="async" width="976" height="376" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-11.jpg" alt="" class="wp-image-7861" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-11.jpg 976w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-300x116.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-768x296.jpg 768w" sizes="(max-width: 976px) 100vw, 976px" /></figure>



<p class="wp-block-paragraph">ARPパケットには４つの専用フィールドがある。<br>▼ARPパケットのフィールド</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="送信元MACアドレス
送信元IPアドレス
宛先MACアドレス
宛先IPアドレス" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">送信元MACアドレス</span></span>
<span class="line"><span style="color: #F8F8F2">送信元IPアドレス</span></span>
<span class="line"><span style="color: #F8F8F2">宛先MACアドレス</span></span>
<span class="line"><span style="color: #F8F8F2">宛先IPアドレス</span></span></code></pre></div>



<p class="wp-block-paragraph">では、ARPパケットのやり取りを具体的に見ていこう！<br>▼ARPパケットの流れ<br>端末Aが端末BのMACアドレスを知りたいというユースケースで流れを見ていこう。<br><strong>１．ARPリクエスト<br></strong><span class="fz-16px">　端末Aが以下の構成でARPパケットを作り<span class="blue">ブロードキャスト</span>する</span></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>フィールド名</strong></td><td><strong>入る値</strong></td><td><strong>説明</strong></td></tr></thead><tbody><tr><td><strong>動作タイプ</strong></td><td><strong>1（リクエスト）</strong></td><td>「問い合わせ」であることを示す</td></tr><tr><td><strong>送信元 MACアドレス</strong></td><td><code>AA:AA:AA:AA:AA:AA</code></td><td>端末A自身のMACアドレス</td></tr><tr><td><strong>送信元 IPアドレス</strong></td><td><code>192.168.1.1</code></td><td>端末A自身のIPアドレス</td></tr><tr><td><strong>宛先MACアドレス</strong></td><td><code>00:00:00:00:00:00</code></td><td><strong>まだ分からないので0で埋める</strong></td></tr><tr><td><strong>宛先IPアドレス</strong></td><td><code>192.168.1.2</code></td><td><strong>【問題a】知りたい端末BのIPアドレス</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>２．ARPリプライ<br></strong><span class="fz-16px">ブロードキャスト受信した端末Bは宛先IPが自身のIPであることから、自分がARPリプライを</span><span class="fz-16px">ユニキャスト</span><span class="fz-16px">で</span><span class="fz-16px">返すと認識する。</span></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>フィールド名</strong></td><td><strong>入る値</strong></td><td><strong>説明</strong></td></tr></thead><tbody><tr><td><strong>動作タイプ</strong></td><td><strong>2（リプライ）</strong></td><td>「回答」であることを示す</td></tr><tr><td><strong>送信元 MAC</strong></td><td><code>BB:BB:BB:BB:BB:BB</code></td><td><strong>【ご質問の点】端末B自身のMACアドレスをここに入れる！</strong></td></tr><tr><td><strong>送信元 IP</strong></td><td><code>192.168.1.2</code></td><td>端末B自身のIPアドレス</td></tr><tr><td><strong>ターゲット MAC</strong></td><td><code>AA:AA:AA:AA:AA:AA</code></td><td>端末AのMACアドレス（返事の宛先）</td></tr><tr><td><strong>ターゲット IP</strong></td><td><code>192.168.1.1</code></td><td>端末AのIPアドレス</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">以上の表より、a,b,cに適切な用語を割り当てることで回答を導ける。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問２</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）d:16　e:48　f:64</span></span></strong></span></p>



<figure class="wp-block-image size-large"><img decoding="async" width="875" height="1024" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-2-875x1024.jpg" alt="" class="wp-image-7863" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-2-875x1024.jpg 875w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-2-256x300.jpg 256w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-2-768x899.jpg 768w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-2.jpg 1039w" sizes="(max-width: 875px) 100vw, 875px" /></figure>



<p class="wp-block-paragraph">前提知識として、IPv6アドレスは以下の特徴を持つ。<br><strong>▼IPv6アドレスの特徴</strong><br>・16進数で表現される<br>・1ブロック16ビット<br>・128ビットで構成される<br>・前半64ビットをサブネットプレフィックスと呼び後半64ビットをインタフェースIDと呼ぶ</p>



<p class="wp-block-paragraph">以上の前提知識を踏まえつつd,e,fを埋める。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）データリンク層で通信可能な範囲</span></span></strong></span><br>よくやってしまうミスが「ブロードキャストが届く範囲」と書いてしまうこと。データリンク層で通信可能な範囲と重複しているように見えるが、IPv6にはブロードキャストは存在しない。そのため、IPv6において、そのような回答は✖にされる可能性がある。もし問題が「IPv4においてデータリンク層で通信可能な範囲」と表現されていたらブロードキャストが届く範囲としてもOK。でも今回はIPv6なので、「同一リンク内」というニュアンスが入っている解答の方がベターになる。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（３）同じデータリンク層上に同じIPv6アドレスを使用しているノードがいないことを確認するため</span></span></strong></span><br></p>



<figure class="wp-block-image size-large"><img decoding="async" width="909" height="1024" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-3-909x1024.jpg" alt="" class="wp-image-7864" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-3-909x1024.jpg 909w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-3-266x300.jpg 266w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-3-768x865.jpg 768w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-3.jpg 957w" sizes="(max-width: 909px) 100vw, 909px" /></figure>



<p class="wp-block-paragraph">SLAACとは、DHCPサーバを使わずにルータと端末間で動的にIPv6アドレスを生成する。要は、DHCPサーバによる一元管理に依存しないということ。しかし自由度が上がった分、重複管理なども端末が実施する必要がある。そのプロセスがまさに(i)と(v)である。<br>あらかじめ自分が使う予定のアドレスをリンク内に聞いておくことで、重複を防いでいる。これはIPv4のARP Probeと原理は同じである。<br>自分が使う予定のアドレスを拡散して、既に使われていたら応答が返ってきて、応答が返ってこなければ使われていない（重複なし）と判断できる。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（４）GUA:2001:db8:aabb:1:8:800:200c:417a　プレフィックス:64</span></span></strong></span><br>LLAがfe80::8:800:200c:417a<br>プレフィックスが<span class="fz-20px"><span class="fz-18px">2001:db8:aabb:1:</span></span>:/64<br>これはシンプルにLLAの後半64bitとプレフィックスの前半64をつなげればいいだけ。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問４</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）インターネットからルータA,ルータB及びFWにアクセスできないようにするため</span></span></strong></span><br>そもそもLLAとは同一リンク内のみで有効なアドレス。つまり、リンク外からはアクセスできないアドレスとなる。つまり、<ruby>況<rt>いわんや</rt></ruby>やインタフェースにLLAのみの割り当てとは同一リンク外からはアクセスできなくなるため、それをうまく利用すればアクセス制限にも利用できるということ。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）traceroute6を利用して調べるときに各機器を識別しやすくなる</span></span></strong></span><br>前提条件としてtraceroute6はLLAに対応し切れない。だから、GUAを設定している。そもそも、もしLLAをtraceroute6で完璧に扱えるのであれば、スタティックなLLAを割り当てればデバイスの識別も可能になるため要件を満たせる。しかし、実際はそうではない。なので、GUAをスタティックに割り当てる必要がある。<br><span class="fz-16px">＊厳密にはtraceroute6はLLAに対する受信はできるが応答は返せないとう表現が正しい</span></p>



<p class="wp-block-paragraph"><strong>Q.インタフェースe~fにGUAを割り当てるならa~dに割り当てないのはどういう了見？<br></strong>A.e~fとa~dの決定的な違いはどこに配置されているか、である。要は、a~dはFWの外側に配置されているのである。一方e~fはFWの内側に配置されている。以上より、もしａ～ｄにGUAを割り当ててしまうとインターネットから無秩序にアクセスされてしまう可能性がある。そのためa~dにはGUAをつけないことが望ましい。</p>



<p class="wp-block-paragraph"><strong><span class="fz-18px">Q.tracerouteの経路途中にLLAのみデバイスがある場合はどうなるの？<br></span></strong>tracerouteの宛先自体はGUAを持っているが、その経路途中にLLAのみのデバイスがあったらどうなるのか。２択の選択肢が浮かぶだろう。１つは途中でtracerouteが中断される。もう一つは、そのデバイスのみ表示されずtracerouteは継続する。答えは後者である。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="1. 2001:db8:xxxx::1 (ISP側のルーター)     &lt;-- GUAが見える
2. * * *                                  &lt;-- ルーターA（GUAがないので応答不能・隠れる）
3. * * *                                  &lt;-- ルーターB（GUAがないので応答不能・隠れる）
4. * * *                                  &lt;-- FWの外側 d（GUAがないので応答不能・隠れる）
5. 2001:db8:yyyy:1::x (監視サーバー)      &lt;-- パケットが届くので、GUAが再び表示される！" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #AE81FF">1.</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2001</span><span style="color: #F92672">:</span><span style="color: #F8F8F2">db8</span><span style="color: #F92672">:</span><span style="color: #F8F8F2">xxxx</span><span style="color: #F44747">::</span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> (ISP側のルーター)     </span><span style="color: #F92672">&lt;--</span><span style="color: #F8F8F2"> GUAが見える</span></span>
<span class="line"><span style="color: #AE81FF">2.</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">*</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">*</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">*</span><span style="color: #F8F8F2">                                  </span><span style="color: #F92672">&lt;--</span><span style="color: #F8F8F2"> ルーターA（GUAがないので応答不能・隠れる）</span></span>
<span class="line"><span style="color: #AE81FF">3.</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">*</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">*</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">*</span><span style="color: #F8F8F2">                                  </span><span style="color: #F92672">&lt;--</span><span style="color: #F8F8F2"> ルーターB（GUAがないので応答不能・隠れる）</span></span>
<span class="line"><span style="color: #AE81FF">4.</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">*</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">*</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">*</span><span style="color: #F8F8F2">                                  </span><span style="color: #F92672">&lt;--</span><span style="color: #F8F8F2"> FWの外側 d（GUAがないので応答不能・隠れる）</span></span>
<span class="line"><span style="color: #AE81FF">5.</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2001</span><span style="color: #F92672">:</span><span style="color: #F8F8F2">db8</span><span style="color: #F92672">:</span><span style="color: #F8F8F2">yyyy</span><span style="color: #F92672">:</span><span style="color: #AE81FF">1</span><span style="color: #F92672">::</span><span style="color: #E6DB74">x</span><span style="color: #F8F8F2"> (監視サーバー)      </span><span style="color: #F92672">&lt;--</span><span style="color: #F8F8F2"> パケットが届くので、GUAが再び表示される！</span></span></code></pre></div>



<p class="wp-block-paragraph">このような👆表示になる。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px">Q.これはどの</span><span class="fz-20px">ネットワーク</span><span class="fz-20px">のことを言っているの？</span></strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="917" height="141" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-14.png" alt="" class="wp-image-7872" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-14.png 917w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-14-300x46.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-14-768x118.png 768w" sizes="(max-width: 917px) 100vw, 917px" /></figure>



<p class="wp-block-paragraph">なんか、回りくどく書かれていて結局どこのネットワークを指しているのかよくわからなくなる。<br>まず、順番に紐解いていこう。<br>１．FWと各拠点のL3SWとの間→広域イーサ網<br>２．PCやサーバを接続しないネットワーク→広域イーサ網の説明<br>以上より、「いや、シンプルに広域イーサ網ってかいてくれよ！」って感じるが、要はこの文は広域イーサ網を指しているということ。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><strong>Q.そもそも、なんでa~dはGUAを割り当てる必要がないの？</strong></span><br></p>



<figure class="wp-block-image size-full"><img decoding="async" width="983" height="959" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-14.jpg" alt="" class="wp-image-7871" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-14.jpg 983w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-14-300x293.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-14-768x749.jpg 768w" sizes="(max-width: 983px) 100vw, 983px" /></figure>



<p class="wp-block-paragraph">そもそもGUAが必要なパターンはリンク外から宛先としてそのデバイスが指定されるとき。その点、インタフェースa~dは宛先として指定されることがないのでGUAもいらない。LLAさえあれば転送処理はできるので、わざわざGUAをつける必要もない。</p>



<p class="wp-block-paragraph"><strong>Q.GUAがなかったらルータにリモートアクセス（SSH,telnet）できないのでは？</strong><br>たしかにLLAのみではリンク外からのアクセスはできなくなる。しかし、実務ではいろいろな方法でその問題を解決している。それが踏み台サーバを用意すること。<br>▼踏み台サーバの流れ<br><span class="fz-16px">１．当該ルータと同一リンクに踏み台サーバを準備する<br>２．管理用PCで踏み台サーバにSSHやtelnetでアクセス<br>３．当該ルータのLLAあてにSSHやtelnetでアクセス<br>　（同一リンク場であるためLLAでのアクセスが可能）</span><br>以上のような手順でLLAしか割り当てられていない機器に対してもリモートアクセスが可能になる方法がある。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（３）PCが送信したRSメッセージに対してRAメッセージを応答する</span></span></strong></span><br>下線⑤からSLAACのプロセスに関する問であることが分かる。そのためSLAACにおけるルータの挙動を回答として提示する。<br>▼SLAACの流れ<br><strong>１．PCがRSメッセージを送信<br></strong><span class="fz-16px">PCはどの自分のアドレスとして「どのプレフィックス？デフォルトルートは？」などの情報を求めるためのRSメッセージをマルチキャストする。</span><br><strong>２．ルータがRAメッセージを送信</strong><br><span class="fz-16px">ルータはプレフィックス、デフォルトルートなどの情報をPCに教える</span><br>以上の流れより、L3SWがやることは「PCが送信したRSメッセージに対してRAメッセージを応答する」である。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（４）ア: fe80::1　イ: b　ウ: <span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">fe80::</span></span></strong></span>2　エ: c　オ<span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">: <span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">fe80::1</span>　</span></strong></span></span></span></strong></span>カ<span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">: d　</span></span></strong></span>キ<span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">: <span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">fe80::</span></span></strong></span></span></span></strong></span>2　ク<span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">: <span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">f　</span></span></strong></span></span></span></strong></span>ケ<span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">: <span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">fe80:::1</span></span></strong></span></span></span></strong></span></span></span></strong></span><br></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項番</strong></td><td><strong>機器名</strong></td><td><strong>静的経路制御又は経路制御プロトコル名</strong></td><td><strong>宛先ネットワーク</strong></td><td><strong>ネクストホップのIPv6アドレス</strong></td><td><strong>出口インタフェース名</strong></td></tr></thead><tbody><tr><td>1</td><td>ルータB</td><td>静的経路制御</td><td>::/0</td><td><strong><span class="fz-20px">ア: fe80::1</span></strong></td><td><strong><span class="fz-20px">イ: b</span></strong></td></tr><tr><td>2</td><td>ルータB</td><td>静的経路制御</td><td>2001:db8:yyyy::/48</td><td>なし</td><td>Null¹⁾</td></tr><tr><td>3</td><td>ルータB</td><td>OSPFv3</td><td>2001:db8:yyyy:3::/64</td><td><strong><span class="fz-20px">ウ: <strong><span class="fz-20px">fe80::</span></strong>2</span></strong></td><td><strong><span class="fz-20px">エ: c</span></strong></td></tr><tr><td>4</td><td>FW</td><td>OSPFv3</td><td>::/0</td><td><strong><span class="fz-20px">オ<strong><span class="fz-20px">: <strong><span class="fz-20px">fe80::1</span></strong></span></strong></span></strong></td><td><strong><span class="fz-20px">カ<strong><span class="fz-20px">: d</span></strong></span></strong></td></tr><tr><td>5</td><td>FW</td><td>OSPFv3</td><td>2001:db8:yyyy:3::/64</td><td><strong><span class="fz-20px">キ<strong><span class="fz-20px">: <strong><span class="fz-20px">fe80::</span></strong></span></strong>2</span></strong></td><td><strong><span class="fz-20px">ク<strong><span class="fz-20px">: <strong><span class="fz-20px">f</span></strong></span></strong></span></strong></td></tr><tr><td>6</td><td>L3SW1</td><td>OSPFv3</td><td>::/0</td><td><strong><span class="fz-20px">ケ<strong><span class="fz-20px">: <strong><span class="fz-20px">fe80:::1</span></strong></span></strong></span></strong></td><td>g</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><br><span class="fz-16px">＊なお、ネクストホップアドレスを聞かれている場合はプレフィックスをつけない。プレフィックスをつけるのは宛先ネットワークなどのネットワークを聞かれている場合はつける。</span><br><span class="fz-16px">＊GUAとLLAの２つを持っている機器で回答にLLAが選ばれるのは、OSPFv3を動作させているから。OSPFv3はLLAで経路交換するため、回答も必然的にLLAになる。<br></span><strong><span class="fz-20px">ア: fe80::1</span></strong><br>宛先が::/0、つまりデフォルトルートなのでルータAに渡す必要がある。なので、答えは、ルータAのインタフェースaである<strong>fe80::1</strong>である。<br><span class="fz-16px">*<strong>fe80::1/64</strong>としないように！<br></span><strong><span class="fz-20px">イ: b</span></strong><br>出口インタフェースはルータAと接続している<strong>b</strong>である。<br><strong><span class="fz-20px">ウ: <strong><span class="fz-20px">fe80::</span></strong>2</span></strong><br>宛先ネットワークが2001:db8:yyyy:3::/64なので、これはL3SW1のh配下であることが分かる。で、そこに行くためにはFWを経由する必要があるので、FWのdである<strong>fe80::2</strong>となる。<br><strong><span class="fz-20px">エ: c</span></strong><br>出口インタフェースはFWと接続している<strong>c</strong>である。<br><strong><span class="fz-20px">オ<strong><span class="fz-20px">: <strong><span class="fz-20px">fe80::1</span></strong></span></strong></span></strong><br>宛先が::/0、つまりデフォルトルートなのでBに渡す必要がある。なので、答えは、ルータBのインタフェースcである<strong>fe80::1</strong>である。<br><strong><span class="fz-20px">カ<strong><span class="fz-20px">: d</span></strong></span></strong><br>出口インタフェースはルータBと接続している<strong>d</strong>である。<br><strong><span class="fz-20px">キ<strong><span class="fz-20px">: <strong><span class="fz-20px">fe80::</span></strong></span></strong>2</span></strong><br>FWから2001:db8:yyyy:3::/64へ行くには、まず、2001:db8:yyyy:3::/64はL3SW1のhあてであることが分かる。なので、ネクストホップは、L3SW1のFWとつながっているインタフェースgのアドレス。つまり、fe80::2である。<br>（gはGUAとLAAの両方を持っているがOSPFv3ではLLAで経路交換するため必然的にLLAが選出される）<br><strong><span class="fz-20px">ク<strong><span class="fz-20px">: <strong><span class="fz-20px">f</span></strong></span></strong></span></strong><br>出口インタフェースはL3SQ1と接続している<strong>f</strong>である。<br><strong><span class="fz-20px">ケ<strong><span class="fz-20px">: <strong><span class="fz-20px">fe80::1</span></strong></span></strong></span></strong><br>宛先が::/0、つまりデフォルトルートなのでFW側に渡したい。FWのインタフェースfのアドレスは<strong>fe80::1</strong>となる。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（５）ホップリミットが０になるまで相互に転送し合い、破棄する</span></span></strong></span><br>項番２はQ社が割り当てられているプレフィックスへのパケットはNull0で破棄している。これがあることによってルータAとルータBのループを防ぐことができる。では、項番２がある場合とない場合のケースを見ていこう！<br><strong>▼項番２がない場合<br></strong>１．インターネットからISPに宛先IP<code>2001:db8:yyyy:9999::1</code>として届く<br>２．ISPがプレフィックスを確認し、Q社に割り当てた<code>2001:db8:yyyy::/48の範囲内</code>あることを確認<br>３．Q社へ転送＝<span class="blue">ルータBに転送</span><br>４．Q社は宛先を確認するが、9999に該当するものはないと判断<br>　Q社のGUAを確認すると1~3までしかない。9999に該当するものはない<br>５．わからないルートはデフォルトルートに流す＝<span class="blue">ルータAに流す</span><br>６．ISPは宛先IP<code>2001:db8:yyyy:9999::1</code>を再度受け取るが、プレフィックスはQ社なので再度<span class="blue">ルータBに転送</span><br>７．Q社は受け取るが該当がないので<span class="blue">ルータAに転送</span><br>８．以上のプロセスがホップリミット０になるまで繰り返される<br>このように、自身に割り当てられたアドレスの範囲内なんだけど実際は使っていないアドレスはループを引き起こしてしまう。<br><br><strong>▼項番２がある場合</strong><br>１．インターネットからISPに宛先IP<code>2001:db8:yyyy:9999::1</code>として届く<br>２．ISPがプレフィックスを確認し、Q社に割り当てた<code>2001:db8:yyyy::/48の範囲内</code>あることを確認<br>３．Q社へ転送＝<span class="blue">ルータBに転送</span><br>４．Q社は宛先を確認するが、ぴったり9999に該当するものはないと判断。<br>５．しかし、項番２に2001:db8:yyyy::/48宛てはNull0へとあるのでそこに転送する<br>６．Null0は破棄を意味するので、そこでそのパケットは破棄されて終わる。<br>このように、Null0を作ることによって、自身が割り当てられたプレフィックス内<ruby>＆<rt>かつ</rt></ruby>実際は使っていないアドレスが送られてきても、それを破棄できる。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong><span class="marker">p.3 そもそもなんでIPv6対応させる必要があるの？</span></strong><br></span></span>デュアルスタックやなんやらでIPv6に対応させることは面倒くさそう。それなのになぜわざわざやる必要があるのか..。<br><strong>理由1：IPv6が普及し続けているから。<br></strong>　現在、IPv6は普及し続けている。そのうち、IPv6のみにしか対応していない環境も生まれる。そうなったときにIPv4にしか対応していないと通信が複雑化してしまい面倒くさくなる。<br><strong>理由２：IPv6の方が早いから<br></strong>　IPv4はPPPoEと呼ばれる処理をする。これはISPの手前にある「網終端装置」という認証用のゲートを通らなければならないというルールがある。そのためそこで大渋滞を起こしてしまう可能性がある。一方IPv6はIPoEと呼ばれる処理を実施しており、これは認証ゲートを通らず広い空間を利用できるため、遅延の可能性も抑えることができる。　<br>＊IPv4単体ではIPoEを使えないという<span class="red">日本独自のルール</span>がある。<br><strong>理由３：処理の単純化のため<br></strong>　IPv4でもカプセル化技術を使えばIPoEに対応できる。しかし、毎回カプセル化処理をするとルータへの負担が増大して面倒くさい。</p>



<p class="wp-block-paragraph"><strong>Q.海外にはそもそもPPPoEとIPoEという概念がないのはなぜ？</strong><br>実はIPv4でIPoEが使えないのは日本独自の大人の事情があるから。そもそも海外ではイーサネットに流すのが当たり前すぎて、PPPoEやIPoEという概念がない。そのためIPv4でもイーサネットでそのままISPに流すことが可能。では、なぜこのような違いが生まれたのか見ていこう！<br><strong>A.海外はISPで一本化だが、日本はISPと光回線が別々の事業者で運用されているから！</strong><br>海外の多くは、テレビの同軸ケーブルなどすでに施設されているインフラを使うことによって、独自のインフラを築けた。その結果、テレビ会社がISPサービスも提供できISPサービスと回線の一本化に成功した。一方、日本は国営の日本電信電話公社（現NTT）が主導で日本全国に電柱などのインフラ設備をを施設するという超巨大プロジェクトが実施された。その結果、ほかの会社が今から「独自に日本全国にインフラ作ってやる！」となっても時間・コストともに無理ゲーとなってしまう。<br>そのため、日本では回線はNTTが提供し、ネットワークはISPが提供するという<ruby>歪<rt>いびつ</rt></ruby>で非効率な構成になってしまった。<br>なお日本の法律でNTT東西は直接ISP事業をしてはならないという独占禁止に関連する決まりがあるためNTT自体がISPになって通信を一本化するということもできない。<br>＊しかし、直接ではなくNTTグループ会社の一部がISPとなることはOK</p>



<p class="wp-block-paragraph">▼覚えておきたい前提知識<br><strong>・日本の場合、IPoEに対応しているのはIPv6のみ<br></strong><span class="fz-16px">　→これによりIPv4単体ならPPPoEは必須となる<br></span><strong>・日本は回線提供会社とISP事業会社が分かれている<br></strong><span class="fz-16px">　→これによりISPはL2TP over PPPの認証が必要になる。＝L2TP over PPPを使った認証が必須<br></span><strong>・海外は回線とISPが一本化されている<br></strong><span class="fz-16px">　→これにより回線でユーザを識別できるのでL2TP over PPPの認証が不要。＝IPoEが当たり前<br></span><strong>・IPv6を使う<br></strong><span class="fz-16px">　→IPoEが使える→回線単位での認証が可能になる→L2TP over PPPで認証することが不要になった<br>＊回線でユーザを認識し、その情報をISPと共有することでISP側は認証をすることなく通信の中継ができるようになる。</span></p>



<p class="wp-block-paragraph"><span class="fz-20px"><span class="marker"><span class="fz-22px"><strong>Q.PPPoEとは？</strong><br></span></span></span>PPPoEは、PPP over Ethernetの略。要はイーサネット上でPPPを実現する技術。<br>まず、PPPとは１対１用の認証プロトコル。<br>次にイーサネットとは１対多の通信規格。<br>＊注意点として、GRE over IPsecのように２つの独立したプロトコルをただ重ねたわけではないということ。GREヘッダがあって、その上にIPsecヘッダがあるみたいな構造とは違った構造をとるのがPPPoE。PPP over EthernetとはPPPの上にEthernetという規格を重ねたことを意味するのではなく、PPPoEという単一の専用プロトコルを意味している。つまり、<span class="red">PPPoEヘッダという単一のヘッダ</span>が存在しているということ。</p>



<p class="wp-block-paragraph"><strong>▼PPPoEのパケット構成</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="一番外側（道路を走るための封筒）
  └─①【イーサネットヘッダ】（送信元/宛先 MACアドレス、EtherType: 0x8864）
      └─②【PPPoEヘッダ】（Ver, Type, Code, Session ID など 6バイト）
          └─③【PPPヘッダ】（Protocol ID, 認証データなど）
              └─④【IPヘッダ】（送信元/宛先 IPアドレス）
                  └─⑤【データ本体】（Webサイトのデータなど）" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">一番外側（道路を走るための封筒）</span></span>
<span class="line"><span style="color: #F8F8F2">  └─①【イーサネットヘッダ】（送信元</span><span style="color: #F92672">/</span><span style="color: #F8F8F2">宛先 MACアドレス、EtherType</span><span style="color: #F92672">:</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">0</span><span style="color: #F8F8F2">x8864）</span></span>
<span class="line"><span style="color: #F8F8F2">      └─②【PPPoEヘッダ】（Ver</span><span style="color: #F92672">,</span><span style="color: #F8F8F2"> Type</span><span style="color: #F92672">,</span><span style="color: #F8F8F2"> Code</span><span style="color: #F92672">,</span><span style="color: #F8F8F2"> Session ID など </span><span style="color: #AE81FF">6</span><span style="color: #F8F8F2">バイト）</span></span>
<span class="line"><span style="color: #F8F8F2">          └─③【PPPヘッダ】（Protocol ID</span><span style="color: #F92672">,</span><span style="color: #F8F8F2"> 認証データなど）</span></span>
<span class="line"><span style="color: #F8F8F2">              └─④【IPヘッダ】（送信元</span><span style="color: #F92672">/</span><span style="color: #F8F8F2">宛先 IPアドレス）</span></span>
<span class="line"><span style="color: #F8F8F2">                  └─⑤【データ本体】（Webサイトのデータなど）</span></span></code></pre></div>



<p class="wp-block-paragraph">このように、PPPoEは独自のPPPoEヘッダが存在していることがわかる。また、そのPPPoEヘッダ内にあるSession IDがトンネルの役割を担い、論理機的な１対１通信を実現している。</p>



<p class="wp-block-paragraph"><strong>▼IPoEとPPPoEの違い</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="【旧：PPPoEの道路】
  [あなたの家] ─(光回線)─&gt; [NTT網] ─&gt; ★【網終端装置（激狭の関所）】 ─&gt; [ISP] ─&gt; [ネット]
  ※夜間になると、この「網終端装置」に全員の通信が集中して大渋滞が発生していた！

【新：IPoEの道路】
  [あなたの家] ─(光回線)─&gt; [NTT網] ────────&gt; 🚀【大容量GW（爆広の高速道路）】 ─&gt; [ISP] ─&gt; [ネット]
  ※激狭の関所を完全にバイパス（迂回）して、スカスカの巨大ゲートウェイを通る！" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">【旧：PPPoEの道路】</span></span>
<span class="line"><span style="color: #F8F8F2">  [あなたの家] ─(光回線)─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [NTT網] ─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> ★【網終端装置（激狭の関所）】 ─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [ISP] ─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [ネット]</span></span>
<span class="line"><span style="color: #F8F8F2">  ※夜間になると、この「網終端装置」に全員の通信が集中して大渋滞が発生していた！</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">【新：IPoEの道路】</span></span>
<span class="line"><span style="color: #F8F8F2">  [あなたの家] ─(光回線)─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [NTT網] ────────</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> 🚀【大容量GW（爆広の高速道路）】 ─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [ISP] ─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [ネット]</span></span>
<span class="line"><span style="color: #F8F8F2">  ※激狭の関所を完全にバイパス（迂回）して、スカスカの巨大ゲートウェイを通る！</span></span></code></pre></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>PPPoE（旧世代）</strong></td><td><strong>IPoE（現代）</strong></td></tr></thead><tbody><tr><td><strong>接続認証</strong></td><td>ID/パスワード（セッション管理）<br>ステートフル</td><td>回線IDによる事前自動照合（顔パス）<br>ステートレス</td></tr><tr><td><strong>通過する設備</strong></td><td>混雑しやすい「網終端装置」</td><td>スカスカな「大容量ゲートウェイ」</td></tr><tr><td><strong>夜間の速度</strong></td><td>渋滞で激遅になりやすい</td><td>常に安定して爆速</td></tr><tr><td><strong>ルータ設定</strong></td><td>ID/PASSの手動入力が必要</td><td>ケーブルを挿すだけ（自動）</td></tr><tr><td><strong>MTU（パケットサイズ）</strong></td><td>1454バイト（オーバーヘッドあり）</td><td>1500バイト（フルサイズで転送可能）</td></tr><tr><td><strong>10G回線対応</strong></td><td>不可能（CPU処理が追いつかない）</td><td>完全対応</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">PPPoEの最大のボトルネックは網終端装置である。一方、IPoEでは大容量ゲートウェイであるため、大量の通信を混雑なく実行できる。そのため現在ではIPoEが主流になっている。しかし、ここで１つの疑問が浮かぶ。「いや、じゃあPPPoEでも終端装置の性能あげればよかったじゃん。なんでしなかったの？」と。では、その疑問を答えていこう！</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px">Q.PPPoEではなぜ網終端装置を改修しなかったのか</span></strong><br></span>PPPoEの最大のボトルネックは網終端装置。それが原因で今ではIPoEが主流になりほぼ利用されなくなってしまった。「いや、じゃあPPPoEでも終端装置の性能あげればよかったじゃん。なんでしなかったの？」と。それには、「日本の法規・契約の壁」「技術的な限界」「コストの壁」という3つの巨大な理由があったため、最終的に「PPPoEを諦めて、IPoEという新しい仕組みを作った方が早い＆安い」という結論になったのだ。<br><strong>理由１：ルールがガチガチだったから</strong><br><span class="fz-16px">　網終端装置(NTE)はNTTの持ち物だが増設するためのルールは総務省とNTTの間で厳格な取り決めがあった。それが「通信料ではなくセッション数（契約者数）が増えないと増設してはならない」というもの。しかし、スマホ、YouTube、ゲームの普及により１人のユーザが大量のデータ通信をするようになり、そのルールでは対応しきれないという問題が生まれるのは時間の問題となった</span><br><strong>理由２：技術の限界</strong><br>　<span class="fz-16px">PPPoEはユーザのセッション情報（接続状態、認証情報）をステートフルにメモリに保存しなければならない。そのため大量のユーザが接続してくると、セッション処理などで莫大なメモリ、CPUを消費してしまう。10Gbps、100Gbpsといった超巨大なデータを流しながら、何万人分の状態管理をミリ秒単位で行う機器は、技術的に作るのが超難しく、CPUやメモリに莫大な負担がかかる。</span><br><strong>理由３：国の戦略・コスト</strong><br>　<span class="fz-16px">枯渇しきった旧世代のIPv4(PPPoE)にこれ以上投資するよりも、IPv6へ一気に日本全体を移行させたいという政策的な狙いがあった。</span></p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span class="marker"><span class="fz-22px">Q.なぜ日本ではIPv4のIPoEができなくて海外ではできるの？<br></span></span></span></strong>海外では当たり前のようにIPv4でIPoEが実施されている（そもそも当たり前すぎてIPoEという概念すらない）。でも、日本ではなぜかIPv6でしか実現できない。それはなぜ？<br><strong>理由１：構造・法律の壁</strong><br>　<span class="fz-16px"><strong>海外</strong>：回線とプロバイダ（ISP）が一本化されているため、クライアントのルータが起動した瞬間に自社のDHCPサーバでIPv4（またはCGNAT用プライベートIPv4）を割り当てる。<br>　<strong>日本</strong>：日本の法律によってNTTはプロバイダ業務（IPアドレス変換、認証など）を実施してはならない。そのため、NTTにぶら下がっている大量のプロバイダに適切に振り分ける仕組みが必要だった。</span><br><strong>理由２：アドレス数の限界<br></strong><span class="fz-16px">海外ではIPv4が枯渇した後も、プロバイダ専用のプライベートIPv4あどれs（100.64.0.0/10=419万)を割り当ててCGNATしていた。</span><br>＊<span class="fz-16px">10.0.0.0/8などの一般プライベートIPは、各家庭のWi-Fi(LAN)と衝突するのでWAN側では使えない。<br>　<strong>海外：</strong>NYエリア、LAエリアのように地域ごとに網が分割されているため、各地域で約419万のプライベートIPを何度も使いまわせた<br>　<strong>日本：</strong>NTTのNGNには全国2,000万人以上が１つのネットワークにつながっている。そのため、419万しかないプライベートIPを使うと重複が起こり通信が壊れる。つまり、どうしても一世帯に１つのIPアドレスが必須。<br>＊なおポート番号の範囲をユーザごとに割り振ると、識別できそうだが2000万人すべての通信をTCP層まで見ようとするとCPUに大きな負荷がかかる。そのため基本的にはL3のIPのみの通信を前提に考えるべき</span><br><br>まとめると、IPoEではユーザID/パスワードの認証ではなく、IPアドレスベースの認証をすることによって処理を軽くしている。つまり、IPoEはIPアドレスが基盤なのでそれが安定して割り当てられなかったら、そもそもIPoEは機能しないよねってこと！</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong><span class="marker">p.3 広域イーサネットサービス網とは？</span></strong></span></span><br>広域イーサネットサービスについての説明では、「超大きなL2スイッチに接続できるサービス」と表現されることが多い。要は、物理的につながっていない拠点間同士でも、あたかも同一L2スイッチに接続しているように、同一サブネットとして振舞えるということである。では、それは内部でどのような処理が行われているのだろう？それを以下で見ていこう！</p>



<p class="wp-block-paragraph">▼大まかな流れ</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="【東京本社】
  [ 自社L2スイッチ ]
       │ (LANケーブル)
  [ ONU (回線終端装置) ]
       │
       │ ① アクセス回線（NTTが敷いた電柱の光ファイバー）
       ▼
┌──────────────────────────────────────────────┐
│  NTT東京局舎（近くの電話局）                 │
└──────────────────────────────────────────────┘
       │
       │ ② POI（NTTとソフトバンクの建物を結ぶ光ケーブル）
       ▼
┌──────────────────────────────────────────────┐
│  ソフトバンク・コアネットワーク              │
│  （全国を結ぶ巨大な仮想L2スイッチ）          │
└──────────────────────────────────────────────┘
       │
       │ ③ POI
       ▼
┌──────────────────────────────────────────────┐
│  NTT大阪局舎（大阪の電話局）                 │
└──────────────────────────────────────────────┘
       │
       │ ④ アクセス回線（NTTの光ファイバー）
       ▼
  [ ONU ] ─── [ 自社L2スイッチ ]
【大阪支店】" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">【東京本社】</span></span>
<span class="line"><span style="color: #F8F8F2">  [ 自社L2スイッチ ]</span></span>
<span class="line"><span style="color: #F8F8F2">       │ (LANケーブル)</span></span>
<span class="line"><span style="color: #F8F8F2">  [ ONU (回線終端装置) ]</span></span>
<span class="line"><span style="color: #F8F8F2">       │</span></span>
<span class="line"><span style="color: #F8F8F2">       │ ① アクセス回線（NTTが敷いた電柱の光ファイバー）</span></span>
<span class="line"><span style="color: #F8F8F2">       ▼</span></span>
<span class="line"><span style="color: #F8F8F2">┌──────────────────────────────────────────────┐</span></span>
<span class="line"><span style="color: #F8F8F2">│  NTT東京局舎（近くの電話局）                 │</span></span>
<span class="line"><span style="color: #F8F8F2">└──────────────────────────────────────────────┘</span></span>
<span class="line"><span style="color: #F8F8F2">       │</span></span>
<span class="line"><span style="color: #F8F8F2">       │ ② POI（NTTとソフトバンクの建物を結ぶ光ケーブル）</span></span>
<span class="line"><span style="color: #F8F8F2">       ▼</span></span>
<span class="line"><span style="color: #F8F8F2">┌──────────────────────────────────────────────┐</span></span>
<span class="line"><span style="color: #F8F8F2">│  ソフトバンク・コアネットワーク              │</span></span>
<span class="line"><span style="color: #F8F8F2">│  （全国を結ぶ巨大な仮想L2スイッチ）          │</span></span>
<span class="line"><span style="color: #F8F8F2">└──────────────────────────────────────────────┘</span></span>
<span class="line"><span style="color: #F8F8F2">       │</span></span>
<span class="line"><span style="color: #F8F8F2">       │ ③ POI</span></span>
<span class="line"><span style="color: #F8F8F2">       ▼</span></span>
<span class="line"><span style="color: #F8F8F2">┌──────────────────────────────────────────────┐</span></span>
<span class="line"><span style="color: #F8F8F2">│  NTT大阪局舎（大阪の電話局）                 │</span></span>
<span class="line"><span style="color: #F8F8F2">└──────────────────────────────────────────────┘</span></span>
<span class="line"><span style="color: #F8F8F2">       │</span></span>
<span class="line"><span style="color: #F8F8F2">       │ ④ アクセス回線（NTTの光ファイバー）</span></span>
<span class="line"><span style="color: #F8F8F2">       ▼</span></span>
<span class="line"><span style="color: #F8F8F2">  [ ONU ] ─── [ 自社L2スイッチ ]</span></span>
<span class="line"><span style="color: #F8F8F2">【大阪支店】</span></span></code></pre></div>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong><span class="marker">p.4 ルータBは、OSPFv2でデフォルトルートを配布している</span></strong></span></span><br>これの意味は、字義通りデフォルトルートの配布である。では、なぜわざわざ明示的にしているかというと、通常のルート広告とは種類が違うからである。<br>OSPFにおいて経路の有効化はインタフェース単位で行う。しかしデフォルトルートはインタフェースに紐づくものではないため特別なコマンドを明示的にする必要がある。そのような背景から本文のような「ルータBは、OSPFv2でデフォルトルートを配布している」という文章になる。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="#OSPFにおけるデフォルトルートの配布方法
router ospf 1
 default-information originate" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F92672">#OSPFにおけるデフォルトルートの配布方法</span></span>
<span class="line"><span style="color: #F8F8F2">router ospf </span><span style="color: #AE81FF">1</span></span>
<span class="line"><span style="color: #F8F8F2"> default</span><span style="color: #F92672">-</span><span style="color: #F8F8F2">information originate</span></span></code></pre></div>



<p class="wp-block-paragraph">また、上記コマンドはデフォルトルートを保持しているルータのみの設定でよい。配下のルータは上記コマンドを設定しなくても自動で配下へと反映する</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong><span class="marker">p.4 IPv4とIPv6のデュアルスタック</span></strong></span></span><br>IPv4とIPv6のデュアルスタックとは一つの機器がIPv6とIPv4の両方に対応できるような構成のこと。具体的には、一つの機器にIPv4とIPv6のIPアドレスを割り当てたりすることが該当する。これによって、２つのプロトコルに対応できるようになる。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong><span class="marker">p.6 SLAAC</span></strong></span></span><br>SLAACはStatelessAddressAutoconfigurationの略。DHCPサーバを使わずにルータと端末とのやり取りだけで、動的にIPv6アドレスを作り出す仕組みのこと。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong><span class="marker">p.8 SなんでIPv6の名前解決になるとIPv4よりも大きなサイズになるの？</span></strong></span></span><br>基本的なDNS構成はIPv4だろうとIPv6だろうと変わらないではなぜこのようなことが起きるのか。。。では、見ていこう！</p>



<figure class="wp-block-image size-full"><img decoding="async" width="946" height="150" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-11.png" alt="" class="wp-image-7866" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-11.png 946w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-300x48.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-11-768x122.png 768w" sizes="(max-width: 946px) 100vw, 946px" /></figure>



<p class="wp-block-paragraph"><strong>原因１：アドレス長の違い<br></strong><span class="fz-16px">　IPv4は32bitでIPv6は128bitで構成されている。そのため、レコードに記録する根本的なデータ量が変わってくるのは必然と言える。</span><br><strong>原因２：逆引き</strong><br><span class="fz-16px">　逆引きをする際に、IPv4であれば約20バイト程度で済んだが、IPv6の場合は約75バイトなので、そういった面でもデータサイズが大きくなることがある。</span></p>



<p class="wp-block-paragraph"><strong><span class="fz-18px"><span class="fz-20px">Q.逆引きとは</span></span></strong><br>逆引きとは、IPアドレスからドメインを解決することである。では、逆引きが使われるケースを見ていこう！</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px">▼逆引きが使われるケース<br></span>１．迷惑メール対策</strong><br><span class="fz-16px">①example.comからメールが届く<br>②送信元アドレスから逆引きをする<br>③逆引きで得られたドメインと送信元のドメインが一致することを確認する<br>④一致していたら→正当の可能性あり　不一致なら→偽装</span><br><strong>２．ログ解析</strong><br><span class="fz-16px">ログとしてIPアドレスだけを残すとどこからのアクセスか判断できない。そのため、逆引きをしてドメイン名を明らかにした上でログに残すという手法もある。</span><br>このような使われ方があります。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px">▼逆引きの流れ</span></strong><br>192.0.2.1を逆引きする例を一緒に見ていこう！<br><strong>１．逆引き用の文字列を作る</strong><br>①アドレスを逆さにする（192.0.2.1→1.2.0.192）<br>②逆引き専用のドメインをつける<br>IPv4の場合→.in-addr.arpaなので1.2.0.192.in-addr.arpa.<br>IPv6の場合→.ip6.arpa.<br><strong>２．ルートドメインへ問い合わせ<br></strong><span class="fz-16px"><strong>１クライアント→ルートドメイン<br></strong>「1.2.0.192.in-addr.arpa.のPTRレコードくださーい」<br><strong>２．ルート→クライアント<br></strong>「そのPTRレコードは知らないけど、.in-addr.arpaの管理ならIANAが持ってるよ」<br>返されるデータ：<br>　IANAサーバの<span class="blue">NSレコード</span>＋そのサーバの<span class="blue">A/AAAAレコード</span><br>＊IANA：IPアドレスを配布する世界で１番上に存在する元締め。この下にJPNICやらの地域ごとのアドレス割り当て機関がある</span><br><strong>３．IANAへ問い合わせ<br></strong><span class="fz-16px"><strong>１クライアント→ルートドメイン<br></strong>「1.2.0.192.in-addr.arpa.のPTRレコードくださーい」</span><br><span class="fz-16px"><strong>２．ルート→クライアント</strong><br>「そのPTRレコードは知らないけど、192.in-addr.arpaの管理ならアジアのAPNIC/JPNICのDNSサーバが持ってるよ」<br><span class="fz-16px">返されるデータ：<br>　APNIC/JPNICサーバの<span class="blue">NSレコード</span>＋そのサーバの<span class="blue">A/AAAAレコード</span></span><br><span class="fz-18px"><strong>４．JPNICへ問い合わせ<br></strong></span><span class="fz-16px"><strong>１クライアント→ルートドメイン<br></strong>「1.2.0.192.in-addr.arpa.のPTRレコードくださーい」</span><br><span class="fz-16px"><strong>２．ルート→クライアント</strong><br></span>「そのPTRレコードは知らないけど、0.192.in-addr.arpaの管理なら○○プロバイダのDNSサーバが持ってるよ」<br><span class="fz-16px">返されるデータ：<br></span><span class="blue"><span class="fz-16px"><span class="fz-16px">　</span></span></span><span class="fz-16px"><span class="fz-16px">○○プロバイダの</span></span><span class="blue"><span class="fz-16px"><span class="fz-16px"><span class="blue">NSレコード</span>＋</span></span></span><span class="fz-16px"><span class="fz-16px">そのサーバの</span></span><span class="blue"><span class="fz-16px"><span class="fz-16px"><span class="blue">A/AAAAレコード</span></span><br></span></span></span><strong>５．プロバイダ<br></strong><span class="fz-16px"><span class="fz-16px"><span class="fz-16px"><strong>１クライアント→ルートドメイン<br></strong>「1.2.0.192.in-addr.arpa.のPTRレコードくださーい」</span><br><span class="fz-16px"><strong>２．ルート→クライアント</strong><br>「あ、そのIPはうちのお客さんのIPだねPTRレコードはmail.example.comだよ」</span></span><br><span class="fz-16px"><span class="fz-16px">返されるデータ：<br><span class="blue">　PTRレコード</span></span></span></span><br>これが主なPTRレコードの流れである。</p>



<p class="wp-block-paragraph"><em><strong><span class="marker"><span class="fz-20px"><span style="text-decoration: underline;">Happy Eyeballsとは</span></span></span></strong></em><br>本文には一切出てきていないが、IPv6とIPv4のDNSに関するレコードの選択アルゴリズムの用語としてHappyEyballsは有名なので覚えておこう。<br>HappyEyeballsとは「AレコードとAAAAレコードのどっちを使うかの切り替え機能」である。基本的にDNSではIPv6が優先される。しかし、IPv6と接続できない場合はIPv4に切り替えたほうが効率がよい。そのため、その切り替え機能がHappyEyeballsというわけである。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong><span class="marker">p.8 SIPv6アドレスをキャッシュDNSサーバに割り当てなくてもいい理由</span></strong></span></span></p>



<figure class="wp-block-image size-full"><img decoding="async" width="950" height="323" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-12.png" alt="" class="wp-image-7867" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-12.png 950w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-12-300x102.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-12-768x261.png 768w" sizes="(max-width: 950px) 100vw, 950px" /></figure>



<p class="wp-block-paragraph">本文にも書いてある通り、IPv4ネットワークを使ってキャッシュDNSサーバにアクセスしたうえで、AレコードやAAAAレコードを取得すればよいだけなのでわざわざアドレスを割り当てる必要はない。要は、問い合わせに使うネットワークの種類と応答レコードの種類は独立なのでIPv6アドレスを割り当てる必要はないよということ。<br>＊しかし、これはあくまでも現状のデュアルスタックを前提にした話。もし、IPv6への完全移行をするならば、IPv6アドレスの割り当ては必須。</p>



<p class="wp-block-paragraph"><strong><span class="marker"><span class="fz-20px"><span style="text-decoration: underline;">Q.MAP-EとDS-Liteとは</span></span></span></strong><br>MAP-EとDS-LiteはIPv4の弱点をカバーしてIPv6でISPまで届けようとする仕組み。<br>IPv4はPPPoEによる仕様によってNTEと呼ばれる終端装置を通らなければならない。しかし、そこがボトルネックとなりIPv4の速度を落としている。<br>IPv6であればIPoEという技術が使えるため、NTEを通らない代わりに新たな大きなゲートウェイを通すため混雑を抑えられる。<br>そのような背景から、IPv4をIPv6で包んで回線を流せば混雑抑えられるじゃん！ということでMAP-EとDS-Liteという技術がある。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px">▼MAP-Eの流れ</span></strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="【自宅 PC】
  │ (1) 普通のIPv4通信（例: ポート80宛て）
  ▼
【宅内ルーター（MAP-E対応）】★ここで大仕事！
  │ (2) 自分に割り当てられた「IPv4アドレス」と「指定ポート番号」へNAT変換
  │ (3) それをIPv6の封筒で包む（カプセル化）
  ▼
【NTT NGN網（IPoEの大通り）】
  │ スイスイ通過（NTEを通らない！）
  ▼
【VNE（接続事業者）】
  │ (4) IPv6の封筒を破いて脱がすだけ（カプセル解除）
  ▼
【IPv4 インターネット】" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">【自宅 PC】</span></span>
<span class="line"><span style="color: #F8F8F2">  │ (</span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2">) 普通のIPv4通信（例</span><span style="color: #F92672">:</span><span style="color: #F8F8F2"> ポート80宛て）</span></span>
<span class="line"><span style="color: #F8F8F2">  ▼</span></span>
<span class="line"><span style="color: #F8F8F2">【宅内ルーター（MAP</span><span style="color: #F92672">-</span><span style="color: #F8F8F2">E対応）】★ここで大仕事！</span></span>
<span class="line"><span style="color: #F8F8F2">  │ (</span><span style="color: #AE81FF">2</span><span style="color: #F8F8F2">) 自分に割り当てられた「IPv4アドレス」と「指定ポート番号」へNAT変換</span></span>
<span class="line"><span style="color: #F8F8F2">  │ (</span><span style="color: #AE81FF">3</span><span style="color: #F8F8F2">) それをIPv6の封筒で包む（カプセル化）</span></span>
<span class="line"><span style="color: #F8F8F2">  ▼</span></span>
<span class="line"><span style="color: #F8F8F2">【NTT NGN網（IPoEの大通り）】</span></span>
<span class="line"><span style="color: #F8F8F2">  │ スイスイ通過（NTEを通らない！）</span></span>
<span class="line"><span style="color: #F8F8F2">  ▼</span></span>
<span class="line"><span style="color: #F8F8F2">【VNE（接続事業者）】</span></span>
<span class="line"><span style="color: #F8F8F2">  │ (</span><span style="color: #AE81FF">4</span><span style="color: #F8F8F2">) IPv6の封筒を破いて脱がすだけ（カプセル解除）</span></span>
<span class="line"><span style="color: #F8F8F2">  ▼</span></span>
<span class="line"><span style="color: #F8F8F2">【IPv4 インターネット】</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong><span class="fz-20px">▼DS-Liteの流れ</span></strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Wolfram</span><span role="button" tabindex="0" data-code="【自宅 PC】
  │ (1) 普通のプライベートIPv4通信（例: 192.168.1.10）
  ▼
【宅内ルーター（DS-Lite対応）】★超シンプル！
  │ (2) NAT変換はせず、そのままIPv6の封筒で包む（カプセル化）
  ▼
【NTT NGN網（IPoEの大通り）】
  │ スイスイ通過（PPPoEのNTEを通らない！）
  ▼
【AFTR（VNEの大型CGN設備）】★ここで全員分を大処理！
  │ (3) IPv6の封筒を破く（カプセル解除）
  │ (4) 大型NAT設備（CGN）で、公有のグローバルIPv4へアドレス＆ポート変換！
  ▼
【IPv4 インターネット】" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">【自宅 PC】</span></span>
<span class="line"><span style="color: #F8F8F2">  │ (</span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2">) 普通のプライベートIPv4通信（例</span><span style="color: #F92672">:</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.168.1.10</span><span style="color: #F8F8F2">）</span></span>
<span class="line"><span style="color: #F8F8F2">  ▼</span></span>
<span class="line"><span style="color: #F8F8F2">【宅内ルーター（DS</span><span style="color: #F92672">-</span><span style="color: #F8F8F2">Lite対応）】★超シンプル！</span></span>
<span class="line"><span style="color: #F8F8F2">  │ (</span><span style="color: #AE81FF">2</span><span style="color: #F8F8F2">) NAT変換はせず、そのままIPv6の封筒で包む（カプセル化）</span></span>
<span class="line"><span style="color: #F8F8F2">  ▼</span></span>
<span class="line"><span style="color: #F8F8F2">【NTT NGN網（IPoEの大通り）】</span></span>
<span class="line"><span style="color: #F8F8F2">  │ スイスイ通過（PPPoEのNTEを通らない！）</span></span>
<span class="line"><span style="color: #F8F8F2">  ▼</span></span>
<span class="line"><span style="color: #F8F8F2">【AFTR（VNEの大型CGN設備）】★ここで全員分を大処理！</span></span>
<span class="line"><span style="color: #F8F8F2">  │ (</span><span style="color: #AE81FF">3</span><span style="color: #F8F8F2">) IPv6の封筒を破く（カプセル解除）</span></span>
<span class="line"><span style="color: #F8F8F2">  │ (</span><span style="color: #AE81FF">4</span><span style="color: #F8F8F2">) 大型NAT設備（CGN）で、公有のグローバルIPv4へアドレス＆ポート変換！</span></span>
<span class="line"><span style="color: #F8F8F2">  ▼</span></span>
<span class="line"><span style="color: #F8F8F2">【IPv4 インターネット】</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><br></p>



<p class="wp-block-paragraph"><br></p>



<p class="wp-block-paragraph"><br></p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><br></span></span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CCNP対策</title>
		<link>https://ascend-beyond.com/study/7741/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Mon, 20 Jul 2026 04:50:13 +0000</pubDate>
				<category><![CDATA[CCNP]]></category>
		<category><![CDATA[Study]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7741</guid>

					<description><![CDATA[ACLの適用種別&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; interface:ip access-groupinterface(ipv [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><span id="toc1">ACLの適用種別&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></h3>



<p class="wp-block-paragraph">interface:ip access-group<br>interface(ipv6):ipv6 traffic-filter _name [in/out]<br>class-map:access-group<br>vty:access-class<br>route-map:ip address</p>



<h3 class="wp-block-heading"><span id="toc2">経路集約&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>プロトコル</th><th>集約場所</th><th>コマンド</th></tr></thead><tbody><tr><td>OSPF ABR</td><td>エリア間</td><td>area range</td></tr><tr><td>OSPF ASBR</td><td>再配送時</td><td>summary-address</td></tr><tr><td>EIGRP</td><td>任意IF</td><td>ip summary-address eigrp</td></tr><tr><td>BGP</td><td>BGPプロセス</td><td>aggregate-address</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc3">EIGRPのコスト計算方法&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></h3>



<p class="wp-block-paragraph">EIGRPのメトリック = 256 ×（ 帯域幅 + 遅延 ）<br>帯域幅 = 10,000,000 ÷ 経路上の最小帯域幅（Kbps）<br>遅延 = 経路上の遅延合計（μ秒） ÷ 10</p>



<p class="wp-block-paragraph"><br>１．目的地までの中で最小帯域幅をピックアップする<br>２．１の帯域幅をkbpsに変換する<br><strong>３．10^7 ÷ &#8220;手順2で算出した数値&#8221; を計算する(単位はkbpsのまま)<br></strong>４．目的地までの遅延の合計を算出する<br><strong>５．4で算出した値 ÷ 10 を計算する</strong><br><strong>６．(3と5で算出した値を加算した値) × 256　を算出する</strong><br>７．各径路の6の値を比較して適切な経路がテーブルに反映される</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>用語</th><th>意味</th></tr></thead><tbody><tr><td><strong>FD（Feasible Distance）</strong></td><td>R1から宛先までの<strong>自分が計算したトータルコスト</strong></td></tr><tr><td><strong>AD（Advertised Distance）</strong></td><td>隣接ルーターが「自分から宛先までのコスト」として<strong>広告してきた値</strong></td></tr><tr><td><strong>サクセサー</strong></td><td>FDが最小のルート＝<strong>メインルート</strong></td></tr><tr><td><strong>フィージブルサクセサー</strong></td><td>バックアップルートになれる候補</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>そのルートのAD ＜ サクセサーのFD</strong>ならばフィージブルサクセサーだよねってこと。<br>variance 2とかをする場合は<strong>　</strong><br><strong>フィージブル条件を満た</strong>している<br><strong>＆(かつ)</strong><br><strong>フィージブルサクセサーのFD ≦ サクセサーのFD × variance</strong>　ならばルーティングに登録</p>



<h3 class="wp-block-heading"><span id="toc4">サブネットマスクの計算</span></h3>



<p class="wp-block-paragraph">やり方は以下の<strong>3ステップ</strong>です。「<code>203.0.113.17 /28</code>」を例にします。<br>（サブネット算出<br>→ 256-サブネット=きざみ幅<br>→IP÷きざみ幅＝ｘあまりｙ<br>→IP-あまり</p>



<ol start="1" class="wp-block-list">
<li><strong>マスクの末尾を256から引いて「きざみ幅」を出す</strong>
<ul class="wp-block-list">
<li>マスクは <code>255.255.255.240</code> です。</li>



<li>256 &#8211; 240 = 16 （16個きざみだと分かります）</li>
</ul>
</li>



<li><strong>IPの末尾を「きざみ幅」で割って「余り」を出す</strong>
<ul class="wp-block-list">
<li>今回のIPは <code>.17</code> です。</li>



<li>17 ÷ 16 = 1 あまり <strong>1</strong></li>
</ul>
</li>



<li><strong>元のIPから「余り」を引く ➔ これがネットワークアドレス！</strong>
<ul class="wp-block-list">
<li>17 &#8211; 1 = 16</li>
</ul>
</li>
</ol>



<h4 class="wp-block-heading"><span id="toc5">ワイルドカードマスクの算出</span></h4>



<p class="wp-block-paragraph">ワイルドカードマスクを求めるときは、<strong>「調べたい範囲の終わりのIP」から「始まりのIP」を引き算する</strong>と、一発で答えが出ます。</p>



<p class="wp-block-paragraph">今回のターゲットである「クラスBのプライベートIP」の範囲を並べて、引き算してみましょう。</p>



<ul class="wp-block-list">
<li>終わりのIP： <code>172 . 31 . 255 . 255</code></li>



<li>始まりのIP： <code>172 . 16 . 0 . 0</code></li>



<li><strong>引き算の答え： <code>0 . 15 . 255 . 255</code></strong></li>
</ul>



<p class="wp-block-paragraph">第2オクテット（2番目の区切り）を見ると、<strong>「31 &#8211; 16 = 15」</strong> になっていますよね。 これが、コマンドで <code>0.15.255.255</code> を使う一番簡単な理由です。</p>



<h3 class="wp-block-heading"><span id="toc6">YANGとXMLとJSONとか</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>名前</th><th>役割</th></tr></thead><tbody><tr><td>YANG</td><td>設計図<br>・インタフェースにはIPアドレスという項目がある<br>・BGPにはAS番号という項目がある<br>という構造・ルールを定義する</td></tr><tr><td>NETCONF/RESTCONF</td><td><strong>データ</strong>の送信方法</td></tr><tr><td>XML/JSON</td><td><strong>データ</strong>の書き方<br>（YANGで定義された必要な項目をどのように書くか）<br><br>pythonやjavaなどはプログラミング言語。<br>送信側と受信側で常に同一言語が使われているわけではない。そういったときのデータの受け渡しには決まりが必要。そのデータ受け渡しの標準がXMLやJSONである。あくまでもデータの受け渡しを担当。<br>＊命令処理などを送ったりするわけではない</td></tr></tbody></table></figure>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">XML</span><span role="button" tabindex="0" data-code="&lt;interface&gt;
  &lt;name&gt;GigabitEthernet0/0&lt;/name&gt;
  &lt;ip&gt;192.168.1.1&lt;/ip&gt;
&lt;/interface&gt;" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">&lt;</span><span style="color: #F92672">interface</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">  &lt;</span><span style="color: #F92672">name</span><span style="color: #F8F8F2">&gt;GigabitEthernet0/0&lt;/</span><span style="color: #F92672">name</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">  &lt;</span><span style="color: #F92672">ip</span><span style="color: #F8F8F2">&gt;192.168.1.1&lt;/</span><span style="color: #F92672">ip</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">&lt;/</span><span style="color: #F92672">interface</span><span style="color: #F8F8F2">&gt;</span></span></code></pre></div>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">JSON</span><span role="button" tabindex="0" data-code="{
  &quot;interface&quot;: {
    &quot;name&quot;: &quot;GigabitEthernet0/0&quot;,
    &quot;ip&quot;: &quot;192.168.1.1&quot;
  }
}" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">{</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #66D9EF; font-style: italic">&quot;interface&quot;</span><span style="color: #F8F8F2">: {</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #66D9EF; font-style: italic">&quot;name&quot;</span><span style="color: #F8F8F2">: </span><span style="color: #CFCFC2">&quot;GigabitEthernet0/0&quot;</span><span style="color: #F8F8F2">,</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #66D9EF; font-style: italic">&quot;ip&quot;</span><span style="color: #F8F8F2">: </span><span style="color: #CFCFC2">&quot;192.168.1.1&quot;</span></span>
<span class="line"><span style="color: #F8F8F2">  }</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong><br></strong></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>平成28年（2016年）ネスペ午後Ⅰ　問三　解答解説</title>
		<link>https://ascend-beyond.com/study/7846/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 19 Jul 2026 04:05:19 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7846</guid>

					<description><![CDATA[設問１（１）a:ゾーン転送　b:SMTP　ゾーン転送：　DNSサーバ間で情報を同期するための仕組みをゾーン転送という。主にプライマリDNSとセカンダリDNS間で実施される。通常のDNSはUDPが使われるがゾーン転送は大容 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問１</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）a:ゾーン転送　b:SMTP　</span></span></strong></span><br><strong>ゾーン転送：<br></strong>　DNSサーバ間で情報を同期するための仕組みをゾーン転送という。主にプライマリDNSとセカンダリDNS間で実施される。通常のDNSはUDPが使われるがゾーン転送は大容量＆信頼性が求められるためTCPが使われる。<br>＊UDPでもEDNS0という拡張機能を使うと512B以上を扱えるが信頼性を考慮するとTCPが使われる。<br><strong>b.SMTP :</strong><br>　MGWとMSVでのやり取りはメール転送である。そして、メール転送で使われるプロトコルはSMTP。なので、答えはSMTPになる。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項番</strong></td><td><strong>送信元</strong></td><td><strong>宛先</strong></td><td><strong>プロトコル</strong></td></tr></thead><tbody><tr><td>1</td><td>MGW1, 2</td><td>MSV1</td><td><strong>b:SMTP</strong></td></tr><tr><td>2</td><td>MSV1〜3</td><td>MGW1, 2</td><td><strong>b:SMTP</strong></td></tr><tr><td>3</td><td>DNS3</td><td><strong>c:DNS1</strong></td><td>DNS プロトコル</td></tr><tr><td>4</td><td>DNS1</td><td>DNS3</td><td>DNS プロトコル</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>▼ゾーン転送の流れ<br>１．notifyやrefreshを契機に始動</strong><br><span class="fz-16px"><span class="blue">notify</span>:プライマリDNSに変更があった際に、プライマリDNSがセカンダリDNSに「俺、変更したよぉ」と通知するメッセージのこと<br><span class="blue">refresh</span>:SOAレコード内から得られる情報で、「プライマリへの確認作業のインターバルはこの時間で！」と教えてくれる値。この時間が経過したらセカンダリはプライマリにSOAレコードの取得を試みる</span><br><strong>２．SOAレコードの取得</strong><br><span class="fz-16px">１を契機にプライマリDNSにSOAレコードの取得依頼を送る。<br>＊この通信はUDP53が使われる。</span><strong><br>３．シリアル番号の確認<br></strong><span class="fz-16px">①セカンダリDNSがSOAレコードを取得すると、レコード内のシリアル番号の値を確認する。<br>②既に持っているシリアル番号よりも大きい場合→ゾーン転送が必要<br>　既に持っているシリアル番号よりも小さい場合→ゾーン転送が不要</span></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">JSON</span><span role="button" tabindex="0" data-code="example.com.  IN  SOA  ns1.example.com.  hostmaster.example.com. (
                        2026071601 ; Serial (シリアル番号)
                        10800      ; Refresh (リフレッシュ間隔)
                        3600       ; Retry (リトライ間隔)
                        604800     ; Expire (有効期限)
                        86400      ; Minimum TTL (ネガティブキャッシュTTL)
                        )" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">example.com.  IN  SOA  ns</span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2">.example.com.  hostmaster.example.com. (</span></span>
<span class="line"><span style="color: #F8F8F2">                        </span><span style="color: #AE81FF">2026071601</span><span style="color: #F8F8F2"> ; Serial (シリアル番号)</span></span>
<span class="line"><span style="color: #F8F8F2">                        </span><span style="color: #AE81FF">10800</span><span style="color: #F8F8F2">      ; Refresh (リフレッシュ間隔)</span></span>
<span class="line"><span style="color: #F8F8F2">                        </span><span style="color: #AE81FF">3600</span><span style="color: #F8F8F2">       ; Retry (リトライ間隔)</span></span>
<span class="line"><span style="color: #F8F8F2">                        </span><span style="color: #AE81FF">604800</span><span style="color: #F8F8F2">     ; Expire (有効期限)</span></span>
<span class="line"><span style="color: #F8F8F2">                        </span><span style="color: #AE81FF">86400</span><span style="color: #F8F8F2">      ; Minimum TTL (ネガティブキャッシュTTL)</span></span>
<span class="line"><span style="color: #F8F8F2">                        )</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>４．ゾーン転送要求<br></strong><span class="fz-16px">　ゾーン転送が必要な場合は、「ゾーン情報をください！」とプライマリに依頼<br></span><strong>５．ゾーン転送<br></strong><span class="fz-16px">　プライマリがゾーン情報をTCP53番を使いゾーン転送を実施する</span></p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）c:DNS1</span></span></strong></span></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項番</strong></td><td><strong>送信元</strong></td><td><strong>宛先</strong></td><td><strong>プロトコル</strong></td></tr></thead><tbody><tr><td>1</td><td>MGW1, 2</td><td>MSV1</td><td><strong>b:SMTP</strong></td></tr><tr><td>2</td><td>MSV1〜3</td><td>MGW1, 2</td><td><strong>b:SMTP</strong></td></tr><tr><td>3</td><td>DNS3</td><td><strong>c:DNS1</strong></td><td>DNS プロトコル</td></tr><tr><td>4</td><td>DNS1</td><td>DNS3</td><td>DNS プロトコル</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Cのプロトコルを確認すると、DNSであることが分かる。で、送信元がDNS3なので、DNS３が実施するDNS通信はDNS1へのゾーン転送に関する通信のみ。そのためDNS1が該当する。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（３）公開ゾーン情報の更新通知</span></span></strong></span><br>項番４はDNS1→DNS3へのDNSプロトコル通信であることが分かる。なお、本文(p.11 下から8行目)にもある通りnotifyメッセージを送信していることが分かる。つまり、セカンダリへのDNS情報更新通知であることが分かる。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（４）条件：送信元が少数の場合　　　理由：送信元は、DNSのキャッシュが生存している間、宛先を変えないから</span></span></strong></span><br>想像してみよう。今回のケースは、本文中より外部からのメール転送はMGW2のみが担当する。つまり、送信元は１つ。そして、宛先をDNSによって名前解決するとそれがキャッシュとして保存される。つまり、MGW2は１つのMSVを使い続けることになる。ほかのMSVはずっと、手が空いている状況だが、キャッシュの時間内は使われることがない。<br>逆に、送信元が１００台あると、DNS名前解決した結果、すべてのMSV使われるようになる。<br>以上のことから、送信元が１つだとそもそも１つのMSVしか使われないので負荷分散ができない。そして、その根本的な理由はメール受信ごとに名前解決をするのではなく、キャッシュ機能によって保持されるため１度名前解決をすると、それ以降は使われるMSVが変わることがないから。<br>逆を言えば、キャッシュがなければ送信元が１つでも、毎回毎回、名前解決するのでラウンドロビン方式でも分散が可能になる。<br>しかし、処理速度や負荷などを考えると圧倒的にキャッシュを使った方がメリットが大きい。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問２</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）d:新MSV1　e:新MSV２</span></span></strong></span><br>p.13の(3)にもある通り、&#8221;新MSV１の故障時にはVRRPによって転送先が切り替わる&#8221;とあるので、新MSV１では確実にVRRPが稼働していると推測できる。また、そこからその新MSV１と対をなす存在はMSV2なので、MSV2もVRRPが稼働していることが分かる。<br>その状況から判断して、dとeにはそれぞれ新MSV1と新MSV２が入る。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問３</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）送信元：メール送受信サーバの変更を実施済みの社員　または　社外</span></span></strong></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">　　　宛先：未変更社員</span></span></strong></span><br>この問題は、新MSVへ届いたメールに対してLDAPを検索しなくてはならない条件を聞いている。通常、新MSVはメールボックスが共有なのでLDAPを使う必要がない。しかし、特定の条件では使う必要が出てくる。それが古いシステムを使っているパターンだ。<br>もし、未変更社員同士のメールであれば、そもそも新MSVを経由しないのでこの問題の対象外となる。未変更ということは、その社員のメールクライアントには古いホスト名が記されている。それを名前解決すると自ずと旧MSVへルーティングされるので新MSVは経由しない。<br>これらのことから、送信元が社外または、新MSVのホスト名に変更済みの社員であるパターン。かつ、宛先はメールボックスが移行されていない社員（＝未変更社員）ということになる。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（４）申請者のメールアドレスに対応するメールサーバが、新MSVに変更される</span></span></strong></span><br>旧メールシステムではメールボックスがMSVごとに分けられていた。適切なメールボックスに格納するためにLDAPを使い適切なMSVに転送していた。そのため、新メールシステムに移行したら、自ずとその設定を新MSVに変更する必要がある。そうしないと、古いメールボックス宛てにメールが格納されつづけてしまうから。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker"><strong><span style="text-decoration: underline;">p.11　LDAPサーバ</span></strong></span></span><br>一言でいうとLDAPサーバとはディレクトリサーバの意。ディレクトリサーバとは組織内のアカウントやデバイスを一元管理するためのサーバ。そしてLDAPはディレクトリサービスにアクセスするための共通ルールのこと。なので、一見するとLDAPサーバと聞くと、ユーザの代わりにLDAP機能を使ってディレクトリサーバにLDAPを使ってアクセスしてくれるサーバなのかなぁとイメージしてしまうけど、IT業界のなかで、LDAPサーバと言ったら十中八九、ディレクトリサーバを指している。</p>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker"><strong><span style="text-decoration: underline;">p.11　MGWの転送先をMSV1で固定しているのはなぜ？MSVは3台あるんだから、３台に分散すべきじゃないの？</span></strong></span></span><br></p>



<figure class="wp-block-image size-full"><img decoding="async" width="876" height="435" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-9.png" alt="" class="wp-image-7851" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-9.png 876w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-9-300x149.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-9-768x381.png 768w" sizes="(max-width: 876px) 100vw, 876px" /></figure>



<p class="wp-block-paragraph">A.メール転送には重い処理と軽い処理がある。<br><strong>軽い処理：<br></strong><span class="fz-16px">　届いたメールを右から左へ転送するだけ。<br></span><strong>重い処理：<br></strong><span class="fz-16px">　届いたメールをメールボックスすに配置したり、クライアントからの要求によってメールをダウンロードしたりする作業はとても重い。なぜならこれらはハードディスクへアクセス（ディスクI/O）が発生するから。</span><br><span class="fz-16px">このようにMSV1に固定されても、MSV1が実施する処理は他のMSVへの転送処理であるため軽い処理で終わる。もちろんMSV1自身に届いたメールは重い処理をするが、それ以外に関しては転送処理が主なので、MSV1の固定でも問題はない。</span></p>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker"><strong><span style="text-decoration: underline;">p.11　MGW2はどうやって転送処理をするの？</span></strong></span></span><br>A.イメージしてみよう。D社社員へのメールは外部DNS3で名前解決されてMGW2に届く。その後、MGW2はどう処理するの？メールアドレスのドメインで名前解決してもMGW2自身のIPしかわからずループしちゃうんじゃないの？このような疑問が浮かぶだろう。しかし、実際はループせずしっかりと送信できる構成ができている。では、流れを見ていこう！<br>▼MGW2が内部MSVへ転送するまでの流れ<br>１．MGW2に外部メールが届く<br>２．MGW２内のルールを参照<br>ルール①：外部からＤ社宛てへのメールがきたら、特定のホストへ転送するルールを決めておく。<br>ルール②：①のホストを名前解決するときにDNSサーバのIPアドレスを登録しておく<br>ルール③：名前解決をして、適切なホスト（MSV）へ転送する<br>３．MSVへ届く</p>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker"><strong><span style="text-decoration: underline;">p.11　障害が起きたらMGWをどうやって切り替えるの？</span></strong></span></span></p>



<figure class="wp-block-image size-full"><img decoding="async" width="841" height="127" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-10.png" alt="" class="wp-image-7853" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-10.png 841w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-10-300x45.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-10-768x116.png 768w" sizes="(max-width: 841px) 100vw, 841px" /></figure>



<p class="wp-block-paragraph"><strong>A.優先度を使うことによって動的な切り替えが可能になる。<br></strong>外部からの名前解決の名前解決では２つのレコードを返すようにする。その際に、MGW２をMGW1よりも優先度を高く設定する。これによって、通常時はMGW2が使われるが、障害が起きた際はMGW2に通信できないので、送信側は優先度の低いMGW1を試す。要は送信側のリトライによって動的な切り替えが可能になっているということである。<br>＊ちなみにMXレコードにおける優先度は、値が小さければ小さいほど優先される。</p>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker"><strong><span style="text-decoration: underline;">p.13　メールサーバでVRRPは動作できるの？</span></strong></span></span><br>p.13では新MSV1と２でVRRPを稼働させる旨の記述がある。ここで疑問が一つ。VRRPってルータなどのファーストホップの冗長化の技術じゃないの？メールサーバでも動かせえるの？答えは、実はメールサーバでも稼働できるんです！Linuxサーバーなどでは 「Keepalived」 という超有名なオープンソースのソフト（デーモン）があり、これを使うことでサーバー自体にVRRPを喋らせる（仮想IPを共有させる）ことが実務でも超一般的に行われている。<br>では、具体的な流れを見ていこう！</p>



<p class="wp-block-paragraph"><strong>▼メールサーバで実施するVRRPのフロー</strong><br><strong>１．準備<br></strong><span class="fz-16px">①新MSV１と２でVRRP設定をする<br>　各MSVは２つのグループに所属し、それぞれに適切なプライオリティを割り当てる<br>②DNS設定<br>　DNS2にメールサーバのホスト名に対応するAレコードを２つ登録する<br>　＊この際に登録するＩＰアドレスは仮想ＩＰアドレス</span><br><strong>２．データ転送<br></strong><span class="fz-16px">①クライアントのメールソフトにメールサーバのホスト名を登録しておく<br>②①の名前解決をDNS2に要求する<br>③仮想ＩＰアドレスが返される。<br>④ＤＮＳには２つのレコードがあるため、ユーザごとに順番に５０％の確率で別々の仮想ＩＰアドレスのＡレコードが返される。結果的に負荷分散ができる。</span><br><strong>３．障害発生時<br></strong><span class="fz-16px">①マスタのキープアライブが途切れる<br>②タイムアウトの時間だけ待ったうえで、スタンバイ側が仮想IP/MACを引き継ぐ<br>③GARPを送信し、配下のスイッチのMACアドレステーブルを更新させる<br>④当該仮想IP宛ての通信は適切に適切にルーティングされる</span><br><strong>４．障害回復<br></strong>①プリエンプト機能が有効な場合、プライオリティが最も高い機器がマスタに戻る<br></p>



<p class="wp-block-paragraph"><br></p>



<p class="wp-block-paragraph"><br></p>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker"><br></span></span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>平成28年（2016年）ネスペ午後Ⅰ　問二　解答解説</title>
		<link>https://ascend-beyond.com/study/7825/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Wed, 15 Jul 2026 07:28:15 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7825</guid>

					<description><![CDATA[設問1 ア：AES　イ：事前共有鍵　ウ：SIMカード　エ：APN　オ：NAPT　カ：CONNECTア：AES　　WEPやWAPまではRC4ベースの暗号化を採用していた。しかしこれには脆弱性があるので、WPA2からは、より [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問1</strong></span></span></span><strong><span class="marker"> <span class="fz-20px"><span style="text-decoration: underline;">ア：AES　イ：事前共有鍵　ウ：SIMカード　エ：APN　オ：NAPT　カ：CONNECT</span></span></span></strong><br><strong>ア：AES</strong>　<br>　WEPやWAPまではRC4ベースの暗号化を採用していた。しかしこれには脆弱性があるので、WPA2からは、より強固なAESが使われている。<br><strong>イ：事前共有鍵</strong><br>　単語の通り、事前に鍵を共有しておく方式のこと。<br><strong>ウ：SIMカード<br></strong>　LTEを使う時にユーザ情報を識別するためのものがSIMカード。これはモバイルWi-FiルータだけでなくスマホやタブレットなどのLTEを使う端末にはすべて必須とされている。<br><strong>エ：APN</strong><br>　APN（Access Point Name）はインターネットへ出るための出口を示すもの。SIMカード内の情報から判断される。<br><strong>オ：NAPT</strong><br>　IPアドレスとポートの変換を担う仕組みをNAPTという。<strong><br>カ：CONNECT</strong><br>　CONNECTはプロキシをバイパスとしてHTTPS通信をしたい場合に使うHTTPメソッドの一つ。通常のプロキシはアプリケーション層の中身を見て、宛先を判断して中継する。しかし、CONNECTの場合はアプリケーション層を暗号化したいので、プロキシでは中継できない。それを防ぐために、プロキシをただのバイパスとして機能させる方法がCONNECTメソッド。別の言い方をすると、アプリケーション層による転送処理ではなく、TCP/IP層のみを見て転送させるというものである。<br>では、実際にどのような流れでHTTPS通信が確立されるかを見ていこう！</p>



<p class="wp-block-paragraph"><strong>▼CONNECTメソッドによるHTTPS通信の流れ<br>１．ブラウザ（クライアント）→</strong>プロキシへ<br><span class="fz-16px">①ブラウザはアクセスしたいサイトのURLを確認する<br>②もしURLがhttps://google.comのようにHTTPSと書かれていれば「HTTPS通信だ！」と認識する<br>③プロキシ設定を確認して、「直接ではなくプロキシを通さないとだめなのか」と認識する<br>④「よし、じゃあプロキシに接続しよう」と内部で以下の設定が発行される</span></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">HTTP</span><span role="button" tabindex="0" data-code="▼CONNECTメソッド
CONNECT google.com:443 HTTP/1.1
Host: google.com:443" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">▼CONNECTメソッド</span></span>
<span class="line"><span style="color: #F92672">CONNECT</span><span style="color: #F8F8F2"> google.com:443 </span><span style="color: #F92672">HTTP</span><span style="color: #F8F8F2">/</span><span style="color: #AE81FF">1.1</span></span>
<span class="line"><span style="color: #F92672">Host:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">google.com:443</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>２．プロキシ→</strong>サーバ<br><span class="fz-16px">①プロキシはCONNECTメソッドに指定されたドメインを名前解決する<br>② ①で得たIPアドレスなどをもとに当該サーバとTCPコネクションを張る<br>③TCPのマッピングテーブルを作成する。</span></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>プロキシ内部のID (ソケット)</strong></td><td><strong>クライアント側 (Src IP:Port)</strong></td><td><strong>転送先 (Dest IP:Port)</strong></td></tr></thead><tbody><tr><td>トンネルA</td><td>192.168.1.10 : 50001</td><td>104.21.XX.XX : 443</td></tr><tr><td>トンネルB</td><td>192.168.1.10 : 50002</td><td>142.250.XX.XX : 443</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><span class="fz-16px">上のようなテーブルを作成することで、ユーザとサーバ間のアプリケーション層が暗号化されて宛先の判断に迷っても、適切にバイパス機能を提供できるようになる。</span><br><strong>３．プロキシ→</strong>ブラウザ（クライアント）<br><span class="fz-16px">プロキシからブラウザへ「200 Connection Established」というTCPセッション作成できた旨の報告を入れる。<br>＊このフェーズを参考書などでは、「トンネルの準備ができた」と表現されることがある。これだと、この時点で暗号化通信がプロキシとサーバ間で成立したニュアンスを感じるが実施はただTCPセッションができただけ。</span><br><strong>４．ブラウザ⇔サーバ</strong><br><span class="fz-16px">ブラウザとサーバ間でTLSハンドシェイクを実施する。</span><br><span class="fz-16px">TLSハンドシェイクが完了すると暗号化通信が実施される</span><br><span class="fz-16px">👇TLSハンドシェイクのわかりやすい流れについては以下👇を見てみよう！</span></p>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<a href="https://ascend-beyond.com/study/7666/" title="TLSハンドシェイク早見表" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://ascend-beyond.com/wp-content/uploads/2025/07/Black-and-White-Planet-Outer-Space-Presentation-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://ascend-beyond.com/wp-content/uploads/2025/07/Black-and-White-Planet-Outer-Space-Presentation-160x90.jpg 160w, https://ascend-beyond.com/wp-content/uploads/2025/07/Black-and-White-Planet-Outer-Space-Presentation-300x169.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2025/07/Black-and-White-Planet-Outer-Space-Presentation-1024x576.jpg 1024w, https://ascend-beyond.com/wp-content/uploads/2025/07/Black-and-White-Planet-Outer-Space-Presentation-768x432.jpg 768w, https://ascend-beyond.com/wp-content/uploads/2025/07/Black-and-White-Planet-Outer-Space-Presentation-120x68.jpg 120w, https://ascend-beyond.com/wp-content/uploads/2025/07/Black-and-White-Planet-Outer-Space-Presentation-320x180.jpg 320w, https://ascend-beyond.com/wp-content/uploads/2025/07/Black-and-White-Planet-Outer-Space-Presentation.jpg 1200w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">TLSハンドシェイク早見表</div><div class="blogcard-snippet internal-blogcard-snippet">✅ TLS 1.2 における RSA方式の鍵交換の流れ▼ 1. クライアント Helloクライアントはまず、サーバに「ClientHello」メッセージを送る。ここには以下が含まれる：サポートするTLSのバー...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://ascend-beyond.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">ascend-beyond.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.07.22</div></div></div></div></a>
</div></figure>



<p class="wp-block-paragraph"><strong>Q.一般的なHTTPのメソッドはどうなってるの？<br></strong>A.CONNECTメソッドだけだと、全体を把握しにくいので、GETメソッドをみて、どういう風なのかをサラッと確認しよう！</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">HTTP</span><span role="button" tabindex="0" data-code="▼CONNECTメソッド
CONNECT google.com:443 HTTP/1.1
Host: google.com:443

▼GETメソッド（プロキシあり）
＊プロキシ経由の場合は絶対パスの指定が必須
GET http://example.com/index.html HTTP/1.1
Host: example.com

▼GETメソッド（プロキシなし）
＊プロキシを経由しない場合はファイルのパスだけでよい
GET /index.html HTTP/1.1
Host: example.com" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">▼CONNECTメソッド</span></span>
<span class="line"><span style="color: #F92672">CONNECT</span><span style="color: #F8F8F2"> google.com:443 </span><span style="color: #F92672">HTTP</span><span style="color: #F8F8F2">/</span><span style="color: #AE81FF">1.1</span></span>
<span class="line"><span style="color: #F92672">Host:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">google.com:443</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">▼GETメソッド（プロキシあり）</span></span>
<span class="line"><span style="color: #F8F8F2">＊プロキシ経由の場合は絶対パスの指定が必須</span></span>
<span class="line"><span style="color: #F92672">GET</span><span style="color: #F8F8F2"> http://example.com/index.html </span><span style="color: #F92672">HTTP</span><span style="color: #F8F8F2">/</span><span style="color: #AE81FF">1.1</span></span>
<span class="line"><span style="color: #F92672">Host:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">example.com</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">▼GETメソッド（プロキシなし）</span></span>
<span class="line"><span style="color: #F8F8F2">＊プロキシを経由しない場合はファイルのパスだけでよい</span></span>
<span class="line"><span style="color: #F92672">GET</span><span style="color: #F8F8F2"> /index.html </span><span style="color: #F92672">HTTP</span><span style="color: #F8F8F2">/</span><span style="color: #AE81FF">1.1</span></span>
<span class="line"><span style="color: #F92672">Host:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">example.com</span></span></code></pre></div>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問２</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）定期的に送信するビーコン信号を停止する。</span></span></strong><br></span>結論から言うと、これは修正が必要な回答。正しくは「ビーコン信号にSSIDを含めない」となる。もし、ビーコン信号自体を止めてしまうと、そもそものクライアント接続がとても非効率なものになる。では、御託を並べても仕方がないので実際のフローを見ていこう！<br>▼ステルスモードにおける端末がAPに接続するフロー<br><strong>１．APのビーコン信号<br></strong>　APはSSIDを載せずにビーコン信号を出す。<br>　これにより、ユーザは「SSIDはわからないけど、このチャネルにこのような性能をもつAPがいるんだ！」と認識する<br><strong>２．プローブ要求<br></strong>　クライアントは１で受け取ったSSIDが分からないAPに対して、自身が接続したいSSID名を付与して接続要求を送る。<br><strong>３．接続<br></strong>　クライアントが指定したSSIDとAPのSSIDが一致すれば接続ができる。<br>以上。ここからわかるように、もし、APがビーコン信号すら発っさなければどのチャネルにAPがいるかという情報自体を得ることができなくなる。そうなると、クライアントは、各チャネル１つ１つに対してプローブ要求を送らなければならず、無駄なリソースを消費してしまう。そのため、APはたとえステルスモードであっても、ビーコン信号は発っし続けなければならない。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）SSIDやMACアドレスは暗号化できず、傍受されるから</span></span></strong><br></span>回答の通り、WPAやWPA2などを使ってもSSIDやMACアドレスまでは暗号化できない。それに、無線の場合は電波が届く範囲内にいれば誰でも傍受ができるので、有線よりも簡単にMACアドレスやSSIDが取得できてしまう。</p>



<p class="wp-block-paragraph"><strong>Q.MACアドレスやSSIDが漏れたらどんなリスクがあるの？<br></strong>A.情報が洩れるとなりすましのリスクが格段に上がる。APのなりすましである「Evil Twin攻撃」やクライアントのなりすましなどが発生する。詳細をいかに記そう。<br><strong>・Evil Twin攻撃：<br></strong>　攻撃者が正規のSSIDを取得し、不正APを立てる。そのアクセスポイントに正規のAPと同じSSIDをつけることによって、クライアントが偽APに接続して中間者攻撃などをされてしまう。<br><strong>・なりすまし：<br></strong>　MACアドレスが漏洩すると、攻撃者が正規のMACアドレスと偽って接続できてしまう。そのためMACアドレスフィルタリングをしていても、MACアドレスは正常なので攻撃者からの接続を許してしまう。</p>



<p class="wp-block-paragraph"><strong>Q.MACアドレスやSSIDの漏洩を防ぐ方法はあるの？</strong><br>A.防ぐ方法はない。なぜなら、MACアドレスやSSIDを暗号化してしまうと、そもそもの接続自体が正規ユーザであっても不可能になってしまうから。</p>



<p class="wp-block-paragraph"><strong>Q.どうやって対策するの？<br></strong>A.WPAやWPA2などの暗号化機能や、証明書を利用して正当性を保証する。正直、SSIDやMACアドレスを隠ぺいすることは難しい。なので、そこにフォーカスするのではなく、正当なユーザしか知らない別の情報をあらかじめ用意しておき、その情報をつかって認証することでなりすましを防ごう！という考えにシフトさせる。そうすることで、たとえSSIDやMACアドレスが知られたとしても、それら以外の別の情報が洩れなければ正当性を保証できるようになる。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（３）E</span></span></strong></span><br>タブレット端末はVPNを通してE社のLANと同一サブネットのようなふるまいをする。つまり、区間（E）と同一サブネットになるわけだから、もちろん重複もNGということになる。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="925" height="332" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-5.png" alt="" class="wp-image-7836" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-5.png 925w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-5-300x108.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-5-768x276.png 768w" sizes="(max-width: 925px) 100vw, 925px" /></figure>



<p class="wp-block-paragraph">では、ここからは上の構成図の詳細を見ていこう！プライベートIPアドレスの割り当てであったり、LTE回線があったり、VPNサーバへのアクセス、など様々なものがこの構成図に集約されている。それらの流れを整理しつつ紐解いていこう！</p>



<p class="wp-block-paragraph">▼LTEとVPNのセッション確立の流れ<br><strong>１．モバイルWi-Fiルータ（以後、MRとする）を起動<br>２．基地局→MME→ゲートウェイへ</strong><br>　MRが起動すると、自身のSIMカード情報を載せてLTE回線を経由して基地局へ運ぶ。その後、基地局は認証機関であるMMEに情報を渡す。MMEが内容を確認してAPNから適切なゲートウェイを見つけ、コアネットワークを経由して運ぶ。<br><strong>３．通信路の確立（MRのインターネットアクセスの準備が整う）<br></strong>　MMEからのパケットが届くと、それらの情報をもとに基地局とゲートウェイ間にGTPトンネルを確立する。また、基地局とMR間には無線ベアラと呼ばれる方式で通信する。<br>＊この時に、ゲートウェイは適切なプライベートIPアドレスをMRに割り当てる。<br><strong>４．タブレット端末からVPNサーバへ</strong><br>①タブレット内のVPNアプリを起動する。宛先IPはVPNサーバ宛てになる。<br>②それがMRに届き、LTEから割り当てられたプライベートIPにNAT変換されてLTEゲートウェイまで届く。<br>③LTEゲートウェイがNAPT変換して、宛先IPまでパケット転送する。<br><strong>５．VPNの作成<br></strong>本文のp.9を見るとL2TP over IPsec方式を採用しているので、まずはIPsecの手順から進める。<br><strong>６．IPsecVPNの確立</strong><br>①ISKMP SAの確立<br><span class="fz-16px">1.クライアント→サーバ<br>　「僕はこのような暗号化方法、認証方法をサポートしているよぉ」と報告<br>2.サーバ→クライアント<br>　「じゃあ、この方法で進めよう」と応答する<br>3.DiffieHellmanで共通鍵の生成<br>　この共通鍵を<span class="blue">SKEYID</span>と呼ぶ<strong><br></strong>4.認証<br>　証明書を、2で決定した暗号化/認証方法に則り、3で作成されたSKEYIDを使って暗号化する。暗号化対象は、認証情報と今までのやり取りの要約情報が対象。</span><br>②IPsec SAの確立<br><span class="fz-16px">1.クライアント→サーバ<br>　「僕はこのような暗号化方法、認証方法をサポートしているよぉ」と報告<br>2.サーバ→クライアント<br>　「じゃあ、この方法で進めよう」と応答する<br>3.鍵生成<br>　PFS（前方秘匿性）がONの場合：DiffieHellmanで共通鍵生成<br>　PFSがOFFの場合：SKEYIDとノンスを使って鍵生成</span><br><span class="fz-18px"><span class="fz-16px">４データ通信開始<br>　2で決定した暗号化/認証方法に則り、3で作成された鍵を使って暗号化する。</span></span><br><strong>７．L2TPのトンネルの確立</strong><br><span class="fz-16px">①.お互いのメモリ上にトンネルマッピングを作る<br>　クライアントが「俺は10番のトンネルIDでいきます！」と宣言し、サーバ側は「よし、じゃあ僕は20番のトンネルIDを使うよ」と宣言する。<br>　これにより、お互いのメモリ上に、トンネルIDの10番と20番をマッピングさせる。これにより論理的なトンネルを作成する。<br>②.</span>セッションIDの交換<br><span class="fz-16px">　クライアントが「俺はセッションIDを100番にします」と宣言し、サーバ側は「よし、じゃあ僕はセッションIDを200番でいくよ」と宣言する。<br>　これにより、トンネルの中に通信レーンが確立される。</span><br><span class="fz-16px">③.仮想的な箱（Virtual-Access インターフェース）の準備<br>　セッションごとに適切な処理をするために仮想的な箱（<span class="blue">Virtual-Access</span> インターフェース）を準備する。vritual-accessとかっこつけた名前だが、要は「vlanインタフェースのような静的に作られる仮想インタフェースではなく、動的に生成される仮想インタフェースのこと」。これによって、ユーザごとに仮想インタフェースを割り当てられるので、ユーザごとにACLを割り当てたりすることができる。</span><br><strong>８．PPPセッションの確立</strong><br><span class="fz-16px">　PPPのステップは「準備→認証→IPアドレス割り当て」の３つのステップからなる。<br>①LCP（Link Control Protocol）確立<br>　「認証どうする？圧縮方式どうする？」というような通信のルールを決めるフェーズの実施。<br>②認証<br>　PAPやCHAPといった仕組みをつかってID/Passwordが正しいことを確認する<br>③IPCP（IP Control Protocol）<br>　IPアドレスの割り当てを行う。その当該IPアドレスはL2TPで作成されたVirtual-Accessインタフェースに付与される。また、クライアントにも当該IPは渡される</span><br>このIPCPが終わるとやっと、通信ができるようになる。ここまでが大まかな通信開始までの流れ。では、この後行われる実際のデータ転送プロセスを見ていこう！</p>



<p class="wp-block-paragraph">▼LTEとVPNのデータ通信の流れ<br><strong>１．タブレット→モバイルWi-Fiルータへ<br></strong>　まずは、タブレット内でデータを生成し、L2TPとIPsecのヘッダをつける。<br>内側IP構成：[送信元：PPPで割り当てられたIPアドレス / 宛先：社内のLAN宛て]<br>外側IP構成：[送信元：MRから割り当てられたIPアドレス / 宛先：VPNサーバ宛て]<br><strong>２．MR→LTEゲートウェイ<br></strong>外側IP構成：[送信元：MRがLTEから割り当てられたIPアドレスに変換/ 宛先：VPNサーバ宛て]<br><strong>３．LTEゲートウェイ→VPNサーバ</strong><br>外側IP構成：[送信元：LTEがNAPT変換/ 宛先：VPNサーバ宛て]<br>NAPT変換によってグローバルIPアドレスに変換され、インターネットを跨ぐことができる。そして、VPNサーバに到達する。<br><strong>４．VPNサーバ→Virtual Access</strong><br><span class="fz-16px">①外側パケットを解除する<br>②L2TPヘッダがでてくる<br>　L2TPヘッダからTunnel ID、セッションIDを確認して、内部のマッピング情報から適切なVirtula Accessへ振り分ける。<br>　この際にL2TPヘッダは剥がされる。<br>③Virtual Access<br>　Virutal Accessへ行くと、PPPヘッダがあるので、それを剥がして内部へパケットを流す</span><br><strong>５．内部LAN<br></strong>　無事、内部LANに届いたら処理をして、今までの逆の処理をしてユーザまで返す。</p>



<p class="wp-block-paragraph">▼IPsecについてはこちらでも解説している</p>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<a href="https://ascend-beyond.com/study/7792/" title="平成28年（2016年）ネスペ午後Ⅱ　問二　解答解説" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://ascend-beyond.com/wp-content/uploads/2026/07/34cb75a52c2d910eeb71a9eb8b21af67-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/34cb75a52c2d910eeb71a9eb8b21af67-160x90.jpg 160w, https://ascend-beyond.com/wp-content/uploads/2026/07/34cb75a52c2d910eeb71a9eb8b21af67-300x169.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/34cb75a52c2d910eeb71a9eb8b21af67-1024x576.jpg 1024w, https://ascend-beyond.com/wp-content/uploads/2026/07/34cb75a52c2d910eeb71a9eb8b21af67-768x432.jpg 768w, https://ascend-beyond.com/wp-content/uploads/2026/07/34cb75a52c2d910eeb71a9eb8b21af67-120x68.jpg 120w, https://ascend-beyond.com/wp-content/uploads/2026/07/34cb75a52c2d910eeb71a9eb8b21af67-320x180.jpg 320w, https://ascend-beyond.com/wp-content/uploads/2026/07/34cb75a52c2d910eeb71a9eb8b21af67.jpg 1200w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">平成28年（2016年）ネスペ午後Ⅱ　問二　解答解説</div><div class="blogcard-snippet internal-blogcard-snippet">設問１（１）イ：セレクタセキュリティポリシを選択するキーはセレクタと呼ばれる。Q.SPIとセレクタって何が違うの？A.SPIはどのSAを使うかの32ビットの識別子。つまりSADの中から適切なSAを見つけるための識別子。一方、セレクタはどの...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://ascend-beyond.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">ascend-beyond.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.07.06</div></div></div></div></a>
</div><figcaption class="wp-element-caption"><strong>p.15 表１　IKEフェーズ１で決定されるパラメータ</strong> で検索</figcaption></figure>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問３</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）VPN接続の利用者IDを停止する</span></span></strong></span><br>本文より、現状の認証は利用者IDとワンタイムパスワードであることが推測できる。また、利用者IDは基本的に推測が容易なIDとなっている。例えば、社員番号やメールアドレスなど。これらは端末が盗まれてPCにログオンできれば簡単に割り出されてしまう。また、VPNの多くはIDを保存するという機能があるので、IDを盗む必要すらないというパターンも多い。そのため、「不正アクセスがありました！」と検知されるよりも前に、何かを紛失してしまった場合は速やかに利用停止をする必要がある。</p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）プロキシサーバと内部DNSサーバへの通信</span></span></strong></span><br>p.7のポツ５つ目より、プロキシサーバを使う旨の記述があるので、まずはプロキシサーバの通信を許可する必要がある。また、VPN接続が完了した後に、実際にプロキシサーバを使うためにはプロキシサーバの名前解決をする必要がある。そのため内部DNSへの通信も許可する必要がある。</p>



<p class="wp-block-paragraph"><strong>Q.どこで通信の可否を判断しているの？</strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="901" height="309" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-6.png" alt="" class="wp-image-7838" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-6.png 901w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-6-300x103.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-6-768x263.png 768w" sizes="(max-width: 901px) 100vw, 901px" /></figure>



<p class="wp-block-paragraph">現状の構成は上記のようになっている。で、結論から言うと、FWで接続可否を判断している。具体的な流れを以下に記す。<br><strong>１．タブレット→VPN<br></strong>まずは、VPN接続完了している端末からアクセスが届く。<br><strong>２．VPN→SW1→FW<br></strong>VPNサーバは外部からの通信なので、FWに通す。そのため、SW1を経由してFWに届ける。<br><strong>３．FW<br></strong>通信ルールから内部DNS or プロキシサーバ宛て以外の通信はブロックする。もし、それら２つならSW2に流す。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問４</strong></span></span></span><br><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）機能名：プロキシ認証　設定内容：営業員ごとに利用者IDを登録する</span></span></strong></span><br><strong>プロキシ認証：<br></strong>プロキシを使う際に認証を実施させる機能。具体的には、ユーザからの情報をもとに認証基盤（ActiveDirectoryなど）に正当性を確認し、OKなら許可しNGなら拒否する。プロキシサーバ自体がIDとパスワードを管理するというのは小規模なら可能だが、大規模の場合は認証基盤を使うのが一般的。</p>



<p class="wp-block-paragraph"><strong>Q.プロキシ認証において、普段の会社のPCとかで毎回認証のポップアップが出ないのはなぜ？</strong><br>A.<span class="blue">統合Windows認証</span>（IWA:Integrated Windows Authentication）を使う。これによりPCにログインした時点でSSOを利用できるようになるため、プロキシを利用するたびにポップアップが表示されなくて済む。<br>なお、統合Windows認証の根幹となる技術はケルベロスによって支えられている。</p>



<p class="wp-block-paragraph"><strong>Q.ケルベロス認証とは<br></strong>A.一度のログインで色んなサービスを使えるようにする技術（SSO）のこと。では、フローを見ながら理解していこう！<br><strong>１．PC→</strong>AS（AuthenticationServer）<strong><br></strong><span class="fz-16px">PCはASへ「ログインしたいです！」と伝える。<br></span><strong>２．<span class="blue">AS</span>（AuthenticationServer）<br></strong><span class="fz-16px">ASは<span class="blue">KDC</span>（KeyDistributtionCenter）内にある窓口の一つで、認証を担当する。<br>暗号化データ（<span class="blue">TGT</span>（Ticket Granting Ticket）と共通鍵（＝<span class="blue">Client-TGSセッション鍵</span>）をクライアントに返す。その際に使われる暗号化鍵はクライアントのパスワードから作られた鍵。</span><br><strong>３．</strong>AS→<strong>PC<br></strong><span class="fz-16px">PCは暗号化データを自身のパスワードをベースにした鍵で復号する。これによりTGTと共通鍵（＝<span class="blue">Client-TGSセッション鍵</span>）を手に入れる。</span><br><strong>４．PC→</strong><span class="blue"><strong>TGS</strong></span>（Ticket Granting Service）<br><span class="fz-16px">PCは「このサービス（例えばファイルサーバなど）を使いたいのでチケットをください！」とTGSへ伝える。<br>　TGTとオーセンティケーター（タイムスタンプ入りの証明書）をTGSに渡す。また、その際に公開領域（リクエスト内の暗号化されていない部分）にアクセスしたいサービスを指定する。<br>＊オーセンティケーターはASからもらった共通鍵で暗号化した状態で送付する。</span><br><strong>５．TGS（Ticket Granting Service）</strong>→PC<br><span class="fz-16px">①公開領域を確認する<br>　公開領域内にアクセスしたい場所が記されているので、それを確認する<br>②TGTをKDCだけがもつ鍵で復号する。<br>　その中にユーザとの共通鍵（<span class="blue">＝Client-TGSセッション鍵</span>）とユーザIDが入っている。それによって、「あ、このユーザIDは認証済みなんだ！」と認識できる。<br>③オーセンティケーターをClient-TGSセッション鍵で復号する。<br>　その中にあるユーザIDやタイムスタンプを確認してTGTとの整合性を確認する<br>③<span class="blue">ST</span>（<span class="blue">ServiceTicket</span>）と共通鍵（<span class="blue">＝Client-Serverセッション鍵</span>）を配布する</span><br><span class="fz-16px"><span class="blue">Client-Serverセッション鍵</span>は<span class="blue">Client-TGSセッション鍵</span>で暗号化されて渡す。<br>STはKDCとサービスサーバとの共通鍵（<span class="blue">ServiceKey</span>）で暗号化されている</span><br><strong>６．</strong>TGS<strong>→PC</strong><br>①<span class="fz-16px">PCは共通鍵を取り出す</span><br><span class="fz-16px">共通鍵（<span class="blue">Client-Serverセッション鍵</span>）は<span class="blue">Client-TGSセッション鍵</span>で暗号化されているので、自身の<span class="blue">Client-TGSセッション鍵</span>で復号する<br>PCはサービスサーバーに対して、オーセンティケーターとSTを渡す</span><br>７．PC→<strong>サービスサーバ</strong><br><span class="fz-16px">①サービスサーバは、STを復号し中にあるユーザIDや共通鍵<span class="blue">（Client-Serverセッション鍵</span>）を取り出す。</span><br><span class="fz-16px">＊STを復号するときはServiceKeyを使う<br>②オーセンティケーターを<span class="fz-16px"><span class="blue">Client-Serverセッション鍵</span></span>で復号し、STとの整合性を確認する</span><br><span class="fz-16px">以上の手順が滞りなく実施されるとユーザのアクセスが許可されサービスの利用が開始される</span><br><strong>８．2回目以降のアクセス</strong><br><span class="fz-16px">手順３にてPCには既にClient-TGSセッションキーがあるので、それを使ってオーセンティケーターを作成する。<br>移行の流れは同じ。<br>＊Client-TGSセッションキーの有効期限が切れると再度、ASに認証を要求する必要がある。</span></p>



<p class="wp-block-paragraph"><span class="marker"><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）①接続先ホスト名　②接続先ポート番号</span></span></strong></span><br>Request-URIを簡単にいうと、HTTPリクエストの１行目のこと。<br>例：CONNECTメソッドなら「CONNECT google.com:443 HTTP/1.1」が該当し、GETメソッドなら「GET /index.html HTTP/1.1」が該当する。要はどこにアクセスしたいかを表現する場所のことである。<br>で、ここからわかる情報は、「メソッド、宛先ホスト、ポート番号、HTTPプロトコル」である。なので、回答は接続先ホスト名と接続先ポート番号という風になる。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">HTTP</span><span role="button" tabindex="0" data-code="▼CONNECTメソッド
CONNECT google.com:443 HTTP/1.1
Host: google.com:443

▼GETメソッド（プロキシあり）
＊プロキシ経由の場合は絶対パスの指定が必須
GET http://example.com/index.html HTTP/1.1
Host: example.com

▼GETメソッド（プロキシなし）
＊プロキシを経由しない場合はファイルのパスだけでよい
GET /index.html HTTP/1.1
Host: example.com" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">▼CONNECTメソッド</span></span>
<span class="line"><span style="color: #F92672">CONNECT</span><span style="color: #F8F8F2"> google.com:443 </span><span style="color: #F92672">HTTP</span><span style="color: #F8F8F2">/</span><span style="color: #AE81FF">1.1</span></span>
<span class="line"><span style="color: #F92672">Host:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">google.com:443</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">▼GETメソッド（プロキシあり）</span></span>
<span class="line"><span style="color: #F8F8F2">＊プロキシ経由の場合は絶対パスの指定が必須</span></span>
<span class="line"><span style="color: #F92672">GET</span><span style="color: #F8F8F2"> http://example.com/index.html </span><span style="color: #F92672">HTTP</span><span style="color: #F8F8F2">/</span><span style="color: #AE81FF">1.1</span></span>
<span class="line"><span style="color: #F92672">Host:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">example.com</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">▼GETメソッド（プロキシなし）</span></span>
<span class="line"><span style="color: #F8F8F2">＊プロキシを経由しない場合はファイルのパスだけでよい</span></span>
<span class="line"><span style="color: #F92672">GET</span><span style="color: #F8F8F2"> /index.html </span><span style="color: #F92672">HTTP</span><span style="color: #F8F8F2">/</span><span style="color: #AE81FF">1.1</span></span>
<span class="line"><span style="color: #F92672">Host:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">example.com</span></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker"><strong><span style="text-decoration: underline;">p.7　内部DNSサーバの必要性</span></strong><br></span></span>　以下の構成において、内部DNSサーバはなぜ必要か。それを見ていこう！</p>



<figure class="wp-block-image size-full"><img decoding="async" width="974" height="374" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-2.png" alt="" class="wp-image-7827" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-2.png 974w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-2-300x115.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-2-768x295.png 768w" sizes="(max-width: 974px) 100vw, 974px" /></figure>



<p class="wp-block-paragraph">答えはシンプルで、VPN接続後のタブレット端末が販売管理サーバと通信したい際に使われる。URLはわかっても実際のIPアドレスが分からないと通信できないので、それを解消するために内部DNSサーバを利用する。</p>



<p class="wp-block-paragraph"><span class="fz-22px"><span class="marker"><strong><span style="text-decoration: underline;">p.7 LTE回線</span></strong><br></span></span>LTE（LongTermEvolution）は3GPP（Third Generation Partnership Project）という世界中の通信会社やメーカーが集まる組織が作った、数万ページに及ぶ「規格（ルールブック）」のこと。そして、その規格に則った回線をLTE回線と呼ぶ。以下に特徴をまとめる。<br><strong>・SIMカードを使った認証：<br></strong>　多くの場合、LTE回線では認証を必要とする。なぜなら誰彼構わず通信を提供していたらビジネスにならない。また、移動通信（ハンドオーバー）やトラフィック制御、課金管理などを提供するには利用者を識別する必要があるため認証を実施する。<br><strong>・オールIPによる通信：<br></strong>　音声通話もデータ通信もすべてIPで通信する。一昔前は音声通話は電話用の回路へ送出され、データ通信はデータ通信用の回路へ送出されていた。このように用途によって回路が分かれていたが、LTEはすべてIPで包んで通信させる方式を採用した。<br><strong>・APN（Access Point Name）による接続先の選択： <br></strong>　SIMカードの契約情報に基づき、インターネット網や特定の企業向け閉域網など、適切なネットワーク（ゲートウェイ）へ通信を振り分ける。<br>もし、これがないとモバイルのコアネットワークから外のほかのネットワーク（インターネット、会社VPNなど）へ通信できなくなる。<br>このような特徴をLTEは持つ。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">Q.LTE回線におけるインターネットアクセスのフローは？<br></span></span></strong>A.LTE回線が具体的にどのようなものかイメージするためにはフロー理解が役立つ。なので、見ていこう！<br>１．<strong>端末</strong>：<br>　送信データに宛先IPを付与<br>２．<strong>無線アクセス</strong>：<br>　LTE/5Gの電波に乗せて、基地局（base station）へ運ぶ<br>３．<strong>コアネットワーク</strong>：<br>　基地局経由でコアネットワークに到着<br>４．<strong>ゲートウェイ（APN）</strong>：<br>　端末のAPN設定に基づき、適切なゲートウェイへ振り分け。ここで、NAPT変換やGTPトンネル（モバイル回線）の終端の役割を担う。<br>　＊APNはどのゲートウェイを使うかを示す名前（識別子）<br>５．<strong>NAPT変換</strong>：<br>　ゲートウェイで端末のプライベートIPアドレスをキャリアのグローバルIPアドレスに変換<br>　＊ここで言うプライベートIPアドレスは、端末が「LTEで通信したい！」とキャリアに伝えてからキャリアのゲートウェイが端末に割り振るIPアドレスのことを指す。<br>６．<strong>インターネット接続</strong>：<br>　NAPT変換されたパケットはキャリア網のバックボーンネットワークを経由して、インターネット（AS）との境界ルータへ渡される。で、ここから先はBGPを使い複数のASを経由して宛先までホップする</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">Q.GTP（GPRS Tunneling Protocol）トンネルの作成フロー<br></span></span></strong>では、GTPトンネルの作成フローを見ていこう！<br><strong>１．クライアントが接続要求<br></strong>　SIM情報を載せて基地局へ投げる。<br>＊この時点ではまだ、IPアドレスの払い出しやGTPトンネルは張られていない<br><strong>２．基地局へ届く<br></strong>　基地局へ届くと管理装置であるMMEに処理を投げる<br><strong>３．MME（Mobility Management Entity）<br></strong>　MMEと呼ばれる管理装置は、SIM情報のAPNなどからゲートウェイを特定し、当該ゲートウェイに「ユーザにプライベートIPアドレスを払い出せ！基地局とGTPトンネルを張れ」と処理を投げる。<br>また、基地局に対しては、「ユーザと<strong>無線ベアラ</strong>開通させろ！」と処理を投げる。<br><strong>４．ゲートウェイ</strong><br>　<span class="blue">GTPトンネルの開通</span>：<br>　　・基地局からゲートウェイの間にGTPトンネルを開通させる。<br>　　・TEID（Tunnel Endpoint Identifier）という識別子をトンネルに付与することで「誰のパケット」かを明示する<br>　<span class="blue">IPアドレスの払い出し</span>：<br>　　・ユーザにプライベートIPアドレスの払い出しをする<br><strong>５．ゲートウェイ→MMEへ<br></strong>　GTPトンネルやIP払い出しの準備ができたらその情報をMMEに送る。<br><strong>６．MME→基地局</strong><br>　無線ベアラの接続指示を与える。<br>　５の情報を基地局に伝える。<br><strong>７．基地局→ユーザ</strong><br>　無線ベアラを確立する。<br>以上が大まかな流れだよ。ユーザ⇔基地局　と　基地局⇔ゲートウェイ　のように２つの接続種類を使うことでユーザが移動して基地局が変わったとしても基地局⇔ゲートウェイで使われているトンネル情報を移動先に張り替えるだけで維持できるので、ハンドオーバーをスムーズに実現できるようになる。</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span class="marker"><span class="fz-22px"><span style="text-decoration: underline;">p.8 WEP,WPA,WPA2</span></span></span></span></strong><br>WEP,WPA,WPA2は無線LANのセキュリティ規格。では、それぞれ順番にみていこう！</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-20px"><strong>Q.WEP（WiredEquivalentPrivacy）</strong>:<br></span></span>WEPは、データと謎の鍵（キーストリーム）を合体させて暗号化する方法である<span class="blue">ストリーム暗号方式</span>を採用している。<br>＊キーストリームを作るための材料が<span class="blue">WEPキー（パスワード、共有鍵）</span>と<span class="blue">IV</span></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">JSON</span><span role="button" tabindex="0" data-code="＃暗号化
データ XOR キーストリーム = 暗号文

＃復号化
暗号文 XOR キーストリーム = データ


#キーストリーム
キーストリーム = RC4（WEPキー,IV）
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">＃暗号化</span></span>
<span class="line"><span style="color: #F8F8F2">データ XOR キーストリーム = 暗号文</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">＃復号化</span></span>
<span class="line"><span style="color: #F8F8F2">暗号文 XOR キーストリーム = データ</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">#キーストリーム</span></span>
<span class="line"><span style="color: #F8F8F2">キーストリーム = RC</span><span style="color: #AE81FF">4</span><span style="color: #F8F8F2">（WEPキー,IV）</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">▼暗号化手順<br>１．<span class="blue">WEPキー</span>（パスワード）と<span class="blue">IV</span>をまぜる<br>＊IVはパケットごとに変化する<br>２．２で混ぜた値をRC4という暗号アルゴリズムに入れてデータと同じ長さの<span class="blue">キーストリーム</span>を生成する<br>３．キーストリームとデータをXORして暗号文を生成<br>４．３でできたデータとIV（平文）をセットして空中に飛ばす</p>



<p class="wp-block-paragraph">▼弱点<br>弱点１：IVが短すぎる<br>　WEPではIVが24ビットしかないので、2^24は1677万しかパターンがない。これは現在の高速Wi-Fi通信において、あっという間に重複してしまう数値。結果として同じキーストリーム（IV＋パスワード）を使いまわすことになり、XORの法則で解析されてしまう。<br>このような式（暗号文A XOR　暗号文B = データB XOR データA）になれば、もしデータBかAが推測できるならばもう一方のデータ必然的に導出されてしまう。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">JSON</span><span role="button" tabindex="0" data-code="###########################
#
# もし、キーストリームが重複すると
#
##########################
XORのルール
①順番はどうでもいい
②同じ値同士のXORは０になる

１．重複した２つのデータを準備
暗号文A　= データA XOR キーストリーム
暗号文B　= データB XOR キーストリーム

２．ルール①より式を変換
キーストリーム = 暗号文A XOR　データA
キーストリーム = 暗号文B XOR　データB

３．等価関係
暗号文A XOR　データA = 暗号文B XOR　データB

４．ルール①より暗号文Bを左辺へ、データAを右辺へ移動させる
暗号文A XOR　暗号文B =  データB XOR データA" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">###########################</span></span>
<span class="line"><span style="color: #F8F8F2">#</span></span>
<span class="line"><span style="color: #F8F8F2"># もし、キーストリームが重複すると</span></span>
<span class="line"><span style="color: #F8F8F2">#</span></span>
<span class="line"><span style="color: #F8F8F2">##########################</span></span>
<span class="line"><span style="color: #F8F8F2">XORのルール</span></span>
<span class="line"><span style="color: #F8F8F2">①順番はどうでもいい</span></span>
<span class="line"><span style="color: #F8F8F2">②同じ値同士のXORは０になる</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">１．重複した２つのデータを準備</span></span>
<span class="line"><span style="color: #F8F8F2">暗号文A　= データA XOR キーストリーム</span></span>
<span class="line"><span style="color: #F8F8F2">暗号文B　= データB XOR キーストリーム</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">２．ルール①より式を変換</span></span>
<span class="line"><span style="color: #F8F8F2">キーストリーム = 暗号文A XOR　データA</span></span>
<span class="line"><span style="color: #F8F8F2">キーストリーム = 暗号文B XOR　データB</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">３．等価関係</span></span>
<span class="line"><span style="color: #F8F8F2">暗号文A XOR　データA = 暗号文B XOR　データB</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">４．ルール①より暗号文Bを左辺へ、データAを右辺へ移動させる</span></span>
<span class="line"><span style="color: #F8F8F2">暗号文A XOR　暗号文B =  データB XOR データA</span></span></code></pre></div>



<p class="wp-block-paragraph">弱点２：RC4の脆弱性<br>RC4が使われるタイミングはキーストリームを生成するとき。キーストリーム = RC4（WEPキー,IV）。しかし、RC4には元のパスワードの統計的情報が生成したキーストリームの先頭付近に漏れ出てしまう特性がある。これを統計処理されると元のパスワードが導出されてしまう。</p>



<p class="wp-block-paragraph">以上の理由からWEPの使用は現在では非推奨とされている。</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-20px"><strong>Q.WPA（Wi-Fi Protected Access）：<br></strong></span></span>WEPという脆弱性の塊を、ハードウェアの変更をすることなく補強し延命するための規格。</p>



<p class="wp-block-paragraph">▼改善点<br>改善点１：IVの拡大<br>　WEPは24ビット（約1677万）だったがWPAでは48ビット（約281兆）に拡大された。これは重複して使われることがほぼない。</p>



<p class="wp-block-paragraph">改善点２：パラメータの増加<br>　WEPはキーストリームのパラメータが「WEPキー＋IV」の２つだけだった。しかしWPAでは、「<span class="blue">WEPキー</span>＋<span class="blue">IV</span>＋<span class="blue">送信元MACアドレス</span>＋<span class="blue">パケット番号</span>」の４つのパラメータを使っている。<br>＊WPAにおけるWEPキーは４way handshakeによって生成されたTKである。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">JSON</span><span role="button" tabindex="0" data-code="キーストリーム = RC4（WEPキー＋IV＋送信元MACアドレス＋パケット番号）" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">キーストリーム = RC</span><span style="color: #AE81FF">4</span><span style="color: #F8F8F2">（WEPキー＋IV＋送信元MACアドレス＋パケット番号）</span></span></code></pre></div>



<p class="wp-block-paragraph">改善点３：４ウェイハンドシェイクの導入<br>使用するパラメータは<br>・Aノンス（APのノンス）<br>・Cノンス（クライアントのノンス）<br>・AMAC（APのMACアドレス）<br>・ＣMAC（クライアントのMACアドレス）<br>・PMK（事前共有鍵）</p>



<p class="wp-block-paragraph">▼４way hand-shakeの流れ<br><strong>１．①AP→クライアントにAノンスを送る<br>２．クライアントがPTKの生成<br></strong>　クライアントは「<span class="blue">PMK</span>＋<span class="blue">Aノンス</span>＋<span class="blue">Cノンス</span>＋<span class="blue">AMAC</span>＋<span class="blue">CMAC</span>」を導出関数に入れて<span class="blue">PTK</span>を生成する。<br>＊導出関数はPRF (Pseudo-Random Function：擬似乱数関数) または KDF (Key Derivation Function：鍵導出関数)と呼ばれる。RC4やAESとは全く別で、「入力した情報をめちゃくちゃに混ぜて規則性のないランダムな値を生成する」ための数学的な仕組み<br><strong>３．PTKから鍵を取り出す<br></strong>PTKにはKCK、KEK、TKと呼ばれる鍵が内在されている。<br><span class="blue">KCK</span>：MICを生成するための鍵<br><span class="blue">KEK</span>：GTKを暗号化するための鍵<br><span class="blue">TK</span>：通常のデータを暗号化するための鍵<br><strong>４．②クライアント→APにCノンスとMICを送る</strong><br>　クライアントは自身の<span class="blue">ノンス</span>と先ほど生成したPTKのKCKから生成した<span class="blue">MIC</span>を送る。<br>＊MIC（MessageIntegrityCheck）<br><strong>５．APが正当性の確認<br></strong>　APを受け取ったCノンスなどの情報を使いPTKを生成する。また、そのPTKのKCKからMICを生成し、そのMICがクライアントから送られてきたMICと一致したら正当性も保証される。<br><strong>６．③AP→クライアントにGTKの配布<br></strong>　GTKと呼ばれるグループ鍵をAPが生成する。それをKEKで暗号化（RC4を使う）してクライアントに配る。また、この際もMICを生成して正当性の確認ができるようにする。<br><strong>７．④クライアント→APにACKの送信</strong><br>　クライアントが受け取ったMICの正当性を確認したり、GTKをRC4で復号できたらACK（確認応答）をAPに返して４way handshakeの完了となる。<br>以上、４way handshakeの手順である。<br>ちなみに実際のデータを送るときは「TK＋送信元MACアドレス＋IV＋パケット番号＋実データ」の５つを使い暗号化する</p>



<p class="wp-block-paragraph"><span class="fz-20px"><strong><span style="text-decoration: underline;">Q.WPA2（Wi-Fi Protected Access 2）：</span></strong></span><br>WPAではRC4ベースの暗号化方式を使っていた。それだと脆弱性があるので、AESベースのCCMP暗号化方式を採用したのがWPA2である。<br>また、整合性チェック（MIC）の方式も変わった。WPAでは、暗号化したデータの後ろにMICを張り付けていた。一方WPA2では、MICも暗号化対象とすることで、改ざんされたら必ず気づけるようになった。これを専門用語で<span class="blue">AEAD</span>(Authenticated Encryption with Associated Data：認証付き暗号)と呼ぶ。</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-20px"><strong>Q.AEAD(Authenticated Encryption with Associated Data：認証付き暗号)</strong><br></span></span><span class="fz-20px"><span class="fz-18px">WPAの時代は、暗号化パケットの後ろにMICをつけていた。いわば、暗号化と認証が別々のプロセスとして扱われていた。そのため、どこかが間違っていると、AP側は「あ、このパットは暗号化部分がミスってるよ！」や「いや、認証部分がミスってるよ」などと具体的なエラーを返すことができた。これを利用して攻撃者はうまく改ざんできる方法を調整していた。</span></span>（このような仕組みは<span class="blue">パディングオラクル攻撃</span>と呼ばれている）<br>しかし、WPA2では、認証と暗号化を同じプロセス内で実施するAEAD方式を採用した。これにより、どこかが間違っていたとしても、AP側は暗号化処理なのか認証処理のどっちがまちがっているのか判断できない。そのため特にエラーメッセージを出すことなくドロップされる。これをされると攻撃者はヒントを得られないので攻撃を進めることが難しくなる。<strong><span class="fz-20px"><span class="fz-18px"><br></span></span></strong></p>



<p class="wp-block-paragraph"><br><br></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>平成28年（2016年）ネスペ午後Ⅱ　問二　解答解説</title>
		<link>https://ascend-beyond.com/study/7792/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 05 Jul 2026 23:30:58 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7792</guid>

					<description><![CDATA[設問１（１）イ：セレクタセキュリティポリシを選択するキーはセレクタと呼ばれる。 Q.SPIとセレクタって何が違うの？A.SPIはどのSAを使うかの32ビットの識別子。つまりSADの中から適切なSAを見つけるための識別子。 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問１<br></strong></span></span></span><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）イ：セレクタ</span></span></strong><br>セキュリティポリシを選択するキーはセレクタと呼ばれる。<br><br><strong>Q.SPIとセレクタって何が違うの？<br></strong>A.SPIはどのSAを使うかの32ビットの識別子。つまりSADの中から適切なSAを見つけるための識別子。<br>一方、セレクタはどのルール（ポリシー）を使うのかの識別子。つまり、SPDの中から適切なルールを見つけるための識別子。これは特定の値ではなく、IPアドレス、ポート番号、プロトコルなど、様々なものを識別子として使える。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問２<br></strong></span></span></span><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）リキー（ReKey）</span></span></strong><br>ReKeyとはSAの再確立のこと。ローテーションと表現されることもあるが、ローテーションは鍵の再確立全般をあらわしている。IPsecにおける再確立ときかれたらReKeyと答えるのが安牌。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><strong><span style="text-decoration: underline;">（２）IPsec通信で送受信されるメッセージが、通信中に改ざんされていないこと</span></strong><br></span>フェーズ２の認証方式によって認証できる対象は、メッセージの改ざん検知など。<br>では、どのような仕組みで改ざん検知ができるのか、認証にフォーカスしたフェーズ2の流れを見ていこう！<br><strong>１．送信者は、データパケットと認証鍵を合わせたものをHMACでハッシュ化する。ハッシュ値を付加してパケットを送信。<br></strong>　＊認証鍵とは&#8221;フェーズ１で作成されてSKEYID&#8221;＋&#8221;ナンス&#8221;+&#8221;SPI&#8221;をPRFという関数に入れて導出される。この値はとても長いので、最初の256bitは暗号化鍵用、次の256bitは認証用という風にチョキチョキしてそれぞれの鍵を作っていく。<br><strong>２．受信者は受け取ったパケットを送信者と同じ手順でハッシュ化する。導出されたハッシュ値が一致したら、改ざんされていないことが証明される。</strong><br>以上の手順より、認証方式によって認証できる対象はメッセージであり、認証内容は改ざんされていないこと。という回答になる。<br><br><strong>Q.ちなみに上記の認証プロセスでは本人の正当性も認証できるのになぜ回答は改ざん検知だけなの？<br></strong>A.上記、認証プロセスでは本人の正当性も保証される。なぜなら、ハッシュ値を算出する際に、SKEYIDも要素の一つとなっているから。同一のSKEYIDを保持できていることは、フェーズ１で正しく鍵交換できている証明になるので本人の正当性の証明になる。<br>しかし、今回の問題の肝はフェーズ２の認証について。なので、本人の正当性はフェーズ１で既に証明されているものなので、わざわざフェーズ２の機能として記す必要もないという考え方から、回答にはメッセージの改ざん検知のみが記載されている。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><strong><span style="text-decoration: underline;">（３）OSPFのリンクステート情報交換は、IPマルチキャスト通信で行われるから。</span></strong></span><br>IPsecはユニキャストにしか対応していない。そのためマルチキャストを使うOSPFを扱うことができない。<br><strong>Q.なぜIPsecでマルチキャストをすると失敗するの？<br></strong>A.では、具体的な流れとともに確認しよう！主に<span class="marker-under">ルーティング担当</span>と<span class="marker-under">IPsec担当</span>がいるということを念頭に置いておきましょう。<br><strong>１．OSPFパケット誕生<br></strong>　ルータがトンネルインタフェースでOSPFパケットを生成してマルチキャストに送信する<br>　宛先：224.0.0.5（リンクローカルマルチキャスト，TTLは１）<br><strong>２．ルーティング担当がパケット処理<br></strong>　tunnel destinationから宛先はWAN側になっているのでWANポートから出す<br><strong>３．IPsec担当が処理</strong><br>　WANポートから出る直前にIPsec担当がパケットを捕まえて、自身のSPDからprotected,bypath,discardを決める。<br>　しかし、宛先が224.0.0.5のトンネルなんて作っていないのでIPsecでは流せない。なお、IPsecでは流さずそのままWANポートから出力しても破棄されて終わる。<strong><br></strong><br><strong>Q.なぜGREを使うとマルチキャストを扱えるようになるのか？<br></strong>A.では、具体的な流れとともに確認しよう！主に<span class="marker-under">ルーティング担当</span>と<span class="marker-under">IPsec担当</span>がいるということを念頭に置いておきましょう。<br><strong>１．あらかじめGREトンネルを拠点間で作成しておく<br></strong>　＊これによりパケットの中身は関係なく、一旦GREのトンネル入れて流そうというプロセスが追加される（＝この段階で１対１通信が確立する）。<br><strong>２．OSPFパケット誕生<br></strong>　ルータがトンネルインタフェースでOSPFパケットを生成してマルチキャストに送信する。トンネルインタフェースでOSPFを有効化しているので、マルチキャストももちろん対向のトンネルに送出される。<br>　宛先：224.0.0.5（リンクローカルマルチキャスト，TTLは１）<br><strong>３．パケットをGREカプセル化<br></strong>　GREが手順２で送信されたマルチキャストパケットはトンネルを通るのでキャッチしてGREでカプセル化<br><strong>４．IPsec担当が処理</strong><br>　手順３によって通常の１対１パケットとしてIPsecに届くので、いつも通り宛先をSPDで判断して、「あ、これはGREトンネルの１対１だから、このSAでこういう方式で暗号化とかすればいいのね。OK～」と処理をして流す。</p>



<p class="wp-block-paragraph"><strong>Q.GREでやってることはIPsecのTunnelモードではできないの？<br></strong>A.答えは「パケットがIPsecまで来た際に、SPDを検索するがそもそも224.0.0.5に関するポリシーなんて定義していないから」。</p>



<p class="wp-block-paragraph"><strong>Q.正直、トンネルを作れる（１対１にできる）ならGREじゃなくてもいいんじゃないの？<br></strong>A.確かに、１対１のトンネルを作れるならば、GREでなくもてIPsec自体は成立する。実際にIP in IPやL2TPをつかってもIPsecは作れる。しかし、GREでなくてはならない理由もある。<br><strong>理由１：GREはなんでも流せる<br></strong>GREはGenericRoutingEncapsulation（汎用ルーティングカプセル化）という名前の通り、GREはなんでもカプセル化の対象にできる。IP-in-IPは理論上、IPをカプセル化できるといえど、多くのルータではIP-in-IPを使う時にマルチキャストをブロック挙動を取ることが多い。<br>一方、L2TPはマルチキャストを流せる。がその処理がとても重くなってしまう。<br><strong>理由２：ヘッダが軽量</strong><br>GREヘッダは24バイト（[新IPヘッダ(20)][GREヘッダ(4)]）のカプセル化。一方L2TPは40~50Byte（[新IP(20)] [UDP (8)] [L2TP (6〜16)] [PPP (2〜4)] [元のパケット]）に膨れ上がる。<br><strong>理由３：コネクションレス型<br></strong>GREはコネクションレス。しかし、コネクションは通常のパケット同様にTCPかアプリケーション側が管理するのでわざわざGREが管理しなくても順序保証、欠損管理などの機能は別でカバーできる。一方L2TPは内部で運ぶPPP回線が順序の入れ替わりにきわめて弱いため、順序保証を確実にする必要がある。そのためコネクション型となりパケットサイズやオーバーヘッドも必然的に多くなってしまう。<br>👆ほかにも理由があるが、GREが選ばれるのはこういう理由があるよという解釈を持っておこう！</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問４<br></strong></span></span></span><strong><span class="fz-20px"><span style="text-decoration: underline;">（１）GREでトンネリングが行われるから</span></span></strong><br>GREを使うことで既に以下のような構成になっている。<br><span class="green">GRE：[外側IP][GRE][社内IP][データ]</span><br>一方、IPsecのトンネルモード単体はこのようなパケット構成になる。<br><span class="green">トンネルモード：[外側IP][ESP][社内IP][データ]</span><br>このように新しい外側IPを付与することで内側のパケットを暗号化対象にできる。<br>では、最後にトランスポートモードのパケット構成を見ていこう<br><span class="green">トランスポートモード：[社内IP][ESP][データ]</span><br>こちらは既に設定されているIPの内側を暗号対象にしている。<br>では、GREとの組み合わせを見ていこう。<br><span class="green">GRE＋トンネルモード：[外側IP][ESP][外側IP][GRE][社内IP][データ]<br>GRE＋トランスポートモード：[外側IP][ESP][GRE][社内IP][データ]</span><br>以上、よりトンネルモードだと外側IPが二重に付加されてしまい無駄なオーバーヘッドが発生する。一方、トランスポートモードでは二重のオーバーヘッドがないため、こちらを採用するほうが効率的と言える。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問５</strong></span></span></span><br></p>



<figure class="wp-block-image size-full"><img decoding="async" width="883" height="519" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-1.jpg" alt="" class="wp-image-7808" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-1.jpg 883w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-1-300x176.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-1-768x451.jpg 768w" sizes="(max-width: 883px) 100vw, 883px" /></figure>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）L2SWaとL2SWbを異なるサブネットにする</span></span></strong><br>　現状のデータセンタ構成をみると、IPsecルータ、L3SW、L2SWa、L2SWbの間でループ構成ができてしまっている。しかし、異なるサブネットに配置することで、ループを防ぐことができる。<br>具体的には、<br><span class="green">今までのARP経路：</span>「L3SW→L2SWa→IPsecルータ→L2SWb→L3SW→ループ」と「L3SW→L2SWb→IPsecルータ→L2SWa→L3SW→ループ」というようにループが発生してしまう。<span class="green">異なるサブネット変更後：</span>「L3SW→L2SWa→IPsecルータで止まる」と「L3SW→L2SWb→IPsecルータで止まる」<br>以上、より異なるサブネットに配置することでループを防げるようになる。<br>＊異なるサブネット：カッコつけた表現だが、実際はVLAN分離をしているだけという解釈<br>＊L3SWとIPsecルータがループ構成から外れている理由は、もともとOSPF用のリンクであるため異なるVLANで構築されているから。<br><br><strong>Q.そもそも現状の構成でなぜループが発生するのか？<br></strong>A.では、ループになる原因を図９を参照しながら見ていこう！<br><strong>１．データセンターのL3SWがWebサーバにパケットを届けたい<br></strong>　IPアドレスは知っていてけど、MACアドレスを知らないときはARPをブロードキャストする<br><strong>２．各機器にARPが届く<br></strong>　L3SWからのARPは受信以外のすべてのポートから出力される。つまり、IPsecルータ、L2SWa、L2SWbにARPが届く。<br><strong>３．各機器もARPを拡散する<br></strong>　各機器は受信ポート以外のすべてのポートでARPを送信する。<br><strong>４．ARP応答がくる<br></strong>　L2SWaのARPは無事、Webサーバまで届きWebサーバから適切なARP応答がL2SWaに届く。<br><strong>５．L3SWにARP応答が返る<br></strong>　WebサーバからのARP応答がL2SWaまで届き、それがL3SWに届く。<br>これで完了！と思うかもしれないがここにpithallがある。<br><strong>６．未解決のARPが回り続ける<br></strong>　手順３の段階で各機器にARPが届いているので、自分宛でないARPは受信ポート以外のすべてのポートに転送される。これによってループが発生する。<br>　＊ループを起こさないためには木構造（終端があり１つの行先には１通りの通し方しかない構造）にする必要がある。<br>以上のプロセスによってループが発生してしまう。</p>



<p class="wp-block-paragraph"><strong>Q.ループが発生していても正常なARP応答はL3SWに届くのに、なぜ通信はできないの？<br></strong>A.ARPループによっていくつかの不具合が発生してしまうから<br><strong>1つ目：ARPによって、MACアドレステーブルが頻繁に変動する<br></strong>　例えば、ARP応答は巡り巡って発信者のL3SWまで届いてしまう。そうなると、ARPの送信元はL3SWのMACアドレスであるにもかかわらず、ARP送信元MACと受信ポートをL3SW自身が学習してしまう。このようなことが繰り返されることによって、MACアドレステーブルが頻繁に変動（フラッピング）してしまい、適切な出力ポートが分からず通信ができなくなってしまう。<br><strong>2つ目：CPUのキャパオーバー<br></strong>　これはいたってシンプルな理由。ARPの転送にはCPUを消費する。ループすればするほどパケットのサイズは際限なく増幅する。その増幅したパケットをCPUが処理しきれなくなってしまい、正常な通信も処理されなくなってしまう。<br><strong>３つ目：ARP応答ができるのは本人のみ</strong><br>　L3SWが正常なWebサーバのMACアドレスを持っているといえど、ARP応答を返せるのはWebサーバのみ。そのため、L3SWに届いたARP応答も通常通り、受信ポート以外から転送されるだけ。<br>　＊もし、L3SWでも自分が知っているからという理由でARP応答を返せたらループは消滅できる。<strong><br></strong>　<br><strong><span class="fz-20px"><span style="text-decoration: underline;">（３）本社：２　営業所：１　データセンタ：２</span></span></strong><br>VRRPを動かすための独立したサブネットが、当該拠点にいくつあるかを考える。その考えをもとに、名古屋営業所は、L2SW１つだけなので、１つの仮想IPで運用可能。本社は、L2SWaとL2SWbの２つのサブネットがあるため、２つの仮想IPを準備する必要がある。データセンタに関しては、本社と同様の理由で２つの仮想IPが必要になる。<br>＊もし、独立したサブネットが３つあるならVRRPの仮想IPも３つ準備する必要がある。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">（４）どのサーバアクセスも、VRRPのマスタルータが稼働する機器に接続されたWAN回線を経由して行われる。</span></span></strong><br>名古屋営業所のIPsecルータとL3SW間のOSPFリンクが動作している場合は、お互いを冗長経路として把握することができる。しかし、そこのリンクが切れると、OSPFは動作しなくなりルーティング情報からお互いの経路情報が消えて冗長化対象として扱われなくなる。そうなると、VRRPマスタルータがつながっているWAN回線でのみ通信が行われる。客観的にみて別の回線を使ったほうがコストが低かったとしても、その情報を互いに知る由もないため、１つの回線のみを使い続けてしまう。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">（５）インターネットVPN経由のコスト値が最小230であるのに対して、専用線経由のコスト値は200で最も小さい</span></span></strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="894" height="547" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image-1-1.jpg" alt="" class="wp-image-7810" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image-1-1.jpg 894w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-1-1-300x184.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-1-1-768x470.jpg 768w" sizes="(max-width: 894px) 100vw, 894px" /></figure>



<p class="wp-block-paragraph">本社からインターネットへの２つの経路の通信コストを算出すると、<br>・本社L3SW→(+10)→本社IPsecルータ→インターネットVPN(+220)→データセンタIPsecルータ＝230<br>・本社L3SW→専用線(+200)→データセンタL3SW=200<br>つまり専用線を通ったほうがコストが小さいため専用線が使われる。もし、IPsecルータがVRRPマスタルータでもコストは210で依然として専用線が使われる。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">（6）う：広域イーサ網→本社→専用線　え：インターネットVPN→データセンタ→専用線</span></span></strong><br>「う」の名古屋営業所のPCからデータセンタへは、通常はインターネットVPN接続を通るが、表３より名古屋営業所のインターネットVPNに障害が発生している。これにより広域イーサ網を使う経路になる。<br>「え」の名古屋営業所のPCから本社のDMサーバへは通常は広域イーサ網を使う。しかし、表３より名古屋営業所の広域イーサ網に障害が発生している。そのためインターネットVPNを使う経路になる。しかし、問題文中より営業所と本社は直接インターネットVPN接続がない。そのためデータセンタを経由する必要がある。なので、経路は、「名古屋営業所PC→インターネットVPN→データセンタ→専用線→DMサーバ」となる。<br>＊なおL3SWやIPsecルータなどの記載がされない理由はVRRPによって機器が動的に変動する可能性があるため明示的には記載しないなどの理由がある。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong>p.13 広域イーサネットサービス</strong><br></span></span>広域イーサネットサービスとは、物理的に離れた機器同士をあたかも同一LAN（ブロードキャスト等が利用可能）に接続しているようなふるまいを可能にするサービス。なお、使うネットワークとしてはインターネットのような不特定多数の利用者がいる環境ではなく、事業者が独自に構築した閉域網を使う。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong>p.14 L3 &#8220;サーバのIPアドレスの変更が生じないようにする&#8221;とあるが、物理的移動したのにIPアドレスを維持することなんてできるの？</strong><br></span></span>インターネットをまたぐ際は、カプセル化をすることで相手まで到達させる。そしてその後、カプセル化を解除すれば、物理移動に依存せずIPアドレスを維持できる。具体的な手順を以下に記す。<br>１．サーバをデータセンタへ移行する<br>２．本社とデータセンタ間でトンネルを構築する（簡素化のため支社のことはここでは考えない）<br>３．OSPFを稼働させ内部のIPプレフィックスをトンネルを通して相互に通知しあう<br>４．相手の内部情報が把握できたので、今後、その内部宛てに送るときはトンネルを経由して通信可能になる。<br>以上のプロセスを経由することによって、物理的な移動があってもIPアドレスを維持できる。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong>p.14 L7 &#8220;インターネットVPNと既設の広域イーサ網間でOSPFを稼働させれば、この要件を満たすことができると考えた&#8221;とあるがどういうこと？</strong><br></span></span>「インターネットVPNと広域イーサ網間で〜」という問題文の日本語は、初見だと「2つの回線をガッチャンコしてその間で何かするの？」と誤解しやすい、ちょっと意地悪な表現。でも、実際に言いたいことは、これは「インターネットVPNというルート」と「広域イーサ網（および新設する専用線）というルート」の、それぞれの回線上で独立してOSPFを稼働させるという意味。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">p.14 L7 &#8220;広域イーサ網間でのOSPF&#8221;って具体的にどういう挙動？<br></span></span></strong>広域イーサ網は１つの巨大L2スイッチとして動作している。そのため、広域イーサ網を使ってOSPFを使う場合は、通常のOSPFと同じように特にカプセル化など不要でそのままパケットを広域イーサ網に流せばOK。あとは巨大L2スイッチ（広域イーサ網）がパケットをコピーして、MACアドレス情報などから適切な宛先に転送してくれる。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong>p.14  SA</strong><br></span></span>IPsecにはパケットを暗号化、復号などのルールに関する関連単語が複数ある。その一つがSA。では、以下でそれぞれを詳しく見ていく。<br><strong>SA（Security Association）<br></strong>　：コネクションのこと。関係性。物理的なものではなく概念的なもの。<br><strong>SPI（Security Parameter Index）<br></strong>　：どのSAを使っているかの識別子。32ビットで構成。<br><strong>SAD（Security Association Database）<br></strong>　：SAの詳細な情報を保持するデータベース。具体的には、SPI、暗号アルゴリズム、秘密鍵など。<br><strong>SPD（Security Policy Database）<br></strong>　：どの通信はIPsecを通して、どの通信は通さないかなどのIPsecのルール（ポリシー）のデータベース。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">p.15 表１　IKEフェーズ１で決定されるパラメータ</span></span></strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>パラメータ</strong></td><td><strong>説明</strong></td></tr></thead><tbody><tr><td>暗号化方式(AES-256)</td><td>ISAKMP メッセージの暗号化アルゴリズム</td></tr><tr><td>ハッシュ方式(SHA-256)</td><td>ISAKMP メッセージの完全性の検証と鍵計算に使用するハッシュアルゴリズム</td></tr><tr><td>ライフタイム</td><td>ISAKMP SA の生存期間</td></tr><tr><td>認証方式(PSK)</td><td>IPsec 通信相手機器の認証方式</td></tr><tr><td>鍵交換方式(DH14)</td><td>鍵交換のためのアルゴリズム</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">具体的にそれぞれのパラメータがどのタイミングでどのような意図で使われるのか見ていこう。<br><strong>１．プロポーザルの交換<br></strong>　暗号化方式（aes）、ハッシュ方式(sha256)、認証方式(preshare)、鍵交換方式（DHグループ(14））、ライフタイム(7200)を生の状態で相手と交換して、二者間で取り決め（ポリシー）を作る。<br><strong>２．DH鍵交換<br></strong>　DHを使って今後の暗号化用の鍵、ハッシュ用の鍵のもとになる鍵(SKEYID)を生成する<br><strong>３．認証と改ざんチェック（ここから暗号化）<br></strong>　１で決めた暗号化方式（aes）、ハッシュ方式(sha256)、認証方式(preshare)に則り、２で作成された共通鍵(SKEYID)をベースにID（IPアドレスやホスト名）と要約情報（これまでのやり取りの）を暗号化して相手に送る。<br><strong>４．答え合わせとフェーズ１の完了<br></strong>　３のパケットを復号して自分がハッシュ方式(sha256)によって算出した要約情報と相手の要約情報が一致することを確認する。相手のIDが正しいことも確認する<br><strong>５．ライフタイムによるローテーション<br></strong>　２、３で作った鍵は１でやり取りした際のライフタイムに則り破棄されローテーションする。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">YAML</span><span role="button" tabindex="0" data-code="実例
#事前共有鍵の作成
crypto isakmp key &lt;key&gt; address &lt;IPアドレス&gt;

#フェーズ１
crypto isakmp policy &lt;ポリシー番号&gt;
encryption aes 192
hash sha256
authentication pre-share
group 14
lifetime 3600" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">実例</span></span>
<span class="line"><span style="color: #88846F">#事前共有鍵の作成</span></span>
<span class="line"><span style="color: #E6DB74">crypto isakmp key &lt;key&gt; address &lt;IPアドレス&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#フェーズ１</span></span>
<span class="line"><span style="color: #E6DB74">crypto isakmp policy &lt;ポリシー番号&gt;</span></span>
<span class="line"><span style="color: #E6DB74">encryption aes 192</span></span>
<span class="line"><span style="color: #E6DB74">hash sha256</span></span>
<span class="line"><span style="color: #E6DB74">authentication pre-share</span></span>
<span class="line"><span style="color: #E6DB74">group 14</span></span>
<span class="line"><span style="color: #E6DB74">lifetime 3600</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">p.16 表２　IKEフェーズ２で決定されるパラメータ</span></span></strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>パラメータ</strong></td><td><strong>説明</strong></td></tr></thead><tbody><tr><td>セキュリティプロトコル（esp か AH）</td><td>IPsec 通信で使用するセキュリティプロトコル</td></tr><tr><td>暗号化方式</td><td>IPsec 通信で使用する暗号化アルゴリズム</td></tr><tr><td>認証方式≒ハッシュ方式（sha-256）</td><td>IPsec 通信で使用する認証アルゴリズム</td></tr><tr><td>ライフタイム</td><td>IPsec SA の生存期間</td></tr><tr><td>通信モード</td><td>トンネルモード又はトランスポートモード</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">具体的にそれぞれのパラメータがどのタイミングでどのような意図で使われるのか見ていこう。<br><strong>１．プロポーザルの交換<br></strong>　セキュリティプロトコル(esp)、暗号化方式(aes-256)、ハッシュ方式（sha-256）、ライフタイム(3600)、通信モード(transport)を交換する<br><strong>２．本番鍵の生成<br></strong>　ナンスを交換し、その素材とフェーズ１で作成したSKEYIDをベースに、暗号化鍵、ハッシュ鍵を生成する。<br>　＊例外としてもし、PFSを導入する場合はフェーズ１と同様にDHで１から鍵を作り直す<br><strong>３．フェーズ２の完了</strong><br>　これ以降の通信はフェーズ１のトンネルは通らず、フェーズ２の鍵で実際に通信される</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">YAML</span><span role="button" tabindex="0" data-code="実例
#フェーズ２
crypto ipsec transform-set &lt;ts名&gt; esp-aes 256 esp-sha256-hmac
mode &lt;tunnel または transport&gt;" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">実例</span></span>
<span class="line"><span style="color: #88846F">#フェーズ２</span></span>
<span class="line"><span style="color: #E6DB74">crypto ipsec transform-set &lt;ts名&gt; esp-aes 256 esp-sha256-hmac</span></span>
<span class="line"><span style="color: #E6DB74">mode &lt;tunnel または transport&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><span class="fz-18px"><span class="fz-22px"><strong><span class="fz-20px"><span style="text-decoration: underline;">p.16 静的経路制御でも広域イーサ網との間で負荷分散を行うことができるが、運用管理を容易にするためにOSPFを稼働させたい</span></span></strong><br></span></span><strong>Q.静的制御でどうやってやるの？<br></strong>A.具体的には各拠点のプレフィックスなどからネクストホップをトンネルに設定したりする。しかし拠点のプレフィックスなどが増えるたびに、全拠点でスタティック設定を追加しなければならないため運用がとても大変。<br><strong>Q.負荷分散はどうやってやるの？</strong><br>A.同じ宛先に対してネクストホップを広域イーサ網とトンネルの２つを設定する。スタティック設定の場合、ただ２つを準備すれば勝手に負荷分散してくれるので、ルートマップやポリシー制御は特に不要。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">p.17 L2TP（Layer 2 Tunneling Protocol）</span></span></strong><br>まずはパケット構成から見ていこう。<br>[新IP][UDP][L2TP][PPP][IPパケット]のようになっている。<br>この図からわかる通り、L2TPだけでなく、PPPというヘッダも付加されていることが分かる。そのため、問題文中では単にL2TPと呼ばれているが厳密にいうと、PPP over L2TPのことである。なのでここからは問題文中のL2TPをPPP over L2TPと呼ぶことにする。<br><br><strong>Q.PPP over L2TPは認証に重きを置いている。ではなぜGREoverIPsecではL2TP,PPPのような大きな認証ヘッダが付加されないの？<br></strong>A.そもそもGRE over IPsecは拠点間通信に使われる。つまり、相互のルータの正当性が保証されている状態にある。そのため相手ルータ自体の認証機能はあるものの、ユーザ個人単位の認証は必要ないためそれに伴うヘッダも付加されない。一方、L2TPはリモートワークなどで動的に相手のIPアドレスが変わる環境で使われる。要は、信頼性が担保されない場面で使われる。そのためL2TPヘッダやPPPヘッダを別で付加して利用者個人に対する認証機能を装備する必要がある。要は、「GREoverIPsecは個人認証不要。逆にL2TPは個人認証が必須だからそれに伴いパケットサイズも増大してしまう」ということ。<br><br><strong>Q.PPPってなに？<br></strong>A.PPPはレイヤ２のプロトコル。つまり単体ではL3のルータを跨げないプロトコル。また、役割としては認証とIPアドレス配布を担う。具体的にどのように認証とIPアドレス配布が行われるのか手順を確認しよう。<br><strong>１．LCP（Link Control Protocol）フェーズ<br></strong>　お互いで「こういう通信にしようぜ」というのをすり合わせる<br><strong>２．認証フェーズ<br></strong>　チャレンジレスポンス方式などを使いユーザの認証を行う<br><strong>３．NCP(Network Control Protocol) / IPCPフェーズ<br></strong>　IPアドレスの払い出し<br>以上が大まかな流れなので軽く押さえておきましょう！</p>



<p class="wp-block-paragraph"><strong>Q.L2TPってなに？<br></strong>A.一言でいうと、「トンネリングプロトコル」。トンネルを張ることで同一のLANにいるかのような振る舞いができる。では、イメージしやすいようにL2TPのトンネリングまでの流れを見ていこう！<br><strong>１．物理IPの確認とTunnel IDの確認（Control Connection フェーズ）<br></strong>　PCから会社のルータに通信をして、「俺はTunnel IDの10番を使います！」と送り、ルータもPCに「では、私はTunnel IDの20番を使います！」と送る。それに対してPCが「OK、了解！」と送る。<br>　＊１つ目ののメッセージを<span class="marker-under">SCCRQ</span>と呼び、2つ目をを<span class="marker-under">SCCRP</span>と呼び、３つ目を<span class="marker-under">SCCN</span>と呼ぶ。<br><strong>２．Session IDの確認（Session フェーズ）<br></strong>　手順１では機器間で使う道に対するTunnel IDを確認した。次にやるのは実際にその道を使う人を識別するためのSession IDを交換する。PCは「俺はSession IDの200を使います！」と送り、ルータもPCに「では私は、Sessopn ID 220番を使います！」と送る。<br>　＊１つ目ののメッセージを<span class="marker-under">ICRQ</span>と呼び、2つ目をを<span class="marker-under">ICRP</span>と呼び、３つ目を<span class="marker-under">ICCN</span>と呼ぶ。<br><strong>３．ルータ側でSession IDごとに仮想的な箱を作っておく</strong><br>　ルータがSession IDごとに仮想的な箱(<span class="marker-under">Virtual-Access</span>)を作っておくことで、「あ、このSessionIDならこの箱に丸投げしよう」とタスクを分けることができる。この箱はLANと接続しており、通常通りプライベートIPアドレスでの通信が可能になる。ルータと内部LANの中間にこの箱を挟むことで、ルータが外側IPをはがした後に「え？急にプライベートIPアドレスのパケット出てきたけど。。。どういうこと？」という混乱を吸収できる。<br>上記手順によって、仮想的にトンネルを作り出すことができる。<br>なお、このようにL2TPでは通常のルータが行う単純な転送機能の範疇を越えている。そのため、既存のルータの挙動を重ね合わせて理解しようとするのではなく、L2TPにはL2TP専用の高性能なルータが必要であり、内部での処理も別次元のことをしているという前提を持っておく必要がある。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">p.18 PPPoE<br></span></span></strong>A.PPPoEが使われる理由を一言でいうと「宛先を明示的にするため」。PPPは１対１が前提であるため、宛先を指定せずに通信ができる。しかしイーサネットの場合は１対多を前提にしているため、PPPのように宛先を記さない場合、宛先が分からず破棄されてしまう。そこで、イーサネット上でも１対１の通信をするためにPPPをイーサネットでカプセル化して、宛先を明示させる。それによりはきされることなく通信することができる。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">p.18 図６　L2TP利用時の通信例</span></span></strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="808" height="421" src="https://ascend-beyond.com/wp-content/uploads/2026/07/image.png" alt="" class="wp-image-7802" srcset="https://ascend-beyond.com/wp-content/uploads/2026/07/image.png 808w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-300x156.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/07/image-768x400.png 768w" sizes="(max-width: 808px) 100vw, 808px" /></figure>



<p class="wp-block-paragraph"><strong>１．①PPPoEでインターネット接続可能にする<br></strong>　PCがインターネットを使えるようになるにはISPとPPPoE接続が必要になる。これによって自身のグローバルIPアドレスを取得してインターネットとの通信を可能にさせる。<br><em><span class="green">ここまでのパケット構成：[Ethernet][PPP][PPP接続制御データ]<br></span></em>　＊直接PCがIPアドレスを取得するというよりも家庭内Wi-FiルータがISPとPPPoE接続をしてIPアドレスを取得するケースが多い。内部のPCはルータから払い出されるプライベートIPアドレスを使い、ルータがそれをNAPT変換してPPPoEに流すという構成が一般的。<br>　＊正直現在においてはPPPoEよりもIPoEがデフォルトになっている。なのでPPPoEやL2TPはややレガシー寄りの技術。<br><strong>２．L2TPトンネルを作成する<br></strong>　手順１でグローバルIPを取得できたので、そのIPを使い会社のVPN装置とトンネルを作成する。<br>なお、依然としてISP経由の通信なのでPPPoEでのカプセル化は継続される。<br><em><span class="green">ここまでのパケット構成：[Ethernet][PPP][物理IP][TCP/UDP][L2TP]<br></span></em>　＊なお１回目の通信でPPP認証は終わったので、移行のPPPはセッションIDが格納される。それによりユーザを識別子、毎回毎回認証必須とならないようにする。<br><strong>３．PPPセッション確立</strong><br>　社内にいるかのような同一サブネットとして振舞わせるために、認証とIPアドレス払い出しをしてもらう必要がある。なお、L2TPでトンネル確立済みであるため、それがPPPの１対１通信をインターネットを跨いでも可能にしている。<strong><br></strong><span class="green"><em>ここまでのパケット構成：[Ethernet][PPP]<em>[物理IP][L2TP][VPN用PPP][社内IP][TCP/UDP]</em></em><br></span><strong>４．PCとサーバで通信</strong><br>　１～３までの手順により、社内サーバと同一サブネットとして振舞うことができるようになったので、実際に通信する。<br><span class="green"><em>ここまでのパケット構成：[Ethernet][PPP]<em>[物理IP][L2TP][VPN用PPP][社内IP][TCP/UDP]</em></em></span></p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">p.19 ESPヘッダ、ESPトレーラ、ESP認証データ</span></span></strong><br><span class="green">ESPヘッダ：</span>SPIとシーケンス番号を格納している。<br>　SPIはどのSAを使うかの識別子をあらわす。シーケンス番号はリプレイ攻撃に備え、同一のシーケンスは受け取らないようにすることで攻撃を防ぐ意味合いがある。<br><span class="green">ESPトレーラ</span>：パディングと次ヘッダーを格納<br>　パディングは暗号化処理等で切りのいいデータ長にするためのもの。暗号化をする際は切りのいいデータ長でないと動作しないことがある。そのため、穴埋めの調整役として使われる箇所。<br>　次ヘッダーは、次にどのようなパケットがあるか（IPv4なのかGREなのか..とか）を示すためのもの<br><span class="green">ESP認証データ</span><span class="green">≒ICV（Integrity Check Value）</span>：ESPヘッダ～ESPトレーラまでをハッシュ化した値を格納する。<strong><span class="fz-20px"><span style="text-decoration: underline;"><br></span></span></strong></p>



<p class="wp-block-paragraph"><span class="fz-20px"><strong><span style="text-decoration: underline;">p.20 GREトンネルとルーティングの挙動</span></strong><br></span>GREトンネルを作成した時のルーティングの挙動を見ていこう！なぜ、対向のトンネルで同一プレフィックスを使っているのか？なぜ、宛先を対向ルータIPにせず対向トンネルIPにするのか？<br>様々な疑問を解消していこう！ここでは、以下の構成に当てはめながら進めていく。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">YAML</span><span role="button" tabindex="0" data-code="#全体像
LAN 10.0.0.0/8
Tunnel 172.16.10.1/30
A拠点
WAN100.0.0.1/24
|
|
|
|
|
|
WAN 200.0.0.1/24
B拠点
Tunnel 172.16.10.2/30
LAN 192.168.0.0/16
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#全体像</span></span>
<span class="line"><span style="color: #E6DB74">LAN 10.0.0.0/8</span></span>
<span class="line"><span style="color: #E6DB74">Tunnel 172.16.10.1/30</span></span>
<span class="line"><span style="color: #E6DB74">A拠点</span></span>
<span class="line"><span style="color: #E6DB74">WAN100.0.0.1/24</span></span>
<span class="line"><span style="color: #F92672">|</span></span>
<span class="line"><span style="color: #F92672">|</span></span>
<span class="line"><span style="color: #F92672">|</span></span>
<span class="line"><span style="color: #F92672">|</span></span>
<span class="line"><span style="color: #F92672">|</span></span>
<span class="line"><span style="color: #F92672">|</span></span>
<span class="line"><span style="color: #E6DB74">WAN 200.0.0.1/24</span></span>
<span class="line"><span style="color: #E6DB74">B拠点</span></span>
<span class="line"><span style="color: #E6DB74">Tunnel 172.16.10.2/30</span></span>
<span class="line"><span style="color: #E6DB74">LAN 192.168.0.0/16</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph"><strong>１．A拠点LAN（10.0.0.0/8）がB拠点LAN（192.168.0.0/16）への接続を図る<br>２．A拠点ルータが192.168.0.0/16へのネクストホップを検索する<br></strong>　スタティック設定をしている場合は、ネクストホップがB拠点のトンネル（172.16.10.2）になる</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">YAML</span><span role="button" tabindex="0" data-code="#拠点Aスタティック設定例
ip route 192.168.0.0 255.255.0.0 172.16.10.2" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#拠点Aスタティック設定例</span></span>
<span class="line"><span style="color: #E6DB74">ip route 192.168.0.0 255.255.0.0 172.16.10.2</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>３．172.16.10.2へはどのインタフェースから流せばよいかを検索する。（再帰検索）<br></strong>　その結果、A拠点のトンネルインタフェースからの出力であることを判明させる。<br><strong>４．トンネルから経由する際にGRE処理を実施する<br></strong>　GRE処理とはGREヘッダーの付加や新しい外側IPアドレスの付加を意味する。<br>＊もし、GREヘッダがないと受信側は外側IPを剥がした途端にプライベートIPアドレスがでてきて、混乱してしまう。そうならないように、GREで中身はIPv4ですよ！マルチキャストですよ！これはトンネルですよ！と教えてあげることで、処理をスムーズに進める役割を担う。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">YAML</span><span role="button" tabindex="0" data-code="#拠点Aのトンネル設定
interface Tunnel0
ip address 172.16.10.1 255.255.255.252

tunnel source Gi0/0
tunnel destination 200.0.0.1

!Tips
上記コマンドにより、トンネルのIPアドレスを設定し、トンネルの物理的な送信元IPと宛先IPを指定する
トンネルの送信元をインタフェースにすることでIPアドレスの変更にも対応できる" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#拠点Aのトンネル設定</span></span>
<span class="line"><span style="color: #E6DB74">interface Tunnel0</span></span>
<span class="line"><span style="color: #E6DB74">ip address 172.16.10.1 255.255.255.252</span></span>
<span class="line"></span>
<span class="line"><span style="color: #E6DB74">tunnel source Gi0/0</span></span>
<span class="line"><span style="color: #E6DB74">tunnel destination 200.0.0.1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #66D9EF; font-style: italic">!Tips</span></span>
<span class="line"><span style="color: #E6DB74">上記コマンドにより、トンネルのIPアドレスを設定し、トンネルの物理的な送信元IPと宛先IPを指定する</span></span>
<span class="line"><span style="color: #E6DB74">トンネルの送信元をインタフェースにすることでIPアドレスの変更にも対応できる</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>５．インターネットへ流す<br></strong>　GRE処理が終わるとインターネットを跨げる状態になるので拠点BのWAN側インターフェースまでパケットを流す<br><strong>６．拠点BのWAN側インタフェースからトンネルへ</strong><br>　外側IPアドレスとGREヘッダから、「これはトンネルの通信だ！」と判断し、トンネルインタフェースに流す。なお、拠点Bのルータは、送信元と宛先のペアから適切なトンネルを判断する。<br>　＊万が一、送信元と宛先のペア内に複数のトンネルを作りたい場合は、特別にキーを指定することで識別を可能にする。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">YAML</span><span role="button" tabindex="0" data-code="# トンネル0と1で、GREヘッダーの中に別々の「合言葉（Key）」を埋め込む設定
(config-if)# tunnel key 100  (Tunnel 0用)
(config-if)# tunnel key 200  (Tunnel 1用)" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F"># トンネル0と1で、GREヘッダーの中に別々の「合言葉（Key）」を埋め込む設定</span></span>
<span class="line"><span style="color: #E6DB74">(config-if)# tunnel key 100  (Tunnel 0用)</span></span>
<span class="line"><span style="color: #E6DB74">(config-if)# tunnel key 200  (Tunnel 1用)</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>７．トンネルインタフェースから内部LANへ<br></strong>　トンネルの出口でGREヘッダを剥がす。そこでトンネル通信が終端して、あとは、通常通り内部LAN側インタフェースからパケットを送信する。<br>以上、これがGREトンネルの流れ。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">Q. そもそもPC同士が通信する必要ある？特定のサーバをNAPTすればトンネルとかいらなくね？<br></span></span></strong>A.実はPC同士でやり取りする機会はめっちゃ多い。そのためすべてをNAPTしていたらマッピングテーブルを手動で何百回も設定しなおす必要があるため、とても大変になる。また、内部のPCをNAPTできてしまうと、外部の攻撃者も内部PCにアクセスできてしまうのでセキュリティリスクがある。<br>では、具体的にPC同士の通信をするケースを見ていこう。<br><strong>①IT管理者によるリモートデスクトップ接続：<br></strong>　社員のPC不具合時などにリモデでIT管理者が直す際に、社員ごとにポートを割り当てたり、切り替えたりするのは効率的とは言えない。それよりも同一サブネットのように扱わせればプライベートIPアドレスでやり取りができるようになる。<br><strong>②配信最適化（Windowsアップデート等）：<br></strong>　Windowsのアップデートなどで全PCがMicrosoftのサーバにファイルを取りに行くとインターネット回線が圧迫される。しかし同一のサブネットであればPC同士で「君、ファイル持っている？」とやり取りしてもっていたら近くのPCからファイルをもらえるようになる。これによりインターネット回線によるシェーピングやポリシングなどの制限を受けることなくLANのMAXを引き出しダウンロードの高速化をすることができるようになる。<br><strong>③分散コンパイル：<br></strong>　3Dグラフィックなどの多くのCPU処理を必要とする場合、処理を空いているPCに分散して割り振るということができる。しかし、空いているPCは常に固定ではないのでNAPTで対応しようとすると面倒くさい。そのため「トンネル使ったほうがいいよね！」というケースがある。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><strong><span style="text-decoration: underline;">p.21 OSPFのリンクステート情報の交換は、L3SWとIPsecルータのWANへのアクセス回線を接続するポートだけでなく、L3SWとIPsecルータを直接接続するポートでも行わせる。</span></strong></span><br>IPsecルータとL3SW間で直接OSPFを動作させることで経路の冗長化が可能になる。冗長化することで、同一宛先に対して、複数の経路を持てるようになる。もし、一方のWAN回線が切れたら、優先度が低かった経路情報がルーティングにのってそれに従ってほかのWAN回線から通信ができるようになる。<br><span class="fz-20px"><br></span></p>



<p class="wp-block-paragraph"><br><strong><span class="fz-20px"><span style="text-decoration: underline;"><span class="green"><br></span></span></span><span class="marker-under"><em><br></em></span></strong><br></p>



<p class="wp-block-paragraph"><br><br><strong><span class="fz-20px"><span style="text-decoration: underline;"><br></span></span></strong></p>



<p class="wp-block-paragraph"><br><br><strong><br><br></strong></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>平成28年（2016年）ネスペ午後Ⅱ　問一　解答解説</title>
		<link>https://ascend-beyond.com/study/7750/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 21 Jun 2026 04:33:49 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7750</guid>

					<description><![CDATA[設問１（２）131,072　１つのIPアドレスで使えるポートは2^16(65,536)個。問題文中に２つのIPアドレスを使用すると書かれているので、A.65,536×２＝131,072＊ポート番号は16ビットで表現される [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問１<br></strong></span></span></span><strong><span class="fz-20px"><span style="text-decoration: underline;">（２）131,072　<br></span></span></strong>１つのIPアドレスで使えるポートは2^16(65,536)個。<br>問題文中に２つのIPアドレスを使用すると書かれているので、<span style="text-decoration: underline;">A.65,536×２＝131,072</span><br>＊ポート番号は16ビットで表現される。なので、2^16</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px"><span style="text-decoration: underline;">（３）①許可する通信を追加する/②宛先NATに関する定義を追加する<br></span></span></strong>①許可する通信を追加する：Webサーバが増えるということはそこに到達させるためのIPアドレスが必要になる。そしてそれをクライアントが接続要求した際に届かせる必要がある。なので、それを許可リストに入れる必要がある<br>＊ACLの場合、許可しないと暗黙のdenyによって拒否されてしまうので明示的に追加する必要がある。<br>②宛先NATに関する定義を追加する：p.4の5行目でIPアドレスの組み合わせは１対１に固定とある。なので、Webサーバが追加されたら、そのプライベートIPアドレスをグローバルIPアドレスに対応づける必要があるのでNATの定義を追加する必要がある。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問２</strong></span></span></span><br><span class="fz-20px"><span style="text-decoration: underline;"><strong>（２）応答が行きの宛先IPアドレスとは異なる送信元IPアドレスから戻る</strong><br></span></span>なぜ、これが問題なのか&#8230;？　→クライアント側でステートフルインスペクションを設定していると、意図した送信元からではない通信が来ることになるので、そのパケットは拒否されることになる。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問３</strong></span></span></span><br><strong><span class="fz-20px"><span style="text-decoration: underline;">（３）vlan1,vlan2<br></span></span></strong>この回答はつまり、STUNサーバ１，２がL2SW1とL2SW2にそれぞれ接続することを意味している。<br><strong>Q.FWよりも外にSTUNサーバを配置しちゃったら外部ユーザにも利用され放題じゃない？危険じゃない？<br></strong>A.L2SWのACLやSTUNサーバ自体のホストFWで防御が可能。また、STUNサーバには内部情報が入っているわけではないので外部から利用されても特にセキュリティ上問題ない。<br>＊L2SWというとIPアドレスやポートが見れないイメージだがACLなどの適用は可能</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問４</strong></span></span></span><br><span class="fz-18px"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（１）カ：HTTP　キ：WebSocket</strong><br></span></span></span>カについては、問題文中にWebRTCを使う旨の記載がある。つまり、接続の開始はHTTPであると判断できる。キのWebSocketについては図6中にUpgrade:websocketとあるようにSIPでは自発的な双方向通信が求められるため、WebSocketが該当する。また、問題文中のキの後に「切り替え」という文字から、HTTPから切り替えできるのはWebSocketだ！という発想になる。<br><br><strong>Q.HTTPが使われる理由&#8230;<br></strong><em>A.問題文中にはブラウザを使って音声のやり取りをする旨の記載がある。スマホ用のアプリケーションであれば独自のさまざまなプロトコルが使える。しかし、ブラウザでは基本的にHTTPが主流。なので、ブラウザをつかって何かをしたいなら、まずはHTTPベースで考えましょうね！ということ。</em><br>そして今回の話にすり合わせると、WebRTCを使う旨の記述がある。WebRTCという「専用のアプリ/プラグインを必要としない仕組み」上、ブラウザのHTTPで始める必要があるというわけです。<br><br><strong>Q.WebSocketってそもそもなに？&#8230;<br></strong>A.HTTPの拡張機能。従来のリクエスト/レスポンス方式から双方向通信が可能となるように拡張された。そのためSIPなどにおいて、もし、リクエスト/レスポンス方式のままだとクライアントはサーバに対して「僕に対する着信ある？」を定期的に聞きに行く必要がある。これは端末のバッテリー、通信料、サーバ負荷などいろいろとデメリットがある。しかしWebSocketであれば、着信があればサーバ側から呼び出しが可能であるため必要な時に必要な分だけ自由に通信できるようになる。<br><br><strong>Q.WebSocketが使われる理由&#8230;<br></strong><em>A.HTTPはリクエスト/レスポンス方式。つまり、サーバ側から自発的にデータを送ることができない。しかしSIPにおいては、両者とも自発的に通信を開始できるようにしたい。かつ、それらの動作を、ブラウザ（HTTP）上で実行したい。この</em>２つの<em>条件を満たせるのがWebSocket。だからWebSocketが使われる。</em><br><em><br></em><strong>Q.なんで最初からWebSocketじゃないのか&#8230;<br></strong><em>A.WebSocektはHTTPの拡張。そのため、まずHTTPで通信を整えてからじゃないと使えない。最初からWebSocketでやるのは仕様上、不可能。</em><br><br><strong>Q.なんでアプリケーション層のプロトコルをアプリケーション層のプロトコルでカプセル化しているの？&#8230;<br></strong>A.SIPはアプリケーション層プロトコル。WebSocketもアプリケーション層のプロトコル。そのままSIP送っちゃだめの？という疑問がある。通常は[IP] [TCP/UDP] [SIP]のような構成で十分。しかしWebRTCだと[IP] [TCP] [WebSocket] [SIP]になっている。そこにはブラウザのルールがある。ブラウザはブラウザ自身が認めたプロトコル（HTTP、WebSocket）以外は基本的にそのまま送信しちゃいけない。なのでSIP通信は許可されたWebプログラム（JavaScript）ではないのでWebSocketに包んでいる。<br><br><strong>Q.ブラウザが許可されていないプロトコルをHTTPやWebSocketで包むメリット&#8230;<br></strong>A.通信をブラウザ管理下にすることができる。<br><br><strong>Q.なんでRTPはWebSocketでカプセル化しないの？&#8230;<br></strong>A.RTPに関してはブラウザが自分で作ったデータだからWebSocketなどで包む必要がない。Webプログラム（JavaScript）などはサーバ側によって挙動が決まってしまう。そのため安全性をもとめてHTTPやWebSocketで包む。しかしRTPの場合はブラウザ側に主導権があり、ブラウザがパケットを作成するため信頼性があるためわざわざ包まなくてもよい。<br>また、RTPは即時性を求めるUDPであるためHTTPやWebSocketのようなTCPだとオーバーヘッド等の点を考慮すると包むべきではない。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（２）ISP１とISP2から払い出されたIPアドレスを一つずつ割り当てる。</strong></span></span><br>2つの異なるISPから払い出されたIPアドレスを割り当てないと意味ないよねと。そうしないと、もしも同一のISPから払い出されたIPアドレスを登録していたら、そのISP、1つが落ちたらIP－PBX自体が機能しなくなってしまう。なので、異なるISPから払い出されたIPアドレスを自社DNSのAレコードに登録して、そうすることによって名前解決で2つの異なるISPからのIPアドレスをクライアントに返すことができる。そうなれば1つのISPが落ちたとしても、もう一方の方のISPでのアドレス空間は生きているので、そっちでカバーが可能だよねっていうこと。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（３）vlan１,vlan2</strong></span></span><br>IP-PBXはインターネットからのパケットをFWを通す前の段階で受け取りたいから。そして、マルチホーミングをするという観点で、２つのISPを利用できるようにL2SW1（vlan1）とL2SW2(vlan2)に接続する必要がある。<br><br><strong>Q.IP-PBXをFWの内側に配置しなくてもいいの？<br></strong>A.注目すべきはp.9に記載されている&#8221;IP-PBXはSessionBorderControllerとして動作し、グローバルIPアドレスとプライベートIPアドレスを変換する&#8221;という箇所。そもそもSBCは、一般的なWebサーバとは異なり、音声通信に特化したサーバである。また、セキュリティ的にもSBCには強固な音声専用FWが搭載されていることが多い。そのためFWの内側に配置しなくてもセキュリティ的には問題ない（むしろ配置すべきでない）。<br><br><strong>Q.IP-PBXをFWの内側に配置すればよくね？<br></strong>A.一見すると、FWの内側に配置すればSBCの強固なセキュリティとFWのフィルタリングによって二重のセキュリティを享受できると感じる。しかし、実際はFWの外側でなくてはならない理由がある。<br>理由：音声通話に使うRTPは動的にランダムなポートを使用する。基本的にFWは事前定義されたルールに従ってフィルタリングする。しかし、動的ランダムポートだと制御ができず誤ってブロックしてしまうことがあるため。そのためFWよりも外側に配置する必要がある。<br>図３を見ると、IP-PBXはL3SW1に直接ぶっ刺さってバイパスされているので構成的にFWを通らなくてもよいという美しい構成になっている。</p>



<p class="wp-block-paragraph"><strong>Q.SBCのB2BUAのセキュリティ担保について&#8230;<br></strong>A.B2BUAは外側と内側のセッションを完全に分断する。つまり、FWやルータのように外部からのパケットをそのままバイパスするわけではなく、仲介役（ここではIP-PBX）が新たにパケットを０から作りなおして内側に送りだす。そのため、外部からきた悪意のあるパケットも、仲介役が内側へのパケット構築中に「ん？これおかしいぞ」と、きづくことができ、遮断できる。<br>似ている概念としてはSSLインスペクション。これも外と内のセッションを完全に分断することで仲介役が主導権を握り、パケットの検査等がしやすくなるというもの。</p>



<p class="wp-block-paragraph"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（４）ク：IP-PBX　ケ：DNS　コ：LB</strong></span></span><br>通信の手順と照らし合わせることで納得できる。<br>以下の手順３，４，５より問題文中の空欄の回答はク：IP-PBX　ケ：DNS　コ：LBになる。<br>１．クライアントがWebブラウザでAPサイトにアクセス<br>２．URLから名前解決をしてA社のWebサーバからプログラム（JavaScript）をダウンロードする<br>３．２のプログラム内に「<strong>IP-PBX</strong>はこのFQDNですよ。接続してくださいね！」という命令があるのでそれに従う。<br>４．３の命令に従いAPはIP-PBXのFQDNの名前解決をするため<strong>DNSクエリ</strong>を発行する<br>５．IP-PBXの権威DNSはA社の<strong>ロードバランサー（LB）</strong>になるので、最終的にそこからIP-PBXのAレコードを取得する<br>６．そのAレコードに従ってIP-PBXに対してHTTPでセッションを確立し、WebSocketに切り替える<br>　＊ブラウザを使っているので直接SIP接続ではなくHTTPを挟む必要がある。また、WebSocketに切り替えることで自発的な双方向通信ができるようになる。その結果、発信だけでなくサーバからの着信にも対応できるようになる。</p>



<p class="wp-block-paragraph"><span class="fz-16px"><span class="fz-22px"><span class="fz-28px"><strong>設問５</strong></span></span></span><br><span class="fz-18px"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（１）サ：切り戻し</strong></span></span></span><br>切り戻し：システムの切り替えを試みたけど、正常にいかなかったから元の状態に戻すこと。</p>



<p class="wp-block-paragraph"><span class="fz-18px"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（２）FQDNの数：１　グローバルIPアドレスの数：４</strong></span></span></span><br>マルチホーミングを実施していてもFQDNは１つで十分。そのFQDNに対するＡレコードを冗長化していればマルチホーミングを構成できる。逆に増やしてしまうとDNSサーバ管理などが複雑になってしまう。そのためFQDNは１つでよい。<br>グローバルアドレスについては、ISP１とISP２から割り当てられているIPアドレスをそれぞれ１つずつ割り当てることでマルチホーミングが可能。また、問題文中のp.4の3~5行目に&#8221;変換前のIPアドレスの組み合わせは１対１に固定&#8221;とある。これはもし、シングルホーム（１つのISP）で、2台のWebサーバで運用していたとしても、１つのWebサーバに１つずつのグローバルIPアドレスが必要ということになる。そして、今回のケースは２つのISPを使っているので、必然的に１つのWebサーバにはISP１のIPアドレスとISP2のIPアドレスが必要になり、それが２台の構成なので「２つのIP×２台のWebサーバ＝４」ということになる。<br><strong>別ケース①</strong>：もし、３つのISPを使って、２台のWebサーバ構成なら、１つのWebサーバに３つのIPを割り当てる必要があるので「３つのIP×２台のWebサーバ＝６」。このようなIPアドレス構成になる。<br><strong>別ケース②</strong>：もし、１対１のstatic方式ではなく宛先NAT方式（DNAT）ならどうなるか。。。答えは「２つのグローバルIP」で構成可能。２つのISPから払い出されたIPアドレスをLBの仮想IPとして、DNSに登録しておく。そうすれば、あとは内部で勝手にWebサーバ１、２に分散される。１つのISPが落ちても残りのISPからのアドレスでWebサーバ１，２への分散通信は継続される。</p>



<p class="wp-block-paragraph"><span class="fz-18px"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（３）IP-PBX,STUNサーバ１,STUNサーバ２</strong></span></span></span><br>IP-PBXについては、設問４（４）にもある通り、WebSocketでSIPをやり取りする必要があるので事前にIP-PBXの名前解決が必要となる。<br>STUNサーバ１とSTUNサーバ２についてはSIPセッションで自分の外部用のIPアドレスを知っておく必要があるため名前解決が必要になる。<br><br><strong>Q.STUNサーバが２つある意味は？</strong><br>A.マルチホームしているため、内部ユーザは結果的に２つのIPアドレス空間を使えるようになる。そのためSIPに指定する自分のIPアドレスの候補として２つのIPアドレスを準備しておく必要がある。<br>もし、１つのSTUNサーバしか利用しないと１つのISPからのアドレス空間しか返せない。。その結果、１つのISPで障害が起きるとSIPセッション自体も成立させることができなくなってしまう。</p>



<p class="wp-block-paragraph"><span class="fz-18px"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（４）FW</strong></span></span></span><br>2通りの定義ファイルとは変更前と変更後のファイルをあらわしている。つまり、変更前後の両方に存在する機器だなぁと推測を立てる。その中で、主に設定変更が必要な機器は何か。。と考えるとFWが浮かび上がる。変更前のFWはDNS機能、NAT機能等を実装していた。しかし変更後はLBに引き継いでいる。そのように変更前後で設定する内容が違うのはFWなので答えもFWになる。</p>



<p class="wp-block-paragraph"><span class="fz-18px"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（５）①社外からWebサーバへのアクセス / ②社内からWebサーバへのアクセス  / ③社内からインターネットへのアクセス</strong></span></span></span><br>①社外からWebサーバへのアクセス：社外→Webサーバへの経路途中に新規LBが追加されたので、その新規LBの動（DNS機能やNAT機能等）作、並びに変更後のFW設定（フィルタリングの改修等）が正常に設定されていることを確認する<br>②社内からWebサーバへのアクセス：社内→Webサーバへの通信においては、こちらもFW（フィルタリング）やLB（WebサーバへのDNS機能等）を利用するため正常に動作することを確認する<br>③社内からインターネットへのアクセス：こちらもFW,LBを経由するため正常な動作を確認する必要がある。<br>まぁそもそもA社においては上記３つの通信しか基本的に発生しない。なので、「配置変換や設定変更を実施したから特定の経路を検査しよう！」というよりも、そもそも３つしか存在しないので難しく考え過ぎずわからないかったら思い浮かぶ通信の種類を記述するというのも一つの手。</p>



<p class="wp-block-paragraph"><span class="fz-18px"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（６）ISP２を経由した外向きDNS機能を確認する</strong></span></span></span><br>問題文中の下線(n)には&#8221;ドメイン登録事業者に~~&#8221;と記されているためDNS関係の処理であることが推測できる。さのため、マルチホーミングに必要なDNS関係の処理を頭に浮かべることで答えが導き出される。では、具体的にどうのようなDNS設定が必要かを見ていこう。<br>１．マルチホーミングをするためにはA社のDNSサーバ（LB）自体のIPアドレスにISP１とISP２のIPアドレスを割り当てる必要がある。<br>２．また、そのA社DNSサーバまでたどり着くには上位DNSサーバがA社DNSサーバのホスト名とIPアドレスを把握しておく必要がある。<br>３．上位DNSサーバは自動でA社が追加したISP2のIPアドレスを反映させることはできない。<br>４．そのため、A社側が上位DNSサーバに対して、「僕はこのFQDNの権威DNSサーバです。で、IPアドレスはこれとこれです！」と上位に登録して教えてあげる。<br>５．そうすると上位DNSサーバがA社のドメインに対する名前解決を受けると、「A社ドメインの権威DNSサーバはこのFQDNで（NSレコードで提示）、IPアドレスはこの２つですよ（グルーレコードで提示）」と教えてくれる<br>６．クライアントは２つのAレコードから接続可能なIPアドレスへ接続する。<br>上記手順により、もしISP１に障害が発生したとしても、ISP２のDNSで名前解決できるためサービスの継続利用、つまりマルチホーミングの旨味を享受できるようになる。<br>おっと、話を元に戻すと、今回確認したいことは、上記手順４と５のテスト。つまり、ISP２側のDNS設定が正しく設定されており、そのルート使ってアクセスできるかを確かめる。それを簡単に表現すると回答のように&#8221;ISP2を経由した外向きDNS機能を確認する&#8221;となる。</p>



<p class="wp-block-paragraph"><span class="fz-18px"><span class="fz-20px"><span style="text-decoration: underline;"><strong>（７）①&#8217;、③、④</strong></span></span></span><br>①：ブラウザ１（外部）からSTUNへはFWを経由しないため特に追加設定は<span style="text-decoration: underline;">不要</span>。そのため回答から除外<br>①&#8217;：STUNサーバは切り替え２によって追加された機器。そしてブラウザ２（内部）から新設されたSTUNに行くにはFWを経由する必要がある。つまりFWの設定を変更する<span style="text-decoration: underline;">必要</span>があるので回答に記載<br>②：Webサーバを使った通信。これは既存環境と同じなので特に追加設定は<span style="text-decoration: underline;">不要</span>。そのため回答から除外<br>③：社内から外についてのUDPポートを許可する設定が必要。WebRTCではP2P通信をしたいので固定されたポートではなく、その都度ユーザ間で動的にポートが決定される。そのため、その動的なポートを許可する設定を追加する<span style="text-decoration: underline;">必要</span>がある。<br>④：③と同様の理由。動的ポートを許可する設定を追加する<span style="text-decoration: underline;">必要</span>がある。<br>以上より「切り替え２で許可する通信」は①&#8217;,③,④となる。</p>



<p class="wp-block-paragraph"></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><span class="fz-18px"><strong>p.3 マルチホーミング</strong><br></span>Q.マルチホーミングを有効にするための前準備&#8230;<br>A.外部との接続点を増やせば勝手に冗長化できるわけではない。DNS設定の変更や各サービスに複数のIPアドレスを割り当てたりしたりといろいろとやることがある。<br><strong>落とし穴１</strong>：例えば、自社のDNSサーバのAレコードに<a href="https://example.com">https://example.com</a>に対するIPアドレスを異なるISPから割り当てられたIPアドレスを登録しただけではマルチホームにならない。<span class="marker-under"><br></span>しっかりと自社DNSサーバ自体にも複数のIPアドレスを割り当てなければならない。なぜなら既存契約のISPに障害があればそもそもDNSサーバに名前解決要求が届かず<a href="https://example.com">https://example.com</a>に設定した２つのAレコードが提供できないから。<br><strong>落とし穴２</strong>：また、自社DNSサーバ自体に複数のAレコードを追加するだけでもマルチホームにはならない。その自社DNSサーバの上位DNSサーバの、グルーレコードとして、既存のDNSサーバIPだけでなく新規ISPから割り当てられたIPアドレスも登録しておく必要がある。これにより、マルチホームできるようになる。<br><br><strong>Q.DNSの流れ　https://example.comの名前解決の流れ<br></strong>１．クライアントが当該サイト<a href="https://testapp.example.com">https://example.com</a>/test.phpを開こうとする<br>２．まずは「.（ルート）」に、「example.com」を管理しているDNSサーバのFQDNを聞く<br>３．ルートが.comを管理しているDNSサーバのFQDN（NSレコード）とグルーレコード（≒Aレコード）をくれる<br>４．３のAレコードのIPアドレスをもとに.com権威DNSサーバに「example.com.」のを管理しているDNSサーバのFQDNを聞きに行く<br>５．com.権威DNSサーバがexmaple.com.の権威DNSサーバのFQDN（NSレコード）とIPアドレス（グル－レコード）を返してくれる<br>６．example.com.の権威DNSサーバが分かったので、そのDNSサーバにexample.com.のIPアドレス＝サービスを提供しているWebサーバのIPアドレスを教えてくださいと要求<br>７．example.com.権威DNSサーバがexample.com.のAレコードを教えてくれる<br>８．クライアントは7をもとに、Webサーバへアクセスする<strong><br></strong><br><strong>p.3 表１　ip1/29　<br></strong>このアドレス空間で使えるIPアドレスの個数は32-29=3  2^3=8 ネットワークアドレスとブロードキャストアドレスの２つを引くと8-2＝６　つまり6個のアドレスが使えることになる</p>



<p class="wp-block-paragraph"><strong>p.4 NAT</strong><br>NATには複数の種類がある。<br>１．SNAT(Source NAT):送信元を書き換える。主に内から外の通信に使われる。<br>２．DNAT(Destination NAT):宛先を書き換える。主に外から内の通信に使われる。<br>３．静的NAT(Static NAT):変換前IPと変換後IPを１対１の固定する。これにより外から内への通信もスムーズにさせる。<br>５．動的NAT(Dynamic NAT):プールされたIPアドレスから、その都度割り当てる。。そのため外から内へ始まる通信には不向き。</p>



<p class="wp-block-paragraph"><strong>p.4 FWのDNSラウンドロビン機能<br></strong>Webサービスのドメインに対応するIPアドレスを負荷分散対象先となるWebサーバの複数IPアドレスに対応づけた複数のAレコードを準備する。それをDNS要求のたびに順番に返していくことで負荷が分散される</p>



<p class="wp-block-paragraph"><strong>p.4 負荷分散装置（以下、LBという）があり、この装置は負荷分散機能のほかにDNS機能～<br></strong>LBのDNS機能：LBが死活監視をして死んでいる回線があれば、それに付随するDNSレコードを返さないようにするといった動的な制御が可能になる</p>



<p class="wp-block-paragraph"><strong>p.5 STUN<br></strong>自分が外部と通信しているときに、NATで変換された後の送信元IPアドレス＆送信元ポート番号を知ることができる<br>*不随として<strong>ステートフルインスペクション</strong>、<strong>ホールパンチング</strong>、<strong>フルコーンNTA</strong>、<strong>TURN</strong>も頻出する<br><br>*<strong>ステートフルインスペクション：</strong>自分→外への通信の戻りパケットしか受け取らない仕組み。つまり、外から始まる通信は拒否される。なお、ステートフルインスペクションには２つの手法（フルコーンNATと制限型コーンNAT）がある。<br><br>*<strong>フルコーンNAT：</strong>一言でいうと制限がガバガバなやつ。１度、内から外に出たポート番号あてに、外部から通信がきたらそれを許可する。つまり判断基準がポート番号のみ。<br><br>*<strong>シンメトリックNAT：</strong>宛先ごとに異なるポート番号を使うNAT。そのためSTUNとの相性は悪い。STUNで得たIPアドレスとポート番号は、あくまでもSTUN宛の情報。異なる宛先には異なるポート番号を使うので、ホールパンチングを実行しても実際に相手と使うポート番号は違うので、ステートフルインスペクションに引っかかってしまい通信ができなくなる。<br><br>*<strong>ホールパンチング：</strong>ステートフルインスペクションの対策として、あらかじめ相手側に通信を図りルータに内から外の通信として記憶させる。そうすれば、相手側からきた通信を許可できるようになる。<br>なお、最初のホールパンチングの通信は相手にブロックされても問題ない。あくまでも自分側の機器がその相手と通信したよという情報を記憶できればブロックされても問題ない。<br><br>*<strong>TURN</strong>:シンメトリックNATの場合、ホールパンチングは不発に終わる。その解決策を提供するのがTURN。仕組みとしては、あらかじめ双方の端末からTURNサーバとセッションを作っておく。TURNはそのセッションを使い双方の中継処理をする。そうすれば、相手側のポート番号が動的に変わってもTURNでそれを吸収できる。手順↓<br>　１．クライアントはTURNサーバにIPアドレスとポートの払い出しを求める<br>　２．TURNから配られたIP、ポートをSIPなどの内部情報に登録して使う<br>　３．２で得た情報をお互いが把握して、お互いがTURNサーバ宛てに送信する<br>　４．TURNがセッション情報から適切なクライアントにパケットを振り分ける。<br>つまり、クライアントはお互いの実際のIPアドレスは知らないし、知る必要もないということ。なので、シンメトリックでポートが不安定な環境でもTURNを挟めば安定して通信ができるようになる</p>



<p class="wp-block-paragraph"><strong>p.5 STUNサーバはNATより外側に配置しないと意味ないのでは？でもA社は内側にある。どうやってグローバルIPとポート番号知るの？</strong><br>A.STUNサーバにグローバルIPアドレスを割り当てる。それに対してクライアントがリクエストを送れば、STUNサーバ自体が内部にあっても、トラフィックの流れとしてはNATを越えることができる。なので、STUNサーバ自体が内側に配置されていも機能する仕組みになっている。<br>また、設問の図をみるとNATよりも内側に見えるが読み進めていくと、STUNサーバの接続先はL2SW1とL2SW2であることが分かる。つまり、実質NATよりも外側に配置されていることになる。</p>



<p class="wp-block-paragraph"><strong>p.5 ISP2を経由してもそのDNS機能を提供できるように、ドメイン登録事業者に定義の追加を依頼する。</strong><br>A社のDNSサーバとして、現状のISP１のIPアドレスと新規のISP２のIPアドレスを割り当てる。しかし、そのままだと新規のISP２のIPアドレスには届かない。なので、上位ドメイン登録事業者に、A社のDNSサーバのFQDNに対するAレコードとしてISP２のIPアドレスも登録する。そうすれば、ISP１に障害が起きてもA社のDNS名前解決機能は維持し続けるのでユーザからの通信も維持することができる。</p>



<p class="wp-block-paragraph"><strong>p.6 WebRTC</strong><br>ユーザのブラウザ同士が、データ通信においてサーバなどを挟まずに直接P2Pビデオ通話や音声通話をする技術。<br>今まではYouTubeなどのように、YouTubeサーバに動画などの情報を取りに行っていた。しかし、WebRTCであれば、最初のきっかけはWebサーバなどを使うが実際のデータ通信はユーザ同士で直接やり取りする。これにより、回線負荷やサーバ負荷を抑えることができる。</p>



<p class="wp-block-paragraph"><strong>p.6 APをダウンロードしたブラウザ<br></strong>「URLを開いて、プログラムのコードをブラウザのメモリ上に読み込んだ状態」のことを、いっちょまえに「APをダウンロードした」と表現しているだけ。<br>WebRTC以前は、専用の <code>.exe</code> をダウンロードしてインストールしたり、ブラウザのプラグイン（拡張機能）をインストールしなければならなかった。でも、WebRTCではURLを開けば簡単に利用できますよ！というのを強調したいがための表現。</p>



<p class="wp-block-paragraph"><strong>p.7 ホールパンチ：</strong>ステートフルインスペクションの対策として、あらかじめ相手側に通信を図りルータに内から外の通信として記憶させる。そうすれば、相手側からきた通信を許可できるようになる。<br>なお、最初のホールパンチングの通信は相手にブロックされても問題ない。あくまでも自分側の機器がその相手と通信したよという情報を記憶できればブロックされても問題ない。</p>



<p class="wp-block-paragraph"><strong>p.7② 取得したIPアドレスとブラウザ自身のIPアドレスを通信相手のAPへ通知する</strong><br>Q.なんで、ブラウザ自身のIPアドレスも通知するの？グローバルIPアドレスだけで十分じゃない？<br>A.「通信相手が、同じ会社の同じ部屋（同じLAN内）にいるかもしれないから」。同じLANにいる場合はわざわざNATを越えたりする必要がないので、最適経路でやりたいよね！ということでプライベートIPアドレスも通知している。</p>



<p class="wp-block-paragraph"><strong>p.7 ③通信相手との通信を試み、相互に通信が成功した場合に、その宛先IPアドレスの組み合わせを最適ルートとする</strong><br>Q.プライベートIPアドレスは異なる会社でも重複して使うことができる。そのため、社外との通信だが同じプライベートIPアドレスをもつ社内の無関係の人と通信してしまう可能性があるのではないか？<br>A.SDPオブジェクトの交換時に、実は使い捨てのIDやパスワードなどを設定している。そのためプライベートIPアドレスの重複がおきてもID、パスワードなどの整合性がとれないと通信を確立することができない。そうなれば自ずとグローバルIPのほうを採用すればいいよねという流れになる。</p>



<p class="wp-block-paragraph"><strong>p.8 IP-PBX<br></strong>Q.IP-PBXってそもそもなに？<br>A.IP-PBXとは、通話を実装するための機器。そもそもPBXとは、<strong>外線</strong>と<strong>内線</strong>を収容したりする機器。それにIPの機能、つまりVoIPゲートウェイの機能が付加されたものがIP-PBX。これにより、内線同士の通話、外線と内線の通話、電話網とIP網での通話など、さまざまな種類の通話をサポートすることができる。<br><br><strong>p.8 HTTP GET Upgrade:websocket</strong><br>HTTPで行っている通信をWebSocketに切り替えたいです！という要求メッセージ。もし、相手側がそれを承諾するなら101 Switching Protocolsを返す。</p>



<p class="wp-block-paragraph"><strong>p.9 B2BUA（Back-toBack User Agent）</strong><br>ユーザ同士のP2P通信ではなく、間に仲介役を挟む方式。これをすることで、ユーザは相手側のユーザIPは仲介役のIPになる。そのためP２Pのような直接通信じゃなくなる。逆をいえばユーザはSTUNやTURNをつかって自分のグローバルIPを通知する必要がなくなる。なぜならB2BUAが変換してくれるから。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>🔹 VMware に Ubuntu Server を入れる全体の流れ（まとめ）</title>
		<link>https://ascend-beyond.com/study/7695/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Fri, 21 Nov 2025 09:46:50 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7695</guid>

					<description><![CDATA[1️⃣ VMware で新規仮想マシン作成 2️⃣ Ubuntu インストール開始 3️⃣ ネットワーク設定 4️⃣ ミラー・プロキシの設定 5️⃣ ディスク・ストレージ設定 6️⃣ ユーザー作成 7️⃣ Ubuntu  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><span id="toc1">1️⃣ VMware で新規仮想マシン作成</span></h3>



<ul class="wp-block-list">
<li>「Create a New Virtual Machine」 → Typical を選択</li>



<li>インストーラー ISO を指定（Ubuntu Server）</li>



<li>OS を Linux → Ubuntu 64-bit</li>



<li>VM 名を設定（例：UbuntuSyslog）</li>



<li>ディスクサイズを指定（例：20GB）</li>



<li><strong>ディスクを複数ファイルに分割</strong>を選択</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc2">2️⃣ Ubuntu インストール開始</span></h3>



<ul class="wp-block-list">
<li>仮想マシンの電源を入れると ISO が起動</li>



<li>「Try or Install Ubuntu Server」を選択</li>



<li>キーボード設定
<ul class="wp-block-list">
<li>Layout：Japanese</li>



<li>Variant：Japanese（標準）</li>
</ul>
</li>



<li>インストールタイプ
<ul class="wp-block-list">
<li>Ubuntu Server（標準）を選択</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc3">3️⃣ ネットワーク設定</span></h3>



<ul class="wp-block-list">
<li>ネットワークコンフィギュレーション画面は <strong>DHCP 自動取得でOK</strong></li>



<li>IP が自動で割り当てられる（例：192.168.x.x）</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc4">4️⃣ ミラー・プロキシの設定</span></h3>



<ul class="wp-block-list">
<li><strong>Ubuntu Archive Mirror</strong> → そのまま空欄で Done</li>



<li><strong>Proxy</strong> → そのまま空欄で Done</li>



<li>迷ったら「CONTINUE」を押して次へ進む</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc5">5️⃣ ディスク・ストレージ設定</span></h3>



<ul class="wp-block-list">
<li>Guided Storage Configuration で <strong>Use an Entire Disk</strong> を選択</li>



<li>パーティションや LVM、暗号化は不要</li>



<li>サマリー画面で <strong>Done</strong> を押す</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc6">6️⃣ ユーザー作成</span></h3>



<ul class="wp-block-list">
<li>Your name（フルネーム）を入力</li>



<li>Server name（ホスト名）を入力</li>



<li>Username（ログインユーザー名）を入力</li>



<li>Password / Confirm Password を入力</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc7">7️⃣ Ubuntu Pro はスキップ</span></h3>



<ul class="wp-block-list">
<li>Enable Ubuntu Pro → <strong>Skip for Now</strong></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc8">8️⃣ SSH サーバのインストール</span></h3>



<ul class="wp-block-list">
<li>Install OpenSSH server に <strong>チェックを入れる</strong></li>



<li>Import SSH keys → <strong>何もせずスキップ</strong></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc9">9️⃣ インストール実行</span></h3>



<ul class="wp-block-list">
<li>Installing system 画面で自動インストール開始</li>



<li>インストール完了後に <strong>Reboot Now</strong> で再起動</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc10"> 10 再起動後</span></h3>



<ul class="wp-block-list">
<li>設定したユーザー名・パスワードでログイン</li>



<li>IP を確認して GNS3 の Cloud で接続すれば <strong>Syslog やウェブサーバなどのサービスを構築可能</strong></li>
</ul>



<h4 class="wp-block-heading"><span id="toc11">Failed Unmounting CDROM…Please Remove the Installation Medium, Then Press Enter</span></h4>



<ol class="wp-block-list">
<li><strong>Failed Unmounting CDROM…</strong>
<ul class="wp-block-list">
<li>Ubuntu インストーラーが ISO イメージをアンマウント（取り外す）ときに失敗したメッセージ</li>



<li>仮想マシンの仮想 CD/DVD ドライブがまだ接続されている場合に出ます</li>



<li><strong>システム自体はインストール済みで問題なし</strong></li>
</ul>
</li>



<li><strong>Please Remove the Installation Medium, Then Press Enter</strong>
<ul class="wp-block-list">
<li>「インストール用 ISO（CD/DVD）を取り外して、Enter を押してね」という意味</li>



<li>VMware 上では <strong>CD/DVD（ISO）を切断すれば OK</strong></li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h5 class="wp-block-heading"><span id="toc12">🔹 解決手順（VMware 側）</span></h5>



<ol class="wp-block-list">
<li>仮想マシンのウィンドウで <strong>VM → Settings → CD/DVD (IDE)</strong> を開く</li>



<li>「Use ISO image file」が選択されていたら、<br><strong>「Disconnected」</strong> または <strong>「Remove」</strong> にチェック</li>



<li>設定を保存して Enter を押す</li>
</ol>



<p class="wp-block-paragraph">これでメッセージは消え、Ubuntu が正常に起動します。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc13">11 VMware VM を不要になったら</span></h3>



<ul class="wp-block-list">
<li>Delete from Disk で削除すれば、ディスク容量も解放される</li>



<li>Remove from Library だとファイルは残る</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">💡 ポイントまとめ</p>



<ul class="wp-block-list">
<li>この手順は <strong>Syslog でもウェブサーバでもほぼ同じ</strong></li>



<li>違うのは <strong>インストールするアプリ</strong>（rsyslog / Apache / Nginx など）だけ</li>



<li>役割ごとに新規 VM を作ると学習しやすい</li>
</ul>



<h1 class="wp-block-heading">✳️ステップ1：VMwareとGNS3をつなぐ</h1>



<p class="wp-block-paragraph">VMwareのUbuntuには <strong>NICを2枚つけましょう</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>名前（例）</th><th>接続方式</th><th>目的</th></tr></thead><tbody><tr><td>NIC1</td><td>NAT（インターネット接続用）</td><td>apt updateなどの通信</td></tr><tr><td>NIC2</td><td>GNS3との接続（Host-only 推奨）</td><td>ルータと通信</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc14">VMware設定手順</span></h3>



<ol class="wp-block-list">
<li>VMwareで Ubuntu VM を選択</li>



<li>設定（Settings）</li>



<li>Network Adapter を <strong>2枚</strong>追加（合計2つ）</li>



<li>それぞれ以下に設定：</li>
</ol>



<ul class="wp-block-list">
<li><strong>Network Adapter 1</strong> → NAT</li>



<li><strong>Network Adapter 2</strong> → Host-only</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc15">Ubuntu側で確認</span></h3>



<p class="wp-block-paragraph">Ubuntuを起動してターミナルで：</p>



<pre class="wp-block-code"><code>ip a
</code></pre>



<p class="wp-block-paragraph">NICが2つ見えればOK！</p>



<p class="wp-block-paragraph">例：</p>



<ul class="wp-block-list">
<li><code>ens33</code> → NAT側でIP取得</li>



<li><code>ens38</code> → Host-only側（例：192.168.56.x）</li>
</ul>



<p class="wp-block-paragraph">※名前はPC環境で違います</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">✳️ステップ2：GNS3上でUbuntuを追加</h1>



<p class="wp-block-paragraph">クラウドを追加するパターン</p>



<ol class="wp-block-list">
<li>Ubuntは１枚目をNAT（adapter8）にする</li>



<li>ip aでアドレスを確認</li>



<li>クラウドを配置→adapter8を設定する</li>



<li>ルータにadapter8と同じサブネットのIPアドレスを設定</li>



<li>ping で確認するとhostonlyで接続するよりも高速にpingが通る</li>
</ol>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>GNS3に VMwareのUbuntu VM を追加します。</strong></p>



<ol class="wp-block-list">
<li>GNS3の上部メニュー
<ul class="wp-block-list">
<li>[Preferences] → [VMware VMs]</li>
</ul>
</li>



<li>&#8220;Add&#8221;</li>



<li>Ubuntu を選択</li>



<li>詳細設定で「ネットワークタブ」→「NIC数」→２枚を選択<br>NIC数が１つだと競合しちゃう<br>Error! While creating link, attachment NAT is already configured on Network Adapter 0. Please remove it, or allow VMware VM ovens PC senior to use any adapter.</li>
</ol>



<p class="wp-block-paragraph">その後、UbuntuをTopologyへドラッグ✔️<br>IOSvルータとケーブルで接続✔️</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">✳️ステップ3：Ubuntu ↔ ルータ の疎通確認</h1>



<p class="wp-block-paragraph">Ubuntu側の Host-only NIC にIP設定：</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="sudo ip addr add 192.168.2.100/24 dev ens38
sudo ip link set ens38 up" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">sudo ip addr add 192</span><span style="color: #A6E22E">.168.2</span><span style="color: #F8F8F2">.100/24 dev ens38</span></span>
<span class="line"><span style="color: #F8F8F2">sudo ip </span><span style="color: #F92672">link</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">set</span><span style="color: #F8F8F2"> ens38 up</span></span></code></pre></div>



<p class="wp-block-paragraph">お互いに ping で確認：</p>



<p class="wp-block-paragraph">👍 通ったら次へ！</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">１．クラウドをセット（ローカル）</p>



<p class="wp-block-paragraph">２．VMnet８を追加</p>



<p class="wp-block-paragraph">３．イーサネットをそこに接続（ルータのインタフェースはNAT側のIPに合わせる）</p>



<p class="wp-block-paragraph">４．スタティックルーティングを設定する</p>



<p class="wp-block-paragraph">５pingで疎通。これで、サーバとルータが通信可能！</p>



<h1 class="wp-block-heading">PCとしてUbuntuを動作させる</h1>



<p class="wp-block-paragraph">１．NICのHostOnlyを１枚目とする</p>



<p class="wp-block-paragraph">２．GNS3でVMnet1を追加</p>



<p class="wp-block-paragraph">３. ルータのIPアドレスをVMnet1に合わせる</p>



<h1 class="wp-block-heading">デフォルトゲートウェイ設定（永続）</h1>



<p class="wp-block-paragraph">１．ネットワーク設定ファイルを開く</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="sudo nano /etc/netplan/00-installer-config.yaml" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">sudo nano /etc/netplan/</span><span style="color: #F92672">00-installer-config</span><span style="color: #A6E22E">.yaml</span></span></code></pre></div>



<p class="wp-block-paragraph">２．設定の作成<br>　＊値の前の半角スペースやインテンドのズレも忘れずに！これをやらないとエラーになる</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.168.111.111/24
      routes:
        - to: default
          via: 192.168.111.1
      nameservers:
        addresses: [8.8.8.8]" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">network:</span></span>
<span class="line"><span style="color: #F8F8F2">  version: 2</span></span>
<span class="line"><span style="color: #F8F8F2">  renderer: networkd</span></span>
<span class="line"><span style="color: #F8F8F2">  ethernets:</span></span>
<span class="line"><span style="color: #F8F8F2">    ens33:</span></span>
<span class="line"><span style="color: #F8F8F2">      dhcp4: no</span></span>
<span class="line"><span style="color: #F8F8F2">      addresses:</span></span>
<span class="line"><span style="color: #F8F8F2">        - 192</span><span style="color: #A6E22E">.168.111</span><span style="color: #F8F8F2">.111/24</span></span>
<span class="line"><span style="color: #F8F8F2">      routes:</span></span>
<span class="line"><span style="color: #F8F8F2">        - to: default</span></span>
<span class="line"><span style="color: #F8F8F2">          via: 192</span><span style="color: #A6E22E">.168.111.1</span></span>
<span class="line"><span style="color: #F8F8F2">      nameservers:</span></span>
<span class="line"><span style="color: #F8F8F2">        addresses: [8</span><span style="color: #A6E22E">.8.8</span><span style="color: #F8F8F2">.8]</span></span></code></pre></div>



<p class="wp-block-paragraph">３．保存後：<br>　権限を狭める。（やらないとtoo openエラーになる。）<br>　netplanの適用</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="#権限を狭める
sudo chmod 600 /etc/netplan/00-installer-config.yaml

#netplanの適用
sudo netplan apply" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">#権限を狭める</span></span>
<span class="line"><span style="color: #F8F8F2">sudo chmod 600 /etc/netplan/</span><span style="color: #F92672">00-installer-config</span><span style="color: #A6E22E">.yaml</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">#netplanの適用</span></span>
<span class="line"><span style="color: #F8F8F2">sudo netplan apply</span></span></code></pre></div>



<h1 class="wp-block-heading">デフォルトゲートウェイ設定（暫定）</h1>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="sudo ip route add default via 192.168.1.1" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">sudo ip route add default via 192</span><span style="color: #A6E22E">.168.1.1</span></span></code></pre></div>



<h1 class="wp-block-heading">コマンドプロンプトからSSH接続</h1>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">UbuntuのCLIはコピーできないので、ローカルのcmdからSSH接続すれば、エラーログなどをコピーできる！</p>
</blockquote>



<p class="wp-block-paragraph">１．Ubuntsサーバ側でユーザを作成</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="sudo adduser ユーザー名" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">sudo adduser ユーザー名</span></span></code></pre></div>



<p class="wp-block-paragraph">２．sudo権限の付与</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="sudo usermod -aG sudo ユーザー名" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">sudo usermod -aG sudo ユーザー名</span></span></code></pre></div>



<p class="wp-block-paragraph">３．CMDからSSHログイン</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="ssh testuser@IPアドレス" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">ssh testuser@IPアドレス</span></span></code></pre></div>



<p class="wp-block-paragraph">４．ルートに移行</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="sudo -i" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">sudo -i</span></span></code></pre></div>



<h1 class="wp-block-heading">GNS3のルータにSSHで接続する</h1>



<p class="wp-block-paragraph">CMLライセンスだと古いルータしか使えないことがある。それだと、SSHの設定で不具合が起きてしまう。それを解消しながらルータに接続するコマンドが以下です。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="ssh -o KexAlgorithms=+diffie-hellman-group14-sha1 \
    -o HostKeyAlgorithms=+ssh-rsa \
    ホスト名@IPアドレス
    
    
ssh-keygen -f '/home/sumika/.ssh/known_hosts' -R '192.168.6.254'
↑古いSSHキーを削除。同じIPに対して違う鍵を使おうとするとエラーになるのでその場合は古い鍵を削除する" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">ssh -o KexAlgorithms=+</span><span style="color: #F92672">diffie-hellman-group14-sha1</span><span style="color: #F8F8F2"> \</span></span>
<span class="line"><span style="color: #F8F8F2">    -o HostKeyAlgorithms=+</span><span style="color: #F92672">ssh-rsa</span><span style="color: #F8F8F2"> \</span></span>
<span class="line"><span style="color: #F8F8F2">    ホスト名@IPアドレス</span></span>
<span class="line"><span style="color: #F8F8F2">    </span></span>
<span class="line"><span style="color: #F8F8F2">    </span></span>
<span class="line"><span style="color: #F92672">ssh-keygen</span><span style="color: #F8F8F2"> -f &#39;/home/sumika/.ssh/known_hosts&#39; -R &#39;192</span><span style="color: #A6E22E">.168.6</span><span style="color: #F8F8F2">.254&#39;</span></span>
<span class="line"><span style="color: #F8F8F2">↑古いSSHキーを削除。同じIPに対して違う鍵を使おうとするとエラーになるのでその場合は古い鍵を削除する</span></span></code></pre></div>



<p class="wp-block-paragraph">SSHで接続しただけではenableモードには入れないのでルータ側であらかじめイネーブルパスワードを作成しておく</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="enable secret パスワード
↑これで、SSH後にenableモードに入ることができる" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">enable secret パスワード</span></span>
<span class="line"><span style="color: #F8F8F2">↑これで、SSH後にenableモードに入ることができる</span></span></code></pre></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>HTTP1.0/1.1/2/3の違いを分かりやすく</title>
		<link>https://ascend-beyond.com/study/7687/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Wed, 08 Oct 2025 05:35:33 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7687</guid>

					<description><![CDATA[HTTPのセッションとストリームを「トンネルとトラック（ストリームの色分け）」に置き換えて勉強していきましょう。HTTP/1.0 → HTTP/1.1 → HTTP/2 → HTTP/3 の違いを整理して見ていきましょう [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">HTTPのセッションとストリームを「トンネルとトラック（ストリームの色分け）」に置き換えて勉強していきましょう。<br>HTTP/1.0 → HTTP/1.1 → HTTP/2 → HTTP/3 の違いを整理して見ていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">🛣️ 共通イメージ：「1本の道路（TCP接続）」と「トラック（HTTPリクエスト）」</a></li><li><a href="#toc2" tabindex="0">🚗 HTTP/1.0：</a><ol><li><a href="#toc3" tabindex="0">イメージ</a></li><li><a href="#toc4" tabindex="0">説明</a></li><li><a href="#toc5" tabindex="0">問題点</a></li></ol></li><li><a href="#toc6" tabindex="0">🚚 HTTP/1.1（Persistent Connection）：</a><ol><li><a href="#toc7" tabindex="0">イメージ</a></li><li><a href="#toc8" tabindex="0">説明</a></li><li><a href="#toc9" tabindex="0">でも問題発生：ヘッドオブラインブロッキング（HOLB）</a></li></ol></li><li><a href="#toc10" tabindex="0">🚛 HTTP/2（マルチプレクシング）：</a><ol><li><a href="#toc11" tabindex="0">イメージ</a></li><li><a href="#toc12" tabindex="0">説明</a></li><li><a href="#toc13" tabindex="0">しかし…</a></li></ol></li><li><a href="#toc14" tabindex="0">🚀 HTTP/3（QUIC：UDPベース）：</a><ol><li><a href="#toc15" tabindex="0">イメージ</a></li><li><a href="#toc16" tabindex="0">説明</a></li></ol></li><li><a href="#toc17" tabindex="0">💡 まとめ表</a></li><li><a href="#toc18" tabindex="0">🎯 重要ポイント（ネスペ試験で狙われる）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">🛣️ 共通イメージ：「1本の道路（TCP接続）」と「トラック（HTTPリクエスト）」</span></h2>



<ul class="wp-block-list">
<li><strong>道路（トンネル）</strong>：TCP接続</li>



<li><strong>トラック</strong>：HTTPリクエスト・レスポンス</li>



<li><strong>荷物の色分け（赤・青・緑）</strong>：HTTP/2以降のストリームID（リクエスト識別）</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc2">🚗 HTTP/1.0：</span></h2>



<p class="wp-block-paragraph"><strong>「トラック1台ずつしかトンネルに入れない」</strong></p>



<h3 class="wp-block-heading"><span id="toc3">イメージ</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="┌───────────────┐
│ トンネル(TCP) │
└───────────────┘
   🚚(リクエスト1)
   ↑出たら閉じる
   🚚(リクエスト2)
   ↑出たらまた閉じる
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">┌───────────────┐</span></span>
<span class="line"><span style="color: #F8F8F2">│ トンネル(TCP) │</span></span>
<span class="line"><span style="color: #F8F8F2">└───────────────┘</span></span>
<span class="line"><span style="color: #F8F8F2">   🚚(リクエスト1)</span></span>
<span class="line"><span style="color: #F8F8F2">   ↑出たら閉じる</span></span>
<span class="line"><span style="color: #F8F8F2">   🚚(リクエスト2)</span></span>
<span class="line"><span style="color: #F8F8F2">   ↑出たらまた閉じる</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc4">説明</span></h3>



<ul class="wp-block-list">
<li>リクエストごとにTCP接続を<strong>新規に作る</strong>。</li>



<li>1ページに画像が10個あれば、10回トンネルを掘る（＝10回TCP確立）。</li>



<li>→ トンネル掘る（3ウェイハンドシェイク）だけで時間がかかる。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc5">問題点</span></h3>



<ul class="wp-block-list">
<li>接続確立コストが大きい</li>



<li>同時に1つのリクエストしか送れない</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc6">🚚 HTTP/1.1（Persistent Connection）：</span></h2>



<p class="wp-block-paragraph"><strong>「トンネルは1本のまま、トラックを何台も順番に通せるようになった」</strong></p>



<h3 class="wp-block-heading"><span id="toc7">イメージ</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="┌───────────────┐
│ トンネル(TCP) │
└───────────────┘
   🚚(リクエスト1)
   🚚(リクエスト2)
   🚚(リクエスト3)
   …
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">┌───────────────┐</span></span>
<span class="line"><span style="color: #F8F8F2">│ トンネル(TCP) │</span></span>
<span class="line"><span style="color: #F8F8F2">└───────────────┘</span></span>
<span class="line"><span style="color: #F8F8F2">   🚚(リクエスト1)</span></span>
<span class="line"><span style="color: #F8F8F2">   🚚(リクエスト2)</span></span>
<span class="line"><span style="color: #F8F8F2">   🚚(リクエスト3)</span></span>
<span class="line"><span style="color: #F8F8F2">   …</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc8">説明</span></h3>



<ul class="wp-block-list">
<li>一度トンネルを掘ったら（TCP接続確立したら）、<strong>閉じずに使い回す（Keep-Alive）</strong>。</li>



<li>これでTCPの確立コストが削減。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc9">でも問題発生：ヘッドオブラインブロッキング（HOLB）</span></h3>



<ul class="wp-block-list">
<li>トラック（リクエスト）は<strong>1台ずつ順番に</strong>しか通れない。</li>



<li>先頭のトラックが渋滞（応答遅延）すると、<strong>後ろのトラックも動けない</strong>。</li>



<li>これがHTTP/1.1のHOLB問題。</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="🚚(画像1:遅い)
🚚(画像2:早いけど待ち)
🚚(画像3:早いけど待ち)
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">🚚(画像1:遅い)</span></span>
<span class="line"><span style="color: #F8F8F2">🚚(画像2:早いけど待ち)</span></span>
<span class="line"><span style="color: #F8F8F2">🚚(画像3:早いけど待ち)</span></span>
<span class="line"></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc10">🚛 HTTP/2（マルチプレクシング）：</span></h2>



<p class="wp-block-paragraph"><strong>「1本のトンネルの中で、トラックに色を付けて、混在して走らせる！」</strong></p>



<h3 class="wp-block-heading"><span id="toc11">イメージ</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="┌──────────────────┐
│ トンネル(TCP)   │
│ 🚚赤🚛青🚚赤🚜緑🚚青🚜緑 │ ← 順番に混ざって流れる
└──────────────────┘
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">┌──────────────────┐</span></span>
<span class="line"><span style="color: #F8F8F2">│ トンネル(TCP)   │</span></span>
<span class="line"><span style="color: #F8F8F2">│ 🚚赤🚛青🚚赤🚜緑🚚青🚜緑 │ ← 順番に混ざって流れる</span></span>
<span class="line"><span style="color: #F8F8F2">└──────────────────┘</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc12">説明</span></h3>



<ul class="wp-block-list">
<li>トラック（HTTPリクエスト）を<strong>フレーム単位に細かく分ける</strong>。</li>



<li>それぞれに「ストリームID（色）」を付ける。</li>



<li>同じトンネル内で、赤・青・緑のトラック（データ）を交互に流せる。</li>
</ul>



<p class="wp-block-paragraph">→ アプリ層的には「複数リクエストを同時に処理できる」ように見える！</p>



<h3 class="wp-block-heading"><span id="toc13">しかし…</span></h3>



<ul class="wp-block-list">
<li>トンネル（TCP）は1本。</li>



<li>もしトンネル内で<strong>1つのパケットが落ちると</strong>、後続のデータが全部ストップ。<br>→ これが<strong>TCPレベルのHOLB</strong>。</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="🚚赤[欠損]🚛青🚜緑 → 青と緑は来てるけど、赤が復旧するまで渡せない
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">🚚赤[</span><span style="color: #A6E22E">欠損</span><span style="color: #F8F8F2">]🚛青🚜緑 → 青と緑は来てるけど、赤が復旧するまで渡せない</span></span>
<span class="line"></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc14">🚀 HTTP/3（QUIC：UDPベース）：</span></h2>



<p class="wp-block-paragraph"><strong>「トンネルをやめて、それぞれが自分専用のレーンを持つ」</strong></p>



<h3 class="wp-block-heading"><span id="toc15">イメージ</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">SCSS</span><span role="button" tabindex="0" data-code="🚚赤 ────────────→
🚛青 ───────→
🚜緑 ─────────────→
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">🚚赤 ────────────→</span></span>
<span class="line"><span style="color: #F8F8F2">🚛青 ───────→</span></span>
<span class="line"><span style="color: #F8F8F2">🚜緑 ─────────────→</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc16">説明</span></h3>



<ul class="wp-block-list">
<li>TCPではなく<strong>UDP＋QUIC</strong>を使う。</li>



<li>QUICでは、ストリームごとに<strong>独立した再送制御</strong>ができる。</li>



<li>赤のトラックが事故っても、青と緑は<strong>自分のレーンで進める</strong>。</li>
</ul>



<p class="wp-block-paragraph">→ TCP時代のHOLB問題を<strong>完全に解消</strong>！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc17">💡 まとめ表</span></h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>バージョン</th><th>仕組み</th><th>イメージ</th><th>HOLB問題</th></tr></thead><tbody><tr><td>HTTP/1.0</td><td>毎回TCP接続</td><td>トンネルを毎回掘る</td><td>なし（単純）</td></tr><tr><td>HTTP/1.1</td><td>持続的接続</td><td>1本のトンネルに順番で通す</td><td>あり（先頭待ち）</td></tr><tr><td>HTTP/2</td><td>マルチプレクシング</td><td>1本のトンネルに色付きトラックを混ぜる</td><td>TCPレベルで残る</td></tr><tr><td>HTTP/3</td><td>QUIC（UDP）</td><td>トンネルをやめ、各色が独自レーンを持つ</td><td>解消</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc18">🎯 重要ポイント（ネスペ試験で狙われる）</span></h2>



<ol class="wp-block-list">
<li><strong>HTTP/1.1のHOLB問題</strong>
<ul class="wp-block-list">
<li>1つのTCP接続上でリクエストを順次送るため、先頭の応答遅延が全体に影響する。</li>
</ul>
</li>



<li><strong>HTTP/2の改善</strong>
<ul class="wp-block-list">
<li>マルチプレクシングにより、論理的には並列化できるが、TCPの順序制御が根本的に残る。</li>
</ul>
</li>



<li><strong>HTTP/3の最終解決</strong>
<ul class="wp-block-list">
<li>UDPベースのQUICで、ストリームごとの独立再送を実現。真の並列処理が可能。</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li class="has-f-8-f-8-f-2-color has-text-color">HTTP/1.0：トンネルを毎回掘ってトラックを1台ずつ通す</li>



<li class="has-f-8-f-8-f-2-color has-text-color">HTTP/1.1：トンネルは共通だが、トラックは順番待ち</li>



<li class="has-f-8-f-8-f-2-color has-text-color">HTTP/2：トンネル内で色分けして混ぜて走らせる</li>



<li class="has-f-8-f-8-f-2-color has-text-color">HTTP/3：トンネルをやめて、色ごとに独立した道路を持たせる</li>
</ul>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>TLSハンドシェイク早見表</title>
		<link>https://ascend-beyond.com/study/7666/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 06:03:37 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7666</guid>

					<description><![CDATA[目次 ✅ TLS 1.2 における RSA方式の鍵交換の流れ▼ 1. クライアント Hello▲ 2. サーバ Hello▲ 3. サーバ証明書の送信▼ 4. クライアントが Pre-Master Secret を生成▼ [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">✅ TLS 1.2 における RSA方式の鍵交換の流れ</a><ol><li><a href="#toc2" tabindex="0">▼ 1. クライアント Hello</a></li><li><a href="#toc3" tabindex="0">▲ 2. サーバ Hello</a></li><li><a href="#toc4" tabindex="0">▲ 3. サーバ証明書の送信</a></li><li><a href="#toc5" tabindex="0">▼ 4. クライアントが Pre-Master Secret を生成</a></li><li><a href="#toc6" tabindex="0">▼ 5. クライアントキー交換</a></li><li><a href="#toc7" tabindex="0">▲ 6. サーバが Pre-Master Secret を復号</a></li><li><a href="#toc8" tabindex="0">▼▲ 7. 共通鍵の生成</a><ol><li><a href="#toc9" tabindex="0">✅【PRFとは】</a></li></ol></li><li><a href="#toc10" tabindex="0">▼▲ 8. Finished メッセージで確認</a></li><li><a href="#toc11" tabindex="0">✅ 【まとめ図】</a></li><li><a href="#toc12" tabindex="0">✅ 【ポイント】</a></li></ol></li><li><a href="#toc13" tabindex="0">✅【TLS 1.2 における DHE 鍵交換の流れ】</a><ol><li><a href="#toc14" tabindex="0">✅【前提：DHEとは】</a></li><li><a href="#toc15" tabindex="0">🔵 ① クライアント Hello</a></li><li><a href="#toc16" tabindex="0">🌑② サーバ Hello</a></li><li><a href="#toc17" tabindex="0">🌑③ サーバ証明書の送信</a></li><li><a href="#toc18" tabindex="0">🌑④ サーバのDHEパラメータ送信（ServerKeyExchange）</a></li><li><a href="#toc19" tabindex="0">🔵 ⑤ クライアントのDHEパラメータ送信</a></li><li><a href="#toc20" tabindex="0">🔵🌑 ⑥ 双方が共通鍵素材（Pre-Master Secret）を計算</a></li><li><a href="#toc21" tabindex="0">🔵🌑 ⑦ Pre-Master Secret + ランダム値 → 共通鍵生成</a></li><li><a href="#toc22" tabindex="0">🔵🌑 ⑧ Finished メッセージ交換</a></li><li><a href="#toc23" tabindex="0">✅【まとめ図】</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">✅ TLS 1.2 における RSA方式の鍵交換の流れ</span></h2>



<h3 class="wp-block-heading"><span id="toc2">▼ 1. クライアント Hello</span></h3>



<ul class="wp-block-list">
<li>クライアントはまず、サーバに「<strong>ClientHello</strong>」メッセージを送る。</li>



<li>ここには以下が含まれる：
<ul class="wp-block-list">
<li>サポートする<strong>TLSのバージョン</strong></li>



<li>サポートする<strong>暗号スイート</strong>（例：RSA、AESなど）</li>



<li>乱数（クライアントランダム）</li>



<li>その他オプション情報</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc3">▲ 2. サーバ Hello</span></h3>



<ul class="wp-block-list">
<li>サーバは「<strong>ServerHello</strong>」メッセージで応答する。</li>



<li>サーバの選択した：
<ul class="wp-block-list">
<li><strong>TLSバージョン</strong></li>



<li><strong>暗号スイート</strong></li>



<li>サーバの乱数（サーバランダム）</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc4">▲ 3. サーバ証明書の送信</span></h3>



<ul class="wp-block-list">
<li>サーバは自分の公開鍵証明書（X.509証明書）をクライアントに送信。
<ul class="wp-block-list">
<li>証明書の中に、サーバの<strong>RSA公開鍵</strong>が入っている。</li>



<li>証明書は認証局（CA）によって署名されていて、クライアントはその正当性を検証する。</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc5">▼ 4. クライアントが Pre-Master Secret を生成</span></h3>



<ul class="wp-block-list">
<li>クライアントは、ランダムなPre-Master Secret（48バイトのランダム値）を生成。</li>



<li>そして、そのPre-Master Secretを<strong>サーバの公開鍵でRSA暗号化</strong>する。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc6">▼ 5. クライアントキー交換</span></h3>



<ul class="wp-block-list">
<li>暗号化されたPre-Master Secretを「<strong>ClientKeyExchange</strong>」メッセージとしてサーバに送信。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc7">▲ 6. サーバが Pre-Master Secret を復号</span></h3>



<ul class="wp-block-list">
<li>サーバは自分の<strong>RSA秘密鍵で復号</strong>し、Pre-Master Secretを得る。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc8">▼▲ 7. 共通鍵の生成</span></h3>



<ul class="wp-block-list">
<li>クライアントとサーバはそれぞれ、以下の情報から同じ共通鍵（セッション鍵）を導出：
<ul class="wp-block-list">
<li>Pre-Master Secret</li>



<li>クライアントランダム</li>



<li>サーバランダム</li>
</ul>
</li>



<li>これにより、共通の暗号鍵・MAC鍵などが生成される。</li>
</ul>



<p class="wp-block-paragraph">この<strong>3つの値</strong>を材料として、TLS 1.2では：</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Markdown</span><span role="button" tabindex="0" data-code="マスターシークレット = PRF(Pre-Master Secret, &quot;master secret&quot;, ClientRandom + ServerRandom)" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">マスターシークレット = PRF(Pre-Master Secret, &quot;master secret&quot;, ClientRandom + ServerRandom)</span></span></code></pre></div>



<p class="wp-block-paragraph">という手順で<strong>マスターシークレット</strong>が生成されます。</p>



<p class="wp-block-paragraph">さらにこの<strong>マスターシークレット</strong>から、</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Markdown</span><span role="button" tabindex="0" data-code="セッション鍵（共通鍵） = PRF(Master Secret, &quot;key expansion&quot;, ServerRandom + ClientRandom)" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">セッション鍵（共通鍵） = PRF(Master Secret, &quot;key expansion&quot;, ServerRandom + ClientRandom)</span></span></code></pre></div>



<p class="wp-block-paragraph">のようにして、実際に通信に使う暗号鍵・MAC鍵などが生成されます。<br>※この際の<code>"master secret"</code>や<code>"key expansion"</code>は固定の文字列で、どの用途の鍵を作るのか区別するために使われます。</p>



<h4 class="wp-block-heading"><span id="toc9">✅【PRFとは】</span></h4>



<ul class="wp-block-list">
<li><strong>Pseudo-Random Function（擬似乱数生成関数）</strong></li>



<li>TLSの仕様の中で、「こういうアルゴリズムで計算しなさい」と定義されています。</li>



<li>TLS1.2では**HMAC（SHA-256などのハッシュ関数）**をベースに実装されています。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc10">▼▲ 8. Finished メッセージで確認</span></h3>



<ul class="wp-block-list">
<li>その後、クライアントとサーバは、共通鍵を使って「Finished」メッセージを交換し、お互いに正しい鍵が共有できたことを確認。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc11">✅ 【まとめ図】</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Markdown</span><span role="button" tabindex="0" data-code="1. ClientHello (クライアント乱数 + 暗号スイート)
2. ServerHello (サーバ乱数 + 暗号スイート選択)
3. サーバ証明書 (RSA公開鍵含む)
4. Pre-Master Secret 生成
5. Pre-Master Secret を公開鍵で暗号化し送信
6. サーバが秘密鍵で復号
7. Pre-Master Secret + 両者の乱数 → 共通鍵
8. Finishedメッセージ交換 → 暗号通信開始" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">1.</span><span style="color: #F8F8F2"> ClientHello (クライアント乱数 + 暗号スイート)</span></span>
<span class="line"><span style="color: #A6E22E">2.</span><span style="color: #F8F8F2"> ServerHello (サーバ乱数 + 暗号スイート選択)</span></span>
<span class="line"><span style="color: #A6E22E">3.</span><span style="color: #F8F8F2"> サーバ証明書 (RSA公開鍵含む)</span></span>
<span class="line"><span style="color: #A6E22E">4.</span><span style="color: #F8F8F2"> Pre-Master Secret 生成</span></span>
<span class="line"><span style="color: #A6E22E">5.</span><span style="color: #F8F8F2"> Pre-Master Secret を公開鍵で暗号化し送信</span></span>
<span class="line"><span style="color: #A6E22E">6.</span><span style="color: #F8F8F2"> サーバが秘密鍵で復号</span></span>
<span class="line"><span style="color: #A6E22E">7.</span><span style="color: #F8F8F2"> Pre-Master Secret + 両者の乱数 → 共通鍵</span></span>
<span class="line"><span style="color: #A6E22E">8.</span><span style="color: #F8F8F2"> Finishedメッセージ交換 → 暗号通信開始</span></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc12">✅ 【ポイント】</span></h3>



<ul class="wp-block-list">
<li>クライアントだけがPre-Master Secretを生成する。</li>



<li>サーバは復号するだけで、自分では鍵は作らない。</li>



<li>Pre-Master Secretと乱数2つから鍵素材（共通鍵）ができる。</li>



<li>RSA方式はサーバ秘密鍵が漏れると<strong>過去のPre-Master Secretも解読できるためForward Secrecyが無い</strong>。</li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー</span></strong></p>



<h2 class="wp-block-heading"><span id="toc13">✅【TLS 1.2 における DHE 鍵交換の流れ】</span></h2>



<h3 class="wp-block-heading"><span id="toc14">✅【前提：DHEとは】</span></h3>



<ul class="wp-block-list">
<li><strong>DHE（Ephemeral Diffie-Hellman）は、セッションごとに一時的な鍵（エフェメラル鍵）を使って共通鍵を生成</strong>する仕組み。</li>



<li>Forward Secrecy（前方秘匿性）があり、もしサーバの秘密鍵が漏れても過去の通信は解読されない。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc15">🔵 ① クライアント Hello</span></h3>



<ul class="wp-block-list">
<li>クライアントは<strong>ClientHello</strong>をサーバに送信。</li>



<li>そこに：
<ul class="wp-block-list">
<li>サポートする暗号スイート（例：TLS_DHE_RSA_WITH_AES_128_CBC_SHA など）</li>



<li>TLSのバージョン</li>



<li>クライアントのランダム値（クライアントランダム）<br>などを含める。</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc16">🌑② サーバ Hello</span></h3>



<ul class="wp-block-list">
<li>サーバは<strong>ServerHello</strong>を返し、
<ul class="wp-block-list">
<li>選択した暗号スイート（ここではDHEを含むもの）</li>



<li>TLSバージョン</li>



<li>サーバランダム<br>を送る。</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc17">🌑③ サーバ証明書の送信</span></h3>



<ul class="wp-block-list">
<li>サーバは、自身の公開鍵証明書（X.509証明書）を送信。</li>



<li>証明書には<strong>RSAの公開鍵</strong>などが入っていて、「<strong>サーバの正当性確認のため</strong>」に使われる。</li>



<li>（DHEでは、このRSA鍵で<strong>署名</strong>するために使う）</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc18">🌑④ サーバのDHEパラメータ送信（ServerKeyExchange）</span></h3>



<ul class="wp-block-list">
<li>サーバは以下の情報を送信：
<ul class="wp-block-list">
<li><strong>p（素数）</strong></li>



<li><strong>g（生成元）</strong></li>



<li><strong>サーバのDHE公開値：g^b mod p（bはサーバの秘密値）</strong></li>



<li><strong>これらに対するRSA署名（サーバ証明書の秘密鍵で署名）</strong></li>
</ul>
</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">こうすることで、「<strong>このDHEパラメータは正当なサーバが送ったものだよ</strong>」と証明している。</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc19">🔵 ⑤ クライアントのDHEパラメータ送信</span></h3>



<ul class="wp-block-list">
<li>クライアントは、ランダムな<strong>秘密値a</strong>を選び、
<ul class="wp-block-list">
<li><strong>クライアントの公開値：g^a mod p</strong><br>を計算し、<strong>ClientKeyExchange</strong>メッセージでサーバに送る。</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc20">🔵🌑 ⑥ 双方が共通鍵素材（Pre-Master Secret）を計算</span></h3>



<ul class="wp-block-list">
<li>クライアント側：</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Markdown</span><span role="button" tabindex="0" data-code="(g^b mod p)^a mod p
= g^(ab) mod p" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">(g^b mod p)^a mod p</span></span>
<span class="line"><span style="color: #F8F8F2">= g^(ab) mod p</span></span></code></pre></div>



<ul class="wp-block-list">
<li>サーバ側：</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Markdown</span><span role="button" tabindex="0" data-code="(g^a mod p)^b mod p
= g^(ab) mod p" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">(g^a mod p)^b mod p</span></span>
<span class="line"><span style="color: #F8F8F2">= g^(ab) mod p</span></span></code></pre></div>



<p class="wp-block-paragraph">→ クライアントとサーバが<strong>同じ値（g^(ab) mod p）を得る。これがPre-Master Secret</strong>になる。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc21">🔵🌑 ⑦ Pre-Master Secret + ランダム値 → 共通鍵生成</span></h3>



<ul class="wp-block-list">
<li>双方はPre-Master Secretと
<ul class="wp-block-list">
<li>クライアントランダム</li>



<li>サーバランダム<br>をPRF関数に入れて、<strong>マスターシークレット</strong>を生成。</li>
</ul>
</li>



<li>さらにマスターシークレットから、セッション鍵（共通鍵）が計算される。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc22">🔵🌑 ⑧ Finished メッセージ交換</span></h3>



<ul class="wp-block-list">
<li>共通鍵を用いて、<strong>Finishedメッセージを暗号化して交換</strong>。</li>



<li>お互いの鍵が一致していれば復号が成功し、ここから安全な通信が始まる。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc23">✅【まとめ図】</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Markdown</span><span role="button" tabindex="0" data-code="1. ClientHello（クライアントランダム、対応暗号スイート）
2. ServerHello（サーバランダム、選択暗号スイート）
3. Certificate（サーバの証明書）
4. ServerKeyExchange（p, g, g^b mod p, 署名）
5. ClientKeyExchange（g^a mod p）
6. 両者で g^(ab) mod p を計算 → Pre-Master Secret
7. Pre-Master Secret + ランダム2種 → PRF → マスターシークレット
8. マスターシークレット → 共通鍵（セッション鍵）
9. Finishedメッセージ交換" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">1.</span><span style="color: #F8F8F2"> ClientHello（クライアントランダム、対応暗号スイート）</span></span>
<span class="line"><span style="color: #A6E22E">2.</span><span style="color: #F8F8F2"> ServerHello（サーバランダム、選択暗号スイート）</span></span>
<span class="line"><span style="color: #A6E22E">3.</span><span style="color: #F8F8F2"> Certificate（サーバの証明書）</span></span>
<span class="line"><span style="color: #A6E22E">4.</span><span style="color: #F8F8F2"> ServerKeyExchange（p, g, g^b mod p, 署名）</span></span>
<span class="line"><span style="color: #A6E22E">5.</span><span style="color: #F8F8F2"> ClientKeyExchange（g^a mod p）</span></span>
<span class="line"><span style="color: #A6E22E">6.</span><span style="color: #F8F8F2"> 両者で g^(ab) mod p を計算 → Pre-Master Secret</span></span>
<span class="line"><span style="color: #A6E22E">7.</span><span style="color: #F8F8F2"> Pre-Master Secret + ランダム2種 → PRF → マスターシークレット</span></span>
<span class="line"><span style="color: #A6E22E">8.</span><span style="color: #F8F8F2"> マスターシークレット → 共通鍵（セッション鍵）</span></span>
<span class="line"><span style="color: #A6E22E">9.</span><span style="color: #F8F8F2"> Finishedメッセージ交換</span></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<ul class="wp-block-list">
<li>RSA方式と違い、Pre-Master Secretは<strong>両者が計算で得る</strong>。</li>



<li>サーバ証明書のRSA鍵は「署名検証」のみで、暗号化には使わない。</li>



<li><strong>Forward Secrecyあり</strong>（秘密鍵が漏れてもg^bが漏れない限り安全）</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
