<?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>応用情報技術者</title>
	<atom:link href="https://ascend-beyond.com/category/study/other-study/feed/" rel="self" type="application/rss+xml" />
	<link>https://ascend-beyond.com</link>
	<description></description>
	<lastBuildDate>Mon, 10 Mar 2025 10:50:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://ascend-beyond.com/wp-content/uploads/2024/03/cropped-9376b452e9b0c7a8bdf82cd2e63920ee-32x32.jpg</url>
	<title>応用情報技術者</title>
	<link>https://ascend-beyond.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href=""/>	<item>
		<title>GRE over IPsecをネスペ午後問を解きながら９秒で理解！</title>
		<link>https://ascend-beyond.com/study/6792/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 09 Mar 2025 07:19:00 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6792</guid>

					<description><![CDATA[目次 問題文企業Aの拠点間接続におけるGRE over IPsecの導入設問(1) GRE over IPsecを利用する理由として、以下の空欄[A]〜[C]に当てはまる語句を答えよ。(2) GREトンネルを構成した際の [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><strong><span class="fz-20px"><span style="text-decoration: underline;">【９秒チャレンジ】<br></span></span></strong><span class="fz-18px"><span class="bold-red">GRE</span>（Generic Routing Encapsulation）は、異なるプロトコルのパケットをカプセル化してIPネットワーク上で運べる技術です。</span><br><span class="fz-18px"><span style="text-decoration: underline;"><strong>GRE over IPsec での役割</strong><br></span>IPsecはユニキャスト専用なので、<span class="red">マルチキャスト</span>を使うOSPFはそのままでは流せません。そこで、GREがOSPFパケットをカプセル化してユニキャスト化します。IPsecはそのユニキャスト化されたGREパケットを暗号化して送信します。受信側はIPsecで復号→GREを解除して、OSPFパケットを取り出します。</span></p>



<p><span class="fz-18px">つまり、GREはIPsecとOSPFの架け橋になっていて、「暗号化したいけどマルチキャストしたい」問題を解決してくれるんです！</span></p>



<p></p>



<p><span class="fz-18px"><span class="fz-16px">もし、この説明でモヤモヤしても、大丈夫！<br>以下の問題でアウトプットしていくことで無理なく理解に落とし込むことができます！</span></span></p>



<p><span class="fz-18px">では、練習問題を通して実感していきましょう！</span></p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">問題文</a><ol><li><a href="#toc2" tabindex="0">企業Aの拠点間接続におけるGRE over IPsecの導入</a></li><li><a href="#toc3" tabindex="0">設問</a><ol><li><a href="#toc4" tabindex="0">(1) GRE over IPsecを利用する理由として、以下の空欄[A]〜[C]に当てはまる語句を答えよ。</a></li><li><a href="#toc5" tabindex="0">(2) GREトンネルを構成した際の本社ルータ側の設定コマンド（Ciscoルータ）として適切なものを以下から選び、番号で答えよ。</a></li><li><a href="#toc6" tabindex="0">(3) トンネルインターフェースが正常に確立した場合、本社側ルータで以下のコマンドを実行した結果、支社側のトンネルIPが返ってこなかった。このとき、考えられる原因として最も適切なものを答えよ。</a></li></ol></li></ol></li><li><a href="#toc7" tabindex="0">解答と解説</a><ol><li><a href="#toc8" tabindex="0">設問 (1)</a></li><li><a href="#toc9" tabindex="0">設問 (2) の解答と解説</a></li><li><a href="#toc10" tabindex="0">設問 (3) の解答と解説</a><ol><li><a href="#toc11" tabindex="0">(3) トンネルインターフェースが正常に確立した場合、本社側ルータで以下のコマンドを実行した結果、支社側のトンネルIPが返ってこなかった。このとき、考えられる原因として最も適切なものを答えよ。</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">問題文</span></h2>



<h3 class="wp-block-heading"><span id="toc2">企業Aの拠点間接続におけるGRE over IPsecの導入</span></h3>



<p>企業Aでは、本社と3つの支社間で安全かつ柔軟な通信を行うために「GRE over IPsec」を利用した拠点間VPNを導入することになった。</p>



<p>本社と各支社はインターネットを介して接続されており、既存の通信はIPsec VPNで暗号化されていた。しかし、支社ごとに複数のネットワークセグメントが存在し、OSPFによる動的ルーティングを利用したいという要望があった。そこで、IPsecの暗号化機能とGREのカプセル化機能を組み合わせることになった。</p>



<p>以下のネットワーク構成図を参照し、設問に答えよ。</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">LESS</span><span role="button" tabindex="0" data-code="[本社] ---[インターネット]---[支社1]
    |                               |
[192.168.1.0/24]            [192.168.2.0/24]
" 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 style="color: #A6E22E">インターネット</span><span style="color: #F8F8F2">]---[</span><span style="color: #A6E22E">支社1</span><span style="color: #F8F8F2">]</span></span>
<span class="line"><span style="color: #F8F8F2">    |                               |</span></span>
<span class="line"><span style="color: #F8F8F2">[192.168.1.0/24]            [192.168.2.0/24]</span></span>
<span class="line"></span></code></pre></div>



<ul class="wp-block-list">
<li>本社ルータ：WANインターフェース 203.0.113.1</li>



<li>支社1ルータ：WANインターフェース 198.51.100.1</li>
</ul>



<p>GREトンネルの構成は以下の通り：</p>



<ul class="wp-block-list">
<li>トンネルインターフェースIP（本社）：10.0.0.1/30</li>



<li>トンネルインターフェースIP（支社1）：10.0.0.2/30</li>
</ul>



<p>IPsec設定は以下のポリシーに基づく：</p>



<ul class="wp-block-list">
<li>暗号化アルゴリズム：AES-256</li>



<li>認証アルゴリズム：SHA-256</li>



<li>IKEバージョン：IKEv2</li>
</ul>



<h3 class="wp-block-heading"><span id="toc3">設問</span></h3>



<h4 class="wp-block-heading"><span id="toc4">(1) GRE over IPsecを利用する理由として、以下の空欄[A]〜[C]に当てはまる語句を答えよ。</span></h4>



<ol class="wp-block-list">
<li>GREは、[A] プロトコルをカプセル化することで、異なるネットワーク間で非IPトラフィックやマルチキャスト通信を通過させることができる。</li>



<li>しかし、GRE自体には[B] 機能がないため、IPsecで通信内容を暗号化する必要がある。</li>



<li>GRE over IPsecの構成を用いることで、[C] などの動的ルーティングプロトコルを安全に利用できる。</li>
</ol>



<h4 class="wp-block-heading"><span id="toc5">(2) GREトンネルを構成した際の本社ルータ側の設定コマンド（Ciscoルータ）として適切なものを以下から選び、番号で答えよ。</span></h4>



<ol class="wp-block-list">
<li></li>
</ol>



<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">Nginx</span><span role="button" tabindex="0" data-code="interface Tunnel0  
  ip address 10.0.0.1 255.255.255.252  
  tunnel source 203.0.113.1  
  tunnel destination 198.51.100.1  
  tunnel mode ipsec 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: #F92672">interface</span><span style="color: #F8F8F2"> Tunnel0  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">ip</span><span style="color: #F8F8F2"> address </span><span style="color: #AE81FF">10.0.0.1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255.255.252</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> source </span><span style="color: #AE81FF">203.0.113.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> destination </span><span style="color: #AE81FF">198.51.100.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> mode ipsec ipv4  </span></span>
<span class="line"></span></code></pre></div>



<ol start="2" class="wp-block-list">
<li></li>
</ol>



<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">Nginx</span><span role="button" tabindex="0" data-code="interface Tunnel0  
  ip address 10.0.0.1 255.255.255.252  
  tunnel source 203.0.113.1  
  tunnel destination 198.51.100.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: #F92672">interface</span><span style="color: #F8F8F2"> Tunnel0  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">ip</span><span style="color: #F8F8F2"> address </span><span style="color: #AE81FF">10.0.0.1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255.255.252</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> source </span><span style="color: #AE81FF">203.0.113.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> destination </span><span style="color: #AE81FF">198.51.100.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"></span></code></pre></div>



<ol start="3" class="wp-block-list">
<li></li>
</ol>



<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">Nginx</span><span role="button" tabindex="0" data-code="crypto map VPN-MAP 10 ipsec-isakmp  
  set peer 198.51.100.1  
  set transform-set ESP-AES-SHA  
  match address 100  
" 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">crypto</span><span style="color: #F8F8F2"> map VPN-MAP </span><span style="color: #AE81FF">10</span><span style="color: #F8F8F2"> ipsec-isakmp  </span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #F92672"> set </span><span style="color: #F8F8F2">peer </span><span style="color: #AE81FF">198.51.100.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  set transform-set ESP-AES-SHA  </span></span>
<span class="line"><span style="color: #F8F8F2">  match address </span><span style="color: #AE81FF">100</span><span style="color: #F8F8F2">  </span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading"><span id="toc6">(3) トンネルインターフェースが正常に確立した場合、本社側ルータで以下のコマンドを実行した結果、支社側のトンネルIPが返ってこなかった。このとき、考えられる原因として最も適切なものを答えよ。</span></h4>



<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">Nginx</span><span role="button" tabindex="0" data-code="ping 10.0.0.2 source 10.0.0.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: #F92672">ping</span><span style="color: #F8F8F2"> 10.0.0.2 source </span><span style="color: #AE81FF">10.0.0.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li>支社側のトンネルインターフェースが無効になっている</li>



<li>IPsecのSA(Security Association)が確立されていない</li>



<li>本社側でトンネルモードが正しく設定されていない</li>



<li>支社側ルータのNAT設定が不正である</li>
</ol>



<h2 class="wp-block-heading"><span id="toc7">解答と解説</span></h2>



<h3 class="wp-block-heading"><span id="toc8">設問 (1)</span></h3>



<ol class="wp-block-list">
<li>GREは、[A] プロトコルをカプセル化することで、異なるネットワーク間で非IPトラフィックやマルチキャスト通信を通過させることができる。</li>



<li>しかし、GRE自体には[B] 機能がないため、IPsecで通信内容を暗号化する必要がある。</li>



<li>GRE over IPsecの構成を用いることで、[C] などの動的ルーティングプロトコルを安全に利用できる。</li>
</ol>



<ul class="wp-block-list">
<li><strong>[A] 任意のレイヤ3</strong></li>



<li><strong>[B] 暗号化</strong></li>



<li><strong>[C] OSPF</strong></li>
</ul>



<ul class="wp-block-list">
<li>GRE（Generic Routing Encapsulation）は、IPパケットだけでなく、IPv6、IPX、AppleTalk などのさまざまな<span class="red">レイヤ3プロトコル</span>をカプセル化できます。これにより、異なるネットワーク間でマルチキャストやブロードキャストパケットを通過させることができます。</li>



<li>ただし、GRE自体には<span class="red">暗号化機能がない</span>ため、データはそのまま平文で流れてしまいます。そこで、GREパケットごとIPsecで暗号化すると、安全性が確保できます。</li>



<li>OSPFなどの動的ルーティングプロトコルはマルチキャストを使うので、IPsec単体では通りませんが、GREトンネル上なら正常に動作します。</li>
</ul>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px">IPsecはマルチキャストを扱えない。なので、OSPFのパケット（マルチキャスト）をユニキャストして扱えるようにする手段として、GREヘッダを挟むという訳です。</span></p>



<p></p>



<p><span class="fz-18px">扱えない理由としては、IPsecで鍵交換する際に<span class="red">マルチキャストだと、相手が複数あり過ぎてどの相手とSAを確立すべきか分からなくなってしまう</span>からです。また、マルチキャストに所属している<span class="red">すべての相手と交換するという手段もありますが、それはもはやユニキャストになってしまい、マルチキャストのメリットが享受できません</span>。</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">Nginx</span><span role="button" tabindex="0" data-code="| IPsecヘッダ | 外側IPヘッダ | GREヘッダ | 内側IPヘッダ | OSPFパケット |" 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">| IPsecヘッダ | 外側IPヘッダ | GREヘッダ | 内側IPヘッダ | OSPFパケット |</span></span></code></pre></div>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc9">設問 (2) の解答と解説</span></h3>



<p><span class="fz-20px"><strong><span style="text-decoration: underline;">1.</span></strong></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">Nginx</span><span role="button" tabindex="0" data-code="interface Tunnel0  
  ip address 10.0.0.1 255.255.255.252  
  tunnel source 203.0.113.1  
  tunnel destination 198.51.100.1  
  tunnel mode ipsec 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: #F92672">interface</span><span style="color: #F8F8F2"> Tunnel0  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">ip</span><span style="color: #F8F8F2"> address </span><span style="color: #AE81FF">10.0.0.1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255.255.252</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> source </span><span style="color: #AE81FF">203.0.113.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> destination </span><span style="color: #AE81FF">198.51.100.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> mode ipsec ipv4  </span></span>
<span class="line"></span></code></pre></div>



<p>この設定では、トンネルモードとして次の行があります：</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">Nginx</span><span role="button" tabindex="0" data-code="tunnel mode ipsec 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: #F92672">tunnel</span><span style="color: #F8F8F2"> mode ipsec ipv4</span></span></code></pre></div>



<p>これは <strong>IPsecトンネルモード</strong> を直接トンネルインターフェースに適用しています。実はこの方法だと、<strong>GREトンネルが使えなくなる</strong>んです。つまり、「GRE over IPsec」ではなく、純粋なIPsecトンネルになります。</p>



<ul class="wp-block-list">
<li>GREのメリット（マルチキャスト対応、動的ルーティングプロトコルの利用）が失われる</li>



<li>OSPFやEIGRPなどの<strong>マルチキャストを使うプロトコルが正常に動かない</strong></li>
</ul>



<p>要するに、<strong>「GREトンネルをIPsecで暗号化したい」のに、IPsecトンネルモードにしてしまうと、GRE自体が無効化される</strong>わけです。</p>



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



<p><span class="fz-20px"><strong><span style="text-decoration: underline;">2.</span></strong></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">Nginx</span><span role="button" tabindex="0" data-code="interface Tunnel0  #仮想インターフェース &quot;Tunnel0&quot; を作成・設定します
  ip address 10.0.0.1 255.255.255.252  #仮想インターフェース（トンネル）のIPアドレスを設定
  tunnel source 203.0.113.1  #物理インタフェースのIPアドレスを設定
  tunnel destination 198.51.100.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: #F92672">interface</span><span style="color: #F8F8F2"> Tunnel0  </span><span style="color: #88846F">#仮想インターフェース &quot;Tunnel0&quot; を作成・設定します</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">ip</span><span style="color: #F8F8F2"> address </span><span style="color: #AE81FF">10.0.0.1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255.255.252</span><span style="color: #F8F8F2">  </span><span style="color: #88846F">#仮想インターフェース（トンネル）のIPアドレスを設定</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> source </span><span style="color: #AE81FF">203.0.113.1</span><span style="color: #F8F8F2">  </span><span style="color: #88846F">#物理インタフェースのIPアドレスを設定</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> destination </span><span style="color: #AE81FF">198.51.100.1</span><span style="color: #F8F8F2">  </span><span style="color: #88846F">#相手の物理インタフェースアドレスを設定</span></span></code></pre></div>



<p>この設定では、<strong>シンプルなGREトンネル</strong>を作成しています。</p>



<ul class="wp-block-list">
<li><strong>トンネルインターフェースのIPアドレスを設定</strong>（仮想リンクのIP）</li>



<li><strong>トンネルの送信元・宛先IPを指定</strong>（物理インターフェースのパブリックIP）</li>
</ul>



<p>この状態でトンネルができたら、<strong>IPsec設定は別途 &#8220;crypto map&#8221; で行う</strong>のが正しい構成です。つまり：</p>



<ul class="wp-block-list">
<li><strong>GREでマルチキャストパケットをユニキャストパケットに包む</strong></li>



<li><strong>IPsecでGREパケットごと暗号化</strong></li>
</ul>



<p>この順番を守ることで、<strong>動的ルーティングプロトコル</strong>が動作しつつ、安全な通信が確立します。</p>



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



<p><strong><span class="fz-18px"><span class="fz-20px"><span style="text-decoration: underline;">3.</span></span></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(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">LESS</span><span role="button" tabindex="0" data-code="crypto map VPN-MAP 10 ipsec-isakmp  
  set peer 198.51.100.1  
  set transform-set ESP-AES-SHA  
  match address 100  
" 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">crypto </span><span style="color: #F92672">map</span><span style="color: #F8F8F2"> VPN-MAP 10 </span><span style="color: #F92672">ipsec-isakmp</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  set peer 198</span><span style="color: #A6E22E">.51.100.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">  set </span><span style="color: #F92672">transform-set</span><span style="color: #F8F8F2"> ESP-AES-SHA  </span></span>
<span class="line"><span style="color: #F8F8F2">  match </span><span style="color: #F92672">address</span><span style="color: #F8F8F2"> 100  </span></span>
<span class="line"></span></code></pre></div>



<p>これは<strong>IPsecのCrypto Map</strong>の設定です。</p>



<ul class="wp-block-list">
<li><strong>peer</strong> → トンネルの宛先IPアドレスを指定</li>



<li><strong>transform-set</strong> → 暗号アルゴリズム（AESとSHA）を指定</li>



<li><strong>match address</strong> → 暗号化対象トラフィックをアクセスリストで指定</li>
</ul>



<p>この設定自体は必要ですが、<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">Nginx</span><span role="button" tabindex="0" data-code="interface Tunnel0
  tunnel source 203.0.113.1
  tunnel destination 198.51.100.1
  crypto map VPN-MAP
" 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">interface</span><span style="color: #F8F8F2"> Tunnel0</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> source 203.0.113.1</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">tunnel</span><span style="color: #F8F8F2"> destination 198.51.100.1</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #F92672">crypto</span><span style="color: #F8F8F2"> map VPN-MAP</span></span>
<span class="line"></span></code></pre></div>



<p>のように、<strong>トンネルインターフェースにCrypto Mapを紐付ける</strong>必要があります。単にCrypto Mapだけ定義しても、インターフェース側で使わないとIPsecが動きません。</p>



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



<h3 class="wp-block-heading"><span id="toc10">設問 (3) の解答と解説</span></h3>



<h4 class="wp-block-heading"><span id="toc11">(3) トンネルインターフェースが正常に確立した場合、本社側ルータで以下のコマンドを実行した結果、支社側のトンネルIPが返ってこなかった。このとき、考えられる原因として最も適切なものを答えよ。</span></h4>



<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">Nginx</span><span role="button" tabindex="0" data-code="ping 10.0.0.2 source 10.0.0.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: #F92672">ping</span><span style="color: #F8F8F2"> 10.0.0.2 source </span><span style="color: #AE81FF">10.0.0.1</span><span style="color: #F8F8F2">  </span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li>支社側のトンネルインターフェースが無効になっている</li>



<li><strong><span class="red">IPsecのSA(Security Association)が確立されていない</span></strong></li>



<li>本社側でトンネルモードが正しく設定されていない</li>



<li>支社側ルータのNAT設定が不正である</li>
</ol>



<p><code>ping</code> コマンドで支社のトンネルIPに通信できなかった理由として最も考えられるのは、IPsecのSAが確立していないことです。<br>SAが確立されていなければ、GREパケットが暗号化されずインターネット上で破棄される可能性があります。<br>この場合、以下のコマンドでSAの状態を確認できます。</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">Nginx</span><span role="button" tabindex="0" data-code="show crypto ipsec sa " 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">show</span><span style="color: #F8F8F2"> crypto ipsec sa </span></span></code></pre></div>



<p>もしSAが確立されていなければ、以下の点をチェックするとよいです：</p>



<ul class="wp-block-list">
<li>IKEフェーズ1・フェーズ2の設定（暗号化アルゴリズム、認証方式、プリシェアードキー）が一致しているか</li>



<li>アクセスリストでGREトラフィック（プロトコル番号 47）が許可されているか</li>



<li>双方のルータのトンネルインターフェースのステータスが「up/up」になっているか</li>
</ul>



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



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="One Direction   Happily (Acoustic with Lyrics)" width="1256" height="707" src="https://www.youtube.com/embed/wyRnNy_RjZM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"><strong>One Direction Happily (Acoustic with Lyrics)</strong></figcaption></figure>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>IPsecをネスペ午後問を解きながら９秒でパパっと理解</title>
		<link>https://ascend-beyond.com/study/6770/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 09 Mar 2025 04:21:24 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[投資]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6770</guid>

					<description><![CDATA[目次 問題：IPsecを用いた拠点間接続の設計とトラブルシューティング設問1: IPsecの基本動作設問2: トラブルシューティング設問3: セキュリティ強化解答と解説設問1(1) ESPを使用した場合のパケット変化設問 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><strong><span class="fz-20px"><span style="text-decoration: underline;">【９秒チャレンジ】<br></span></span></strong><span class="fz-18px"><span class="bold-red">IPsec</span>はインターネット上の通信を安全にする技術で、データ暗号化・認証の<span class="red">ESP</span>や鍵交換の<span class="red">IKE</span>を使います。IKEには2つのフェーズがあり、フェーズ1（<span class="red">IKE SA</span>)でDiffie-Hellmanにより安全な共有秘密を作り、フェーズ2(<span class="red">Child SA</span>)でESPなどの暗号化パラメータを決めます。実際の通信はChild SAごとに暗号化・復号され、<span class="red">PFS</span>が有効なら鍵が漏れても過去の通信は守られます。これによりインターネット上に仮想専用線を構築し、安全な<span class="red">VPN接続</span>が可能になります。</span></p>



<p></p>



<p><span class="fz-18px">更に詳しく知りたい場合↓</span></p>



<p><span class="fz-18px"><span class="fz-16px">もし、この説明でモヤモヤしても、大丈夫！<br>以下の問題でアウトプットしていくことで無理なく理解に落とし込むことができます！</span></span></p>



<p><span class="fz-18px">では、練習問題を通して実感していきましょう！</span></p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">問題：IPsecを用いた拠点間接続の設計とトラブルシューティング</a><ol><li><a href="#toc2" tabindex="0">設問1: IPsecの基本動作</a></li><li><a href="#toc3" tabindex="0">設問2: トラブルシューティング</a></li><li><a href="#toc4" tabindex="0">設問3: セキュリティ強化</a></li></ol></li><li><a href="#toc5" tabindex="0">解答と解説</a><ol><li><a href="#toc6" tabindex="0">設問1(1) ESPを使用した場合のパケット変化</a></li><li><a href="#toc7" tabindex="0">設問1(2) IKEv2のフェーズ</a><ol><ol><ol><li><a href="#toc8" tabindex="0">フェーズ1 (IKE SA)</a></li><li><a href="#toc9" tabindex="0">フェーズ2 (Child SA)</a></li><li><a href="#toc10" tabindex="0">2つに分けるメリット</a></li></ol></li></ol></li></ol></li><li><a href="#toc11" tabindex="0">設問2: トラブルシューティング</a><ol><ol><ol><li><a href="#toc12" tabindex="0">代表的なグループ</a></li></ol></li></ol></li></ol></li><li><a href="#toc13" tabindex="0">設問３(1) PFSとは？</a></li><li><a href="#toc14" tabindex="0">設問３(2) PFSの利点とパフォーマンス影響</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">問題：IPsecを用いた拠点間接続の設計とトラブルシューティング</span></h2>



<p>ある企業では、2つの拠点間を安全に接続するため、IPsec VPN を利用することになりました。以下のネットワーク構成図を参考に、設計方針やトラブル発生時の対応について考えてください。</p>



<p><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">LESS</span><span role="button" tabindex="0" data-code="拠点A                         拠点B
+-------------+              +-------------+
| 192.168.1.0/24| ←IPsec→ | 192.168.2.0/24 |
|  ルータA      |              |  ルータB      |
|  (VPN GW)    |              |  (VPN GW)    |
+-------------+              +-------------+
" 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">拠点A                         拠点B</span></span>
<span class="line"><span style="color: #F8F8F2">+-------------+              +-------------+</span></span>
<span class="line"><span style="color: #F8F8F2">| 192</span><span style="color: #A6E22E">.168.1.0</span><span style="color: #F8F8F2">/24| ←IPsec→ | 192</span><span style="color: #A6E22E">.168.2.0</span><span style="color: #F8F8F2">/24 |</span></span>
<span class="line"><span style="color: #F8F8F2">|  ルータA      |              |  ルータB      |</span></span>
<span class="line"><span style="color: #F8F8F2">|  (VPN GW)    |              |  (VPN GW)    |</span></span>
<span class="line"><span style="color: #F8F8F2">+-------------+              +-------------+</span></span>
<span class="line"></span></code></pre></div>



<p><strong>IPsec設定情報:</strong></p>



<ul class="wp-block-list">
<li>プロトコル: ESP (Encapsulating Security Payload)</li>



<li>暗号化アルゴリズム: AES-256</li>



<li>認証アルゴリズム: SHA-256</li>



<li>モード: トンネルモード</li>



<li>キー交換: IKEv2</li>



<li>SAの有効期限: 3600秒</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc2">設問1: IPsecの基本動作</span></h3>



<p>IPsecのトンネルモードにおいて、拠点Aから拠点Bへのパケット送信時に、次の処理が行われます。以下の問いに答えなさい。</p>



<p>(1) ESPを使用した場合、IPパケットにどのような変化が加えられるか、ヘッダ構成を説明しなさい。<br>(2) IKEv2を用いた鍵交換において、SA(Security Association)が確立されるまでの主要なフェーズを2つ挙げ、それぞれの役割を簡潔に説明しなさい。</p>



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



<h3 class="wp-block-heading"><span id="toc3">設問2: トラブルシューティング</span></h3>



<p>拠点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(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">LESS</span><span role="button" tabindex="0" data-code="IPsec: no proposal chosen
" 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">IPsec: no proposal chosen</span></span>
<span class="line"></span></code></pre></div>



<p>このメッセージの意味を説明し、問題を解決するための具体的な設定変更案を述べなさい。</p>



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



<h3 class="wp-block-heading"><span id="toc4">設問3: セキュリティ強化</span></h3>



<p>セキュリティをさらに強化するために、現在のIPsec設定に「Perfect Forward Secrecy (PFS)」を追加することが検討されています。</p>



<p>(1) PFSとは何かを説明しなさい。<br>(2) PFSを有効にすることで得られる利点と、考慮すべきパフォーマンスへの影響について述べなさい。</p>



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



<p>問題は以上です！</p>



<h2 class="wp-block-heading"><span id="toc5">解答と解説</span></h2>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<a href="https://ascend-beyond.com/study/6768/" title="【FAQ】IPsecのあるある疑問をパパっと解消" 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/03/28262cba2f9a7505a3ed7b9e17dea962-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://ascend-beyond.com/wp-content/uploads/2025/03/28262cba2f9a7505a3ed7b9e17dea962-160x90.jpg 160w, https://ascend-beyond.com/wp-content/uploads/2025/03/28262cba2f9a7505a3ed7b9e17dea962-300x169.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2025/03/28262cba2f9a7505a3ed7b9e17dea962-1024x576.jpg 1024w, https://ascend-beyond.com/wp-content/uploads/2025/03/28262cba2f9a7505a3ed7b9e17dea962-768x432.jpg 768w, https://ascend-beyond.com/wp-content/uploads/2025/03/28262cba2f9a7505a3ed7b9e17dea962-120x68.jpg 120w, https://ascend-beyond.com/wp-content/uploads/2025/03/28262cba2f9a7505a3ed7b9e17dea962-320x180.jpg 320w, https://ascend-beyond.com/wp-content/uploads/2025/03/28262cba2f9a7505a3ed7b9e17dea962.jpg 1200w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【FAQ】IPsecのあるある疑問をパパっと解消</div><div class="blogcard-snippet internal-blogcard-snippet">そもそもIPsecって何？IPsecとは？VPNとは？IPsecとVPNの関係具体的なイメージまとめIPsecとESPの関係は？また、IPsecとIKEの関係は？IPsecとESPの関係IKEv2とは？IPsecとIKEv2の関係はこう考える！鍵交換のフェーズで中間者攻撃される危険性もあるよね？IKEv2 鍵交換の前のやり取りは本当に危険？IKEv2 が中間者攻撃を防ぐ仕組み① Diffie-Hellman (DH) 鍵交換② Nonce (ノンス) とハッシュの検証③ デジタル署名 &amp; 証明書 (ID 認証)④ 暗号アルゴリズムのネゴシエーションの保護まとめ：IKEv2 が中間者攻撃に強い理由フェーズ1 (IKE-SA) で Diffie-Hellman で鍵を共有できるなら、それだけで直接 IPsec のパラメータ交換して、そのまま通信開始すればよくない？まず前提整理：フェーズ1 とフェーズ2 の役割なぜ IKE-SA だけじゃダメなのか？1. IKE-SA の鍵は IKE 用、データ通信には向かない2. 複数の Child-SA を作れる柔軟性3. 鍵の再生成・ローテーションがスムーズ4. フェーズ1 だけだと IPsec の細かい制御が難しいまとめ：フェーズを分ける意味もしフェーズ1だけで済ませると？結論：フェーズを分けることでセキュリティと運用性を両立フェーズ１の鍵が漏洩したら、元も子もないんじゃない？前提確認：フェーズ1とフェーズ2の関係鍵漏えい時のリスクと設計思想1. Diffie-Hellman の鍵交換自体は超強力2. Perfect Forward Secrecy (PFS) の意味3. フェーズ1鍵の漏えいは超クリティカルだけど短命4. 鍵漏えいの現実的な経路フェーズ1鍵漏えい時の対策結論：フェーズ1の鍵漏えいは致命的、でも設計上の防御策は万全フェーズ1 (IKE-SA) が短期間で終わるなら、フェーズ2 (Child-SA) の鍵ローテーションって意味あるの？フェーズ1とフェーズ2の役割をもう一度整理なぜフェーズ1が短期間でもフェーズ2の鍵ローテーションが必要なのか？1. IKE-SA は「メタ通信路」、Child-SA は「実データ通信」2. フェーズ1の再ネゴシエーションは重い3. セッション継続性の確保4. 攻撃者のコストを爆増させるまとめ：フェーズ1短期終了と鍵ローテーションのバランス</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.03.09</div></div></div></div></a>
</div></figure>



<h3 class="wp-block-heading"><span id="toc6">設問1(1) ESPを使用した場合のパケット変化</span></h3>



<p><strong>解答:</strong><br>ESP (Encapsulating Security Payload) を使うと、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">LESS</span><span role="button" tabindex="0" data-code="[新IPヘッダ] + [ESPヘッダ] + [元IPパケット (暗号化)] + [ESPトレーラ] + [ESP認証データ]
" 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">新IPヘッダ</span><span style="color: #F8F8F2">] + [</span><span style="color: #A6E22E">ESPヘッダ</span><span style="color: #F8F8F2">] + [</span><span style="color: #A6E22E">元IPパケット</span><span style="color: #F8F8F2"> (</span><span style="color: #A6E22E">暗号化</span><span style="color: #F8F8F2">)] + [</span><span style="color: #A6E22E">ESPトレーラ</span><span style="color: #F8F8F2">] + [</span><span style="color: #A6E22E">ESP認証データ</span><span style="color: #F8F8F2">]</span></span>
<span class="line"></span></code></pre></div>



<ul class="wp-block-list">
<li><strong>新IPヘッダ</strong>: VPNゲートウェイ同士のIPアドレスを送信元・宛先とするヘッダ。</li>



<li><strong>ESPヘッダ</strong>: セキュリティパラメータインデックス (SPI) やシーケンス番号を含む。</li>



<li><strong>元IPパケット</strong>: 元の送信者と受信者のIPヘッダとデータ部全体が暗号化される。</li>



<li><strong>ESPトレーラ</strong>: パケットの長さ調整やプロトコル識別用データ。</li>



<li><strong>ESP認証データ</strong>: パケットの改ざん検知用のハッシュ値 (SHA-256 など)。</li>
</ul>



<p><strong>解説:</strong><br>ESPは、通信データの <strong>暗号化</strong> と <strong>完全性保護</strong> を提供します。トンネルモードでは、元IPパケット全体を暗号化し、新しいIPヘッダを付加します。これにより、送信元や宛先のIPアドレス自体も隠され、セキュリティが強化されます。</p>



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



<h3 class="wp-block-heading"><span id="toc7">設問1(2) IKEv2のフェーズ</span></h3>



<p><strong>解答:</strong><br>IKEv2 には、次の2つの主要なフェーズがあります。</p>



<ol class="wp-block-list">
<li><strong>IKE SA (Security Association) の確立:</strong>
<ul class="wp-block-list">
<li>双方のデバイスが暗号アルゴリズムや認証方式を交渉し、<span class="red">鍵交換</span>を行う。</li>



<li>Diffie-Hellman (DH) 鍵交換で共有鍵を生成し、安全な通信チャネルを作成。</li>
</ul>
</li>



<li><strong>Child SA の確立:</strong>
<ul class="wp-block-list">
<li>実際のデータ通信のためのIPsec SAを作成。</li>



<li>ここでESPや<span class="red">暗号化アルゴリズム</span>の<span class="red">パラメータ</span>が決定され、通信準備完了。</li>
</ul>
</li>
</ol>



<p><strong>解説:</strong><br>IKEv2では、最初に安全な制御チャネルを作り、その後データ用のセキュリティ設定を確立します。これにより、安全に暗号鍵を交換しつつ、柔軟にセッション管理ができます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px">２つのフェーズに分ける利点は&#8230;..<strong>堅牢な基盤 (IKE SA) + 軽くて回転の速い鍵 (Child SA)</strong> を組み合わせることで、安全性と効率のバランスを取っているんです！</span></p>



<h6 class="wp-block-heading"><span id="toc8">フェーズ1 (IKE SA)</span></h6>



<ul class="wp-block-list">
<li><strong>強固で安全な基盤</strong>を作るフェーズ。</li>



<li>Diffie-Hellman でトンネル用の共通鍵を生成。</li>



<li>ただし<span class="bold-red">計算コストが高い</span>ため、頻繁には再生成しない。</li>
</ul>



<h6 class="wp-block-heading"><span id="toc9">フェーズ2 (Child SA)</span></h6>



<ul class="wp-block-list">
<li><strong>実際のデータを暗号化</strong>するフェーズ。</li>



<li>軽くて素早く作成できるセッション鍵を使う。</li>



<li>定期的に鍵を自動更新し、漏洩しても影響を最小限に抑える。</li>
</ul>



<h6 class="wp-block-heading"><span id="toc10">2つに分けるメリット</span></h6>



<ul class="wp-block-list">
<li><strong>IKE SA</strong> で一度強固な安全トンネルを作れば、<strong>Child SA</strong> で効率的に暗号化通信を回せる。</li>



<li><strong>Child SA</strong> は頻繁に更新できるので、万が一鍵が漏洩しても、すぐ新しい鍵に切り替わる。</li>
</ul>
</div></div>



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"7日間でハッキングをはじめる本 Try撃手法と脆弱性","b":"翔泳社","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/510ERgcb-yL._SL500_.jpg","\/415NKBcnASL._SL500_.jpg","\/41FGljR1GrL._SL500_.jpg","\/41OSOPH3mcL._SL500_.jpg","\/41fKvGaB6CL._SL500_.jpg","\/41pogRF-eGL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4798181579","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4798181579","a_id":4440991,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/7%E6%97%A5%E9%96%93%E3%81%A7%E3%83%8F%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%9C%AC%20Try%E6%92%83%E6%89%8B%E6%B3%95%E3%81%A8%E8%84%86%E5%BC%B1%E6%80%A7\/","a_id":4440988,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2}],"eid":"YXyAs","s":"s"});
</script>
<div id="msmaflink-YXyAs">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->



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



<h3 class="wp-block-heading"><span id="toc11">設問2: トラブルシューティング</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">LESS</span><span role="button" tabindex="0" data-code="IPsec: no proposal chosen" 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">IPsec: no proposal chosen</span></span></code></pre></div>



<p><strong>解答:</strong><br>ログメッセージ <strong>&#8220;IPsec: no proposal chosen&#8221;</strong> は、両拠点のVPNゲートウェイ間で暗号化アルゴリズムや認証方式の<span class="red">設定が一致しない場合</span>に発生します。</p>



<p><strong>解決策:</strong><br>ルータAとルータBのIPsec設定を見直し、暗号化・認証アルゴリズムが一致していることを確認します。例えば、以下の項目をチェックします：</p>



<ul class="wp-block-list">
<li><strong>暗号アルゴリズム:</strong> 両方とも AES-256 になっているか？</li>



<li><strong>認証アルゴリズム:</strong> 両方とも SHA-256 になっているか？</li>



<li><strong>DHグループ:</strong> 両端が同じグループ番号を使っているか？ (例: group 14)</li>



<li><strong>ライフタイム:</strong> SAの有効期限が同じか？ (例: 3600秒)</li>
</ul>



<p><strong>解説:</strong><br>IPsecは両拠点の設定が完全に一致していないと接続できません。設定ミスがあると交渉失敗し、IPsecトンネルが張れなくなります。ログメッセージは問題箇所のヒントになるので、しっかり読み取ることが大切です！</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px">DHグループとは..<strong>DHグループ</strong>は、Diffie-Hellman（ディフィー・ヘルマン）鍵交換アルゴリズムで使われる「鍵の強度」を決めるパラメータセットのことです！</span><span class="fz-18px">ざっくり言うと、<strong>「どれだけ複雑で安全な数学的計算を使うか」</strong>を決めるものです。グループ番号が大きくなるほど、計算量が増えてセキュリティは強くなりますが、その分処理速度は遅くなります。</span></p>



<h6 class="wp-block-heading"><span id="toc12">代表的なグループ</span></h6>



<ul class="wp-block-list">
<li><strong>速度重視</strong>：Group 19 (楕円曲線 256bit) → 軽くて強度も十分</li>



<li><strong>バランス型</strong>：Group 14 (2048bit) → 現代の標準。十分強く、速度も悪くない</li>



<li><strong>最高強度</strong>：Group 20 (楕円曲線 384bit) or Group 24 (2048bit 以上) → 国家レベルの機密情報など超重要な通信向け</li>
</ul>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc13">設問３(1) PFSとは？</span></h3>



<p><strong>解答:</strong><br><strong>Perfect Forward Secrecy (完全前方秘匿性)</strong> とは、セッションごとに異なる一時的な鍵を使うことで、過去のセッション鍵が盗まれても、他のセッションの通信内容は解読されない仕組みです。</p>



<p><strong>解説:</strong><br>通常の鍵交換だと、もし長期鍵が盗まれると、過去の通信内容も解読されるリスクがあります。しかし、PFSでは<span class="red">セッションごとに新しい鍵</span>を生成するため、過去や未来の通信への影響を防げます。</p>



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



<h3 class="wp-block-heading"><span id="toc14">設問３(2) PFSの利点とパフォーマンス影響</span></h3>



<p><strong>解答:</strong></p>



<ul class="wp-block-list">
<li><strong>利点:</strong>
<ul class="wp-block-list">
<li>セッションごとに新しい鍵を生成 → 鍵漏洩リスク低減。</li>



<li>過去の暗号化データを盗聴されても解読困難。</li>
</ul>
</li>



<li><strong>パフォーマンスへの影響:</strong>
<ul class="wp-block-list">
<li>鍵交換のたびに新しいDH計算が必要 → <span class="red">CPU負荷増加</span>。</li>



<li>高トラフィック環境では、VPNゲートウェイの<span class="red">処理遅延発生</span>の可能性。</li>
</ul>
</li>
</ul>



<p><strong>解説:</strong><br>PFSはセキュリティを強化する代わりに、処理コストが上がります。ただし、最近のルータやファイアウォールはハードウェアアクセラレーション機能があるため、適切な機器を選べばパフォーマンス問題は最小限に抑えられます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【FAQ】ASとOSPFのあるある疑問をパパっと解消</title>
		<link>https://ascend-beyond.com/study/6755/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sat, 08 Mar 2025 09:57:09 +0000</pubDate>
				<category><![CDATA[FAQ]]></category>
		<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6755</guid>

					<description><![CDATA[リンク]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">OSPFの「エリア」とAS (自律システム) の関係性は？</a><ol><li><a href="#toc2" tabindex="0">AS (自律システム) とは？</a></li><li><a href="#toc3" tabindex="0">OSPFのエリアとは？</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">OSPFはフルメッシュ型。でもすべてのルータはエリア０を経由する..これって矛盾じゃない？</a><ol><li><a href="#toc7" tabindex="0">1. エリア内はフルメッシュ</a></li><li><a href="#toc8" tabindex="0">2. エリア間はエリア0がハブになる</a></li></ol></li><li><a href="#toc9" tabindex="0">エリア内のすべてのルータはエリア０とつながるの？</a><ol><li><a href="#toc10" tabindex="0">エリアボーダールータ (ABR) の役割</a></li><li><a href="#toc11" tabindex="0">ルートの流れ</a></li><li><a href="#toc12" tabindex="0">なぜABR方式にするのか？</a></li></ol></li><li><a href="#toc13" tabindex="0">異なるネットワークをエリアって言う。で、そのエリアの中には複数のルータがある。これって、ネットワークの中に更にネットワークがあるってこと？ え?どういうこと?</a><ol><li><a href="#toc14" tabindex="0">前提：ネットワークとルーターの関係</a></li><li><a href="#toc15" tabindex="0">エリアとネットワークの関係</a></li><li><a href="#toc16" tabindex="0">エリアの役割</a></li><li><a href="#toc17" tabindex="0">AS・エリア・ネットワークの関係のまとめ</a></li><li><a href="#toc18" tabindex="0">イメージ図</a></li></ol></li><li><a href="#toc19" tabindex="0">インターネットってそもそもなに？ASとの関係は？</a><ol><li><a href="#toc20" tabindex="0">インターネットとは？</a></li><li><a href="#toc21" tabindex="0">企業のネットワークはどうなってるの？</a></li><li><a href="#toc22" tabindex="0">企業がインターネットに接続する流れ</a></li><li><a href="#toc23" tabindex="0">インターネット通信の流れ</a></li><li><a href="#toc24" tabindex="0">AS・ISP・インターネットの関係図</a></li></ol></li><li><a href="#toc25" tabindex="0">インターネットを使う際のISPの意義は？なぜISPを経由するのか？</a><ol><li><a href="#toc26" tabindex="0">直接インターネットに接続する場合の課題</a></li><li><a href="#toc27" tabindex="0">ISPの役割とは？</a></li><li><a href="#toc28" tabindex="0">ISPがやってくれること</a></li><li><a href="#toc29" tabindex="0">インターネット接続の全体像</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">OSPFの「エリア」とAS (自律システム) の関係性は？</span></h2>



<h3 class="wp-block-heading"><span id="toc2">AS (自律システム) とは？</span></h3>



<p><span class="fz-18px">まず、<span class="bold-red">AS</span> (Autonomous System) は、<span class="red">同じ管理ポリシー</span>で運用されるネットワークのまとまりです。例えば、ある企業やISPが一元的に管理しているネットワーク全体がASになります。インターネット上のAS同士はBGP (Border Gateway Protocol) を使ってルーティングします。</span></p>



<p><strong>例</strong>：</p>



<ul class="wp-block-list">
<li>ISP Aのネットワーク → AS65001</li>



<li>ISP Bのネットワーク → AS65002</li>



<li>ある企業ネットワーク → AS65003</li>
</ul>



<p><span class="fz-18px">AS間の通信は基本的にBGPで行います。これは「インターネット全体で、どのASにどのネットワークがあるか」を教え合う仕組みです。</span></p>



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



<h3 class="wp-block-heading"><span id="toc3">OSPFのエリアとは？</span></h3>



<p><span class="fz-18px"><span class="red"><span class="bold-red">OSPF</span></span>は<span class="red">ASの「内部」</span>で使うプロトコル (IGP: Interior Gateway Protocol) です。そして、OSPFはスケールしやすくするために、1つのAS</span><span class="fz-18px">内の</span><span class="fz-18px">ネットワーク</span><span class="fz-18px">を「エリア」に分割します。</span></p>



<p>🔑 <strong>イメージ</strong>：</p>



<ul class="wp-block-list">
<li><strong>AS (自律システム)</strong> → 企業やISP全体</li>



<li><strong>エリア (OSPF内の区画)</strong> → 企業の支社・部門ごとのネットワーク</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc4">なぜエリアに分けるのか？</span></h3>



<p><span class="fz-18px">OSPFは全ルータがネットワーク全体の状態を持つ「リンクステート型」なので、ネットワーク規模が大きくなると制御トラフィックや計算量が膨大になります。これを防ぐために、ネットワークをエリアごとに分割します。</span></p>



<ul class="wp-block-list">
<li><strong>エリア0 (バックボーンエリア)</strong>：すべてのエリアをつなぐ中核エリア</li>



<li><strong>エリア1, エリア2&#8230; (通常エリア)</strong>：部門・支店ごとのネットワーク</li>
</ul>



<p><span class="fz-18px">各エリアの中では、自分のエリア内だけのトポロジー情報を保持し、他のエリアとは要約されたルート情報 (LSA Type 3) をやり取りします。これにより、ネットワーク規模が大きくても効率的に動作します。</span></p>



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



<h3 class="wp-block-heading"><span id="toc5">具体的なイメージ</span></h3>



<p><span class="fz-18px">例えば、全国に支店がある企業を考えましょう。</span></p>



<ul class="wp-block-list">
<li><strong>本社 (東京)</strong>：エリア0 (バックボーン)</li>



<li><strong>大阪支社</strong>：エリア1</li>



<li><strong>名古屋支社</strong>：エリア2</li>
</ul>



<p><span class="fz-18px">この場合、企業全体は1つのASで、OSPFを使ってAS内のルーティングを行います。でも、支店ごとにネットワーク規模が大きくなりすぎるので、それぞれをエリアに分けます。</span></p>



<ul class="wp-block-list">
<li>本社ルータ (エリア0) が各支社と接続</li>



<li>支社内のルータはエリア1やエリア2の中でルート計算</li>



<li>支社間の通信は一度エリア0を経由して行う (エリア間通信)</li>
</ul>



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



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc6">OSPFはフルメッシュ型。でもすべてのルータはエリア０を経由する..これって矛盾じゃない？</span></h2>



<p><span class="fz-18px">結論からいうと、「<span class="red">OSPFがフルメッシュ</span>になるのは<span class="red">エリア内だけ</span>」で、エリア間の通信はエリア0をハブにする、という構造になっています。ここをちゃんと整理しましょう！</span></p>



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



<h3 class="wp-block-heading"><span id="toc7">1. エリア内はフルメッシュ</span></h3>



<p><span class="fz-18px">OSPFは<span class="red">リンクステート型プロトコル</span>なので、同じエリア内のルータ同士は「LSA (Link-State Advertisement)」を使って全ルータの状態を共有します。これは <strong><span class="red">フルメッシュ的</span></strong> な状態になります。</span></p>



<p>🔧 <strong>具体例</strong>：エリア1にR3、R4、R5がいた場合</p>



<ul class="wp-block-list">
<li>R3 ↔ R4 ↔ R5 だけでなく</li>



<li>R3 ↔ R5 も直接トポロジー情報を持つ</li>
</ul>



<p><span class="fz-18px">つまり、エリア内では各ルータが全体のネットワーク構成を完全に知っているので、結果的にフルメッシュのような動きになります。</span></p>



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



<h3 class="wp-block-heading"><span id="toc8">2. エリア間はエリア0がハブになる</span></h3>



<p><span class="fz-18px">エリアを分割すると、エリア同士の通信は直接やり取りするのではなく、必ず<span class="bold-red">エリア0 (バックボーンエリア) </span>を経由します。</span></p>



<p><span class="fz-18px">これは設計上のルールであり、「エリア0を中継しなければルートが伝播しない」という制限を意図的に設けているんです。</span></p>



<p>🔧 <strong>具体例</strong>：</p>



<ul class="wp-block-list">
<li>エリア1 (R3, R4) ↔ エリア0 (R2) ↔ エリア2 (R6, R7)</li>
</ul>



<p><span class="fz-18px">この場合、エリア1のネットワーク情報は一度エリア0に集約され、エリア2に配信されます。逆も同じです。</span></p>



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



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc9">エリア内のすべてのルータはエリア０とつながるの？</span></h2>



<p>結論から言うと：</p>



<ul class="wp-block-list">
<li><strong>エリア内のすべてのルータがエリア0と直接つながるわけではありません。</strong></li>



<li><strong>各エリアに「代表的なルータ (<span class="bold-red">ABR</span>: Area Border Router)」がいて、そのルータがエリア0と中継します。</strong></li>
</ul>



<p>これをもう少し具体的に説明しますね！</p>



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



<h3 class="wp-block-heading"><span id="toc10">エリアボーダールータ (ABR) の役割</span></h3>



<p><span class="fz-18px">ABR (Area Border Router) は、<strong>複数のエリアに接続されているルータ</strong> のことで、エリア0と通常エリアをつなぐ役割を担います。</span></p>



<p>🔧 <strong>具体例</strong>：</p>



<ul class="wp-block-list">
<li><strong>R1</strong>：エリア0のみ</li>



<li><strong>R2 (ABR)</strong>：エリア0とエリア1の<span class="red">両方にインターフェースを持つ</span></li>



<li><strong>R3, R4</strong>：エリア1のみ</li>
</ul>



<p><span class="fz-18px">この場合、R3やR4はエリア0と直接つながっていません。代わりに、R2 (ABR) がエリア1の情報をエリア0に広報し、逆にエリア0の情報をエリア1に伝えます。</span></p>



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



<h3 class="wp-block-heading"><span id="toc11">ルートの流れ</span></h3>



<p><span class="fz-18px">例えば、R3がエリア2のネットワークにアクセスしたい場合：</span></p>



<ol class="wp-block-list">
<li>R3はルート情報をR2 (ABR) に送信</li>



<li>R2はエリア0にルートを広報</li>



<li>エリア0内のルータがルートを受け取り、エリア2のABR (例えばR6) に伝達</li>



<li>R6がエリア2内のルータにルートを配布</li>
</ol>



<p><span class="fz-18px">つまり、エリア0がバックボーンとして全エリアをつなぎ、各エリアはABRを通じてエリア0とつながっています。</span></p>



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



<h3 class="wp-block-heading"><span id="toc12">なぜABR方式にするのか？</span></h3>



<p><span class="fz-18px">もし全ルータがエリア0と直接つながる設計だと、ルータの数が増えるたびにリンク数も爆発的に増えてしまいます。ABR方式なら：</span></p>



<ul class="wp-block-list">
<li><strong>リンク数削減</strong>：エリアごとに1つまたは数台のルータだけがエリア0と接続</li>



<li><strong>スケーラビリティ</strong>：エリア内の変化がエリア0に直接影響しない</li>



<li><strong>障害隔離</strong>：エリア内の障害が他エリアに波及しにくい</li>
</ul>



<p><span class="fz-18px">要するに、ネットワーク全体を安定・効率的に運用できるんです！</span></p>



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



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc13">異なるネットワークをエリアって言う。で、そのエリアの中には複数のルータがある。これって、ネットワークの中に更にネットワークがあるってこと？ え?どういうこと?</span></h2>



<h3 class="wp-block-heading"><span id="toc14">前提：ネットワークとルーターの関係</span></h3>



<p><span class="fz-18px">まず基本的な構成をイメージしましょう。ルーターは異なるネットワークをつなぐ装置なので、ルーターが3台あるとき、それぞれのルーターが1つ以上のネットワークセグメント (サブネット) に接続している可能性があります。</span></p>



<p>🔧 <strong>具体例</strong>：ルーター3台 (R1, R2, R3) がある場合</p>



<ul class="wp-block-list">
<li><strong>R1</strong> に接続されたネットワーク → 192.168.1.0/24</li>



<li><strong>R2</strong> に接続されたネットワーク → 192.168.2.0/24</li>



<li><strong>R3</strong> に接続されたネットワーク → 192.168.3.0/24</li>
</ul>



<p><span class="fz-18px">そして、ルーター同士はインターフェース同士をつないで通信します。例えば、R1とR2を<span class="red">つなぐリンク自体も、1つのネットワーク</span> (例えば192.168.12.0/30) です。</span></p>



<p><span class="fz-18px">つまり、ルーターが複数台あるとき：</span></p>



<ul class="wp-block-list">
<li>各ルーターのLAN側ネットワーク (社内ネットワークなど)</li>



<li>ルーター間リンクのネットワーク</li>
</ul>



<p><span class="fz-18px">が存在します。</span></p>



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



<h3 class="wp-block-heading"><span id="toc15">エリアとネットワークの関係</span></h3>



<p><span class="fz-18px">ここが混乱ポイントだと思いますが、エリアとは「ネットワークのまとまり」のことです。OSPFでは、エリア内の複数のネットワークセグメントやルーターが、1つのエリアとしてグループ化されます。</span></p>



<p>🔧 <strong>具体例</strong>：エリア1に3台のルーターがいる場合</p>



<ul class="wp-block-list">
<li><strong>R1</strong> → 192.168.1.0/24</li>



<li><strong>R2</strong> → 192.168.2.0/24</li>



<li><strong>R3</strong> → 192.168.3.0/24</li>



<li><strong>R1 ↔ R2</strong> のリンク → 192.168.12.0/30</li>



<li><strong>R2 ↔ R3</strong> のリンク → 192.168.23.0/30</li>
</ul>



<p><span class="fz-18px">これらのネットワーク全部をひっくるめて、「エリア1」とします。つまり、<strong>エリアは複数のネットワークの集まり</strong> です。</span></p>



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



<h3 class="wp-block-heading"><span id="toc16">エリアの役割</span></h3>



<p><span class="fz-18px">エリアは「論理的な境界」で、ネットワークのまとまりを作ることで、ルーティングの負荷を軽くします。エリア内のルーターは、エリア内のすべてのネットワークを完全に把握しますが、エリア外のルートは「要約情報」だけを知ります。</span></p>



<p>例えば：</p>



<ul class="wp-block-list">
<li><strong>エリア1</strong> のネットワークは 192.168.0.0/16 として要約される</li>



<li><strong>エリア2</strong> は 10.0.0.0/16 として要約される</li>
</ul>



<p><span class="fz-18px">その結果、<strong>ルーターは外部エリアの個々の細かいネットワーク構成を気にせず、シンプルなルート情報で通信できるようになります</strong>。</span></p>



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



<h3 class="wp-block-heading"><span id="toc17">AS・エリア・ネットワークの関係のまとめ</span></h3>



<p><span class="fz-18px">整理するとこうなります！</span></p>



<ul class="wp-block-list">
<li><strong>AS (自律システム)</strong> → 1つの管理ポリシーのネットワーク全体
<ul class="wp-block-list">
<li>例えば、ある企業全体のネットワーク</li>



<li><strong>エリア0 (バックボーンエリア)</strong> → すべてのエリアをつなぐ中心エリア</li>



<li><strong>エリア1, エリア2&#8230;</strong> → 部署ごとや支店ごとなど、複数のネットワークをまとめた単位
<ul class="wp-block-list">
<li>各エリアの中には、<strong>複数のルーターと複数のネットワーク</strong> が存在する</li>



<li>エリア内のルーター同士はLSAを交換して、全ネットワーク情報を共有</li>
</ul>
</li>
</ul>
</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc18">イメージ図</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(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">Nginx</span><span role="button" tabindex="0" data-code="AS 65001 (1つの企業のネットワーク)
├── エリア0 (バックボーン)
│   ├── 10.0.0.0/30 (ルーター間リンク)
│   └── 10.0.1.0/30 (ルーター間リンク)
├── エリア1 (東京支社)
│   ├── 192.168.1.0/24 (部署AのLAN)
│   ├── 192.168.2.0/24 (部署BのLAN)
│   └── 192.168.12.0/30 (ルーター間リンク)
└── エリア2 (大阪支社)
    ├── 172.16.1.0/24 (部署CのLAN)
    ├── 172.16.2.0/24 (部署DのLAN)
    └── 172.16.12.0/30 (ルーター間リンク)
" 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">AS</span><span style="color: #F8F8F2"> 65001 (1つの企業のネットワーク)</span></span>
<span class="line"><span style="color: #F8F8F2">├── エリア0 (バックボーン)</span></span>
<span class="line"><span style="color: #F8F8F2">│   ├── 10.0.0.0/</span><span style="color: #F92672">30</span><span style="color: #F8F8F2"> (ルーター間リンク)</span></span>
<span class="line"><span style="color: #F8F8F2">│   └── 10.0.1.0/</span><span style="color: #F92672">30</span><span style="color: #F8F8F2"> (ルーター間リンク)</span></span>
<span class="line"><span style="color: #F8F8F2">├── エリア1 (東京支社)</span></span>
<span class="line"><span style="color: #F8F8F2">│   ├── 192.168.1.0/</span><span style="color: #F92672">24</span><span style="color: #F8F8F2"> (部署AのLAN)</span></span>
<span class="line"><span style="color: #F8F8F2">│   ├── 192.168.2.0/</span><span style="color: #F92672">24</span><span style="color: #F8F8F2"> (部署BのLAN)</span></span>
<span class="line"><span style="color: #F8F8F2">│   └── 192.168.12.0/</span><span style="color: #F92672">30</span><span style="color: #F8F8F2"> (ルーター間リンク)</span></span>
<span class="line"><span style="color: #F8F8F2">└── エリア2 (大阪支社)</span></span>
<span class="line"><span style="color: #F8F8F2">    ├── 172.16.1.0/</span><span style="color: #F92672">24</span><span style="color: #F8F8F2"> (部署CのLAN)</span></span>
<span class="line"><span style="color: #F8F8F2">    ├── 172.16.2.0/</span><span style="color: #F92672">24</span><span style="color: #F8F8F2"> (部署DのLAN)</span></span>
<span class="line"><span style="color: #F8F8F2">    └── 172.16.12.0/</span><span style="color: #F92672">30</span><span style="color: #F8F8F2"> (ルーター間リンク)</span></span>
<span class="line"></span></code></pre></div>



<p><span class="fz-18px">このように、<strong>エリアは「ネットワークのグループ」で、エリア内には複数のネットワークが含まれる</strong> ということなんですね！</span></p>



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



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



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc19">インターネットってそもそもなに？ASとの関係は？</span></h2>



<h3 class="wp-block-heading"><span id="toc20">インターネットとは？</span></h3>



<p>一言でいうと：</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>世界中のAS (自律システム) がBGPでつながった巨大ネットワークの集合体</strong></p>
</blockquote>



<p><span class="fz-18px">つまり、インターネット自体が1つの巨大なネットワークじゃなくて、<strong>たくさんのAS同士がBGPでつながってできたネットワークの集合</strong> なんです！</span></p>



<p>例えば：</p>



<ul class="wp-block-list">
<li><strong>ISP (プロバイダ) のAS</strong></li>



<li><strong>クラウド事業者 (AWS, Google) のAS</strong></li>



<li><strong>大学のAS</strong></li>



<li><strong>企業のAS</strong></li>
</ul>



<p><span class="fz-18px">これらがBGPを使ってルーティング情報を交換して、お互いのネットワークにアクセスできるようにしています。</span></p>



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



<h3 class="wp-block-heading"><span id="toc21">企業のネットワークはどうなってるの？</span></h3>



<p>企業のネットワークを考えましょう。例えば、あなたの会社がこんな感じだとします。</p>



<p>🔧 <strong>企業ネットワーク (AS65001)</strong></p>



<ul class="wp-block-list">
<li><strong>本社LAN</strong> → 192.168.1.0/24</li>



<li><strong>支社LAN</strong> → 192.168.2.0/24</li>



<li><strong>DMZ (公開サーバ用)</strong> → 203.0.113.0/24</li>
</ul>



<p><span class="fz-18px">このままだと、企業内のネットワークは完全に閉じているので、外部と通信できません。LAN内のPC同士や支社間では通信できても、Googleにアクセスしたりメールを送ったりできない状態です。</span></p>



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



<h3 class="wp-block-heading"><span id="toc22">企業がインターネットに接続する流れ</span></h3>



<p><span class="fz-18px">じゃあどうやってインターネットにつなぐのか？<br>実はシンプルで、企業は <strong>ISP (プロバイダ)</strong> と契約して、そのISPのASに接続します。</span></p>



<p><span class="fz-18px">例えば：</span></p>



<ul class="wp-block-list">
<li>企業AS (AS65001) ↔ ISPのAS (AS100) ↔ インターネット全体</li>
</ul>



<p><span class="fz-18px">このとき、企業とISPのルーターはBGPを使って経路情報を交換します。</span></p>



<p><span class="fz-18px">ISPが企業のASに「インターネット全体への経路情報」を流し、企業は「自社のネットワークへの経路情報」をISPに流します。</span></p>



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



<h3 class="wp-block-heading"><span id="toc23">インターネット通信の流れ</span></h3>



<p>例えば、企業のPC (192.168.1.100) がGoogle (8.8.8.8) にアクセスする場合：</p>



<ol class="wp-block-list">
<li><strong>PC</strong> → <strong>企業ルーター</strong> (デフォルトゲートウェイ) にパケット送信</li>



<li><strong>企業ルーター</strong> (AS65001) → ISPルーター (AS100) にパケット転送 (BGPでISPにルートを学習)</li>



<li><strong>ISPルーター</strong> → インターネット内の他のASにBGPでパケットをリレー</li>



<li><strong>GoogleのAS</strong> (AS15169) に到達し、8.8.8.8 にパケットが届く</li>
</ol>



<p><span class="fz-18px">逆方向も同じく、Googleからの応答パケットはBGPルーティングを通じて、ISPを経由して企業ルーターに戻ります。</span></p>



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



<h3 class="wp-block-heading"><span id="toc24">AS・ISP・インターネットの関係図</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(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">Nginx</span><span role="button" tabindex="0" data-code="(インターネット全体)  
       │  
       ▼  
┌────────────────┐  
│ ISPのAS (AS100) │  
└────────▲────────┘  
           │ BGP  
           ▼  
┌────────────────┐  
│ 企業のAS (AS65001) │  
├────────────────┤  
│ 本社LAN: 192.168.1.0/24 │  
│ 支社LAN: 192.168.2.0/24 │  
│ DMZ: 203.0.113.0/24     │  
└────────────────┘  
" 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">│ ISPのAS (AS100) │  </span></span>
<span class="line"><span style="color: #F8F8F2">└────────▲────────┘  </span></span>
<span class="line"><span style="color: #F8F8F2">           │ </span><span style="color: #F92672">BGP</span><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">│ 企業のAS (AS65001) │  </span></span>
<span class="line"><span style="color: #F8F8F2">├────────────────┤  </span></span>
<span class="line"><span style="color: #F8F8F2">│ 本社LAN: 192.168.1.0/</span><span style="color: #F92672">24</span><span style="color: #F8F8F2"> │  </span></span>
<span class="line"><span style="color: #F8F8F2">│ 支社LAN: 192.168.2.0/</span><span style="color: #F92672">24</span><span style="color: #F8F8F2"> │  </span></span>
<span class="line"><span style="color: #F8F8F2">│ DMZ: 203.0.113.0/</span><span style="color: #F92672">24</span><span style="color: #F8F8F2">     │  </span></span>
<span class="line"><span style="color: #F8F8F2">└────────────────┘  </span></span>
<span class="line"></span></code></pre></div>



<ul class="wp-block-list">
<li><strong>ISP (AS100)</strong> は、インターネットの他のASとBGPで接続</li>



<li><strong>企業 (AS65001)</strong> は、ISPとBGP接続してインターネットにアクセス</li>
</ul>



<p><span class="fz-18px">企業がインターネットを使うには、<strong>ISPとBGPで接続し、インターネット全体のルートをISPから学ぶ</strong> ことで成立するんですね！</span></p>



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



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



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"7日間でハッキングをはじめる本 Try撃手法と脆弱性","b":"翔泳社","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/510ERgcb-yL._SL500_.jpg","\/415NKBcnASL._SL500_.jpg","\/41FGljR1GrL._SL500_.jpg","\/41OSOPH3mcL._SL500_.jpg","\/41fKvGaB6CL._SL500_.jpg","\/41pogRF-eGL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4798181579","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4798181579","a_id":4440991,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/7%E6%97%A5%E9%96%93%E3%81%A7%E3%83%8F%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%9C%AC%20Try%E6%92%83%E6%89%8B%E6%B3%95%E3%81%A8%E8%84%86%E5%BC%B1%E6%80%A7\/","a_id":4440988,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2}],"eid":"YXyAs","s":"s"});
</script>
<div id="msmaflink-YXyAs">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc25">インターネットを使う際のISPの意義は？なぜISPを経由するのか？</span></h2>



<p><span class="fz-18px"><strong>ISPを経由する理由</strong>は、企業が直接インターネット全体とつながることの<strong>コスト</strong>と<strong>負荷</strong>をISPが肩代わりしてくれるからなんです！順を追って詳しく説明しますね！</span></p>



<h3 class="wp-block-heading"><span id="toc26">直接インターネットに接続する場合の課題</span></h3>



<p>もし企業が<strong>ISPを使わず</strong>に直接インターネットにつなごうとしたら、何が起きるでしょう？</p>



<ol class="wp-block-list">
<li><strong>すべてのASのルーティング情報が必要</strong>
<ul class="wp-block-list">
<li>インターネットは<strong>BGP</strong>というプロトコルでAS間をつないでいます。</li>



<li>BGPのフルルートは<strong>90万以上</strong>の経路情報！（2024年時点で約100万経路に近いです）</li>



<li>これを企業のルーターで保持すると、<strong>超ハイスペックなルーター</strong>が必要になり、コストが爆増します。</li>
</ul>
</li>



<li><strong>物理的な接続の負担</strong>
<ul class="wp-block-list">
<li>直接インターネットとつながるには、<strong>複数のASと直接接続する回線</strong>を契約しなければなりません。</li>



<li><strong>海底ケーブルや大規模なバックボーン回線</strong>を敷設・維持するのは現実的ではありません。</li>
</ul>
</li>



<li><strong>ルーティングの最適化が困難</strong>
<ul class="wp-block-list">
<li>インターネット全体のルートは<strong>動的に変化</strong>します。</li>



<li>これを自社でリアルタイムに最適化すると、運用負荷がとんでもなく高くなります。</li>
</ul>
</li>
</ol>



<p><span class="fz-18px">要するに、<strong>直接接続すると莫大なコスト・設備・運用スキル</strong>が必要になり、普通の企業がインターネットを扱うのは現実的ではありません。</span></p>



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



<h3 class="wp-block-heading"><span id="toc27">ISPの役割とは？</span></h3>



<p><span class="fz-18px">ここで登場するのがISP（インターネットサービスプロバイダ）です。</span><br><span class="fz-18px">ISPは：</span></p>



<ul class="wp-block-list">
<li><strong>インターネットの巨大なルーティング情報を一括管理</strong></li>



<li><strong>複数のASと接続し、最適な経路選択を代行</strong></li>



<li><strong>企業にはシンプルなゲートウェイとして接続を提供</strong></li>
</ul>



<p><span class="fz-18px">たとえば、企業側はISPと<strong>BGPピアリング</strong>を張って、「<strong>インターネットへのデフォルトルート</strong>」だけを受け取ることで、<strong>シンプルなルーティング</strong>が可能になります。</span></p>



<p><span class="fz-18px">企業側のルーティングテーブルは：</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">Nginx</span><span role="button" tabindex="0" data-code="0.0.0.0/0 → ISPルーター  
" 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">0.0.0.0/</span><span style="color: #F92672">0</span><span style="color: #F8F8F2"> → ISPルーター  </span></span>
<span class="line"></span></code></pre></div>



<p><span class="fz-18px">こうすれば、企業のルーターは「<strong>とりあえずISPに投げればいい</strong>」ので、<strong>フルルートを保持する必要がない</strong>わけです！</span></p>



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



<h3 class="wp-block-heading"><span id="toc28">ISPがやってくれること</span></h3>



<p>ISPは：</p>



<ul class="wp-block-list">
<li><strong>インターネット全体のBGPフルルート</strong>を保持</li>



<li><strong>他のISPやIX（インターネットエクスチェンジ）と接続</strong>し、経路を最適化</li>



<li><strong>トラフィックエンジニアリング</strong>を行い、通信遅延や障害に即対応</li>
</ul>



<p>例えば：</p>



<ul class="wp-block-list">
<li>企業A → ISP → 最適なAS経路 → 目的地サーバ</li>



<li>ISP側で最適なルートを選び、<strong>ユーザーは意識せずに最速の経路</strong>で通信できます。</li>
</ul>



<p><span class="fz-18px">つまり、ISPは<strong>企業に代わってルーティング負荷を背負い、最適な通信を提供</strong>するのが役割なんです！</span></p>



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



<h3 class="wp-block-heading"><span id="toc29">インターネット接続の全体像</span></h3>



<p>企業がインターネットに接続するときは、ざっくりこんな流れです：</p>



<ol class="wp-block-list">
<li><strong>企業内ネットワーク（AS内）</strong> → <strong>エッジルーター</strong></li>



<li><strong>エッジルーター</strong> → <strong>ISPルーター</strong>（BGPでデフォルトルート受信）</li>



<li><strong>ISPルーター</strong> → <strong>他のASやIX経由でインターネット全体に接続</strong></li>
</ol>



<p>これによって：</p>



<ul class="wp-block-list">
<li><strong>企業はシンプルなネットワーク設計が可能</strong></li>



<li><strong>ISPがインターネット全体のルーティングと接続を代行</strong></li>



<li><strong>運用コストと設備投資を劇的に削減</strong></li>
</ul>



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



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



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="[元気が出る洋楽] [和訳] Firework - Katy Perry 概要欄見てくださったら嬉しいです" width="1256" height="707" src="https://www.youtube.com/embed/Yps-__Gsfd4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"><strong>Firework &#8211; Katy Perry</strong></figcaption></figure>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MPLSをネスペ午後問を解きながら９秒でパパっと理解！</title>
		<link>https://ascend-beyond.com/study/6725/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Wed, 05 Mar 2025 06:46:14 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6725</guid>

					<description><![CDATA[目次 問題文設問 1設問 2設問 3設問 4解答＆解説設問 1：MPLS を使用した IP-VPN において、拠点間のデータ通信がどのように MPLS ラベルを用いて転送されるかを説明せよ。設問 2：MPLS L3VPN [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><strong><span class="fz-20px"><span style="text-decoration: underline;">【９秒チャレンジ】<br></span></span></strong></p>



<p><span class="fz-18px"><span class="bold-red">MPLS</span>（Multi-Protocol Label Switching）は、IP アドレスではなく <span class="red">ラベル</span> を使ってパケットを<span class="red">転送</span>することで、より高速で柔軟なルーティングを実現する技術です。</span><br><span class="fz-18px">通常の IP ルーティングでは、パケットごとに IP アドレスを確認 してルーティングテーブルを参照しますが、これには<span class="blue">処理時間がかかります</span>。さらに、IP ルーティングは <span class="blue">宛先ベース</span> のため、トラフィック集中時の経路変更が難しいというデメリットがあります。</span><br><span class="fz-18px">一方、MPLS ではパケットにラベルを付与し、ルーターは ラベルだけを参照 して転送します。これにより、<span class="red">ネクストホップベース</span> のルーティングが可能になり、ネットワーク負荷に応じて最適な経路を選択できます。</span><br><span class="fz-18px">MPLS は主に AS 内で使われますが、AS 間でも <span class="bold-red">MP-BGP (Multiprotocol BGP)</span> を使うことで、ルート情報と一緒にラベル情報も交換 し、エンドツーエンドのラベルスイッチングが可能になります。これにより、AS をまたいだ <span class="bold-red">MPLS VPN</span> の構築も容易になり、企業の拠点間通信やサービスプロバイダのネットワーク設計に大きな柔軟性を与えます。</span></p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">問題文</a><ol><li><a href="#toc2" tabindex="0">設問 1</a></li><li><a href="#toc3" tabindex="0">設問 2</a></li><li><a href="#toc4" tabindex="0">設問 3</a></li><li><a href="#toc5" tabindex="0">設問 4</a></li></ol></li><li><a href="#toc6" tabindex="0">解答＆解説</a><ol><li><a href="#toc7" tabindex="0">設問 1：MPLS を使用した IP-VPN において、拠点間のデータ通信がどのように MPLS ラベルを用いて転送されるかを説明せよ。</a></li><li><a href="#toc8" tabindex="0">設問 2：MPLS L3VPN における「VRF (Virtual Routing and Forwarding)」の役割を 具体的な例を挙げて説明せよ。</a></li><li><a href="#toc9" tabindex="0">設問 3：通信事業者は、トラフィックエンジニアリング (TE) を実現するために、MPLS-TE を導入している。MPLS-TE の仕組みと、A 社がビデオ会議の遅延を抑えるために MPLS-TE を活用する方法について説明せよ。</a></li><li><a href="#toc10" tabindex="0">設問 4：新しい拠点 CE3 を追加する場合、A 社の既存拠点の設定変更を最小限にするために、BGP のどの機能を活用すればよいか。また、その機能がどのように拠点追加時の運用負担を軽減するか説明せよ。</a></li></ol></li><li><a href="#toc11" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">問題文</span></h2>



<p>ある企業 A 社は、国内の複数拠点を接続するために、通信事業者が提供する IP-VPN サービスを利用している。この IP-VPN サービスは、MPLS (Multiprotocol Label Switching) を用いた閉域ネットワークで構成されている。これにより、インターネットを経由せずに安全かつ効率的な拠点間通信が可能となっている。</p>



<p>A 社は次のような要件を満たすネットワークを構築したいと考えている：</p>



<ul class="wp-block-list">
<li>拠点ごとに異なる IP セグメントを使用する。</li>



<li>優先度の高い通信（例えば、ビデオ会議）は低遅延で安定した通信経路を確保する。</li>



<li>新しい拠点が追加されても、既存の拠点の設定変更を最小限に抑えたい。</li>
</ul>



<p>IP-VPN サービスは、MPLS による L3VPN (Layer 3 VPN) を用いて提供されており、各拠点には CE (Customer Edge) ルータが設置されている。通信事業者側のネットワークには PE (Provider Edge) ルータが存在し、MPLS ラベルを用いてパケット転送を行っている。</p>



<p>以下の図は、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(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="CE1 ---- PE1 ---- P ---- PE2 ---- CE2  " 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">CE1 ---- PE1 ---- P ---- PE2 ---- CE2  </span></span></code></pre></div>



<p>ここで、</p>



<ul class="wp-block-list">
<li>CE1, CE2：A 社の拠点ルータ</li>



<li>PE1, PE2：通信事業者のエッジルータ</li>



<li>P：通信事業者内部のコアルータ</li>
</ul>



<p>A 社は、通信品質向上のため、トラフィックエンジニアリング (TE) を活用し、特定の拠点間通信を最適化したいと考えている。また、各拠点間の IP アドレス管理を簡素化するため、BGP (Border Gateway Protocol) を用いたルート制御を導入している。</p>



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



<h3 class="wp-block-heading"><span id="toc2">設問 1</span></h3>



<p>MPLS を使用した IP-VPN において、拠点間のデータ通信がどのように MPLS ラベルを用いて転送されるかを説明せよ。</p>



<h3 class="wp-block-heading"><span id="toc3">設問 2</span></h3>



<p>MPLS L3VPN における「VRF (Virtual Routing and Forwarding)」の役割を 具体的な例を挙げて説明せよ。</p>



<h3 class="wp-block-heading"><span id="toc4">設問 3</span></h3>



<p>通信事業者は、トラフィックエンジニアリング (TE) を実現するために、MPLS-TE を導入している。MPLS-TE の仕組みと、A 社がビデオ会議の遅延を抑えるために MPLS-TE を活用する方法について説明せよ。</p>



<h3 class="wp-block-heading"><span id="toc5">設問 4</span></h3>



<p>新しい拠点 CE3 を追加する場合、A 社の既存拠点の設定変更を最小限にするために、BGP のどの機能を活用すればよいか。また、その機能がどのように拠点追加時の運用負担を軽減するか説明せよ。</p>



<h2 class="wp-block-heading"><span id="toc6">解答＆解説</span></h2>



<h3 class="wp-block-heading"><span id="toc7">設問 1：MPLS を使用した IP-VPN において、拠点間のデータ通信がどのように MPLS ラベルを用いて転送されるかを説明せよ。</span></h3>



<p><strong>解答:</strong><br>MPLS を使用した IP-VPN では、通信事業者のネットワーク内でパケットに MPLS ラベルを付与して転送する。以下の流れで通信が行われる。</p>



<p><strong>1．ラベルの付与 (Push)</strong><br>CE1 から PE1 に送信された IP パケットは、PE1 で BGP ルーティング情報に基づき <span class="bold-red">VRF</span> を参照し、対応する MPLS ラベルを付与する。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">VRF</span> (Virtual Routing and Forwarding) とは、ルーター内に複数の独立したルーティングテーブルを作成する技術。</span></p>
</div></div>



<p><strong>2．ラベルスイッチング</strong><br>PE1 から P ルータへの転送時、MPLS ラベルに基づいてパケットを転送する。コアルータ (P ルータ) は IP アドレスではなくラベルを見て転送するため、高速な転送処理が可能。</p>



<p><strong>3．ラベルの入れ替え (Swap)<br></strong>中継する P ルータでは、受信したラベルを次のホップ用ラベルに置き換えて転送する。</p>



<p><strong>4．ラベルの削除 (Pop)<br></strong>最終的に PE2 に到達すると、PE2 はラベルを外し (ラベルポッピング)、元の IP パケットを CE2 に転送する。</p>



<p>この仕組みにより、拠点間の通信は事業者ネットワーク内でラベルにより効率的かつ閉域的に行われる。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">MPLS</span>とは、そもそも何かというと&#8230;.MPLSとはIP アドレスではなく<span class="red">ラベル</span>を使って<span class="red">パケットを転送する</span>技術です。これにより、ルータは IP ルーティングテーブルを毎回検索する必要がなく、<span class="red">処理が高速化</span>します。また、ラベルを工夫して使うことで、トラフィックの<span class="red">負荷分散</span>や<span class="red">仮想ネットワークの分離</span>など、柔軟なネットワーク設計ができるのも特徴です。</span></p>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc8">設問 2：MPLS L3VPN における「VRF (Virtual Routing and Forwarding)」の役割を 具体的な例を挙げて説明せよ。</span></h3>



<p><strong>解答:</strong><br>VRF は、ルータ内に複数の独立したルーティングテーブルを作成し、異なる VPN を分離して管理する仕組み。例えば、A 社と B 社が同じ通信事業者の IP-VPN を利用していても、それぞれの拠点は VRF により論理的に分離される。</p>



<ul class="wp-block-list">
<li><strong>具体例:</strong>
<ul class="wp-block-list">
<li>A 社の拠点: 192.168.1.0/24</li>



<li>B 社の拠点: 192.168.1.0/24 (同じアドレス範囲でも VRF で独立)</li>
</ul>
</li>
</ul>



<p>PE ルータは VRF を参照して、宛先に対応する MPLS ラベルを付与し、各社のトラフィックが混在しないよう制御する。この仕組みで、プライベートアドレス空間を利用しつつ、安全な通信を実現できる。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">MPLS</span>は１台のルータ内に複数のルーティングテーブルを持つことができます。つまり、<span class="red">同じIPアドレス</span>を使ってもルーティングテーブルが違うから、それらは<span class="red">別物</span>として振る舞うことができるよねっていうことです</span>。</p>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc9">設問 3：通信事業者は、トラフィックエンジニアリング (TE) を実現するために、MPLS-TE を導入している。MPLS-TE の仕組みと、A 社がビデオ会議の遅延を抑えるために MPLS-TE を活用する方法について説明せよ。</span></h3>



<p><strong>解答:</strong><br>MPLS-TE は、特定の通信経路に帯域制御や優先制御を適用し、最適な経路選択を行う技術。拠点間のビデオ会議トラフィックを安定させるには、以下の手順を踏む。</p>



<ol class="wp-block-list">
<li><strong>帯域予約</strong><br>特定の MPLS ラベルスイッチパス (LSP) に帯域を予約し、ビデオ会議など遅延に敏感なトラフィックを優先させる。</li>



<li><strong>リンク状態の考慮</strong><br>RSVP-TE (Resource Reservation Protocol) を使用して、ネットワークのリンク状態や遅延を考慮した最適経路を構築する。</li>



<li><strong>柔軟な経路制御</strong><br>通常の IP ルーティングでは最短パスのみ選択されるが、MPLS-TE により回線負荷が低い経路を選択することで、混雑による遅延を回避できる。</li>
</ol>



<p>このように、MPLS-TE を活用すれば、ビデオ会議などの重要なトラフィックの安定性と品質を確保できる。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><strong>トラフィックエンジニアリング</strong> (Traffic Engineering, TE) は、ネットワークのトラフィックを最適に制御・分散させて、効率的に通信できるようにする技術や手法 のことです</span>。</p>



<p><span class="fz-18px">通常のルーティングプロトコル (OSPF, BGP など) は、<strong>最短パス</strong> を選ぶことが多いです。ところが、ネットワークには帯域の<strong>ムダ遣い</strong>、<strong>ボトルネック</strong>、<strong>障害発生時の冗長性不足</strong>などの問題があり、それらの問題に効率的に対処するルーティング方法がTEという訳です。</span></p>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc10">設問 4：新しい拠点 CE3 を追加する場合、A 社の既存拠点の設定変更を最小限にするために、BGP のどの機能を活用すればよいか。また、その機能がどのように拠点追加時の運用負担を軽減するか説明せよ。</span></h3>



<p><strong>解答:</strong><br>拠点追加時の設定変更を最小限に抑えるには、BGP の <strong>Route Reflector (RR)</strong> や <strong>Route Target (RT)</strong> を活用する。</p>



<p><strong>1．Route Reflector (RR)<br></strong>PE ルータの一部を RR に指定し、各拠点 (CE ルータ) から受信した経路情報を他の拠点に自動的に広報する。これにより、新拠点 CE3 を追加しても、既存の CE1, CE2 へのルータ設定変更は不要になる。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">RR</span>はBGPにおける<span class="red">中央ハブ</span>。通常、BGPはフルメッシュ接続なので、１第1台が直接リンクする必要がある。しかし、それだとスケールの障壁となる。そこで、中央的なRRを用いることで、他のルータはRRと<span class="red">BGP セッション</span>を張るだけですべてのルータと接続できるようになる。</span></p>
</div></div>



<p><strong>2．Route Target (RT)<br></strong>RT を使って、特定の VPN に関するルーティング情報を識別し、各拠点が受信すべきルートを制御する。例えば、新拠点 CE3 に RT を設定するだけで、必要なルートが自動的に広告される。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">RT</span>とはどのVRFにルートを入れるかを決めるタグ。１つのルータには複数のVRFがある。なので、どのテーブルに記載するかを指定する必要がある。そのときに使うタグがRT。</span></p>
</div></div>



<p>このように、BGP の動的経路制御機能を使うことで、新拠点追加時の手作業を大幅に減らせる。</p>



<ol class="wp-block-list">
<li></li>
</ol>



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



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



<p>MPLS を使った IP-VPN は、ラベルスイッチングにより高速かつ閉域的な通信を実現します。VRF によりネットワークを論理分離しつつ、MPLS-TE で重要なトラフィックの品質を最適化でき、BGP を使えば拠点追加時の運用負担も軽減できます。</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【FAQ】ケルベロス認証のあるある疑問をパパっと解消</title>
		<link>https://ascend-beyond.com/study/6675/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Mon, 03 Mar 2025 05:25:42 +0000</pubDate>
				<category><![CDATA[FAQ]]></category>
		<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6675</guid>

					<description><![CDATA[ケルベロスについてのQ＆A リンク]]></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-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ケルベロスについてのQ＆A</a></li><li><a href="#toc2" tabindex="0">🔑 Kerberos とは？</a><ol><li><a href="#toc3" tabindex="0">⚙️ 何がすごいの？</a></li><li><a href="#toc4" tabindex="0">🚀 Kerberos の流れ（ざっくり版）</a></li><li><a href="#toc5" tabindex="0">🎯 一言で言うと？</a></li></ol></li><li><a href="#toc6" tabindex="0">🏢 認証サーバ（AS）とチケット発行サーバ（TGS）はどういう関係性は？</a><ol><li><a href="#toc7" tabindex="0">🛜 ネットワーク構成のイメージ</a></li><li><a href="#toc8" tabindex="0">⚙️ なんで役割が分かれてるの？</a></li><li><a href="#toc9" tabindex="0">🎯 結論：AS と TGS は…</a></li></ol></li><li><a href="#toc10" tabindex="0">クライアントはどうやってケルベロスを使うかどうかを判断するの？</a><ol><li><a href="#toc11" tabindex="0">🏢 1. DNS（ドメインネームシステム）を使う</a></li><li><a href="#toc12" tabindex="0">🗃 2. サービス自体が「401 Unauthorized」で返してくる</a></li><li><a href="#toc13" tabindex="0">⚙️ 3. OS の設定やクライアントの設定ファイル</a></li><li><a href="#toc14" tabindex="0">🧠 じゃあ Kerberos を使っていない場合は？</a></li><li><a href="#toc15" tabindex="0">🎯 まとめると？</a></li></ol></li><li><a href="#toc16" tabindex="0">パスワードがネットワーク上を流れないってどういう仕組みで認証しているの？</a><ol><li><a href="#toc17" tabindex="0">🧠 最初の認証時のパスワード処理</a></li><li><a href="#toc18" tabindex="0">🔑 なぜ安全なのか？</a></li><li><a href="#toc19" tabindex="0">⚠️ でも完全無敵ではない！</a></li></ol></li><li><a href="#toc20" tabindex="0">🎯 まとめ</a></li><li><a href="#toc21" tabindex="0">認証サーバからTGTを取得するまでの流れは？</a><ol><li><a href="#toc22" tabindex="0">🏗️ 前提：事前に知っているもの</a></li><li><a href="#toc23" tabindex="0">📩 STEP 1: AS 要求（ログイン要求）</a></li><li><a href="#toc24" tabindex="0">🔑 STEP 2: AS 応答（ノンスと TGT 発行）</a></li><li><a href="#toc25" tabindex="0">🔓 STEP 3: クライアント側で復号化</a></li><li><a href="#toc26" tabindex="0">✅ STEP 4: 認証成功</a></li><li><a href="#toc27" tabindex="0">🔥 なぜ安全なのか？</a></li><li><a href="#toc28" tabindex="0">🏁 まとめ</a></li></ol></li><li><a href="#toc29" tabindex="0">TGTを取得してからサービスを利用するまでの流れは？</a><ol><li><a href="#toc30" tabindex="0">① クライアント → TGS にサービスリクエスト</a></li><li><a href="#toc31" tabindex="0">② TGS がリクエストをチェック</a></li><li><a href="#toc32" tabindex="0">③ TGS → クライアントにサービスチケット発行</a></li><li><a href="#toc33" tabindex="0">④ クライアント → サービスサーバーに接続リクエスト</a></li><li><a href="#toc34" tabindex="0">⑤ サービスサーバーが認証チェック</a></li><li><a href="#toc35" tabindex="0">⑥ クライアント → サービス利用開始！</a></li></ol></li><li><a href="#toc36" tabindex="0">✅ ポイントまとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ケルベロスについてのQ＆A</span></h2>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc2">🔑 Kerberos とは？</span></h2>



<p><span class="fz-18px"><span class="bold-red">Kerberos</span> は、<span class="red">ネットワーク</span>上で安全に<span class="red">ユーザ認証</span>を行うためのプロトコルです。特に、パスワードを盗まれずに安全にログインしたり、サービスにアクセスしたりするための仕組みとして使われます。</span></p>



<p><span class="fz-18px">名前の由来は、ギリシャ神話の「ケルベロス（3つの頭を持つ冥界の番犬）」です。3つの頭は、次の3つの役割にたとえられます。</span></p>



<ol class="wp-block-list">
<li><strong><span class="bold-red">クライアント</span></strong>（利用者やPC）</li>



<li><strong><span class="bold-red">認証サーバ</span>（AS: Authentication Server）</strong></li>



<li><strong><span class="bold-red">サービスサーバ</span></strong>（メールサーバやファイルサーバなど、利用したいサービス）</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc3">⚙️ 何がすごいの？</span></h3>



<p><span class="fz-18px">通常、ユーザがパスワードを使ってログインすると、ネットワーク上にパスワードが流れてしまいます。これだと、悪意ある第三者がパスワードを盗み見て不正アクセスする危険があります。</span></p>



<p><span class="fz-18px">でも Kerberos は、次のような工夫で安全性を確保しています：</span></p>



<ol class="wp-block-list">
<li><strong>チケット（Ticket）を使う</strong><br>→ <span class="red">パスワードそのものを送らず</span>、「チケット」と呼ばれる一時的な証明書を発行します。このチケットを使ってアクセスします。</li>



<li><strong>暗号化</strong><br>→ データは暗号化されてやり取りされるので、途中で盗み見られても内容は読めません。</li>



<li><strong>タイムスタンプ</strong><br>→ チケットにはタイムスタンプが含まれ、一定時間を過ぎると無効になります。これで<span class="red">「リプレイ攻撃」（過去の通信を再利用する攻撃）を防ぎます</span>。</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc4">🚀 Kerberos の流れ（ざっくり版）</span></h3>



<ol class="wp-block-list">
<li><strong>ログインリクエスト</strong>（クライアント→認証サーバ）<br>→ クライアントが認証サーバにログインを要求。</li>



<li><strong>TGT（Ticket Granting Ticket）発行</strong><br>→ 認証サーバは、パスワードから生成した鍵で暗号化された「TGT」をクライアントに渡します。これは「サービスチケット発行のための許可証」です。</li>



<li><strong>サービスチケット取得</strong><br>→ クライアントは、TGT を使って「TGS（チケット発行サーバ）」からサービス用のチケットを取得します。</li>



<li><strong>サービスへのアクセス</strong><br>→ クライアントはサービスサーバにチケットを提出し、正しければアクセスが許可されます。</li>
</ol>



<p>これなら、ネットワーク上にパスワードが流れず、安全にサービスを利用できます！</p>



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



<h3 class="wp-block-heading"><span id="toc5">🎯 一言で言うと？</span></h3>



<p><span class="fz-18px"><strong>Kerberos は「チケット制の認証システム」で、暗号化とタイムスタンプを活用して、ネットワーク上で安全にログインできる仕組み</strong>です！</span></p>



<p><span class="fz-18px">たとえば、遊園地で「入場券（チケット）」をもらい、アトラクションごとにチケットを見せて乗る、みたいなイメージです！パスワード（現金）は直接出さず、チケットでやり取りするので安全、という感じです。</span></p>
</div></div>



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"7日間でハッキングをはじめる本 Try撃手法と脆弱性","b":"翔泳社","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/510ERgcb-yL._SL500_.jpg","\/415NKBcnASL._SL500_.jpg","\/41FGljR1GrL._SL500_.jpg","\/41OSOPH3mcL._SL500_.jpg","\/41fKvGaB6CL._SL500_.jpg","\/41pogRF-eGL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4798181579","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4798181579","a_id":4440991,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/7%E6%97%A5%E9%96%93%E3%81%A7%E3%83%8F%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%9C%AC%20Try%E6%92%83%E6%89%8B%E6%B3%95%E3%81%A8%E8%84%86%E5%BC%B1%E6%80%A7\/","a_id":4440988,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2}],"eid":"YXyAs","s":"s"});
</script>
<div id="msmaflink-YXyAs">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc6">🏢 認証サーバ（AS）とチケット発行サーバ（TGS）はどういう関係性は？</span></h2>



<p><span class="fz-18px">実は、<span class="red"><span class="bold-red">AS と TGS は物理的には同じサーバーに置かれる</span></span>ことが多いんです！ただし、論理的には「役割」が分かれています。</span></p>



<ul class="wp-block-list">
<li><strong>AS（Authentication Server）認証サーバ</strong> → パスワードを確認し、<span class="red">TGT を発行す</span>る</li>



<li><strong>TGS（Ticket Granting Server）チケット発行サーバ</strong> → TGT を確認して、<span class="red">サービスチケットを発行</span>する</li>
</ul>



<p>この2つは <strong><span class="bold-red">同じ物理サーバー</span></strong> 上に動くことが多くて、まとめて <strong><span class="bold-red">KDC（Key Distribution Center: 鍵配布センター）</span></strong> と呼ばれます。</p>



<p>つまり、AS と TGS は「別の役割だけど、同じ場所にいることが多い」と考えてOKです！</p>



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



<h3 class="wp-block-heading"><span id="toc7">🛜 ネットワーク構成のイメージ</span></h3>



<p>例えば、会社のネットワークではこんな感じです！</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="[クライアントPC]  
      ↓  
[認証サーバ (AS) + チケット発行サーバ (TGS)]  ← (ここが KDC)  
      ↓  
[ファイルサーバ、メールサーバなどのサービスサーバ]" 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: #F44747">クライアントPC</span><span style="color: #F8F8F2">]  </span></span>
<span class="line"><span style="color: #F8F8F2">      ↓  </span></span>
<span class="line"><span style="color: #F8F8F2">[</span><span style="color: #F44747">認証サーバ</span><span style="color: #F8F8F2"> </span><span style="color: #F44747">(AS)</span><span style="color: #F8F8F2"> </span><span style="color: #F44747">+</span><span style="color: #F8F8F2"> </span><span style="color: #F44747">チケット発行サーバ</span><span style="color: #F8F8F2"> </span><span style="color: #F44747">(TGS)</span><span style="color: #F8F8F2">]  ← (ここが KDC)  </span></span>
<span class="line"><span style="color: #F8F8F2">      ↓  </span></span>
<span class="line"><span style="color: #F8F8F2">[</span><span style="color: #F44747">ファイルサーバ、メールサーバなどのサービスサーバ</span><span style="color: #F8F8F2">]</span></span></code></pre></div>



<ul class="wp-block-list">
<li>最初のログイン → 認証サーバ（AS）が確認して、TGT を発行</li>



<li>サービスアクセス時 → クライアントが TGT を持って TGS にリクエストして、サービスチケット発行</li>
</ul>



<p>AS と TGS は同じ場所にあって、<strong><span class="bold-red">ポート 88 番</span></strong> で Kerberos プロトコルの通信を待ち受けています。</p>



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



<h3 class="wp-block-heading"><span id="toc8">⚙️ なんで役割が分かれてるの？</span></h3>



<p>役割が分かれているのは、セキュリティを強化するためです。</p>



<ul class="wp-block-list">
<li><strong>AS</strong> はパスワードの確認だけを行い、直接サービスチケットを発行しない</li>



<li><strong>TGS</strong> は TGT を受け取ってサービスチケットを発行するが、パスワードは扱わない</li>
</ul>



<p><span class="fz-18px">こうすると、パスワードが盗まれるリスクを減らしつつ、TGT をうまく使って<span class="red">シングルサインオン</span>を実現できます！</span></p>



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



<h3 class="wp-block-heading"><span id="toc9">🎯 結論：AS と TGS は…</span></h3>



<ul class="wp-block-list">
<li><strong>論理的には別物だけど、物理的には同じサーバーに置かれることが多い</strong></li>



<li>両方合わせて <strong><span class="bold-red">KDC<strong><span class="bold-red">（Key Distribution Center: 鍵配布センター）</span></strong></span></strong> と呼ぶ</li>



<li>サービス提供側のネットワーク内（例えば Active Directory のドメインコントローラー）に設置される</li>
</ul>
</div></div>



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc10">クライアントはどうやってケルベロスを使うかどうかを判断するの？</span></h2>



<p><span class="fz-18px">クライアントは、「普段の通信」からいきなり「Kerberos を使う通信」に切り替えたりするわけではありません。実は、クライアントは事前に <strong>設定ファイルや環境情報</strong> をもとに、どのサービスが Kerberos を使うかを知ります。</span></p>



<p><span class="fz-18px">具体的には次のような方法があります！</span></p>



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



<h3 class="wp-block-heading"><span id="toc11">🏢 1. DNS（ドメインネームシステム）を使う</span></h3>



<p><span class="fz-18px">Kerberos は通常、DNS を使って <span class="bold-red">KDC（認証サーバ）</span> の場所を特定します。クライアントがサービスにアクセスするとき、まず DNS でサービス名を解決し、同時に Kerberos 関連のレコードを見に行きます。</span></p>



<p>🔧 <strong>SRV レコードの例</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">HTTP</span><span role="button" tabindex="0" data-code="_kerberos._tcp.example.com  IN SRV  0  100  88  kdc.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">_kerberos._tcp.example.com  IN SRV  0  100  88  kdc.example.com</span></span></code></pre></div>



<p>これを見ると：</p>



<ul class="wp-block-list">
<li><code>example.com</code> ドメインは Kerberos を使ってる！</li>



<li>認証サーバ（KDC）は <code>kdc.example.com</code> で、<span class="bold-red">ポート 88</span> で待ち受けている</li>
</ul>



<p><span class="fz-18px">この情報があれば、クライアントは「じゃあ Kerberos 認証が必要だ！」と判断します。</span></p>



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



<h3 class="wp-block-heading"><span id="toc12">🗃 2. サービス自体が「401 Unauthorized」で返してくる</span></h3>



<p><span class="fz-18px">たとえば Web サービスの場合、最初のリクエストで普通にアクセスしたときに、サーバーが <strong>HTTP 401 Unauthorized</strong> を返して、「Negotiate」ヘッダで Kerberos を要求することがあります。</span></p>



<p>🔧 <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">HTTP</span><span role="button" tabindex="0" data-code="HTTP/1.1 401 Unauthorized  
WWW-Authenticate: Negotiate" 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">HTTP/1.1 401 Unauthorized  </span></span>
<span class="line"><span style="color: #F92672">WWW-Authenticate:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Negotiate</span></span></code></pre></div>



<p><span class="fz-18px">これを受け取ったクライアントは、「あ、このサービスは Kerberos 使ってるんだな」と気づいて、Kerberos チケットを取得し、再度リクエストを送ります。</span></p>



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



<h3 class="wp-block-heading"><span id="toc13">⚙️ 3. OS の設定やクライアントの設定ファイル</span></h3>



<p><span class="fz-18px">クライアントマシン自体に <strong>Kerberos の設定ファイル</strong>（例：Linux の <code>/etc/krb5.conf</code>）があって、ここで「どのドメインが Kerberos を使うか」をあらかじめ決めておくこともできます。</span></p>



<p>🔧 <strong>krb5.conf の例</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">HTTP</span><span role="button" tabindex="0" data-code="[libdefaults]  
    default_realm = EXAMPLE.COM  

[realms]  
    EXAMPLE.COM = {  
        kdc = kdc.example.com  
        admin_server = kdc.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">[</span><span style="color: #F44747">libdefaults</span><span style="color: #F8F8F2">]  </span></span>
<span class="line"><span style="color: #F8F8F2">    default_realm = EXAMPLE.COM  </span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">[</span><span style="color: #F44747">realms</span><span style="color: #F8F8F2">]  </span></span>
<span class="line"><span style="color: #F8F8F2">    EXAMPLE.COM = {  </span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #F44747">kdc</span><span style="color: #F8F8F2"> </span><span style="color: #F44747">=</span><span style="color: #F8F8F2"> </span><span style="color: #F44747">kdc.example.com</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #F44747">admin_server</span><span style="color: #F8F8F2"> </span><span style="color: #F44747">=</span><span style="color: #F8F8F2"> </span><span style="color: #F44747">kdc.example.com</span><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #F8F8F2">    }</span></span></code></pre></div>



<p><span class="fz-18px">この設定があると、クライアントは <code>example.com</code> のサービスにアクセスするとき、自動的に Kerberos 認証を試みます。</span></p>



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



<h3 class="wp-block-heading"><span id="toc14">🧠 じゃあ Kerberos を使っていない場合は？</span></h3>



<p><span class="fz-18px">もしサービス側が Kerberos に対応していない場合は：</span></p>



<ul class="wp-block-list">
<li>DNS に Kerberos 関連のレコードがない</li>



<li>サービスから <code>401 Unauthorized</code> とか Kerberos を要求するレスポンスが返ってこない</li>
</ul>



<p><span class="fz-18px">この場合、クライアントは普通の通信（例：ユーザー名・パスワードでのログイン）にフォールバックします。つまり、「Kerberos </span><span class="fz-18px">ある</span><span class="fz-18px">？ → いないなら普通のやり方でアクセス」という流れです。</span></p>



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



<h3 class="wp-block-heading"><span id="toc15">🎯 まとめると？</span></h3>



<ol class="wp-block-list">
<li><strong>クライアントは自動で Kerberos を検出する</strong>
<ul class="wp-block-list">
<li>DNS SRV レコード</li>



<li>サービスの HTTP 応答ヘッダ（<code>WWW-Authenticate: Negotiate</code>）</li>



<li>OS やクライアントの設定ファイル</li>
</ul>
</li>



<li><strong>使わないときは普通の通信に戻る</strong>
<ul class="wp-block-list">
<li>Kerberos のサーバーが見つからなかったり、サービスが Kerberos を要求しなければ、普通のパスワード認証などに切り替わる</li>
</ul>
</li>
</ol>



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



<p><span class="fz-18px">例えば、Windows ドメイン環境では、クライアント PC はドメイン参加時に自動的に KDC の場所を DNS で探します。ユーザーは何もしなくても、必要なときだけ Kerberos 認証に切り替わるんです！</span></p>
</div></div>



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc16">パスワードがネットワーク上を流れないってどういう仕組みで認証しているの？</span></h2>



<p><span class="fz-18px">ケルベロス認証は「パスワードを直接流さないから安全」って言っておきながら、最初にパスワードでログインするなら結局流れてるじゃん？って思いますよね。</span></p>



<p><span class="fz-18px">でも実は、<strong>パスワードそのものはネットワーク上に直接流れていません</strong>！ここが Kerberos のすごいポイントなんです。順番に説明しますね！</span></p>



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



<h3 class="wp-block-heading"><span id="toc17">🧠 最初の認証時のパスワード処理</span></h3>



<p><span class="fz-18px">クライアントがログインするとき、実際に KDC に送るのは <strong>パスワードのハッシュ値</strong> を使った暗号化データです。これによって、パスワードの生データがネットワーク上を流れることはありません！</span><br>（パスワードのハッシュ値：パスワードをハッシュ関数に入れて算出された値のこと）</p>



<p><span class="fz-18px">具体的にはこうなります：</span></p>



<ol class="wp-block-list">
<li><strong>クライアントがユーザーのパスワードから共通鍵を生成</strong>
<ul class="wp-block-list">
<li>パスワード自体ではなく、パスワードから <span class="bold-red">ハッシュ関数</span> を使って鍵を作成</li>
</ul>
</li>



<li><strong>KDC からのチャレンジメッセージを暗号化</strong>
<ul class="wp-block-list">
<li>KDC は「ランダムなデータ」（<span class="bold-red">ノンス</span>）をクライアントに送信</li>



<li>クライアントはこのノンスを、パスワードハッシュで暗号化して返す</li>
</ul>
</li>



<li><strong>KDC 側で検証</strong>
<ul class="wp-block-list">
<li>KDC はユーザーごとにパスワードハッシュを持っている</li>



<li>送られてきた暗号化データを復号し、ノンスが一致すれば認証成功！</li>
</ul>
</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc18">🔑 なぜ安全なのか？</span></h3>



<ul class="wp-block-list">
<li><strong>パスワード自体は一切ネットワーク上に流れない</strong>
<ul class="wp-block-list">
<li>流れるのは暗号化済みのデータだけ</li>



<li>盗聴されてもパスワードの逆算は難しい（辞書攻撃や総当たり攻撃が必要）</li>
</ul>
</li>



<li><strong>ノンスでリプレイ攻撃を防止</strong>
<ul class="wp-block-list">
<li>毎回ランダムなデータ（ノンス）を使うので、過去のやりとりを盗んでも使えない</li>
</ul>
</li>



<li><strong>チケットはクライアントとサーバー間でのみ利用可能</strong>
<ul class="wp-block-list">
<li>TGT やサービスチケットは、それぞれ固有の鍵で暗号化されていて、盗まれてもすぐ使えない</li>
</ul>
</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc19">⚠️ でも完全無敵ではない！</span></h3>



<p><span class="fz-18px">たとえば、クライアントマシンが既にマルウェアに感染している場合は、キー生成の前段階でパスワードを盗まれる可能性はあります。でもこれは Kerberos に限らず、あらゆるシステムの共通課題ですね。</span></p>



<p><span class="fz-18px">このため、Kerberos を運用するときは：</span></p>



<ul class="wp-block-list">
<li><strong>クライアントとサーバーの時刻同期</strong>（タイムスタンプチェック）</li>



<li><strong>安全なクライアント環境の維持</strong>（ウイルス対策・OS の更新）</li>



<li><strong>ネットワーク暗号化</strong>（例えば TLS で通信を二重に保護）</li>
</ul>



<p><span class="fz-18px">こうした総合的な対策が重要です！</span></p>



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



<h2 class="wp-block-heading"><span id="toc20">🎯 まとめ</span></h2>



<ul class="wp-block-list">
<li><strong>Kerberos は最初のログイン時にもパスワードの生データは流さない</strong></li>



<li><strong>パスワードハッシュ</strong> と <strong>ノンス</strong> を使ったチャレンジレスポンス方式で認証</li>



<li><strong>チケットとセッションキー</strong> を使い、ログイン後の通信はより安全</li>
</ul>



<p><span class="fz-18px">だから、「最初の認証でも安全」と言えるんです！</span></p>
</div></div>



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc21">認証サーバからTGTを取得するまでの流れは？</span></h2>



<p><span class="fz-18px">Kerberos におけるログインから認証成功までの流れを、<strong>ノンス</strong> や <strong>暗号化・復号化</strong> のタイミングまで詳しく解説します！</span></p>



<p><span class="fz-18px">以下の流れで、クライアントが認証され、<strong>TGT (Ticket Granting Ticket)</strong> を取得するまでのやりとりを追っていきましょう！</span></p>



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



<h3 class="wp-block-heading"><span id="toc22">🏗️ 前提：事前に知っているもの</span></h3>



<ul class="wp-block-list">
<li><strong>ユーザー名</strong> と <strong>パスワード</strong>（クライアントが入力）</li>



<li><strong>KDC（AS と TGS のセット）</strong> は、ユーザーのパスワードハッシュを保持</li>
</ul>



<p><span class="fz-18px">ここでは、<strong><span class="bold-red">共通鍵暗号</span></strong> を使うので、パスワードから作ったハッシュ値（暗号鍵）が重要です！</span></p>



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



<h3 class="wp-block-heading"><span id="toc23">📩 STEP 1: AS 要求（ログイン要求）</span></h3>



<ol class="wp-block-list">
<li>クライアントが <strong>AS</strong>（認証サーバ）に「ログインしたい」と<span class="red">リクエスト</span>します。
<ul class="wp-block-list">
<li>送るデータ：
<ul class="wp-block-list">
<li><strong>ユーザーID</strong></li>



<li><strong>タイムスタンプ</strong></li>
</ul>
</li>
</ul>
</li>
</ol>



<p><span class="fz-18px">🔒 <strong>この時点ではまだ暗号化されていない</strong>ですが、パスワード自体は送りません！</span></p>



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



<h3 class="wp-block-heading"><span id="toc24">🔑 STEP 2: AS 応答（ノンスと TGT 発行）</span></h3>



<ol start="2" class="wp-block-list">
<li><strong>AS</strong> はクライアントからのリクエストを受け取ると、次の処理を行います。
<ul class="wp-block-list">
<li><span class="bold-red">ノンス</span>（ランダムな一時データ<strong>）</strong> を生成</li>



<li><strong><span class="bold-red">T</span></strong><span class="bold-red">GT </span>(Ticket Granting Ticket) を作成</li>



<li><span class="bold-red">セッションキー</span> を生成</li>
</ul>
</li>



<li>その後、以下のデータをクライアントに送信します。
<ul class="wp-block-list">
<li><strong>TGT</strong>（TGS に渡す用のチケット）</li>



<li><strong>セッションキー（共通鍵）</strong></li>



<li><strong>ノンス</strong></li>
</ul>
</li>
</ol>



<p><span class="fz-18px">🔒 <strong>ここが重要！</strong> このデータは、KDC 側で保存してある「<span class="red">ユーザーのパスワードから作った暗号鍵</span>」で暗号化します。</span></p>



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



<h3 class="wp-block-heading"><span id="toc25">🔓 STEP 3: クライアント側で復号化</span></h3>



<ol start="4" class="wp-block-list">
<li>クライアントは、<span class="red">パスワードをローカルでハッシュ化</span>して、暗号鍵を作ります。</li>



<li>サーバーからの応答データを、その暗号鍵で復号します。</li>
</ol>



<p><span class="fz-18px">この復号に成功すると：</span></p>



<ul class="wp-block-list">
<li><strong>セッションキー</strong> を取得</li>



<li><strong>TGT</strong> を取得</li>



<li><strong>ノンス</strong> を確認</li>
</ul>



<p><span class="fz-18px">もし復号できなければ、パスワードが間違っていることがわかります。</span></p>



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



<h3 class="wp-block-heading"><span id="toc26">✅ STEP 4: 認証成功</span></h3>



<ol start="6" class="wp-block-list">
<li>クライアントは、復号したノンスを使って <strong>認証応答</strong> を返します。
<ul class="wp-block-list">
<li><span class="bold-red">ノンス + 1</span> をセッションキーで暗号化して AS に送信</li>
</ul>
</li>



<li><strong>AS</strong> は、受け取ったデータをセッションキーで復号し、ノンスが正しいか確認します。
<ul class="wp-block-list">
<li><span class="bold-red">ノンス + 1</span> が正しければ認証成功！</li>
</ul>
</li>
</ol>



<p><span class="fz-18px">これでクライアントは正式に認証され、TGT を使って TGS にサービスチケットをもらいにいけるようになります！</span></p>



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



<h3 class="wp-block-heading"><span id="toc27">🔥 なぜ安全なのか？</span></h3>



<ul class="wp-block-list">
<li><strong>パスワード自体は一度もネットワークを流れない</strong></li>



<li><strong>共通鍵暗号</strong> なので通信の盗聴だけでは復号できない</li>



<li><strong>ノンス</strong> により、リプレイ攻撃（過去の通信を再送信する攻撃）も防止</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc28">🏁 まとめ</span></h3>



<p><span class="fz-18px">Kerberos のログインフェーズは、次の手順で進みます！</span></p>



<ol class="wp-block-list">
<li><strong>クライアント → AS:</strong> ログインリクエスト（ユーザーID + タイムスタンプ）</li>



<li><strong>AS → クライアント:</strong> ノンス・TGT・セッションキーをパスワードハッシュで暗号化して送信</li>



<li><strong>クライアント:</strong> パスワードをハッシュ化 → サーバーメッセージを復号</li>



<li><strong>クライアント → AS:</strong> ノンス + 1 をセッションキーで暗号化して返答</li>



<li><strong>AS:</strong> ノンス + 1 をチェック → 認証成功！</li>
</ol>



<p><span class="fz-18px">この仕組みにより、<strong>パスワード漏洩のリスクを抑えつつ、安全なログイン処理</strong> を実現しているんです！</span></p>
</div></div>



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



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<h2 class="wp-block-heading"><span id="toc29">TGTを取得してからサービスを利用するまでの流れは？</span></h2>



<p><span class="fz-18px">認証サーバー（AS）で認証が成功して、TGT（チケット発行チケット）をゲットした後、実際にサービスを使うまでの流れを一緒に見ていきましょう！</span></p>



<p><span class="fz-18px">ここからは <strong>TGS（チケット発行サーバー）</strong> の出番です！</span></p>



<h3 class="wp-block-heading"><span id="toc30">① クライアント → TGS にサービスリクエスト</span></h3>



<p><span class="fz-18px">クライアントは、「このサービスを使いたい！」と <strong>TGS</strong> にリクエストを送ります。</span></p>



<p><span class="fz-18px"><strong>送るデータ</strong>：</span></p>



<ul class="wp-block-list">
<li><strong>TGT</strong>（認証サーバーからもらったチケット）</li>



<li><strong>サービスID</strong>（どのサービスを使いたいか）</li>



<li><strong>タイムスタンプ</strong></li>



<li><strong>認証データ</strong>（セッションキーで暗号化したクライアントID＋タイムスタンプ）</li>
</ul>



<p><span class="fz-18px">➡️ <strong>TGT は暗号化されていて、TGS 以外は中身を見れません</strong>。だから盗まれてもすぐには悪用されません！</span></p>



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



<h3 class="wp-block-heading"><span id="toc31">② TGS がリクエストをチェック</span></h3>



<p>TGS は以下を確認します：</p>



<ul class="wp-block-list">
<li><strong>TGT を復号</strong>（AS が発行したので、TGS なら復号できる）</li>



<li><strong>TGT の有効期限</strong> をチェック</li>



<li><strong>認証データをセッションキーで復号</strong></li>



<li><strong>クライアントID</strong> や <strong>タイムスタンプ</strong> が一致するか確認</li>
</ul>



<p>もし問題なければ、TGS はサービスチケットを発行します！</p>



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



<h3 class="wp-block-heading"><span id="toc32">③ TGS → クライアントにサービスチケット発行</span></h3>



<p>TGS は <strong>サービスチケット</strong> を作成して、クライアントに返します！</p>



<p><strong>返すデータ</strong>：</p>



<ul class="wp-block-list">
<li><strong>サービスチケット</strong>（対象サービス用のセッションキー入り、サービスサーバー用に暗号化）</li>



<li><strong>クライアントとサービスの共通セッションキー</strong>（クライアント用に暗号化）</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc33">④ クライアント → サービスサーバーに接続リクエスト</span></h3>



<p>クライアントは、もらった <strong>サービスチケット</strong> を使って、サービスサーバーに接続リクエストを送ります。</p>



<p><strong>送るデータ</strong>：</p>



<ul class="wp-block-list">
<li><strong>サービスチケット</strong>（TGS からもらったもの）</li>



<li><strong>認証データ</strong>（共通セッションキーで暗号化したクライアントID＋タイムスタンプ）</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc34">⑤ サービスサーバーが認証チェック</span></h3>



<p>サービスサーバーは以下を確認します：</p>



<ul class="wp-block-list">
<li><strong>サービスチケットを復号</strong>（TGS が発行したものなので、サービスサーバーは復号可能）</li>



<li><strong>セッションキーを取得</strong></li>



<li><strong>認証データを復号し、クライアントIDやタイムスタンプを確認</strong></li>
</ul>



<p>問題なければ、最終確認のため <strong>ノンス + 1</strong> のようなレスポンスを返します。</p>



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



<h3 class="wp-block-heading"><span id="toc35">⑥ クライアント → サービス利用開始！</span></h3>



<p><span class="fz-18px">クライアントはレスポンスを確認し、正常ならそのままサービス利用開始！<br>その後の通信は、サービスチケット内の <strong>セッションキー</strong> を使って安全にやりとりします。</span></p>



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



<h2 class="wp-block-heading"><span id="toc36">✅ ポイントまとめ</span></h2>



<ul class="wp-block-list">
<li><strong>TGT は TGS だけが復号できる</strong>（他人が盗んでも無意味）</li>



<li><strong>サービスチケットはサービスサーバーだけが復号できる</strong></li>



<li><strong>共通セッションキー</strong> を使うことで、以降の通信は暗号化される</li>



<li><strong>タイムスタンプやノンス</strong> でリプレイ攻撃対策もバッチリ</li>
</ul>



<p>つまり、<strong>クライアントはパスワードを1回入力するだけで、複数のサービスをシームレスに使える</strong> ！これが Kerberos の強みですね！</p>
</div></div>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="【和訳】Teenage Dream - Katy Perry" width="1256" height="707" src="https://www.youtube.com/embed/53Kmp7oeh_I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"><strong>Teenage Dream &#8211; Katy Perry</strong></figcaption></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ケルベロス認証をネスペ午後問を解きながら９秒でパパっと理解！</title>
		<link>https://ascend-beyond.com/study/6673/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Thu, 27 Feb 2025 12:36:57 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6673</guid>

					<description><![CDATA[リンク 目次 問題設問 1設問 2設問 3解答設問 1 ：次の文中の (a) ～ (c) に入る最も適切な語句を、解答群から選びなさい。設問 2 ：以下の選択肢の中から、Kerberosの設計上の特徴として 適切なもの  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><strong><span class="fz-20px"><span style="text-decoration: underline;">【９秒チャレンジ】<br></span></span></strong><strong>登場人物は3つ</strong>：</p>



<ol class="wp-block-list">
<li><strong>クライアント</strong>：サービスを使いたい人</li>



<li><strong>KDC（鍵配布センター）</strong>：認証サーバー（AS） + TGS（チケット発行サーバー）</li>



<li><strong>サービスサーバー(SP)</strong>：実際に使いたいサービスを提供するサーバー</li>
</ol>



<p><strong>流れ</strong>：</p>



<ol class="wp-block-list">
<li>クライアントがSPにアクセスしようとすると、まず KDC に行く。<br>(DNSの設定などで、KDCを経由するようにしている）</li>



<li><span class="bold-red">AS</span>がパスワードのハッシュ値を使って本人確認。OKなら <span class="red">TGT（チケット）</span>と<span class="red">セッション鍵を暗号化して返す</span>。</li>



<li>クライアントはパスワードハッシュで復号し、TGT を取得。TGT を使って TGS にサービス用のチケットをリクエスト。</li>



<li><span class="bold-red">TGS</span> は<span class="red">チケットを発行</span>し、クライアントに返す。</li>



<li>クライアントはSPにチケットを渡す。</li>



<li>サービスサーバーがチケットを検証して OK なら、サービス利用開始！</li>
</ol>



<p><span class="fz-18px"><strong>すごいポイント</strong>：</span></p>



<ul class="wp-block-list">
<li><strong>一度認証すれば、いろんなサービスに再ログインなしでアクセス可能</strong>（シングルサインオン）。</li>



<li><strong>パスワードはネットワーク上に流れない</strong>（流れるのは暗号化データだけ）。</li>
</ul>



<p><span class="fz-18px">更に詳しく知りたい場合↓</span></p>



<p><span class="fz-18px"><span class="fz-16px">もし、この説明でモヤモヤしても、大丈夫！<br>以下の問題でアウトプットしていくことで無理なく理解に落とし込むことができます！</span></span></p>



<p><span class="fz-18px">では、練習問題を通して実感していきましょう！</span></p>
</div></div>



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"7日間でハッキングをはじめる本 Try撃手法と脆弱性","b":"翔泳社","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/510ERgcb-yL._SL500_.jpg","\/415NKBcnASL._SL500_.jpg","\/41FGljR1GrL._SL500_.jpg","\/41OSOPH3mcL._SL500_.jpg","\/41fKvGaB6CL._SL500_.jpg","\/41pogRF-eGL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4798181579","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4798181579","a_id":4440991,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/7%E6%97%A5%E9%96%93%E3%81%A7%E3%83%8F%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%9C%AC%20Try%E6%92%83%E6%89%8B%E6%B3%95%E3%81%A8%E8%84%86%E5%BC%B1%E6%80%A7\/","a_id":4440988,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2}],"eid":"YXyAs","s":"s"});
</script>
<div id="msmaflink-YXyAs">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">問題</a><ol><li><a href="#toc2" tabindex="0">設問 1</a></li><li><a href="#toc3" tabindex="0">設問 2</a></li><li><a href="#toc4" tabindex="0">設問 3</a></li></ol></li><li><a href="#toc5" tabindex="0">解答</a><ol><li><a href="#toc6" tabindex="0">設問 1 ：次の文中の (a) ～ (c) に入る最も適切な語句を、解答群から選びなさい。</a></li><li><a href="#toc7" tabindex="0">設問 2 ：以下の選択肢の中から、Kerberosの設計上の特徴として 適切なもの を2つ選びなさい。</a></li><li><a href="#toc8" tabindex="0">設問 3 ：Kerberosでは「リプレイ攻撃」を防ぐ仕組みが備わっている。どのような仕組みでリプレイ攻撃を防いでいるか、100文字以内で説明しなさい。</a></li></ol></li><li><a href="#toc9" tabindex="0">まとめ</a><ol><ol><ol><li><a href="#toc10" tabindex="0">🚀 Kerberos の流れ（ざっくり）</a></li></ol></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">問題</span></h2>



<p>企業A社では、社内システムのセキュリティ強化のため、ユーザ認証にKerberosを導入することにした。Kerberosはチケットベースの認証プロトコルであり、クライアントとサーバ間の通信を安全に行うことができる。以下の図は、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(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="[クライアントPC] — [認証サーバ (KDC)] — [アプリケーションサーバ]
" 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: #F44747">クライアントPC</span><span style="color: #F8F8F2">] — [</span><span style="color: #F44747">認証サーバ</span><span style="color: #F8F8F2"> </span><span style="color: #F44747">(KDC)</span><span style="color: #F8F8F2">] — [</span><span style="color: #F44747">アプリケーションサーバ</span><span style="color: #F8F8F2">]</span></span>
<span class="line"></span></code></pre></div>



<p>A社のネットワークでは、クライアントPCがアプリケーションサーバにアクセスする際、Kerberos認証によってセッション鍵を共有する仕組みを採用している。以下の説明を読み、設問に答えなさい。</p>



<p><strong>認証フロー</strong></p>



<ol class="wp-block-list">
<li>クライアントPCは、KDC の <strong>AS (Authentication Server)</strong> にユーザIDを送信し、チケット発行を要求する。</li>



<li>KDC の AS はクライアントのパスワードから生成された鍵を使い、セッション鍵と <strong>TGT (Ticket Granting Ticket)</strong> を暗号化してクライアントに返す。</li>



<li>クライアントは、AS から受け取った TGT を使い、<strong>TGS (Ticket Granting Service)</strong> にアクセスチケットを要求する。</li>



<li>TGS は、クライアントの TGT を検証し、アクセスしたいサーバ用のサービスチケットを発行する。</li>



<li>クライアントは、発行されたサービスチケットをアプリケーションサーバに送信し、認証を完了させる。</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc2">設問 1</span></h3>



<p>次の文中の (a) ～ (c) に入る最も適切な語句を、解答群から選びなさい。</p>



<p>(1) クライアントPCは最初に、AS に対してユーザ名を送信し、(a) の発行を依頼する。<br>(2) AS は、ユーザのパスワードから生成された (b) を使って、セッション鍵と TGT を暗号化する。<br>(3) アプリケーションサーバは、受け取った (c) を検証し、クライアントとのセッションを確立する。</p>



<p><strong>解答群</strong></p>



<ol class="wp-block-list">
<li>サービスチケット</li>



<li>チャレンジレスポンス</li>



<li>TGT</li>



<li>パスワードハッシュ</li>



<li>クライアントID</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc3">設問 2</span></h3>



<p>以下の選択肢の中から、Kerberosの設計上の特徴として <strong>適切なもの</strong> を2つ選びなさい。</p>



<ul class="wp-block-list">
<li>ア) パスワードはネットワーク上を平文で流れる。</li>



<li>イ) サーバごとに秘密鍵が必要である。</li>



<li>ウ) TGT の有効期限が切れると再認証が必要である。</li>



<li>エ) クライアントは最初に直接サービスサーバと鍵交換を行う。</li>



<li>オ) サービスチケットは KDC からアプリケーションサーバに直接送信される。</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc4">設問 3</span></h3>



<p>Kerberosでは「リプレイ攻撃」を防ぐ仕組みが備わっている。どのような仕組みでリプレイ攻撃を防いでいるか、100文字以内で説明しなさい。</p>



<h2 class="wp-block-heading"><span id="toc5">解答</span></h2>



<h3 class="wp-block-heading"><span id="toc6">設問 1 ：次の文中の (a) ～ (c) に入る最も適切な語句を、解答群から選びなさい。</span></h3>



<p>(1) クライアントPCは最初に、AS（認証サーバ） に対してユーザ名を送信し、(a) の発行を依頼する。<br>(2) AS は、ユーザのパスワードから生成された (b) を使って、セッション鍵と TGT を暗号化する。<br>(3) アプリケーションサーバは、受け取った (c) を検証し、クライアントとのセッションを確立する。</p>



<p><strong>解答:</strong><br>(a) 3. TGT<br>(b) 4. パスワードハッシュ<br>(c) 1. サービスチケット</p>



<p><strong>解説:</strong></p>



<p><strong>1.　(a) TGT (Ticket Granting Ticket)<br></strong>クライアントPCは最初に、AS (Authentication Server：<span class="bold-red">認証サーバ</span>) に対してユーザ名を送り、TGT の発行を依頼します。TGTはクライアントが後続の認証で繰り返し使う一種のパスで、これがあると何度もパスワードを入力する必要がなくなります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="bold-red">認証サーバ</span>はサービスを提供する側のネットワークに配置されています。</p>
</div></div>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<a href="https://ascend-beyond.com/study/6675/" title="【FAQ】ケルベロス認証のあるある疑問をパパっと解消" 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/03/bc5a20d1e94896f8f10ba26f820ab323-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://ascend-beyond.com/wp-content/uploads/2025/03/bc5a20d1e94896f8f10ba26f820ab323-160x90.jpg 160w, https://ascend-beyond.com/wp-content/uploads/2025/03/bc5a20d1e94896f8f10ba26f820ab323-300x169.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2025/03/bc5a20d1e94896f8f10ba26f820ab323-1024x576.jpg 1024w, https://ascend-beyond.com/wp-content/uploads/2025/03/bc5a20d1e94896f8f10ba26f820ab323-768x432.jpg 768w, https://ascend-beyond.com/wp-content/uploads/2025/03/bc5a20d1e94896f8f10ba26f820ab323-120x68.jpg 120w, https://ascend-beyond.com/wp-content/uploads/2025/03/bc5a20d1e94896f8f10ba26f820ab323-320x180.jpg 320w, https://ascend-beyond.com/wp-content/uploads/2025/03/bc5a20d1e94896f8f10ba26f820ab323.jpg 1200w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【FAQ】ケルベロス認証のあるある疑問をパパっと解消</div><div class="blogcard-snippet internal-blogcard-snippet">🔑 Kerberos とは？🏢 認証サーバ（AS）とチケット発行サーバ（TGS）はどういう関係性は？クライアントはどうやってケルベロスを使うかどうかを判断するの？パスワードがネットワーク上を流れないってどういう仕組みで認証しているの？認証サーバからTGTを取得するまでの流れは？TGTを取得してからサービスを利用するまでの流れは？</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.03.03</div></div></div></div></a>
</div></figure>



<p><strong>2.　(b) パスワードハッシュ<br></strong>ASは、ユーザのパスワードから<span class="bold-red">ハッシュ化</span>した秘密鍵を作り、その鍵でセッション鍵と TGT を暗号化してクライアントに渡します。これにより、パスワード自体をネットワーク上に送らずに安全に鍵交換が行えます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="bold-red">ハッシュ化</span>とはある値を関数に入れることによって、別の新たな値を生成することです。</p>
</div></div>



<p><strong>3.　(c) サービスチケット<br></strong>クライアントが<span class="bold-red">TGS</span> (Ticket Granting Service) から取得したサービスチケットをアプリケーションサーバに提示すると、サーバはそのチケットを検証して、セッションを確立します。サービスチケットには、利用するサービス用のセッション鍵などが含まれています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="bold-red">TGS</span>は認証ステップを通過できたデバイスに対して、サービスの許可証を渡す役割です。配置場所はASと<span class="red">同じ物理サーバ内</span>（<strong><span class="bold-red">KDC</span></strong>）に配置されることが多いです。</p>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc7">設問 2 ：以下の選択肢の中から、Kerberosの設計上の特徴として 適切なもの を2つ選びなさい。</span></h3>



<ul class="wp-block-list">
<li>ア) パスワードはネットワーク上を平文で流れる。</li>



<li>イ) サーバごとに秘密鍵が必要である。</li>



<li>ウ) TGT の有効期限が切れると再認証が必要である。</li>



<li>エ) クライアントは最初に直接サービスサーバと鍵交換を行う。</li>



<li>オ) サービスチケットは KDC からアプリケーションサーバに直接送信される。</li>
</ul>



<p><strong>解答:</strong><br>イ, ウ</p>



<p><strong>解説:</strong></p>



<ul class="wp-block-list">
<li><strong>イ) サーバごとに秘密鍵が必要である → 正しい</strong><br>Kerberosでは、各サーバには固有の秘密鍵があります。これにより、KDCが発行するチケットを復号してセッション鍵を取得できます。秘密鍵がなければチケットの中身を読み解くことができません。</li>



<li><strong>ウ) TGT の有効期限が切れると再認証が必要である → 正しい</strong><br>TGTには有効期限があります。有効期限が切れた後は再認証が必要になるので、古いチケットを使った攻撃を防げます。</li>



<li><strong>ア) パスワードはネットワーク上を平文で流れる → 誤り</strong><br>Kerberosでは、パスワードそのものはネットワーク上に流れません。パスワードから生成された鍵でデータを暗号化してやりとりします。</li>
</ul>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p>パスワードをハッシュ化した値が流れるだけなので、生のパスワードデータはネットワーク上には流れません。</p>
</div></div>



<ul class="wp-block-list">
<li><strong>エ) クライアントは最初に直接サービスサーバと鍵交換を行う → 誤り</strong><br>最初の鍵交換は KDC を介して行われます。クライアントは KDC (AS → TGS) を経由して、サービスサーバに接続するためのチケットを取得します。</li>



<li><strong>オ) サービスチケットは KDC からアプリケーションサーバに直接送信される → 誤り</strong><br>サービスチケットは、KDC からクライアントに渡されます。そして、クライアントがそのチケットをサービスサーバに提示します。</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc8">設問 3 ：Kerberosでは「リプレイ攻撃」を防ぐ仕組みが備わっている。どのような仕組みでリプレイ攻撃を防いでいるか、100文字以内で説明しなさい。</span></h3>



<p><strong>解答:</strong><br>タイムスタンプを含めた認証データを暗号化し、一定時間内のリプレイを検出して無効化する。</p>



<p><strong>解説:</strong><br>リプレイ攻撃とは、攻撃者が過去の通信データを盗み取り、それを再送信して不正アクセスを試みる攻撃です。Kerberosでは、暗号化したタイムスタンプを認証データに含め、サーバはそのタイムスタンプが現在時刻と大きくずれている場合にリクエストを拒否します。これにより、過去のデータを再送信しても認証に失敗します。</p>



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



<p><span class="bold-red">ケルベロス認証</span>は「<span class="red">チケット制の認証システム</span>」で、暗号化とタイムスタンプを活用して、ネットワーク上で安全にログインできる仕組みです！</p>



<h5 class="wp-block-heading"><span id="toc10">🚀 Kerberos の流れ（ざっくり）</span></h5>



<ol class="wp-block-list">
<li><strong>ログインリクエスト</strong><br>→ クライアントがKDC（<span class="red">認証サーバ</span>）にログインを要求。</li>



<li><strong>TGT（Ticket Granting Ticket）発行</strong><br>→ 認証サーバは、パスワードから生成した鍵で暗号化された「<span class="red"><strong>TGT</strong></span>」をクライアントに渡します。これは「<span class="red">サービスチケット発行のための許可証</span>」です。</li>



<li><strong>サービスチケット取得</strong><br>→ クライアントは、TGT を使って「KDC（<span class="bold-red">TGS</span>：チケット発行サーバ）」からサービス用のチケットを取得します。</li>



<li><strong>サービスへのアクセス</strong><br>→ クライアントはサービスサーバにチケットを提出し、正しければアクセスが許可されます。</li>
</ol>



<p>これなら、ネットワーク上にパスワードが流れず、安全にサービスを利用できます！</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="tuki.『晩餐歌』Official Music Video" width="1256" height="942" src="https://www.youtube.com/embed/oZpYEEcvu5I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"><strong>tuki.『晩餐歌』</strong></figcaption></figure>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="欠伸日和 - 最終列車（ Music Video ）" width="1256" height="707" src="https://www.youtube.com/embed/pjwxqi_6tv0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"><strong>欠伸日和 &#8211; 最終列車</strong></figcaption></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Set-Cookieをネスペ午後問を解きながら９秒でパパパっと理解！</title>
		<link>https://ascend-beyond.com/study/6633/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Tue, 18 Feb 2025 11:59:16 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6633</guid>

					<description><![CDATA[目次 そもそもSet-Cookieとは簡単な流れなぜCookieが必要なの？具体例（ログイン時のセッション管理）1. 初回リクエスト（ログイン）2. 次回以降のリクエスト設問設問 1設問 2設問 3設問 4解説設問 1： [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><strong><span class="fz-20px"><span style="text-decoration: underline;">【９秒チャレンジ】<br></span></span></strong><span class="fz-18px"><strong><span class="red">Set-Cookie</span></strong>は、サーバーがクライアントに「このCookieを保存してね」と指示するHTTPレスポンスヘッダーです。</span></p>



<p><span class="fz-18px">HTTPは<span class="red">ステートレス</span>なので、ログイン情報などのセッションを維持できません。そこで、Cookieを使って状態を管理します。そのために、サーバーが <code>Set-Cookie</code> を送って、クライアントにCookieを保存させます。</span></p>



<p><span class="fz-18px">クッキーに関するサーバーからの指示には、<span class="fz-18px"><code>Set-Cookie</code></span></span>には<span class="fz-18px"><code>Clear-Site-Data</code>（Cookie削除指示）というヘッダーもあります。</span><br></p>



<p><span class="fz-18px">更に詳しく知りたい場合↓</span></p>



<p><span class="fz-18px">では、練習問題を通して実感していきましょう！</span></p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">そもそもSet-Cookieとは</a><ol><ol><li><a href="#toc2" tabindex="0">簡単な流れ</a></li></ol></li><li><a href="#toc3" tabindex="0">なぜCookieが必要なの？</a></li><li><a href="#toc4" tabindex="0">具体例（ログイン時のセッション管理）</a><ol><li><a href="#toc5" tabindex="0">1. 初回リクエスト（ログイン）</a></li><li><a href="#toc6" tabindex="0">2. 次回以降のリクエスト</a></li></ol></li></ol></li><li><a href="#toc7" tabindex="0">設問</a><ol><ol><ol><li><a href="#toc8" tabindex="0">設問 1</a></li><li><a href="#toc9" tabindex="0">設問 2</a></li><li><a href="#toc10" tabindex="0">設問 3</a></li><li><a href="#toc11" tabindex="0">設問 4</a></li></ol></li></ol></li></ol></li><li><a href="#toc12" tabindex="0">解説</a><ol><li><a href="#toc13" tabindex="0">設問 1：XSSによるセッションIDの漏洩を防ぐには？</a><ol><li><a href="#toc14" tabindex="0">解答:</a></li><li><a href="#toc15" tabindex="0">解説:</a><ol><li><a href="#toc16" tabindex="0">具体例:</a></li></ol></li></ol></li><li><a href="#toc17" tabindex="0">設問 2：（HTTPSを使用しない場合のセッションIDの漏洩）を防ぐには？</a><ol><li><a href="#toc18" tabindex="0">解答:</a></li><li><a href="#toc19" tabindex="0">解説:</a><ol><li><a href="#toc20" tabindex="0">具体例:</a></li></ol></li></ol></li><li><a href="#toc21" tabindex="0">設問 3：サブドメイン間での不要なCookieの共有を防ぐには？</a><ol><li><a href="#toc22" tabindex="0">解答:</a></li><li><a href="#toc23" tabindex="0">解説:</a><ol><li><a href="#toc24" tabindex="0">具体例:</a></li></ol></li></ol></li><li><a href="#toc25" tabindex="0">設問 4：以下の Set-Cookie 設定での効果</a><ol><li><a href="#toc26" tabindex="0">解答と解説:</a><ol><li><a href="#toc27" tabindex="0">まとめ：この設定の効果</a></li></ol></li></ol></li><li><a href="#toc28" tabindex="0">補足（より実践的な設定）</a></li></ol></li><li><a href="#toc29" tabindex="0">総括</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">そもそもSet-Cookieとは</span></h2>



<p><code>Set-Cookie</code> は、Webサーバーがクライアント（ブラウザ）に対して<span class="red">Cookieを保存するよう指示</span>する<span class="red">HTTPヘッダ</span> です。</p>



<h4 class="wp-block-heading"><span id="toc2">簡単な流れ</span></h4>



<ol class="wp-block-list">
<li><strong>サーバー → クライアント（ブラウザ）</strong>
<ul class="wp-block-list">
<li>サーバーが <code>Set-Cookie</code> ヘッダを使ってCookieを発行し、ブラウザに保存させる。</li>
</ul>
</li>



<li><strong>クライアント → サーバー</strong>
<ul class="wp-block-list">
<li>次回以降、ブラウザは保存したCookieを <code>Cookie</code> ヘッダに含めてサーバーに送信する。</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading"><span id="toc3">なぜCookieが必要なの？</span></h3>



<p>HTTPは<span class="red">ステートレス</span>（状態を保持しない） なプロトコルなので、サーバーはクライアントの状態を覚えていない。<br>そこで、Cookieを使って「このユーザーはログインしている」「カートに商品が入っている」などの情報を管理する。</p>



<h3 class="wp-block-heading"><span id="toc4">具体例（ログイン時のセッション管理）</span></h3>



<h4 class="wp-block-heading"><span id="toc5">1. 初回リクエスト（ログイン）</span></h4>



<p><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">HTTP</span><span role="button" tabindex="0" data-code="POST /login 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: #F92672">POST</span><span style="color: #F8F8F2"> /login </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><strong>サーバーがセッションIDを発行して、Set-Cookieを送る</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">HTTP</span><span role="button" tabindex="0" data-code="HTTP/1.1 200 OK
Set-Cookie: session_id=abcdef123456; Path=/; HttpOnly; Secure" 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">HTTP/1.1 200 OK</span></span>
<span class="line"><span style="color: #F92672">Set-Cookie:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">session_id=abcdef123456; Path=/; HttpOnly; Secure</span></span></code></pre></div>



<p>➡️ ブラウザは <code>session_id=abcdef123456</code> を保存する。</p>



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



<h4 class="wp-block-heading"><span id="toc6">2. 次回以降のリクエスト</span></h4>



<p>保存されたCookieが、サーバーへのリクエスト時に自動的に送られる。</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="GET /dashboard HTTP/1.1
Host: example.com
Cookie: session_id=abcdef123456" 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">GET</span><span style="color: #F8F8F2"> /dashboard </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 style="color: #F92672">Cookie:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">session_id=abcdef123456</span></span></code></pre></div>



<p>➡️ サーバーはこの <code>session_id</code> を確認し、ログイン済みのユーザーであることを判別する。</p>



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"7日間でハッキングをはじめる本 Try撃手法と脆弱性","b":"翔泳社","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/510ERgcb-yL._SL500_.jpg","\/415NKBcnASL._SL500_.jpg","\/41FGljR1GrL._SL500_.jpg","\/41OSOPH3mcL._SL500_.jpg","\/41fKvGaB6CL._SL500_.jpg","\/41pogRF-eGL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4798181579","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4798181579","a_id":4440991,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/7%E6%97%A5%E9%96%93%E3%81%A7%E3%83%8F%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%9C%AC%20Try%E6%92%83%E6%89%8B%E6%B3%95%E3%81%A8%E8%84%86%E5%BC%B1%E6%80%A7\/","a_id":4440988,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2}],"eid":"YXyAs","s":"s"});
</script>
<div id="msmaflink-YXyAs">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->



<h2 class="wp-block-heading"><span id="toc7">設問</span></h2>



<p>あなたは、A社のWebシステムのセキュリティ改善を担当するネットワークエンジニアである。現在、A社では、ユーザ認証後にセッション管理のために <code>Set-Cookie</code> ヘッダを用いてセッションIDを発行し、ブラウザに保存させている。</p>



<p>しかし、最近になって、以下のようなセキュリティ上の問題が指摘された。</p>



<ul class="wp-block-list">
<li>(1) クロスサイトスクリプティング（XSS）によるセッションIDの漏洩の可能性</li>



<li>(2) HTTPSを使用しない場合のセッションIDの漏洩の可能性</li>



<li>(3) サブドメイン間での不要なCookieの共有</li>
</ul>



<p>これらの問題を防ぐために、適切な <code>Set-Cookie</code> の属性設定を行うことになった。</p>



<h5 class="wp-block-heading"><span id="toc8">設問 1</span></h5>



<p><strong>(1) の問題（XSSによるセッションIDの漏洩）を防ぐために、 <code>Set-Cookie</code> のどの属性を設定すべきか。また、その属性の具体的な動作を説明せよ。</strong></p>



<h5 class="wp-block-heading"><span id="toc9">設問 2</span></h5>



<p><strong>(2) の問題（HTTPSを使用しない場合のセッションIDの漏洩）を防ぐために、 <code>Set-Cookie</code> のどの属性を設定すべきか。また、その属性の具体的な動作を説明せよ。</strong></p>



<h5 class="wp-block-heading"><span id="toc10">設問 3</span></h5>



<p><strong>(3) の問題（サブドメイン間での不要なCookieの共有）を防ぐために、 <code>Set-Cookie</code> のどの属性を設定すべきか。また、その属性の具体的な動作を説明せよ。</strong></p>



<h5 class="wp-block-heading"><span id="toc11">設問 4</span></h5>



<p>A社の開発チームが <code>Set-Cookie</code> の設定を以下のように変更した。</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="Set-Cookie: session_id=abcdef123456; Path=/; HttpOnly; Secure; SameSite=Strict" 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">Set-Cookie:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">session_id=abcdef123456; Path=/; HttpOnly; Secure; SameSite=Strict</span></span></code></pre></div>



<p>この設定により、上記の (1) ～ (3) の問題に対してどのような効果が得られるか。それぞれについて説明せよ。</p>



<h2 class="wp-block-heading"><span id="toc12">解説</span></h2>



<h3 class="wp-block-heading"><span id="toc13">設問 1：XSSによるセッションIDの漏洩を防ぐには？</span></h3>



<h4 class="wp-block-heading"><span id="toc14">解答:</span></h4>



<p><span class="bold-red"><code>HttpOnly</code> </span>属性を設定する。</p>



<h4 class="wp-block-heading"><span id="toc15">解説:</span></h4>



<ul class="wp-block-list">
<li><code>HttpOnly</code> を設定すると、JavaScript から Cookie を取得できなくなる。</li>



<li>これにより、攻撃者が XSS（クロスサイトスクリプティング）を利用して JavaScript を実行し、 <code>document.cookie</code> でセッションIDを盗むことを防げる。</li>
</ul>



<h5 class="wp-block-heading"><span id="toc16">具体例:</span></h5>



<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="Set-Cookie: session_id=abcdef123456; HttpOnly" 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">Set-Cookie:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">session_id=abcdef123456; HttpOnly</span></span></code></pre></div>



<p>この設定により、JavaScript (<code>document.cookie</code>) から <code>session_id</code> が取得できなくなる。</p>



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



<h3 class="wp-block-heading"><span id="toc17">設問 2：（HTTPSを使用しない場合のセッションIDの漏洩）を防ぐには？</span></h3>



<h4 class="wp-block-heading"><span id="toc18">解答:</span></h4>



<p><code><span class="bold-red">Secure</span></code> 属性を設定する。</p>



<h4 class="wp-block-heading"><span id="toc19">解説:</span></h4>



<ul class="wp-block-list">
<li><code>Secure</code> を設定すると、<span class="red">HTTPS（暗号化通信）</span>を使用している場合のみ Cookie が送信される。</li>



<li>これにより、HTTP（平文通信）経由でセッションIDが盗聴されることを防げる。</li>
</ul>



<h5 class="wp-block-heading"><span id="toc20">具体例:</span></h5>



<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="Set-Cookie: session_id=abcdef123456; Secure" 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">Set-Cookie:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">session_id=abcdef123456; Secure</span></span></code></pre></div>



<p>この設定により、HTTPS接続時のみ Cookie が送られ、HTTP通信では送信されなくなる。</p>



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



<h3 class="wp-block-heading"><span id="toc21">設問 3：サブドメイン間での不要なCookieの共有を防ぐには？</span></h3>



<h4 class="wp-block-heading"><span id="toc22">解答:</span></h4>



<p><code>Domain</code> 属性を適切に設定しない、または<span class="bold-red"> <code>SameSite</code></span> 属性を設定する。</p>



<h4 class="wp-block-heading"><span id="toc23">解説:</span></h4>



<ul class="wp-block-list">
<li><code>Domain</code> 属性を指定しなければ、Cookie は発行したドメイン（<code>example.com</code> など）でのみ有効になる。</li>



<li>もし <code>Domain=example.com</code> を設定すると、<code>sub.example.com</code> などのサブドメインにも Cookie が送信されてしまう。</li>



<li><code><span class="bold-red">SameSite</span></code> 属性を <code><span class="red">Strict</span></code> や <span class="red"><code>Lax</code> </span>にすることで、異なるサイト（またはサブドメインを含む）からの不要なリクエストで Cookie を送信しないよう制御できる。</li>
</ul>



<h5 class="wp-block-heading"><span id="toc24">具体例:</span></h5>



<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="Set-Cookie: session_id=abcdef123456; SameSite=Strict" 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">Set-Cookie:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">session_id=abcdef123456; SameSite=Strict</span></span></code></pre></div>



<p>この設定により、異なるサイト（サブドメインを含む）からのリクエスト時に Cookie が送信されなくなる。</p>



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



<h3 class="wp-block-heading"><span id="toc25">設問 4：以下の Set-Cookie 設定での効果</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">HTTP</span><span role="button" tabindex="0" data-code="Set-Cookie: session_id=abcdef123456; Path=/; HttpOnly; Secure; SameSite=Strict" 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">Set-Cookie:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">session_id=abcdef123456; Path=/; HttpOnly; Secure; SameSite=Strict</span></span></code></pre></div>



<p>この設定による効果を説明する。</p>



<h4 class="wp-block-heading"><span id="toc26">解答と解説:</span></h4>



<ol class="wp-block-list">
<li><strong><code>HttpOnly</code> の効果（XSS対策）</strong>
<ul class="wp-block-list">
<li><span class="red">JavaScript</span> (<code>document.cookie</code>) から Cookie を読み取れないため、XSS攻撃によるセッションIDの漏洩を防ぐ。</li>
</ul>
</li>



<li><strong><code>Secure</code> の効果（HTTPS強制）</strong>
<ul class="wp-block-list">
<li><span class="red">HTTPS</span>通信でのみ Cookie が送信されるため、HTTP経由の盗聴を防ぐ。</li>
</ul>
</li>



<li><strong><code>SameSite=Strict</code> の効果（クロスサイトリクエスト対策）</strong>
<ul class="wp-block-list">
<li>他のサイトからのリクエストでは Cookie を送らなくなるため、クロスサイトリクエストフォージェリ（CSRF）攻撃を防ぎやすくなる。</li>



<li>ただし、他のサイトからのリンクをクリックした際にセッションが適用されない可能性がある（厳格すぎる場合がある）。</li>
</ul>
</li>
</ol>



<h5 class="wp-block-heading"><span id="toc27">まとめ：この設定の効果</span></h5>



<p>✅ <strong>XSSによるセッションID漏洩を防ぐ</strong>（<code>HttpOnly</code>）<br>✅ <strong>HTTPS以外でのセッションID漏洩を防ぐ</strong>（<code>Secure</code>）<br>✅ <strong>CSRFや不要なサブドメイン間Cookieの共有を防ぐ</strong>（<code>SameSite=Strict</code>）</p>



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



<h3 class="wp-block-heading"><span id="toc28">補足（より実践的な設定）</span></h3>



<p>場合によっては <code>SameSite=Lax</code> のほうが利便性が高いこともある。</p>



<ul class="wp-block-list">
<li><code><span class="red"><span class="bold-red">S</span></span><span class="bold-red">ameSite=Strict</span></code> は、他のサイトからのリンクをクリックした場合でも Cookie を送信しないため、ログインが必要なサイトでは使いづらい。</li>



<li><code><span class="bold-red">SameSite=Lax</span></code> ならば、<span class="red">同じブラウザタブ内</span>での遷移は許容されるため、利便性を維持できる。</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">HTTP</span><span role="button" tabindex="0" data-code="Set-Cookie: session_id=abcdef123456; Path=/; HttpOnly; Secure; SameSite=Lax" 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">Set-Cookie:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">session_id=abcdef123456; Path=/; HttpOnly; Secure; SameSite=Lax</span></span></code></pre></div>



<p>この設定なら、<br>✅ <strong>XSS・盗聴を防ぎながら、最低限のクロスサイト対策を確保できる。</strong></p>



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



<h2 class="wp-block-heading"><span id="toc29">総括</span></h2>



<p><code>Set-Cookie</code> の適切な設定は、セキュリティを向上させるだけでなく、利便性とのバランスを取ることが重要！試験対策としては、以下の3つを押さえておけば安心：</p>



<ul class="wp-block-list">
<li><code>HttpOnly</code> → <strong>XSS対策</strong></li>



<li><code>Secure</code> → <strong>HTTPS強制</strong></li>



<li><code>SameSite</code> → <strong>CSRF・不要なCookie共有対策（LaxかStrictを選択）</strong></li>
</ul>



<p>実際のシステムでは、要件に応じて <code>SameSite</code> の設定を慎重に選ぼう！</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="勇気100% - 忍たま乱太郎（フル）" width="1256" height="707" src="https://www.youtube.com/embed/2I5d4Edcrzg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"><strong>勇気100% &#8211; 忍たま乱太郎 cover by high_note Music Lounge</strong></figcaption></figure>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SPFを９秒で理解＆ネスペ午後の練習問題あり</title>
		<link>https://ascend-beyond.com/study/6547/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sat, 01 Feb 2025 09:00:09 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6547</guid>

					<description><![CDATA[目次 はじめに設問1設問2（SPFレコードの解析）設問11. SPFの認証プロセスにおいて、DNSに登録されるレコードの種類を答えよ。2. SPFレコードに指定される「include」の役割を説明せよ。3. SPFレコー [&#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-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a><ol><li><a href="#toc2" tabindex="0">設問1</a></li><li><a href="#toc3" tabindex="0">設問2（SPFレコードの解析）</a></li></ol></li><li><a href="#toc4" tabindex="0">設問1</a><ol><li><a href="#toc5" tabindex="0">1. SPFの認証プロセスにおいて、DNSに登録されるレコードの種類を答えよ。</a></li><li><a href="#toc6" tabindex="0">2. SPFレコードに指定される「include」の役割を説明せよ。</a></li><li><a href="#toc7" tabindex="0">3. SPFレコードの評価結果（Pass, Fail, SoftFail, Neutral など）の違いを説明せよ。</a></li></ol></li><li><a href="#toc8" tabindex="0">設問2（SPFレコードの解析）</a><ol><li><a href="#toc9" tabindex="0">1. このSPFレコードが意味する内容を日本語で説明せよ。</a></li><li><a href="#toc10" tabindex="0">2. -all の意味を説明し、~all や ?all との違いを述べよ。</a></li><li><a href="#toc11" tabindex="0">3. 送信元IPアドレスが 203.0.113.20 であるメールが送信された場合、このSPFレコードに基づく認証結果はどうなるか。理由も含めて説明せよ。</a></li></ol></li><li><a href="#toc12" tabindex="0">設問3（SPFと他のメールセキュリティ技術との関係）</a><ol><li><a href="#toc13" tabindex="0">1. SPFとDKIMの違いを説明せよ。</a></li><li><a href="#toc14" tabindex="0">2. DMARCがSPFやDKIMとどのように連携して動作するかを説明せよ。</a></li><li><a href="#toc15" tabindex="0">3. SPFの仕組みにおける「フォワードメール」の課題を説明し、それを解決するための方法を1つ挙げよ。</a></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><strong><span class="fz-20px"><span style="text-decoration: underline;">【９秒チャレンジ】<br></span></span></strong><span class="fz-18px"><span class="bold-red">SPF</span>は、送信に使われた<span class="red">メールサーバーの正当性</span>を確かめる仕組み。よく誤解されるが、「送信者本人の正当性」ではなく、あくまでも「送信<span class="red">メールサーバー</span>の正当性」を検証するもの。</span></p>



<p><span class="fz-18px">仕組みは以下の通り：</span></p>



<ol class="wp-block-list">
<li>受信サーバーは、SMTPの <span class="red">MAIL FROM（エンベロープFrom）</span>フィールドのドメイン を確認する。</li>



<li>そのドメインの <span class="red">DNSサーバー</span> に問い合わせ、SPFレコード（<span class="bold-red">TXTレコード</span>）を取得する。</li>



<li>SPFレコードには、そのドメインが許可する 送信元メールサーバーのIPアドレス が記載されている。</li>



<li>受信サーバーは、実際に送られてきたメールの 送信元IPアドレス が、そのリスト内にあるかをチェック。</li>



<li>一致していれば「正当なメールサーバーからの送信」と判定し、不一致なら「なりすましの可能性あり」と判断する。</li>
</ol>



<p>👉 <strong>SPF = 送信メールサーバーの正当性をDNSで確認する仕組み！</strong></p>



<p><span class="fz-18px">更に詳しく知りたい場合↓</span></p>



<p><span class="fz-18px">では、練習問題を通して実感していきましょう！</span></p>
</div></div>



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"7日間でハッキングをはじめる本 Try撃手法と脆弱性","b":"翔泳社","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/510ERgcb-yL._SL500_.jpg","\/415NKBcnASL._SL500_.jpg","\/41FGljR1GrL._SL500_.jpg","\/41OSOPH3mcL._SL500_.jpg","\/41fKvGaB6CL._SL500_.jpg","\/41pogRF-eGL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4798181579","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4798181579","a_id":4440991,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/7%E6%97%A5%E9%96%93%E3%81%A7%E3%83%8F%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%9C%AC%20Try%E6%92%83%E6%89%8B%E6%B3%95%E3%81%A8%E8%84%86%E5%BC%B1%E6%80%A7\/","a_id":4440988,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2}],"eid":"YXyAs","s":"s"});
</script>
<div id="msmaflink-YXyAs">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->



<h1 class="wp-block-heading"><strong>問題</strong></h1>



<h3 class="wp-block-heading"><span id="toc2">設問1</span></h3>



<p>SPF（Sender Policy Framework）は電子メールの送信ドメイン認証技術の一つであり、不正なメール送信を防ぐために使用される。SPFの基本的な仕組みについて、以下の問いに答えよ。</p>



<ol class="wp-block-list">
<li>SPFの認証プロセスにおいて、DNSに登録されるレコードの種類を答えよ。</li>



<li>SPFレコードに指定される「<code>include</code>」の役割を説明せよ。</li>



<li>SPFレコードの評価結果（<code>Pass</code>, <code>Fail</code>, <code>SoftFail</code>, <code>Neutral</code> など）の違いを説明せよ。</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc3">設問2（SPFレコードの解析）</span></h3>



<p>ある企業のメールサーバーの管理者が、以下のSPFレコードを設定した。</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="v=spf1 ip4:203.0.113.10 include:spf.example.net -all" 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">v=spf1 ip4:203.0.113.10 include:spf.example.net -all</span></span></code></pre></div>



<p>このSPFレコードについて、以下の問いに答えよ。</p>



<ol class="wp-block-list">
<li>このSPFレコードが意味する内容を日本語で説明せよ。</li>



<li><code>-all</code> の意味を説明し、<code>~all</code> や <code>?all</code> との違いを述べよ。</li>



<li>送信元IPアドレスが <code>203.0.113.20</code> であるメールが送信された場合、このSPFレコードに基づく認証結果はどうなるか。理由も含めて説明せよ。</li>
</ol>



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



<p><strong>設問3（SPFと他のメールセキュリティ技術との関係）</strong><br>SPFは送信ドメインのなりすましを防ぐ技術の一つであるが、単独では完全なセキュリティ対策とはならない。そのため、DKIM（DomainKeys Identified Mail）やDMARC（Domain-based Message Authentication, Reporting, and Conformance）と組み合わせて運用されることが多い。</p>



<ol class="wp-block-list">
<li>SPFとDKIMの違いを説明せよ。</li>



<li>DMARCがSPFやDKIMとどのように連携して動作するかを説明せよ。</li>



<li>SPFの仕組みにおける「フォワードメール」の課題を説明し、それを解決するための方法を1つ挙げよ。</li>
</ol>



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



<p>このような問題がネットワークスペシャリスト試験の午後問題として出題される可能性があります。さらに詳しく解説が必要な部分があれば教えてください。</p>



<h1 class="wp-block-heading">解説</h1>



<h2 class="wp-block-heading"><span id="toc4">設問1</span></h2>



<h3 class="wp-block-heading"><span id="toc5">1. SPFの認証プロセスにおいて、DNSに登録されるレコードの種類を答えよ。</span></h3>



<p><strong>解答：</strong><br>SPFレコードは <strong><span class="bold-red">TXTレコード</span></strong> としてDNSに登録される。</p>



<p><strong>解説：</strong><br>かつてSPF専用の <code>SPF</code> レコードが提案されたが、現在は <code>TXT</code> レコードを使用するのが一般的である。<span class="red">DNSに <code>TXT</code> レコード</span>としてSPFポリシーを記述し、受信メールサーバーが送信元のIPアドレスと照合して認証を行う。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p>前提として、SPFレコードはその<span class="red">メールドメインを管理</span>する<span class="red">送信側のDNSサーバ</span>に登録する。これを念頭に置いて、軽くSPFの流れを頭に入れましょう。</p>



<ol class="wp-block-list">
<li>送信元IP（<code>203.0.113.20</code>）がSPFレコードに含まれていなければ、SPF認証 <strong>Fail（失敗）</strong> となる。</li>



<li><code>user@example.com</code> からメールを送信。</li>



<li>受信サーバーが送信元IPアドレスを取得（例：<code>203.0.113.20</code>）。</li>



<li>受信サーバーは <strong>「example.com のDNSサーバー」</strong> に問い合わせ、SPFレコードを取得。</li>



<li>取得したSPFレコードと、実際の送信元IPアドレスを照合。</li>
</ol>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc6">2. SPFレコードに指定される「include」の役割を説明せよ。</span></h3>



<p><strong>解答：</strong><br><code>include</code> は、<span class="bold-red">別のドメインのSPFレコード</span>を参照し、そのドメインで許可された送信元IPアドレスも有効とみなすために使用される。</p>



<p><strong>解説：</strong><br>例えば、<code>example.com</code> では、以下の2つのサーバーを使ってメールを送信しているとします。</p>



<ol class="wp-block-list">
<li>自社サーバー（IPアドレス：<code>203.0.113.10</code>）</li>



<li>Google Workspace（Gmail の送信サーバーを利用）</li>
</ol>



<p>この場合、SPFレコードは以下のようになります。</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="v=spf1 ip4:203.0.113.10 include:_spf.google.com -all" 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">v=spf1 ip4:203.0.113.10 include:_spf.google.com -all</span></span></code></pre></div>



<p><strong>この設定の意味</strong></p>



<ol class="wp-block-list">
<li>自社のサーバー（<code>203.0.113.10</code>） からの送信を許可</li>



<li>Google の SPF レコード（<code>_spf.google.com</code>）に記載されたサーバーも許可
<ul class="wp-block-list">
<li><code>_spf.google.com</code> の中には、Gmailの正規の送信サーバーのIPアドレスが含まれている</li>



<li>これを 「そのまま」 参照できるので、管理が楽になる</li>
</ul>
</li>
</ol>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px">つまり、「このメールは、Gmailの送信サーバーを使って送ることもあるから、Gmailの正規サーバーもSPFで許可してね！」 という意味で <code><span class="bold-red">include</span>:_spf.google.com</code> を使う、ということです！<br>こうすることで複数のメールサーバーを使うときも、それぞれのSPF設定を手動で書く代わりに 他のドメインのSPFレコードを簡単に参照できるというわけです。</span></p>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc7">3. SPFレコードの評価結果（Pass, Fail, SoftFail, Neutral など）の違いを説明せよ。</span></h3>



<p><strong>解答：</strong></p>



<ul class="wp-block-list">
<li><strong>Pass（合格）</strong>: 送信元IPアドレスがSPFレコード内で明示的に許可されている。</li>



<li><strong>Fail（失敗）</strong>: 送信元IPアドレスがSPFレコードで許可されていない（<code>-all</code> の指定時）。</li>



<li><strong>SoftFail（弱い失敗）</strong>: 送信元IPアドレスが許可されていないが、厳格な拒否は行わない（<code>~all</code> の指定時）。</li>



<li><strong>Neutral（中立）</strong>: SPFポリシーに適合するかどうかを示さない（<code>?all</code> の指定時）。</li>
</ul>



<p><strong>解説：</strong><br><code>-all</code> を使うと、SPF認証に失敗したメールがブロックされる可能性があるため、最初は <code>~all</code> を使用し、運用を確認してから <code>-all</code> に変更するのが一般的である。</p>



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



<h2 class="wp-block-heading"><span id="toc8">設問2（SPFレコードの解析）</span></h2>



<h3 class="wp-block-heading"><span id="toc9">1. このSPFレコードが意味する内容を日本語で説明せよ。</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="v=spf1 ip4:203.0.113.10 include:spf.example.net -all" 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">v=spf1 ip4:203.0.113.10 include:spf.example.net -all</span></span></code></pre></div>



<p><strong>解答：</strong><br>このSPFレコードは、次のルールを指定している。</p>



<ul class="wp-block-list">
<li><code>ip4:203.0.113.10</code> → 送信元IPアドレスが <code>203.0.113.10</code> の場合、メール送信を許可</li>



<li><code>include:spf.example.net</code> → <code>spf.example.net</code> のSPFポリシーを適用</li>



<li><code>-all</code> → 許可されていない送信元IPアドレスからのメールは拒否</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc10">2. -all の意味を説明し、~all や ?all との違いを述べよ。</span></h3>



<p><strong>解答：</strong></p>



<ul class="wp-block-list">
<li><code>-all</code>（Fail） → SPF認証に失敗した場合、<span class="red">メールを拒否</span>または破棄する。</li>



<li><code>~all</code>（SoftFail） → SPF認証に失敗した場合、メールは<span class="red">受け取るが</span>、<span class="red">スパムとして</span>扱われる可能性がある。</li>



<li><code>?all</code>（Neutral） → SPF<span class="red">ポリシーを適用しない</span>（どの送信元でも許可・拒否の判定を行わない）。</li>
</ul>



<p><strong>解説：</strong><br>厳格なポリシーを採用する場合 <code>-all</code> を使用するが、導入直後は <code>~all</code> にして影響を観察することが推奨される。</p>



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



<h3 class="wp-block-heading"><span id="toc11">3. 送信元IPアドレスが 203.0.113.20 であるメールが送信された場合、このSPFレコードに基づく認証結果はどうなるか。理由も含めて説明せよ。</span></h3>



<p><strong>解答：</strong><br>SPF認証は <strong>Fail（失敗）</strong> となる。</p>



<p><strong>理由：</strong></p>



<ul class="wp-block-list">
<li><code>ip4:203.0.113.10</code> にはマッチしない。</li>



<li><code>spf.example.net</code> のSPFポリシーを参照するが、<code>203.0.113.20</code> が含まれていなければ適合しない。</li>



<li><code>-all</code> により、許可されていない送信元は拒否される。</li>
</ul>



<p><strong>解説：</strong><br>この設定では、明示的に許可されたIPアドレス以外からのメール送信は許可されないため、メールがブロックされる可能性が高い。</p>



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



<h2 class="wp-block-heading"><span id="toc12">設問3（SPFと他のメールセキュリティ技術との関係）</span></h2>



<h3 class="wp-block-heading"><span id="toc13">1. SPFとDKIMの違いを説明せよ。</span></h3>



<p><strong>解答：</strong></p>



<ul class="wp-block-list">
<li><strong>SPF</strong> → 送信元<span class="red">IPアドレス</span>の正当性を検証する。</li>



<li><strong>DKIM</strong> → <span class="red">電子署名</span>を用いてメールの改ざんを防ぐ。</li>
</ul>



<p><strong>解説：</strong><br>SPFはIPアドレスベースで認証を行うため、メール転送時に破綻する可能性がある。一方、DKIMはメールのヘッダーや本文に署名を付けることで、改ざんを防止できる。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">SPF</span>は 「送信者のメールアドレスが本物かどうか」<strong> </strong>を直接チェックするのではなく、あくまでも<span class="red">送信メールサーバの正当性</span>を確認する仕組みです。</span></p>



<p><span class="fz-18px">例えば、攻撃者が <code>user@example.com</code> を詐称してメールを送ったとしても、正規の <code>example.com</code> のメールサーバーを経由すれば、SPF認証は PASS（成功） してしまいます。</span></p>



<p><span class="fz-18px">つまり、SPFはメールサーバーの正当性は保証できるが、送信者本人が本当に正しいかどうかまでは保証できない ということです。</span></p>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc14">2. DMARCがSPFやDKIMとどのように連携して動作するかを説明せよ。</span></h3>



<p><strong>解答：</strong><br>DMARCは、SPFおよびDKIMの認証結果を基に、受信メールの処理ポリシー（許可・隔離・拒否）を決定する。</p>



<p><strong>解説：</strong><br>DMARCポリシーは <code>p=none</code>（監視のみ）、<code>p=quarantine</code>（隔離）、<code>p=reject</code>（拒否）などを指定できる。さらに、認証失敗時のレポートを受け取ることが可能である。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p>先ほども述べたように、SPFだけでは脆弱です。そこで、<span class="bold-red">DKIM（電子署名）</span>や<span class="bold-red">DMARC（総合ポリシー）</span>を組み合わせて使うことで、送信者のなりすましをより強力に防ぐことができます。</p>



<ul class="wp-block-list">
<li><strong>SPF</strong> → メールを送った <strong>サーバー</strong> の正当性をチェック</li>



<li><strong>DKIM</strong> → メールに付与された <strong>電子署名</strong> をチェック（改ざん防止）</li>



<li><strong>DMARC</strong> → SPFとDKIMを組み合わせて、なりすまし対策のポリシーを設定</li>
</ul>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc15">3. SPFの仕組みにおける「フォワードメール」の課題を説明し、それを解決するための方法を1つ挙げよ。</span></h3>



<p><span class="fz-20px"><strong>解答：</strong><br></span><strong>課題：</strong><br>フォワードメールでは、元の送信者のIPアドレスが維持されないため、転送先の受信サーバーがSPF認証を失敗と判定する可能性がある。</p>



<p><strong>解決策：</strong><br>SPFの代替策として、<strong>DKIM</strong> を利用することで、電子署名によりメールの正当性を保証する。</p>



<p><strong>解説：</strong><br>SPFは転送メールと相性が悪いため、DMARCとDKIMを併用することで認証成功率を高めることができる。</p>



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



<h3 class="wp-block-heading"><span id="toc16">まとめ</span></h3>



<p>SPFはIPアドレスを基にした送信者認証を行うが、単独ではフォワードメールの問題などがあるため、DKIMやDMARCと組み合わせることが重要である。</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Number_i - GOD_i (Official Music Video)" width="1256" height="707" src="https://www.youtube.com/embed/a5RAx7qNaAE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"><strong>Number_i &#8211; GOD_i (Official Music Video)<br></strong><a href="https://www.youtube.com/@Number_i_official"></a><br></figcaption></figure>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ECN(明示的輻輳制御)を９秒で理解＆ネスペ午後問対策</title>
		<link>https://ascend-beyond.com/study/6468/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 19 Jan 2025 09:14:12 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[投資]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6468</guid>

					<description><![CDATA[目次 はじめに問題回答1. ECNがどのように輻輳を検出し、通知するのかを説明しなさい。2. ECN通知を受けた送信元と宛先は、どのように通信を調整するのかを説明しなさい。3. ECNが輻輳制御においてTCPの通常の輻輳 [&#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-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">はじめに</a></li><li><a href="#toc2" tabindex="0">問題</a></li><li><a href="#toc3" tabindex="0">回答</a><ol><ol><li><a href="#toc4" tabindex="0">1. ECNがどのように輻輳を検出し、通知するのかを説明しなさい。</a></li><li><a href="#toc5" tabindex="0">2. ECN通知を受けた送信元と宛先は、どのように通信を調整するのかを説明しなさい。</a></li><li><a href="#toc6" tabindex="0">3. ECNが輻輳制御においてTCPの通常の輻輳制御とどのように異なる点があるかを説明しなさい。</a></li></ol></li><li><a href="#toc7" tabindex="0">解説</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><strong><span class="fz-20px"><span style="text-decoration: underline;">【９秒チャレンジ】<br></span></span></strong><span class="fz-18px"><span class="bold-red">ECN</span>は、<span class="red">輻輳</span>を<span class="red">明示的</span>に伝える仕組みです。というのも</span><span class="fz-18px">、</span><span class="fz-18px"><span class="bold-red">TCP</span>では、輻輳時にルータがパケットを<span class="red">破棄</span>し、送信元が<span class="red">タイムアウト</span>や<span class="red">ACK未達</span>を通じて輻輳を<span class="red">間接的</span>に検知します。そのため再送が必要になり、効率が低下します。一方、ECNでは、ルータがCEフラグを付けて宛先に届け、宛先がECEビットで送信元に通知します。これにより、パケットを破棄せずに輻輳を検知し、輻輳ウィンドウを縮小することで効率的な通信を実現します。</span></p>



<p></p>



<p><span class="fz-18px">では、練習問題を通して実感していきましょう！</span></p>
</div></div>



<h2 class="wp-block-heading"><span id="toc2">問題</span></h2>



<p>次の状況において、ECN（Explicit Congestion Notification）を使用した輻輳制御の動作について説明しなさい。</p>



<p><strong>状況</strong><br>あるネットワークにおいて、トラフィックが増加し、ルータが輻輳を検出しました。ECNをサポートするルータがネットワーク内に配置されており、ECNが有効になっています。ネットワークを通じてデータが送信され、送信元と宛先の両方がECN対応のTCP/IPノードであると仮定します。</p>



<p>このシナリオにおいて、次の質問に答えてください。</p>



<ol class="wp-block-list">
<li><strong>ECNがどのように輻輳を検出し、通知するのかを説明しなさい。</strong></li>



<li><strong>ECN通知を受けた送信元と宛先は、どのように通信を調整するのかを説明しなさい。</strong></li>



<li><strong>ECNが輻輳制御においてTCPの通常の輻輳制御とどのように異なる点があるかを説明しなさい。</strong></li>
</ol>



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



<h2 class="wp-block-heading"><span id="toc3">回答</span></h2>



<h4 class="wp-block-heading"><span id="toc4">1. ECNがどのように輻輳を検出し、通知するのかを説明しなさい。</span></h4>



<p><strong>回答:</strong><br>ECN（Explicit Congestion Notification）は、ネットワーク内の輻輳を検出し、パケットのヘッダーを利用して送信元と宛先に輻輳の発生を通知する仕組みです。具体的には、以下の流れで輻輳を検出し、通知します。</p>



<ul class="wp-block-list">
<li><strong>輻輳検出:</strong><br>ルータが輻輳を検出する方法として、通常の輻輳制御（例：バッファが満杯になった場合）に加え、ECNをサポートしているルータは、パケットのヘッダーにある「ECNフィールド」を利用します。ネットワークが輻輳状態になると、ルータは<span class="red">パケットを破棄せず</span>、ECNビット（2ビット）を設定します。このビットが設定されたパケットは、送信元に対して輻輳が発生していることを示す通知となります。</li>



<li><strong>通知:</strong><br>ECNをサポートしている場合、ルータは「ECNフィールド」の「Congestion Experienced (<span class="bold-red">CE</span>)」ビットをセットすることで、パケットが輻輳していることを通知します。このビットは、パケットが宛先に届いた際に送信元に通知されるため、送信元はこれを受け取って輻輳が発生したことを認識します。</li>
</ul>



<h4 class="wp-block-heading"><span id="toc5">2. ECN通知を受けた送信元と宛先は、どのように通信を調整するのかを説明しなさい。</span></h4>



<p><strong>回答:</strong><br>ECN通知を受け取った送信元と宛先の通信は、以下のように調整されます。</p>



<ul class="wp-block-list">
<li><strong>宛先（受信側）:</strong><br>宛先ノードは、受信したパケットのECNフィールドを確認します。もしECNの「<span class="bold-red">CE</span>（Congestion Experienced）」ビットが設定されていれば、受信側はそのパケットが輻輳状態であることを認識します。しかし、ECN通知は主に送信側に伝達されるため、宛先ノードは通常、これを特に処理することはなく、通常通りパケットを受け取ります。</li>



<li><strong>送信元（送信側）:</strong><br>送信側は、宛先から返送されるACKパケットを通じて、ECNフィールドに設定されたCEビットを確認します。このCEビットを受け取ることで、送信元はネットワーク内で輻輳が発生していることを認識します。そのため、送信元は輻輳回避のために通信を調整します。具体的には、送信元は送信<span class="red">ウィンドウサイズを縮小</span>し、送信レートを減少させることで、輻輳を軽減しようとします。送信元は、ECN通知を受け取った場合、通常のTCP輻輳制御（例えば、輻輳ウィンドウの減少）と同様に、レート制御を行いますが、<span class="red">パケット破棄が発生しない分</span>、<span class="red">再送の必要が減り</span>、より効率的な輻輳制御が可能となります。</li>
</ul>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">TCP</span>では輻輳が発生するとパケットを<span class="red">破棄</span>します（破棄したことは送信元に通知しない）。これによってトラフィックの平準化を図ります。しかし、これだと、再送が必要になります。<br>逆に、<span class="bold-red">ECN</span>では輻輳が発生しても、一応、時間がかかりながらも最後まで届けます。そして、宛先側が輻輳の発生を明示的に送信元に伝えます。これにより、送信元は輻輳の発生を知り、送信データ量を抑えます。この方法では、最後まで一応データが渡っているので、再送が不要になります。</span></p>
</div></div>



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"7日間でハッキングをはじめる本 Try撃手法と脆弱性","b":"翔泳社","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/510ERgcb-yL._SL500_.jpg","\/415NKBcnASL._SL500_.jpg","\/41FGljR1GrL._SL500_.jpg","\/41OSOPH3mcL._SL500_.jpg","\/41fKvGaB6CL._SL500_.jpg","\/41pogRF-eGL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4798181579","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4798181579","a_id":4440991,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/7%E6%97%A5%E9%96%93%E3%81%A7%E3%83%8F%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%9C%AC%20Try%E6%92%83%E6%89%8B%E6%B3%95%E3%81%A8%E8%84%86%E5%BC%B1%E6%80%A7\/","a_id":4440988,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2}],"eid":"YXyAs","s":"s"});
</script>
<div id="msmaflink-YXyAs">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->



<h4 class="wp-block-heading"><span id="toc6">3. ECNが輻輳制御においてTCPの通常の輻輳制御とどのように異なる点があるかを説明しなさい。</span></h4>



<p><strong>回答:</strong><br>ECNとTCPの通常の輻輳制御には以下のような違いがあります。</p>



<ul class="wp-block-list">
<li><strong>通常の輻輳制御（パケット破棄を利用した方法）:</strong><br>通常の<span class="bold-red">TCP</span>輻輳制御では、ネットワーク内で輻輳が発生すると、ルータはパケットを<span class="red">破棄</span>します。このパケット破棄が、送信元に対して輻輳が発生していることを通知する方法となります。送信元は、受信側からの<span class="red">ACKが遅れる</span>ことや、パケット再送が発生することで輻輳を認識します。通常、輻輳が発生した場合、送信元は輻輳ウィンドウを減少させ、再送が行われます。<span class="red">再送はネットワークの負担を増加</span>させ、効率が悪くなる可能性があります。</li>



<li><strong>ECNを使用した輻輳制御:</strong><br><span class="bold-red">ECN</span>では、パケット破棄を避け、ルータが輻輳を検出した際に、パケットヘッダーのECNビットをセットして<span class="red">輻輳を通知</span>します。この方法では、パケットの再送が発生しないため、ネットワーク全体の効率が向上します。送信元はECN通知を受け取ることで、輻輳を早期に認識し、再送を行うことなく送信レートを調整できます。これにより、通常の輻輳制御と比較して、再送の負担が減り、よりスムーズに輻輳を回避できるという利点があります。</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc7">解説</span></h3>



<p><span class="bold-red">ECN</span>は、ネットワークにおける<span class="red">輻輳</span>をより<span class="red">効率的</span>に<span class="red">制御</span>するための仕組みです。通常、輻輳制御の方法としては、パケットの破棄を基にした手法が一般的ですが、ECNを使用することで、パケットを破棄せずに輻輳を通知することができ、再送による無駄なトラフィックを減らすことができます。この仕組みは、ネットワークの帯域を効率的に使いたい場合や、再送を減らしてパフォーマンスを向上させたい場合に非常に有効です。</p>



<p>ECNはTCP/IPの輻輳制御を補完する役割を果たし、特に混雑が頻繁に発生する大規模なネットワークでその効果を発揮します。ECNに対応するルータやノードが増えれば、ネットワーク全体のパフォーマンス向上が期待できます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-r sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><strong><span class="fz-20px"><span style="text-decoration: underline;">【１分チャレンジ】<br></span></span></strong><span class="fz-18px"><span class="bold-red">ECN</span>というのは輻輳を明示的に伝えてくれるものです。これはなんで明示的を強調しているかというと TCPでは輻輳を明示的に伝えてくれないからです。TCPの方法としては<span class="fz-18px">輻輳</span>が発生するとルーターがパケットを<span class="red">破棄</span>します。このパケットを破棄したことは明示的には伝えられません。送信元は<span class="red">タイムアウト</span>の発生とか<span class="red">ACKが返ってこない</span>とか、そういう状況を自分で判断することによって輻輳が発生しているんだなというのを理解します。</span><br><span class="fz-18px">しかし、これだとパケットを破棄しているので再送の必要があります。それに比べてECNだと<span class="fz-18px">輻輳</span>が発生しても 一応<span class="red">最後まで届くことには届きます</span>。それで宛先が<span class="fz-18px">輻輳</span>が発生しているよというのを通知します。通知することによって<span class="fz-18px">輻輳</span>が発生しているんだということで<span class="red"> <span class="fz-18px">輻輳</span>ウィンドウを縮小</span>して少しずつ送るようになります。これはパケットが破棄されていないので再送は発生しません。なのでより効率的な通信ができるよねというのをECNでは実現しています。</span></p>
</div></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>QoS（EFクラス,DiffServ,DSCPフィールド..)を９秒で理解＆ネスペ午後問対策</title>
		<link>https://ascend-beyond.com/study/6414/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sat, 18 Jan 2025 13:36:15 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6414</guid>

					<description><![CDATA[目次 問題文設問設問1設問2設問3解答設問1解答:解説:設問2解答:解説:設問3解答1:解説:解答2:解説: 問題文 ある企業では、拠点間の通信を最適化するために、QoS（Quality of Service）の導入を検 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/ab83decce6d239fa7fe15f225bbe4728-150x150.jpg" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">QoS</span>というのは ネットワークの <span class="red">トラフィックを制御</span>する方法です。代表的な手法として<span class="red"><span class="bold-red">DiffServ</span></span>があります。</span><br><span class="fz-18px"><span class="fz-18px"><span class="red"><span class="bold-red">DiffServ</span></span></span>は<span class="red">トラフィックを分類</span>することで <span class="red">優先度</span>を設け、<span class="fz-18px">緊急を伴う通信は逃さないようにするという方法</span>です。トラフィックの優先度は <span class="red">IPパケット</span>のヘッダである<span class="red">DSCP</span>フィールドに格納します。</span><br><span class="fz-18px">これらの優先度を使うことによって、パケットの送信順序が整理され、より適切な通信が実現できるわけです。</span></p>
</div></div>




  <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">問題文</a><ol><li><a href="#toc2" tabindex="0">設問</a><ol><li><a href="#toc3" tabindex="0">設問1</a></li><li><a href="#toc4" tabindex="0">設問2</a></li><li><a href="#toc5" tabindex="0">設問3</a></li></ol></li></ol></li><li><a href="#toc6" tabindex="0">解答</a><ol><li><a href="#toc7" tabindex="0">設問1</a><ol><ol><li><a href="#toc8" tabindex="0">解答:</a></li><li><a href="#toc9" tabindex="0">解説:</a></li></ol></li></ol></li><li><a href="#toc10" tabindex="0">設問2</a><ol><ol><li><a href="#toc11" tabindex="0">解答:</a></li><li><a href="#toc12" tabindex="0">解説:</a></li></ol></li></ol></li><li><a href="#toc13" tabindex="0">設問3</a><ol><ol><li><a href="#toc14" tabindex="0">解答1:</a><ol><li><a href="#toc15" tabindex="0">解説:</a></li></ol></li><li><a href="#toc16" tabindex="0">解答2:</a></li><li><a href="#toc17" tabindex="0">解説:</a></li></ol></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">問題文</span></h2>



<p>ある企業では、拠点間の通信を最適化するために、QoS（Quality of Service）の導入を検討している。この企業は以下のような要件を抱えている。</p>



<ol class="wp-block-list">
<li>拠点間での音声通話（VoIP）は、リアルタイム性が重視され、遅延（Latency）を50ms以内に抑えたい。</li>



<li>動画会議のデータは、安定した帯域幅を確保する必要があり、パケット損失率（Packet Loss）が1%以内であることを要求されている。</li>



<li>社内ファイル転送は大量のデータを伴うが、遅延が発生しても問題ない。</li>
</ol>



<p>ネットワーク管理者は、これらの要件を満たすために以下の設計案を立てた。<br>また、各通信には異なる優先順位を設定し、DiffServ（Differentiated Services）を利用して、トラフィックを分類・制御することを考えている。</p>



<p><strong>【設計案】</strong></p>



<ol class="wp-block-list">
<li>音声通話（VoIP）: Expedited Forwarding（EF）クラスを使用し、優先的に処理する。</li>



<li>動画会議: Assured Forwarding（AF）クラスを利用し、帯域幅を確保しつつ、他の通信と共存させる。</li>



<li>ファイル転送: Best Effort（BE）クラスを利用し、空いている帯域を活用する。</li>
</ol>



<p>この設計案に基づき、QoSを実装するためのポリシー設定を検討したところ、次の課題が発生した。</p>



<p><strong>【課題】</strong></p>



<ol class="wp-block-list">
<li>帯域幅が限られている場合、VoIPと動画会議の通信が競合する可能性がある。</li>



<li>ファイル転送が増加した場合、全体の遅延が増大し、リアルタイム性を必要とする通信に影響が出る可能性がある。</li>
</ol>



<p>これらの課題を踏まえ、以下の設問に答えよ。</p>



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



<h3 class="wp-block-heading"><span id="toc2">設問</span></h3>



<h4 class="wp-block-heading"><span id="toc3">設問1</span></h4>



<p>QoSにおけるDiffServの仕組みについて、以下の用語を使って50字以内で説明せよ。<br><strong>「トラフィッククラス」「優先度」</strong></p>



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



<h4 class="wp-block-heading"><span id="toc4">設問2</span></h4>



<p>上記の設計案に基づき、VoIPと動画会議の競合を避けるための具体的な対策を50字以内で説明せよ。</p>



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



<h4 class="wp-block-heading"><span id="toc5">設問3</span></h4>



<p>ファイル転送のトラフィックが急増した場合に備え、全体のQoSを維持するために設定すべき具体的な制御方法を2つ挙げ、それぞれ50字以内で説明せよ。</p>



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



<h2 class="wp-block-heading"><span id="toc6">解答</span></h2>



<h3 class="wp-block-heading"><span id="toc7">設問1</span></h3>



<p>QoSにおけるDiffServの仕組みについて、以下の用語を使って50字以内で説明せよ。<br>「トラフィッククラス」「優先度」</p>



<h5 class="wp-block-heading"><span id="toc8">解答:</span></h5>



<p><span class="bold-red">DiffServ</span>は<span class="red">パケット</span>に<span class="red">優先度</span>を示すパケットマークを付け、トラフィッククラスごとに異なる優先度で処理する仕組み。</p>



<h5 class="wp-block-heading"><span id="toc9">解説:</span></h5>



<p><span class="bold-red">DiffServ</span>（Differentiated Services）は、IPパケットのヘッダに「<span class="red">DSCP</span>（Differentiated Services Code Point）」というフィールドを使用して、<span class="red">トラフィックを分類</span>します。これにより、ネットワークデバイスはパケットマークを基にトラフィッククラスを判別し、優先度に応じて帯域幅や遅延を制御します。この仕組みはシンプルでスケーラブルなQoSの手法として広く使われています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/ab83decce6d239fa7fe15f225bbe4728-150x150.jpg" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">DSCPフィールド</span>とはIPヘッダの「Type of Service (ToS)」フィールド内に存在し、<span class="red">6ビット</span>で表現されます。これにより、最大64種類（2^6 = 64）のクラスを指定できます。その中の<span class="bold-red">EF</span>クラスは<span class="red">46</span>、<span class="bold-red">BF</span>（best effort)は<span class="red">0</span>、という特定の値を持ちますが、<span class="bold-red">AF</span>クラスは更に細分化されA1～A４（<span class="red">10~38</span>)のクラスに分かれています。</span></p>
</div></div>



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"7日間でハッキングをはじめる本 Try撃手法と脆弱性","b":"翔泳社","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/510ERgcb-yL._SL500_.jpg","\/415NKBcnASL._SL500_.jpg","\/41FGljR1GrL._SL500_.jpg","\/41OSOPH3mcL._SL500_.jpg","\/41fKvGaB6CL._SL500_.jpg","\/41pogRF-eGL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4798181579","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4798181579","a_id":4440991,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/7%E6%97%A5%E9%96%93%E3%81%A7%E3%83%8F%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%9C%AC%20Try%E6%92%83%E6%89%8B%E6%B3%95%E3%81%A8%E8%84%86%E5%BC%B1%E6%80%A7\/","a_id":4440988,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2}],"eid":"YXyAs","s":"s"});
</script>
<div id="msmaflink-YXyAs">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th><strong>AFクラス</strong></th><th><strong>ドロップ優先度</strong></th><th><strong>DSCP値</strong></th><th><strong>バイナリ値</strong></th></tr></thead><tbody><tr><td><strong>AF11</strong></td><td>Low</td><td>10</td><td><code>001010</code></td></tr><tr><td><strong>AF12</strong></td><td>Medium</td><td>12</td><td><code>001100</code></td></tr><tr><td><strong>AF13</strong></td><td>High</td><td>14</td><td><code>001110</code></td></tr><tr><td><strong>AF21</strong></td><td>Low</td><td>18</td><td><code>010010</code></td></tr><tr><td><strong>AF22</strong></td><td>Medium</td><td>20</td><td><code>010100</code></td></tr><tr><td><strong>AF23</strong></td><td>High</td><td>22</td><td><code>010110</code></td></tr><tr><td><strong>AF31</strong></td><td>Low</td><td>26</td><td><code>011010</code></td></tr><tr><td><strong>AF32</strong></td><td>Medium</td><td>28</td><td><code>011100</code></td></tr><tr><td><strong>AF33</strong></td><td>High</td><td>30</td><td><code>011110</code></td></tr><tr><td><strong>AF41</strong></td><td>Low</td><td>34</td><td><code>100010</code></td></tr><tr><td><strong>AF42</strong></td><td>Medium</td><td>36</td><td><code>100100</code></td></tr><tr><td><strong>AF43</strong></td><td>High</td><td>38</td><td><code>100110</code></td></tr></tbody></table><figcaption class="wp-element-caption">AFクラスの詳細な振り分け</figcaption></figure>



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



<h3 class="wp-block-heading"><span id="toc10">設問2</span></h3>



<p><strong>設計案に基づき、VoIPと動画会議の競合を避けるための具体的な対策を50字以内で説明せよ。</strong></p>



<h5 class="wp-block-heading"><span id="toc11">解答:</span></h5>



<p>EFクラスの帯域幅を固定で確保し、AFクラスの帯域幅を動的に調整する。</p>



<h5 class="wp-block-heading"><span id="toc12">解説:</span></h5>



<p>VoIPは遅延に非常に敏感なため、<span class="red">EF</span>（Expedited Forwarding）クラスで一定の帯域を保証する必要があります。一方、動画会議は比較的柔軟に帯域を調整できるため、AF（Assured Forwarding）クラスで動的制御を行うことで競合を回避します。たとえば、EFに50ms以内の処理を優先させ、AFに空き帯域を割り当てることで実現可能です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/ab83decce6d239fa7fe15f225bbe4728-150x150.jpg" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">EF</span>クラスや<span class="bold-red">AF</span>クラスは、IPパケットの<span class="red">DSCPヘッダ</span>内に格納する<span class="red">値</span>として定義されます。<br><span class="bold-red">EF</span>クラスは、<span class="red">リアルタイム性</span>が要求される通信を最優先で処理するために設けられたトラフィッククラスです。<br><span class="bold-red">AF</span>クラスはAFクラスは、重要度はあるがEFほど厳密なリアルタイム性を必要としない通信を制御するためのトラフィッククラスです。</span></p>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc13">設問3</span></h3>



<p>ファイル転送のトラフィックが急増した場合に備え、全体のQoSを維持するために設定すべき具体的な制御方法を2つ挙げ、それぞれ50字以内で説明せよ。</p>



<h5 class="wp-block-heading"><span id="toc14">解答1:</span></h5>



<p>BEクラスにポリシングを設定し、帯域使用量を制限する。</p>



<h6 class="wp-block-heading"><span id="toc15">解説:</span></h6>



<p>ポリシングは特定のトラフィックが設定した帯域を超えた場合に、パケットを破棄または遅延させる方法です。これにより、Best Effort（BE）トラフィックがQoS全体に影響を与えないよう制御できます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/ab83decce6d239fa7fe15f225bbe4728-150x150.jpg" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px"><span class="bold-red">BE</span>(Best Effort)とはQoS制御を行っていない通信のことです。つまり、トラフィックが空いているいるときは問題ないけど、混んできたらもろに影響を被るという通信形態です。</span></p>
</div></div>



<h5 class="wp-block-heading"><span id="toc16">解答2:</span></h5>



<p>優先度の低いトラフィックにシェーピングを適用し、送信速度を調整する。</p>



<h5 class="wp-block-heading"><span id="toc17">解説:</span></h5>



<p>シェーピングは、トラフィックの送信速度を調整し、急激な帯域占有を緩和する方法です。BEトラフィックに適用することで、EFやAFクラスの通信が影響を受けにくくなります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2024/09/ab83decce6d239fa7fe15f225bbe4728-150x150.jpg" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px">シェーピングの他にはポリシングというものもあります。<br><span class="bold-red">シェーピング</span>はトラフィックを一旦<span class="red">バッファ</span>に蓄えて、そこから再度送信することで、送信レートを一定に保つ方法です。<br><span class="bold-red">ポリシング</span>は設定されたトラフィック量を超えたものを<span class="red">破棄</span>することによってトラフィックを制御する方法です。</span></p>
</div></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
