<?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/tag/%e3%83%8d%e3%82%b9%e3%83%9a/feed/" rel="self" type="application/rss+xml" />
	<link>https://ascend-beyond.com</link>
	<description></description>
	<lastBuildDate>Sun, 18 May 2025 11:18:58 +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>🧩 Cisco Packet Tracerで学ぶ！VLAN間通信（Router on a Stick）の構築手順</title>
		<link>https://ascend-beyond.com/study/7548/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Fri, 16 May 2025 12:32:13 +0000</pubDate>
				<category><![CDATA[PacketTracer]]></category>
		<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[投資]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=7548</guid>

					<description><![CDATA[こんにちは！今回はCisco Packet Tracerを使って、VLAN間通信（Router on a Stick）の構成を一緒に作っていきます。ネットワークスペシャリスト試験の勉強にも役立つ内容なので、ぜひ最後まで読 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こんにちは！今回はCisco Packet Tracerを使って、<strong>VLAN間通信</strong>（Router on a Stick）の構成を一緒に作っていきます。<br><strong>ネットワークスペシャリスト試験の勉強にも役立つ内容</strong>なので、ぜひ最後まで読んで実践してみてください！</p>



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




  <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></li><li><a href="#toc2" tabindex="0">🖥️ ネットワーク構成とIPアドレス</a></li><li><a href="#toc3" tabindex="0">🧪 手順1：PCにIPアドレスを設定</a></li><li><a href="#toc4" tabindex="0">🧪 手順2：スイッチでVLANを作成</a></li><li><a href="#toc5" tabindex="0">🧪 手順3：VLANをスイッチポートに割り当てる</a></li><li><a href="#toc6" tabindex="0">✅ 確認コマンド</a></li><li><a href="#toc7" tabindex="0">🧪 手順4：ルーターのサブインタフェース設定</a></li><li><a href="#toc8" tabindex="0">🧪 手順5：スイッチのトランクポート設定</a></li><li><a href="#toc9" tabindex="0">✅ 疎通確認（Pingテスト）</a></li><li><a href="#toc10" tabindex="0">🎉 お疲れさまでした！</a></li><li><a href="#toc11" tabindex="0">💡 補足：Router on a Stickとは？</a></li><li><a href="#toc12" tabindex="0">📌 関連キーワード</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">🎯 今回のゴール</span></h2>



<ul class="wp-block-list">
<li>1台のスイッチに接続した2台のPCを異なるVLANに分ける</li>



<li>ルーターを使ってVLAN間通信を可能にする（Router on a Stick構成）</li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc2">🖥️ ネットワーク構成とIPアドレス</span></h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>機器</th><th>VLAN</th><th>IPアドレス</th><th>備考</th></tr></thead><tbody><tr><td>PC1</td><td>VLAN10</td><td>192.168.10.10 /24</td><td>GW: 192.168.10.1</td></tr><tr><td>PC2</td><td>VLAN20</td><td>192.168.20.10 /24</td><td>GW: 192.168.20.1</td></tr><tr><td>R1（サブIF）</td><td>VLAN10</td><td>192.168.10.1</td><td></td></tr><tr><td>R1（サブIF）</td><td>VLAN20</td><td>192.168.20.1</td><td></td></tr></tbody></table></figure>



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



<h2 class="wp-block-heading"><span id="toc3">🧪 手順1：PCにIPアドレスを設定</span></h2>



<p>PC1とPC2それぞれで以下を設定します。</p>



<ul class="wp-block-list">
<li>IPアドレス</li>



<li>サブネットマスク（255.255.255.0）</li>



<li>デフォルトゲートウェイ（各VLANのルーターIP）</li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc4">🧪 手順2：スイッチでVLANを作成</span></h2>



<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">Bash</span><span role="button" tabindex="0" data-code="enable
configure terminal

vlan 10
 name VLAN10
exit

vlan 20
 name VLAN20
exit

end" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">enable</span></span>
<span class="line"><span style="color: #A6E22E">configure</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">terminal</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">vlan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">name</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">VLAN10</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">vlan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">20</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">name</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">VLAN20</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">end</span></span></code></pre></div>



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



<h2 class="wp-block-heading"><span id="toc5">🧪 手順3：VLANをスイッチポートに割り当てる</span></h2>



<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">Bash</span><span role="button" tabindex="0" data-code="enable
show ip interface brief  # 使用可能なポートを確認

configure terminal

interface fastEthernet 0/1
 switchport mode access #アクセスモードにする
 switchport access vlan 10 #vlan１０を割り当てる
exit

interface fastEthernet 0/2
 switchport mode access
 switchport access vlan 20
exit

end
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">enable</span></span>
<span class="line"><span style="color: #A6E22E">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">brief</span><span style="color: #F8F8F2">  </span><span style="color: #88846F"># 使用可能なポートを確認</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">configure</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">terminal</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">fastEthernet</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">0</span><span style="color: #E6DB74">/1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">switchport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">mode</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">access</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#アクセスモードにする</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">switchport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">access</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">vlan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#vlan１０を割り当てる</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">fastEthernet</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">0</span><span style="color: #E6DB74">/2</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">switchport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">mode</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">access</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">switchport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">access</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">vlan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">20</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">end</span></span>
<span class="line"></span></code></pre></div>



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



<h2 class="wp-block-heading"><span id="toc6">✅ 確認コマンド</span></h2>



<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">Bash</span><span role="button" tabindex="0" data-code="show vlan brief     # VLANの状態（activeかどうか）を確認
show interfaces status  # ポートのリンク状態（connected）を確認
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">vlan</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">brief</span><span style="color: #F8F8F2">     </span><span style="color: #88846F"># VLANの状態（activeかどうか）を確認</span></span>
<span class="line"><span style="color: #A6E22E">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">interfaces</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">status</span><span style="color: #F8F8F2">  </span><span style="color: #88846F"># ポートのリンク状態（connected）を確認</span></span>
<span class="line"></span></code></pre></div>



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



<h2 class="wp-block-heading"><span id="toc7">🧪 手順4：ルーターのサブインタフェース設定</span></h2>



<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">Bash</span><span role="button" tabindex="0" data-code="enable
show ip interface brief  # 使えるインタフェース確認

configure terminal

interface GigabitEthernet0/0
 no ip address # 物理インタフェースにはIPは設定しない
 no shutdown #ポート有効化（これをやらないとポートが機能しない）

interface GigabitEthernet0/0.10 #サブインタフェース10を作成
 encapsulation dot1Q 10 #VLAN10タグがついたフレームだけがこのサブインタに届きます！
 ip address 192.168.10.1 255.255.255.0 #この VLAN のデフォルトゲートウェイとなるIPを割り当てます。
exit

interface GigabitEthernet0/0.20
 encapsulation dot1Q 20
 ip address 192.168.20.1 255.255.255.0
exit
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">enable</span></span>
<span class="line"><span style="color: #A6E22E">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">brief</span><span style="color: #F8F8F2">  </span><span style="color: #88846F"># 使えるインタフェース確認</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">configure</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">terminal</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">GigabitEthernet0/0</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">no</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">address</span><span style="color: #F8F8F2"> </span><span style="color: #88846F"># 物理インタフェースにはIPは設定しない</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">no</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">shutdown</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#ポート有効化（これをやらないとポートが機能しない）</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">GigabitEthernet0/0.10</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#サブインタフェース10を作成</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">encapsulation</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">dot1Q</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#VLAN10タグがついたフレームだけがこのサブインタに届きます！</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">address</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.168</span><span style="color: #E6DB74">.10.1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255</span><span style="color: #E6DB74">.255.0</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#この VLAN のデフォルトゲートウェイとなるIPを割り当てます。</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">GigabitEthernet0/0.20</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">encapsulation</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">dot1Q</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">20</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">address</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.168</span><span style="color: #E6DB74">.20.1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255</span><span style="color: #E6DB74">.255.0</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span></code></pre></div>



<p>📝 <strong>ポイント</strong></p>



<ul class="wp-block-list">
<li><code>.10</code>, <code>.20</code>のようにサブインタフェースを作成します。</li>



<li><code>encapsulation dot1Q</code>でVLANタグ番号を指定します。</li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc8">🧪 手順5：スイッチのトランクポート設定</span></h2>



<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">Bash</span><span role="button" tabindex="0" data-code="enable
show cdp neighbors  # ルーターと接続されているポートを調べる

configure terminal
interface FastEthernet0/3  # ルーター接続ポートを指定
 switchport mode trunk
exit

end" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">enable</span></span>
<span class="line"><span style="color: #A6E22E">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">cdp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">neighbors</span><span style="color: #F8F8F2">  </span><span style="color: #88846F"># ルーターと接続されているポートを調べる</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">configure</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">terminal</span></span>
<span class="line"><span style="color: #A6E22E">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">FastEthernet0/3</span><span style="color: #F8F8F2">  </span><span style="color: #88846F"># ルーター接続ポートを指定</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">switchport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">mode</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">trunk</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">end</span></span></code></pre></div>



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



<h2 class="wp-block-heading"><span id="toc9">✅ 疎通確認（Pingテスト）</span></h2>



<p>PC1からPC2、PC2からPC1へPingを実施します。</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">Bash</span><span role="button" tabindex="0" data-code="ping 192.168.20.10 #PC１で実行してみる
ping 192.168.10.10 #PC２で実行してみる" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">ping</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.168</span><span style="color: #E6DB74">.20.10</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#PC１で実行してみる</span></span>
<span class="line"><span style="color: #A6E22E">ping</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.168</span><span style="color: #E6DB74">.10.10</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#PC２で実行してみる</span></span></code></pre></div>



<p>✅ リプライが返ってくれば、<strong>VLAN間通信成功！</strong></p>



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



<h2 class="wp-block-heading"><span id="toc10">🎉 お疲れさまでした！</span></h2>



<p>これで<strong>Router on a Stick構成によるVLAN間通信</strong>の設定が完了です！<br>Packet Tracerを使って、ネットワークの動作原理をしっかり理解しておくことが、ネットワークスペシャリスト試験にも非常に役立ちます。</p>



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



<h2 class="wp-block-heading"><span id="toc11">💡 補足：Router on a Stickとは？</span></h2>



<p>ルーターの<strong>1本の物理インタフェースに複数のサブインタフェース</strong>を作成し、それぞれにVLANを割り当ててVLAN間ルーティングを行う構成です。コストを抑えつつVLAN間通信が可能になるため、小規模ネットワークでよく使われます。</p>



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



<h2 class="wp-block-heading"><span id="toc12">📌 関連キーワード</span></h2>



<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">Bash</span><span role="button" tabindex="0" data-code="#Cisco #PacketTracer #VLAN #RouterOnAStick #ネットワークスペシャリスト対策 #VLAN間通信" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#Cisco #PacketTracer #VLAN #RouterOnAStick #ネットワークスペシャリスト対策 #VLAN間通信</span></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【FAQ】1000BASE-LXののあるある疑問をパパっと解消</title>
		<link>https://ascend-beyond.com/study/6863/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sat, 15 Mar 2025 16:17:22 +0000</pubDate>
				<category><![CDATA[FAQ]]></category>
		<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[独学]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=6863</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-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">1000BASE-LXって何？</a></li><li><a href="#toc2" tabindex="0">波長って何ですか？</a><ol><li><a href="#toc3" tabindex="0">光ファイバー通信における波長</a></li><li><a href="#toc4" tabindex="0">1000BASE-LXの1310nmとは？</a></li><li><a href="#toc5" tabindex="0">まとめ</a></li></ol></li><li><a href="#toc6" tabindex="0">SMFとMMFって何？</a><ol><li><a href="#toc7" tabindex="0">シングルモードファイバー (SMF) とは？</a></li><li><a href="#toc8" tabindex="0">マルチモードファイバー (MMF) とは？</a></li><li><a href="#toc9" tabindex="0">なぜマルチモードがまだ使われるのか？</a></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol></li><li><a href="#toc11" tabindex="0">モードコンディショニングパッチコード（MCP）って何？</a><ol><li><a href="#toc12" tabindex="0">なぜモード・コンディショニングパッチコードが必要なの？</a></li><li><a href="#toc13" tabindex="0">モード・コンディショニングパッチコードの役割</a></li><li><a href="#toc14" tabindex="0">図解イメージ（簡単に言うと）</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol></li><li><a href="#toc16" tabindex="0">MCPの両端でモード違うのはどういうこと？</a><ol><li><a href="#toc17" tabindex="0">✅ 両端でモードが違うのはなぜ？</a></li><li><a href="#toc18" tabindex="0">✅ どうやって「片側SMF・片側MMF」になってるの？</a></li><li><a href="#toc19" tabindex="0">✅ コア径が違うのに、どうやってつなぐの？</a><ol><ol><ol><li><a href="#toc20" tabindex="0">ポイント①：SMFの出口をMMFの中心から少しズラす！</a></li><li><a href="#toc21" tabindex="0">ポイント②：徐々に太いファイバーに移行することで、光のロスを最小限にする！</a></li></ol></li></ol></li></ol></li><li><a href="#toc22" tabindex="0">✅ MCPの動作まとめ</a></li><li><a href="#toc23" tabindex="0">✅ 結局、「片側SMF・片側MMF」って何がしたいの？</a></li><li><a href="#toc24" tabindex="0">✅ まとめ</a></li></ol></li><li><a href="#toc25" tabindex="0">MCPはデファクトスタンダード的な技術なの？</a><ol><li><a href="#toc26" tabindex="0">✅ MCPはどんな場面で使われるのか？</a><ol><li><a href="#toc27" tabindex="0">（1）MCPを使う場面</a></li><li><a href="#toc28" tabindex="0">（2）MCPを使わない方法（最近の主流）</a></li></ol></li><li><a href="#toc29" tabindex="0">✅ MCPを使うとコストは高くなる？</a></li><li><a href="#toc30" tabindex="0">✅ じゃあMCPは常識的に使うものなのか？</a></li><li><a href="#toc31" tabindex="0">✅ まとめ</a></li></ol></li><li><a href="#toc32" tabindex="0">1000BASE-LX以外の有線LANの規格は？</a><ol><li><a href="#toc33" tabindex="0">✅ 試験に出やすいポイント</a></li><li><a href="#toc34" tabindex="0">✅ まとめ</a></li></ol></li><li><a href="#toc35" tabindex="0">有線LAN以外でネスペに頻出する規格は？</a><ol><li><a href="#toc36" tabindex="0">✅ どういう風に試験に出るの？</a></li><li><a href="#toc37" tabindex="0">✅ まとめ</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1000BASE-LXって何？</span></h2>



<p><span class="fz-18px">1000BASE-LXは、IEEE 802.3規格に準拠したギガビットイーサネットの光ファイバー接続方式である。主な仕様は以下のとおり。</span></p>



<ul class="wp-block-list">
<li><strong><span class="red">波長</span>:</strong> 1310nm</li>



<li><strong>対応ファイバー:</strong> シングルモードファイバー (<span class="red">SMF</span>)、マルチモードファイバー (<span class="red">MMF</span>)</li>



<li><strong>最大伝送距離:</strong>
<ul class="wp-block-list">
<li><strong>SMF:</strong> 5,000m (5km)</li>



<li><strong>MMF:</strong> 550m</li>
</ul>
</li>
</ul>



<p><strong>解説:</strong><br><span class="fz-18px">1000BASE-LXは<span class="red">長距離通信向け</span>に設計されており、シングルモードファイバーを使えば最大5kmまで通信できます。ただし、マルチモードファイバーを使う場合、距離は550mまで短くなります。<br>マルチモードではモード分散（光の経路差による信号の広がり）が発生するため、長距離になると信号が劣化します。そのため、MMFを使う場合でも、短距離であれば1000BASE-LXを利用できます。</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="toc2">波長って何ですか？</span></h2>



<p><span class="fz-18px">波長（wavelength）は、光や電波などの波が <strong>1回振動する長さ</strong> のことです。波には「山」と「谷」がありますが、<strong>山から次の山までの距離</strong> を波長と呼びます。単位は <strong>ナノメートル (nm)</strong> や <strong>メートル (m)</strong> で表されます。</span></p>



<p>例えば、目に見える光（可視光）の波長はだいたい <strong>380nm〜700nm</strong> くらいです。</p>



<p>ナノ（<strong>nano</strong>）は、<strong>10の-9乗</strong> を表します。(例：1&nbsp;nm=1×10−9&nbsp;m=0.000000001&nbsp;m）</p>



<ul class="wp-block-list">
<li><strong>青い光:</strong> 約 450nm</li>



<li><strong>緑の光:</strong> 約 550nm</li>



<li><strong>赤い光:</strong> 約 650nm</li>
</ul>



<p>波長が短いほどエネルギーが強く、長いほどエネルギーは弱くなります。</p>



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



<h3 class="wp-block-heading"><span id="toc3">光ファイバー通信における波長</span></h3>



<p><span class="fz-18px">光ファイバー通信では、電気信号を <strong>光信号</strong> に変換してデータを送ります。このとき使う光の波長がとても重要です。光ファイバー内での光の振る舞いや伝送特性は、波長によって変わります。</span></p>



<p>特に光ファイバー通信では、以下の波長帯域がよく使われます：</p>



<ul class="wp-block-list">
<li><strong>850nm:</strong> 短距離伝送、マルチモードファイバー（<span class="red">MMF</span>）向け</li>



<li><strong>1310nm:</strong> 中距離伝送、シングルモードファイバー（SMF）・マルチモードファイバー両方で使用</li>



<li><strong>1550nm:</strong> 長距離伝送、シングルモードファイバー向け</li>
</ul>



<p>これらの波長は、ファイバー内での信号減衰（光が弱くなること）や分散（信号が広がること）が少ないので、通信に適しています。</p>



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



<h3 class="wp-block-heading"><span id="toc4">1000BASE-LXの1310nmとは？</span></h3>



<p>1000BASE-LXは、波長 <strong>1310nm</strong> の光を使う<span class="red">ギガビットイーサネット規格</span>です。この波長を使う理由は次のとおりです。</p>



<ul class="wp-block-list">
<li><strong>減衰が低い:</strong> 光ファイバー内での光の損失が少なく、遠くまで届く。</li>



<li><strong>分散が小さい:</strong> 信号の広がりが少なく、長距離でもデータの品質が保たれる。</li>



<li><strong>長距離対応:</strong> シングルモードファイバーなら最大 <strong>5km</strong>、マルチモードファイバーなら最大 <strong>550m</strong> まで通信できる。</li>
</ul>



<p>要するに、<strong>1310nmは「信号が劣化しにくく、長距離通信に向いている波長」</strong> ということです！</p>



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



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



<ul class="wp-block-list">
<li><strong>波長</strong> は<span class="fz-18px"><strong>山から次の山までの距離</strong> を波長</span></li>



<li>光ファイバー通信では、減衰や分散が少ない特定の波長（850nm, 1310nm, 1550nm）が使われる。</li>



<li><strong>1000BASE-LXは1310nmの光を使い、長距離でも安定したギガビット通信ができる。</strong></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="toc6">SMFとMMFって何？</span></h2>



<p>シングルモードファイバー（SMF）は長距離伝送に優れているので、「じゃあ全部シングルモードでいいのでは？」と思いますよね？でも、実はシングルモードにもデメリットがあるので、ケースバイケースでマルチモードが選ばれることがあるんです。順番にわかりやすく見ていきましょう！</p>



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



<h3 class="wp-block-heading"><span id="toc7">シングルモードファイバー (SMF) とは？</span></h3>



<ul class="wp-block-list">
<li><strong>光の伝わり方:</strong> 1本の直進する光（モード）だけが伝搬</li>



<li><strong>コア径:</strong> 約 9μm（<span class="red">非常に細い</span>）<br><strong>非常に細いからこそ、光の反射する隙を与えず、１本の光として伝送することができる。</strong></li>



<li><strong>波長:</strong> 1310nm / 1550nm など</li>



<li><strong>最大距離:</strong> 数km〜数十km以上（規格による）</li>



<li><strong>メリット:</strong>
<ul class="wp-block-list">
<li>減衰が少ない（信号が弱くなりにくい）</li>



<li>分散がほぼない（信号のズレが発生しにくい）</li>



<li>超長距離通信に対応可能</li>
</ul>
</li>



<li><strong>デメリット:</strong>
<ul class="wp-block-list">
<li>光源（レーザー）が<strong>高価</strong></li>



<li>ファイバー自体も<strong>高価</strong></li>



<li>コアが細いため、接続や融着（ファイバーの接合）が<strong>難しく、作業コスト</strong>やスキルが必要</li>
</ul>
</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="toc8">マルチモードファイバー (MMF) とは？</span></h3>



<ul class="wp-block-list">
<li><strong>光の伝わり方:</strong> 複数の経路（モード）で光がジグザグに進む</li>



<li><strong>コア径:</strong> 50μm or 62.5μm（太め）<br><strong>太いことにより、光が反射する隙ができる。その結果、１本光ではなく、反射して複数の光になってしまう。</strong></li>



<li><strong>波長:</strong> 850nm / 1310nm など</li>



<li><strong>最大距離:</strong> 数十m〜数百m程度</li>



<li><strong>メリット:</strong>
<ul class="wp-block-list">
<li>光源（VCSELなど）が<strong>安価</strong></li>



<li>ファイバーが<strong>安価</strong></li>



<li>コアが太いため、接続や融着が<strong>簡単</strong></li>
</ul>
</li>



<li><strong>デメリット:</strong>
<ul class="wp-block-list">
<li>モード分散が発生しやすく、長距離で信号劣化</li>



<li>減衰もシングルモードより多い</li>
</ul>
</li>
</ul>



<p><span class="fz-18px">つまり、マルチモードは「<strong>短距離ならコスパがよくて取り扱いやすい</strong>」んです。</span></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>MMFと大層な命名をされているので、意図して複数の光に分散させていると勘違いしないように！ただ、細いコア作成が技術的に困難であったため、太いコアにせざるを得なかった。その結果、光が複数に分散する。というニュアンスです！</strong></span></p>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc9">なぜマルチモードがまだ使われるのか？</span></h3>



<p>例えば、<strong>データセンターやオフィス内のフロア間接続</strong> を考えてみましょう。</p>



<ul class="wp-block-list">
<li><strong>距離:</strong> 10m〜300m程度</li>



<li><strong>必要な速度:</strong> 1Gbps〜10Gbps</li>



<li><strong>コスト意識:</strong> なるべく安く済ませたい</li>
</ul>



<p><span class="fz-18px">この場合、シングルモードを使うとオーバースペックになり、<strong>コストと手間がかかりすぎ</strong> ます。逆にマルチモードなら<strong>短距離なら十分な速度と安定性</strong>が得られるので、結果的に<strong>コスト最適化</strong>ができます。</span></p>



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



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



<ul class="wp-block-list">
<li><strong>シングルモード:</strong> <span class="red">長距離・高性能だが高価＆扱いが難しい</span> → <strong>長距離接続・外部回線・WAN向き</strong></li>



<li><strong>マルチモード:</strong> 短距離・安価で扱いやすいが距離制限あり → <strong>建物内・データセンター・LAN向き</strong></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="toc11">モードコンディショニングパッチコード（MCP）って何？</span></h2>



<p>「モード・コンディショニングパッチコード（Mode Conditioning Patch Cord, MCPC）」は、<strong>1000BASE-LX をマルチモードファイバー（MMF）で短距離接続するとき</strong>に信号品質を保つために使われます。</p>



<p>なぜ必要なのか、そしてどう機能するのか、パパっと見ていきましょう！</p>



<h3 class="wp-block-heading"><span id="toc12">なぜモード・コンディショニングパッチコードが必要なの？</span></h3>



<p>1000BASE-LXはもともと <strong>シングルモードファイバー (SMF)</strong> を想定して設計されています。シングルモード用の送信機は、<strong>レーザー光</strong> を使い、細いファイバーの真ん中をまっすぐ進むように光を出します。</p>



<p>でも、これをそのまま <strong>マルチモードファイバー (MMF)</strong> に流すと、次の問題が発生します。</p>



<ul class="wp-block-list">
<li><strong>差動モード遅延 (DMD)</strong>: 光がMMFの中心部に強く集中すると、コアの内壁に<span class="red">反射する光</span>と、中心を<span class="red">直進する光</span>の間で伝搬速度に差が生まれます。その結果、信号が広がり、受信側でデータが乱れることがあります。</li>
</ul>



<p>これが起こると、短距離でもパケットエラーが発生し、通信が不安定になります。</p>



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



<h3 class="wp-block-heading"><span id="toc13">モード・コンディショニングパッチコードの役割</span></h3>



<p>モード・コンディショニングパッチコードは、この <strong>DMD</strong> を防ぐための特殊な光ファイバーケーブルです。</p>



<p><strong>仕組み:</strong></p>



<ul class="wp-block-list">
<li><strong><span class="red">片側</span>:</strong> シングルモードファイバー (SMF)</li>



<li><strong><span class="red">もう片側</span>:</strong> マルチモードファイバー (MMF)</li>



<li><strong>接続部分:</strong> 光の信号を <strong>中心から少しずらして</strong> MMFに入射させる</li>
</ul>



<p>これによって、光がファイバーの中心ではなく <strong>少し外れた位置</strong> から広がるので、<strong>複数の光経路が適度に混ざり、DMDの影響が軽減</strong> されます。結果として、短距離でも安定した信号伝送が可能になります！</p>



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



<h3 class="wp-block-heading"><span id="toc14">図解イメージ（簡単に言うと）</span></h3>



<ul class="wp-block-list">
<li><strong>通常の接続:</strong> 光がファイバーの真ん中に集中 → モード遅延発生</li>



<li><strong>MCPC使用時:</strong> 光が中心から少しずれた位置に入射 → モード遅延が軽減</li>
</ul>



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



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



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



<ul class="wp-block-list">
<li><strong>問題:</strong> 1000BASE-LX を MMF で使うと、DMD が発生して信号劣化</li>



<li><strong>解決策:</strong> モード・コンディショニングパッチコードを使う</li>



<li><strong>効果:</strong> 光の入射位置をずらして、モード遅延を軽減 → 信号が安定</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></p>
</div></div>
</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">MCPの両端でモード違うのはどういうこと？</span></h2>



<p>MCPは、<strong>シングルモードファイバー（SMF）とマルチモードファイバー（MMF）を途中でつなぎ合わせた特殊なケーブル</strong> です。</p>



<h3 class="wp-block-heading"><span id="toc17">✅ 両端でモードが違うのはなぜ？</span></h3>



<p><strong>1000BASE-LX</strong>は、<strong>本来シングルモードファイバー</strong>（SMF）で使うレーザー光を、短距離ではマルチモードファイバー（MMF）で使おうとします。</p>



<p><strong>問題点</strong>：</p>



<ul class="wp-block-list">
<li>シングルモードのレーザー光は、超細いSMF（コア9μm）を通るので、<strong>まっすぐ進む性質</strong> を持つ</li>



<li>でも、それをいきなり太いMMF（コア50μm or 62.5μm）に入れると、<strong>直進光がそのままMMFの中心を突き抜けてしまい、モード分散がひどくなる</strong></li>
</ul>



<p>この「いきなり太いMMFに入れると直進光が発生する」問題を解決するために、MCPは <strong>「途中にSMFを少しだけ入れて、光の角度を調整する」</strong> という工夫をしています。</p>



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



<h3 class="wp-block-heading"><span id="toc18">✅ どうやって「片側SMF・片側MMF」になってるの？</span></h3>



<p>MCPは、片側はSMF（シングルモードファイバー）、もう片側はMMF（マルチモードファイバー）になっていますが、これは <strong>「途中でSMFとMMFを融着（接続）」</strong> しているからです！</p>



<p><strong>具体的な構造</strong></p>



<ul class="wp-block-list">
<li><strong>片側（機器側）</strong> → シングルモードファイバー（SMF、コア9μm）</li>



<li><strong>途中でSMFとMMFをつなぐ（融着接続）</strong></li>



<li><strong>もう片側（ネットワーク側）</strong> → マルチモードファイバー（MMF、コア50μm or 62.5μm）</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc19">✅ コア径が違うのに、どうやってつなぐの？</span></h3>



<p>「SMFはコアが9μm、MMFは50μmや62.5μmなのに、どうやって接続してるの？」という疑問が出ますよね。</p>



<p>ここがMCPの <strong>最大の工夫ポイント</strong> です！</p>



<h6 class="wp-block-heading"><span id="toc20">ポイント①：SMFの出口をMMFの中心から少しズラす！</span></h6>



<p><br>普通にど真ん中にSMFを接続すると、直進する光がそのまま出ちゃいます。<br>そこで、<strong>SMFの出口を少しズラして、MMFのコアの端っこの方に光を入れるようにする</strong> んです。</p>



<p>✅ こうすると、光がMMFに入るときに最初からちょっと傾いた角度になるので、直進光が減って、適度に反射する光になり、モード分散が減ります。</p>



<h6 class="wp-block-heading"><span id="toc21">ポイント②：徐々に太いファイバーに移行することで、光のロスを最小限にする！</span></h6>



<p><br>いきなり細いSMF（9μm）から太いMMF（50μm or 62.5μm）に繋ぐと、光のロスが大きくなります。<br>そのため、SMFとMMFを滑らかにつなげる <strong>「テーパー状の接続」</strong> をすることで、光がスムーズに移行するように工夫されています。</p>



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



<h3 class="wp-block-heading"><span id="toc22">✅ MCPの動作まとめ</span></h3>



<ol class="wp-block-list">
<li><strong>シングルモードレーザーの光を、まずSMFで通す</strong>
<ul class="wp-block-list">
<li>ここでは通常のシングルモード光が出る</li>
</ul>
</li>



<li><strong>途中でSMFをMMFにズラして接続</strong>
<ul class="wp-block-list">
<li>これによって、直進する光を抑えて、適度に反射する光だけがMMFに入るようにする</li>
</ul>
</li>



<li><strong>その後、MMFで普通に通信</strong>
<ul class="wp-block-list">
<li>直進光が抑えられているので、モード分散の影響が減る</li>
</ul>
</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc23">✅ 結局、「片側SMF・片側MMF」って何がしたいの？</span></h3>



<ul class="wp-block-list">
<li>1000BASE-LXのレーザーは <strong>本来SMF用</strong></li>



<li>でも、短距離ではコストの問題で <strong>MMFを使いたい</strong></li>



<li><strong>いきなりMMFに入れると直進光が発生してしまうので、それを減らすために「一度SMFを通して角度を調整する」</strong></li>



<li>だから、MCPは <strong>「片側はSMF」「途中でMMFにズラして接続」「もう片側はMMF」</strong> という構造になっている</li>
</ul>



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



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



<ul class="wp-block-list">
<li><strong>MCPは、途中でSMFとMMFを接続している特殊なケーブル！</strong></li>



<li><strong>SMF → MMFに光を入れるときに、中心をズラして直進光を抑える！</strong></li>



<li><strong>結果的に、1000BASE-LXをMMFで安定して使えるようになる！</strong></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="toc25">MCPはデファクトスタンダード的な技術なの？</span></h2>



<p>MCPは <strong>「1000BASE-LX をマルチモードファイバー（MMF）で使うときに発生する問題を解決する手段の1つ」</strong> です。ただし、今ではそこまで一般的に使われているわけではなく、「必要な場面では使うが、なるべく避ける」という感じになっています。</p>



<h3 class="wp-block-heading"><span id="toc26">✅ MCPはどんな場面で使われるのか？</span></h3>



<p>MCPは、<strong>「1000BASE-LX を MMF で使いたいけど、モード分散の影響を抑えたい！」</strong> というときに使います。</p>



<p>でも、<strong>そもそも「1000BASE-LXをMMFで使う」こと自体があまり推奨されていません。</strong></p>



<h4 class="wp-block-heading"><span id="toc27">（1）MCPを使う場面</span></h4>



<ul class="wp-block-list">
<li>企業のネットワークなどで「<strong>すでにMMFの配線がある</strong>」けど「<strong>スイッチを1000BASE-LX対応のものに変えたい</strong>」とき
<ul class="wp-block-list">
<li>すでにMMFが敷設されているなら、なるべくそのまま使いたい</li>



<li>でも<span class="red">1000BASE-LXの光源はシングルモード用</span>なので、そのままMMFに入れると問題が起こる</li>



<li><strong>だからMCPを使って調整する</strong></li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading"><span id="toc28">（2）MCPを使わない方法（最近の主流）</span></h4>



<p><strong>そもそも最初から<span class="fz-18px">1000BASE-SX</span>（850nmのMMF用規格）を使う</strong></p>



<ul class="wp-block-list">
<li>1000BASE-SXは<strong>最初からMMF用に設計されている</strong>ので、MCPを使う必要がない</li>



<li>しかもMCPを使うよりも<strong>安価でシンプルに運用できる</strong></li>
</ul>



<p>このため、新規にネットワークを構築する場合、MCPを使うよりも <strong>最初から1000BASE-SXを選ぶ</strong> ことが多いです。</p>



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



<h3 class="wp-block-heading"><span id="toc29">✅ MCPを使うとコストは高くなる？</span></h3>



<p><span class="fz-18px">✅ <strong>結論：MCPを使うとコストが高くなる！</strong></span></p>



<p>理由は以下の通りです。</p>



<ol class="wp-block-list">
<li><strong>MCP自体が普通のMMFパッチコードより高い</strong>
<ul class="wp-block-list">
<li>MCPはSMFとMMFを特殊な方法で接続したケーブルなので、<strong>普通のMMFパッチコードより高価</strong></li>
</ul>
</li>



<li><strong>MCPを使うことで運用が複雑になる</strong>
<ul class="wp-block-list">
<li><strong>接続方法を間違えると正しく動作しない</strong>（SMF側とMMF側を間違えたら意味がない）</li>



<li><strong>MCP対応の光モジュールが必要</strong> になる場合もある</li>
</ul>
</li>



<li><strong>だったら最初から1000BASE-SX（MMF用）を選んだ方がコストが安い</strong>
<ul class="wp-block-list">
<li>MCPを買うくらいなら、最初から1000BASE-SXにした方が安くてシンプル</li>
</ul>
</li>
</ol>



<p>このため、新規導入ならMCPをわざわざ選ぶことは少ないです。</p>



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



<h3 class="wp-block-heading"><span id="toc30">✅ じゃあMCPは常識的に使うものなのか？</span></h3>



<p><strong>「MCPを使うのが常識」というわけではない！</strong><br>むしろ、以下のような感じで考えられています。</p>



<ol class="wp-block-list">
<li><strong>新しくネットワークを作るなら、MCPを使わないのが普通</strong>
<ul class="wp-block-list">
<li><strong>1000BASE-SX（MMF用）</strong> や <strong>1000BASE-LXをSMFで使う</strong> のが一般的</li>



<li>つまり、<strong>MCPを使わない設計が最適</strong></li>
</ul>
</li>



<li><strong>でも、既存のMMF配線をそのまま使いたいなら、MCPを使うこともある</strong>
<ul class="wp-block-list">
<li>既存のMMFを活かして1000BASE-LXを導入する場合、MCPを使うのが一つの手段</li>



<li>ただし、この場合も「そもそもMMFで1000BASE-LXを使うのが正解なのか？」を検討する必要がある</li>
</ul>
</li>
</ol>



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



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



<ol class="wp-block-list">
<li><strong>MCPは「1000BASE-LXをMMFで使うときの問題を解決する手段」</strong>
<ul class="wp-block-list">
<li>ただし、「1000BASE-LXをMMFで使う」こと自体があまり推奨されていない</li>
</ul>
</li>



<li><strong>MCPを使うとコストが高くなる（パッチコード自体の価格、運用の複雑さ）</strong>
<ul class="wp-block-list">
<li>そのため、普通は <strong>1000BASE-SX（MMF用）を使うか、1000BASE-LXをSMFで使う</strong> のが一般的</li>
</ul>
</li>



<li><strong>新規導入ではMCPを使わないのが主流</strong>
<ul class="wp-block-list">
<li><strong>「MCPを使うのが常識」というわけではなく、「必要な場面で仕方なく使う技術」</strong></li>



<li>つまり、<strong>知識のある人が「仕方なく」使うことはあるが、そもそも使わない方がいい</strong></li>
</ul>
</li>
</ol>



<p>結論として、MCPは「必ず使うもの」ではなく、「過去の設備（MMF）をそのまま使いたいときの選択肢の1つ」っていう立ち位置ですね！</p>
</div></div>



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



<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="toc32">1000BASE-LX以外の有線LANの規格は？</span></h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>規格名</th><th>最大速度</th><th>伝送媒体</th><th>最大距離</th><th>特徴・用途</th></tr></thead><tbody><tr><td><strong>100BASE-TX</strong></td><td>100Mbps</td><td>UTP（Cat5以上）</td><td>100m</td><td>ファストイーサネット（現在はあまり使われない）</td></tr><tr><td><strong>1000BASE-T</strong></td><td>1Gbps</td><td>UTP（Cat5e以上）</td><td>100m</td><td>現在の主流（ギガビットイーサネット）</td></tr><tr><td><strong>1000BASE-TX</strong></td><td>1Gbps</td><td>UTP（Cat6以上）</td><td>100m</td><td>1000BASE-Tより配線しやすいが普及せず</td></tr><tr><td><strong>10GBASE-T</strong></td><td>10Gbps</td><td>UTP（Cat6a以上）</td><td>100m</td><td>企業やデータセンター向け（レイテンシが若干高い）</td></tr><tr><td><strong>1000BASE-LX</strong></td><td>1Gbps</td><td><strong>SMF,</strong> MMF</td><td>5km（SMF） 550m（MMF）</td><td>シングルモード中心、長距離通信可能</td></tr><tr><td><strong>1000BASE-SX</strong></td><td>1Gbps</td><td>MMF</td><td>550m</td><td>近距離向け光ファイバー規格</td></tr><tr><td><strong>10GBASE-LR</strong></td><td>10Gbps</td><td>SMF</td><td>10km</td><td>長距離光ファイバー通信</td></tr><tr><td><strong>10GBASE-SR</strong></td><td>10Gbps</td><td>MMF</td><td>300m</td><td>短距離の光ファイバー通信</td></tr><tr><td><strong>25GBASE-T</strong></td><td>25Gbps</td><td>UTP（Cat8）</td><td>30m</td><td>企業・データセンターでの次世代LAN</td></tr><tr><td><strong>40GBASE-SR4</strong></td><td>40Gbps</td><td>MMF</td><td>100m</td><td>データセンター向け、高速短距離通信</td></tr><tr><td><strong>100GBASE-LR4</strong></td><td>100Gbps</td><td>SMF</td><td>10km</td><td>超高速バックボーン向け</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc33">✅ 試験に出やすいポイント</span></h3>



<ol class="wp-block-list">
<li><strong>1000BASE-T vs 1000BASE-LX/SX の違い</strong>
<ul class="wp-block-list">
<li><strong>1000BASE-T</strong>：銅線（UTP）、最大100m</li>



<li><strong>1000BASE-LX</strong>：シングルモード光ファイバー（ＳＭＦ）、最大5km</li>



<li><strong>1000BASE-SX</strong>：マルチモード光ファイバー（ＭＭＦ）、最大550m</li>
</ul>
</li>



<li><strong>10GBASE-T と 10GBASE-SR/LR の違い</strong>
<ul class="wp-block-list">
<li><strong>10GBASE-T</strong>：ツイストペアケーブル（Cat6a）、最大100m</li>



<li><strong>10GBASE-SR</strong>：マルチモード光、最大300m</li>



<li><strong>10GBASE-LR</strong>：シングルモード光、最大10km</li>
</ul>
</li>



<li><strong>「BASE-T」 vs 「BASE-SX/LX/LR」</strong>
<ul class="wp-block-list">
<li><strong>「-T」</strong> はツイストペアケーブル（UTP）</li>



<li><strong>「-SX/LX/LR」</strong> は光ファイバー</li>
</ul>
</li>



<li><strong>PoE（Power over Ethernet）との関係</strong>
<ul class="wp-block-list">
<li><strong>1000BASE-Tや10GBASE-T</strong> はPoEに対応できるが、光ファイバーはPoE不可</li>
</ul>
</li>
</ol>



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



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



<ul class="wp-block-list">
<li><strong>1000BASE-T（UTP） vs 1000BASE-LX（光） の違いを理解する</strong></li>



<li><strong>10GBASE-Tと10GBASE-SR/LRの用途の違いを押さえる</strong></li>



<li><strong>ツイストペア vs 光ファイバーのメリット・デメリットを整理する</strong></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="toc35">有線LAN以外でネスペに頻出する規格は？</span></h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>分類</th><th>規格・技術</th><th>説明・ポイント</th></tr></thead><tbody><tr><td><strong>有線LAN</strong></td><td>100BASE-TX</td><td>&#8211; 100Mbpsのツイストペアケーブル用規格（カテゴリ5以上）</td></tr><tr><td></td><td>1000BASE-T</td><td>&#8211; 1Gbpsのツイストペアケーブル用規格（カテゴリ5e以上）</td></tr><tr><td></td><td>1000BASE-LX</td><td>&#8211; 光ファイバーを用いる1Gbps規格（SMFで最大5km, MMFで最大550m）</td></tr><tr><td></td><td>1000BASE-SX</td><td>&#8211; マルチモードファイバー（MMF）用の1Gbps規格（最大550m）</td></tr><tr><td></td><td>10GBASE-T</td><td>&#8211; 10Gbpsのツイストペアケーブル用規格（カテゴリ6a以上）</td></tr><tr><td></td><td>PoE（IEEE 802.3af/at/bt）</td><td>&#8211; LANケーブルで電力供給が可能（PoE：最大15.4W、PoE+：最大30W、PoE++：最大60～90W）</td></tr><tr><td><strong>無線LAN</strong></td><td>IEEE 802.11a</td><td>&#8211; 5GHz帯、最大54Mbps</td></tr><tr><td></td><td>IEEE 802.11b/g</td><td>&#8211; 2.4GHz帯、bは最大11Mbps、gは最大54Mbps</td></tr><tr><td></td><td>IEEE 802.11n</td><td>&#8211; 2.4GHz/5GHz帯、MIMO対応、最大600Mbps</td></tr><tr><td></td><td>IEEE 802.11ac</td><td>&#8211; 5GHz帯、最大6.9Gbps（理論値）、MU-MIMO対応</td></tr><tr><td></td><td>IEEE 802.11ax</td><td>&#8211; 6GHz帯（Wi-Fi 6E）、OFDMA対応、最大9.6Gbps</td></tr><tr><td><strong>WAN（広域網）</strong></td><td>PPP（Point-to-Point Protocol）</td><td>&#8211; シリアル通信やVPNで使われる基本的なデータリンクプロトコル</td></tr><tr><td></td><td>PPPoE（PPP over Ethernet）</td><td>&#8211; フレッツ光などで使われる、Ethernet上でPPPをカプセル化する技術</td></tr><tr><td></td><td>MPLS（Multi-Protocol Label Switching）</td><td>&#8211; パケット転送を高速化するためのラベルスイッチング技術</td></tr><tr><td></td><td>SD-WAN</td><td>&#8211; ソフトウェア制御でWANを仮想化し、回線コストを最適化する技術</td></tr><tr><td><strong>ルーティング</strong></td><td>RIP（Routing Information Protocol）</td><td>&#8211; 伝統的な距離ベースのルーティングプロトコル（最大ホップ数15）</td></tr><tr><td></td><td>OSPF（Open Shortest Path First）</td><td>&#8211; 階層型のリンクステートルーティングプロトコル</td></tr><tr><td></td><td>BGP（Border Gateway Protocol）</td><td>&#8211; インターネットの経路制御に使われるAS間ルーティングプロトコル</td></tr><tr><td><strong>スイッチング</strong></td><td>VLAN（仮想LAN）</td><td>&#8211; 物理ネットワークを仮想的に分割し、ブロードキャストを制御</td></tr><tr><td></td><td>STP（Spanning Tree Protocol）</td><td>&#8211; ループを防ぐためのプロトコル（RSTP, MSTPも）</td></tr><tr><td></td><td>LACP（Link Aggregation Control Protocol）</td><td>&#8211; 複数の物理リンクを束ねて帯域幅を増強する技術</td></tr><tr><td><strong>セキュリティ</strong></td><td>IEEE 802.1X</td><td>&#8211; ポートベースの認証プロトコル（RADIUSと連携）</td></tr><tr><td></td><td>MACアドレスフィルタリング</td><td>&#8211; 許可されたMACアドレスだけ通信を許可</td></tr><tr><td></td><td>IPsec（Internet Protocol Security）</td><td>&#8211; VPNなどで使われる暗号化技術（AH/ESP）</td></tr><tr><td></td><td>TLS（Transport Layer Security）</td><td>&#8211; HTTPSやVPNで使われる暗号化プロトコル</td></tr><tr><td><strong>仮想化・クラウド</strong></td><td>VXLAN（Virtual Extensible LAN）</td><td>&#8211; VLANの拡張版、オーバーレイネットワーク技術</td></tr><tr><td></td><td>SDN（Software-Defined Networking）</td><td>&#8211; ネットワーク制御をソフトウェアで行う技術</td></tr><tr><td></td><td>NFV（Network Functions Virtualization）</td><td>&#8211; ルーターやファイアウォールを仮想化</td></tr><tr><td><strong>監視・運用</strong></td><td>SNMP（Simple Network Management Protocol）</td><td>&#8211; ネットワーク機器を監視するためのプロトコル</td></tr><tr><td></td><td>NetFlow</td><td>&#8211; ルータやスイッチのトラフィック監視技術</td></tr><tr><td></td><td>Syslog</td><td>&#8211; ネットワーク機器のログを集約・管理する仕組み</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc36">✅ どういう風に試験に出るの？</span></h3>



<ul class="wp-block-list">
<li><strong>1000BASE-LX と 1000BASE-SX の違いを問う問題</strong></li>



<li><strong>STPやLACPの動作を問う問題</strong></li>



<li><strong>IPsecやTLSなどの暗号技術を組み合わせる問題</strong></li>



<li><strong>SDN/NFVを絡めた最新技術に関する問題</strong></li>



<li><strong>MPLSやBGPなどのWANの設計を問う問題</strong></li>
</ul>



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



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



<ul class="wp-block-list">
<li><strong>試験では、物理層（LAN/WAN）からアプリケーション層（セキュリティ・仮想化）まで幅広く出題される</strong></li>



<li><strong>1000BASE-LXや1000BASE-Tのような通信規格だけでなく、ルーティング・スイッチング・セキュリティ技術も重要</strong></li>



<li><strong>実際の問題では、複数の技術を組み合わせたシナリオ問題が多いので、単純な暗記ではなく「どう活用するか」を理解するのが大事</strong></li>
</ul>
</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 title="〔和訳〕Strong - One Direction" width="1256" height="707" src="https://www.youtube.com/embed/VOKNj9buEdQ?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>Strong &#8211; One Direction</strong></figcaption></figure>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<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-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">問題文</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>【FAQ】IPsecのあるある疑問をパパっと解消</title>
		<link>https://ascend-beyond.com/study/6768/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 09 Mar 2025 04:25:15 +0000</pubDate>
				<category><![CDATA[FAQ]]></category>
		<category><![CDATA[Study]]></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=6768</guid>

					<description><![CDATA[IPsec リンク リンク]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<a href="https://ascend-beyond.com/study/6770/" title="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/c1ae70b1b8307076be3a432df67cab09-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://ascend-beyond.com/wp-content/uploads/2025/03/c1ae70b1b8307076be3a432df67cab09-160x90.jpg 160w, https://ascend-beyond.com/wp-content/uploads/2025/03/c1ae70b1b8307076be3a432df67cab09-300x169.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2025/03/c1ae70b1b8307076be3a432df67cab09-1024x576.jpg 1024w, https://ascend-beyond.com/wp-content/uploads/2025/03/c1ae70b1b8307076be3a432df67cab09-768x432.jpg 768w, https://ascend-beyond.com/wp-content/uploads/2025/03/c1ae70b1b8307076be3a432df67cab09-120x68.jpg 120w, https://ascend-beyond.com/wp-content/uploads/2025/03/c1ae70b1b8307076be3a432df67cab09-320x180.jpg 320w, https://ascend-beyond.com/wp-content/uploads/2025/03/c1ae70b1b8307076be3a432df67cab09.jpg 1200w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">IPsecをネスペ午後問を解きながら９秒でパパっと理解</div><div class="blogcard-snippet internal-blogcard-snippet">IPsecはインターネット上の通信を安全にする技術で、データ暗号化・認証のESPや鍵交換のIKEを使います。IKEには2つのフェーズがあり、フェーズ1（IKE SA)でDiffie-Hellmanにより安全な共有秘密を作り、フェーズ2(Child SA)でESPなどの暗号化パラメータを決めます。実際の通信はChild SAごとに暗号化・復号され、PFSが有効なら鍵が漏れても過去の通信は守られます。これによりインターネット上に仮想専用線を構築し、安全なVPN接続が可能になります。</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>




  <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">IPsec</a></li><li><a href="#toc2" tabindex="0">そもそもIPsecって何？</a><ol><li><a href="#toc3" tabindex="0">IPsecとは？</a></li><li><a href="#toc4" tabindex="0">VPNとは？</a></li><li><a href="#toc5" tabindex="0">IPsecとVPNの関係</a></li><li><a href="#toc6" tabindex="0">具体的なイメージ</a></li><li><a href="#toc7" tabindex="0">まとめ</a></li></ol></li><li><a href="#toc8" tabindex="0">IPsecとESPの関係は？また、IPsecとIKEの関係は？</a><ol><li><a href="#toc9" tabindex="0">IPsecとESPの関係</a></li><li><a href="#toc10" tabindex="0">IKEv2とは？</a></li><li><a href="#toc11" tabindex="0">IPsecとIKEv2の関係はこう考える！</a></li></ol></li><li><a href="#toc12" tabindex="0">鍵交換のフェーズで中間者攻撃される危険性もあるよね？</a><ol><li><a href="#toc13" tabindex="0">IKEv2 鍵交換の前のやり取りは本当に危険？</a></li><li><a href="#toc14" tabindex="0">IKEv2 が中間者攻撃を防ぐ仕組み</a><ol><li><a href="#toc15" tabindex="0">① Diffie-Hellman (DH) 鍵交換</a></li><li><a href="#toc16" tabindex="0">② Nonce (ノンス) とハッシュの検証</a></li><li><a href="#toc17" tabindex="0">③ デジタル署名 &amp; 証明書 (ID 認証)</a></li><li><a href="#toc18" tabindex="0">④ 暗号アルゴリズムのネゴシエーションの保護</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ：IKEv2 が中間者攻撃に強い理由</a></li></ol></li><li><a href="#toc20" tabindex="0">フェーズ1 (IKE-SA) で Diffie-Hellman で鍵を共有できるなら、それだけで直接 IPsec のパラメータ交換して、そのまま通信開始すればよくない？</a><ol><li><a href="#toc21" tabindex="0">まず前提整理：フェーズ1 とフェーズ2 の役割</a></li></ol></li><li><a href="#toc22" tabindex="0">なぜ IKE-SA だけじゃダメなのか？</a><ol><li><a href="#toc23" tabindex="0">1. IKE-SA の鍵は IKE 用、データ通信には向かない</a></li><li><a href="#toc24" tabindex="0">2. 複数の Child-SA を作れる柔軟性</a></li><li><a href="#toc25" tabindex="0">3. 鍵の再生成・ローテーションがスムーズ</a></li><li><a href="#toc26" tabindex="0">4. フェーズ1 だけだと IPsec の細かい制御が難しい</a></li><li><a href="#toc27" tabindex="0">まとめ：フェーズを分ける意味</a></li><li><a href="#toc28" tabindex="0">もしフェーズ1だけで済ませると？</a></li><li><a href="#toc29" tabindex="0">結論：フェーズを分けることでセキュリティと運用性を両立</a></li></ol></li><li><a href="#toc30" tabindex="0">フェーズ１の鍵が漏洩したら、元も子もないんじゃない？</a><ol><li><a href="#toc31" tabindex="0">前提確認：フェーズ1とフェーズ2の関係</a></li></ol></li><li><a href="#toc32" tabindex="0">鍵漏えい時のリスクと設計思想</a><ol><li><a href="#toc33" tabindex="0">1. Diffie-Hellman の鍵交換自体は超強力</a></li><li><a href="#toc34" tabindex="0">2. Perfect Forward Secrecy (PFS) の意味</a></li><li><a href="#toc35" tabindex="0">3. フェーズ1鍵の漏えいは超クリティカルだけど短命</a></li><li><a href="#toc36" tabindex="0">4. 鍵漏えいの現実的な経路</a></li><li><a href="#toc37" tabindex="0">フェーズ1鍵漏えい時の対策</a></li><li><a href="#toc38" tabindex="0">結論：フェーズ1の鍵漏えいは致命的、でも設計上の防御策は万全</a></li></ol></li><li><a href="#toc39" tabindex="0">フェーズ1 (IKE-SA) が短期間で終わるなら、フェーズ2 (Child-SA) の鍵ローテーションって意味あるの？</a><ol><li><a href="#toc40" tabindex="0">フェーズ1とフェーズ2の役割をもう一度整理</a></li></ol></li><li><a href="#toc41" tabindex="0">なぜフェーズ1が短期間でもフェーズ2の鍵ローテーションが必要なのか？</a><ol><li><a href="#toc42" tabindex="0">1. IKE-SA は「メタ通信路」、Child-SA は「実データ通信」</a></li><li><a href="#toc43" tabindex="0">2. フェーズ1の再ネゴシエーションは重い</a></li><li><a href="#toc44" tabindex="0">3. セッション継続性の確保</a></li><li><a href="#toc45" tabindex="0">4. 攻撃者のコストを爆増させる</a></li><li><a href="#toc46" tabindex="0">まとめ：フェーズ1短期終了と鍵ローテーションのバランス</a></li></ol></li><li><a href="#toc47" tabindex="0">透過的な通信とは？</a><ol><li><a href="#toc48" tabindex="0">ネットワークにおける「透過的」の意味</a></li><li><a href="#toc49" tabindex="0">IPsecにおける「透過的な通信」の具体例</a><ol><li><a href="#toc50" tabindex="0">1. トンネルモードでの透過性</a></li><li><a href="#toc51" tabindex="0">2. トランスポートモードでは透過的でない場合もある</a><ol><ol><li><a href="#toc52" tabindex="0">トランスポートモードの特徴</a></li></ol></li></ol></li></ol></li><li><a href="#toc53" tabindex="0">結論: 「透過的なVPN」が求められる場合はトンネルモードが適切！</a></li></ol></li><li><a href="#toc54" tabindex="0">IKEにおけるメインモードとアグレッシブモードの違いは？</a><ol><ol><li><a href="#toc55" tabindex="0">🔹 IKEv1 のフェーズとメッセージ交換</a></li></ol></li><li><a href="#toc56" tabindex="0">🔹 メインモード（Main Mode） – 6回のメッセージ交換</a></li><li><a href="#toc57" tabindex="0">🔹 アグレッシブモード（Aggressive Mode） – 3回のメッセージ交換</a></li><li><a href="#toc58" tabindex="0">🔹 IKEv2（Internet Key Exchange version 2）について</a></li><li><a href="#toc59" tabindex="0">🔹 じゃあ、なんでIKEv1の話がまだ出てくるの？</a></li><li><a href="#toc60" tabindex="0">結論</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">IPsec</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">そもそもIPsecって何？</span></h2>



<h3 class="wp-block-heading"><span id="toc3">IPsecとは？</span></h3>



<p><span class="fz-18px"><span class="bold-red"><strong>IPsec (IP Security)</strong> </span>は、インターネット上でデータを安全にやり取りするための仕組みです。<br>普段のインターネット通信は、基本的に暗号化されていないため、悪意のある第三者にデータを盗み見られたり、改ざんされたりするリスクがあります。</span></p>



<p><span class="fz-18px">IPsecは、こうしたリスクからデータを守るために、以下のようなセキュリティ機能を提供します：</span></p>



<ol class="wp-block-list">
<li><strong>暗号化 (Encryption)</strong> → データを暗号化して、盗み見を防ぐ</li>



<li><strong>完全性 (Integrity)</strong> → データが改ざんされていないかチェック</li>



<li><strong>認証 (Authentication)</strong> → データの送信者・受信者が本物か確認</li>
</ol>



<p><span class="fz-18px">つまり、<strong>IPsecを使うと、安全な通信トンネルを作れる</strong>ということです！</span></p>



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



<h3 class="wp-block-heading"><span id="toc4">VPNとは？</span></h3>



<p><span class="fz-18px"><strong>VPN (Virtual Private Network)</strong> は、インターネット上に<strong>仮想的な専用線</strong>を作る技術です。</span></p>



<p><span class="fz-18px">たとえば、会社のネットワークに外出先からアクセスしたい場合、そのままインターネット経由でつなぐと、セキュリティが不安ですよね。VPNを使うと、<strong>暗号化されたトンネル</strong>を作り、まるで直接会社のネットワークにつながっているかのように安全に通信できます。</span></p>



<p><span class="fz-18px">VPNにはいくつかの方式がありますが、<strong>IPsec VPN</strong>は特に強力なセキュリティを持つため、企業の拠点間通信やリモートアクセスによく使われます。</span></p>



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



<h3 class="wp-block-heading"><span id="toc5">IPsecとVPNの関係</span></h3>



<p><span class="fz-18px">VPNは、あくまで「インターネット上に仮想的な専用線を作る仕組み」ですが、実際に<strong>データを暗号化したり保護する役割</strong>は、IPsecなどのプロトコルが担います。</span></p>



<p><span class="fz-18px">つまり、<strong><span class="bold-red">VPNを作るためのセキュリティ技術の1つがIPsec</span></strong>というイメージです！<br>特に、<strong>IPsec VPN</strong>は安全性が高く、以下の2つのモードで通信を保護します：</span></p>



<ul class="wp-block-list">
<li><strong>トランスポートモード</strong> → データ部分だけ暗号化 (主にサーバ同士の直接通信で使う)</li>



<li><strong>トンネルモード</strong> → IPパケット全体を暗号化 (拠点間VPNやリモートアクセスで使う)</li>
</ul>



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



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



<p>たとえば、以下のような状況を考えましょう：</p>



<ul class="wp-block-list">
<li><strong>東京本社</strong>と<strong>大阪支社</strong>をインターネットでつなぎたい</li>



<li>通信内容は、部外者に見られたり改ざんされたくない</li>
</ul>



<p>ここで<strong>IPsec VPN</strong>を使うと、次のように通信できます！</p>



<ol class="wp-block-list">
<li><strong>VPNゲートウェイ (ルータなど)</strong> がIPsecを使って暗号化通信トンネルを作る</li>



<li>インターネットを通るデータは<strong>暗号化</strong>されていて、盗み見されても中身はわからない</li>



<li><strong>改ざんチェック</strong>もあるので、途中でデータをすり替えられても検知できる</li>



<li>お互いに<strong>認証</strong>し合うので、通信相手が本当に正しい拠点かも確認できる</li>
</ol>



<p>結果、インターネットを使いながら、まるで専用回線のように安全な通信ができるんです！</p>



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



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



<ul class="wp-block-list">
<li><strong>IPsec</strong> → データを暗号化・認証して、安全な通信を実現する技術</li>



<li><strong>VPN</strong> → インターネット上に仮想的な専用線を作る技術</li>



<li><strong>IPsec VPN</strong> → IPsecを使って、暗号化された安全な通信トンネルを作る仕組み</li>
</ul>



<p><span class="fz-18px">企業ネットワークやリモートワーク、拠点間通信など、セキュリティが重要なシーンでよく使われます！</span></p>



<p><span class="fz-18px">もし、「実際のパケットの流れ」や「IPsecの具体的な設定例」など、もっと詳しく知りたいところがあれば、ぜひ教えてくださいね！✨ 🚀</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="toc8">IPsecとESPの関係は？また、IPsecとIKEの関係は？</span></h2>



<h3 class="wp-block-heading"><span id="toc9">IPsecとESPの関係</span></h3>



<p><span class="fz-18px">まず、基本的な構成を確認しましょう。</span></p>



<ul class="wp-block-list">
<li><strong>IPsec</strong> → インターネット上で安全な通信を行うためのフレームワーク（枠組み・プロトコルセット）
<ul class="wp-block-list">
<li>実際にデータを暗号化・認証する役割を担うのが<strong>ESP (Encapsulating Security Payload)</strong> です。</li>



<li>ESPはIPsecの<strong>データ保護部分</strong>を担当しているプロトコルと考えればOK！</li>
</ul>
</li>
</ul>



<p>つまり：</p>



<ul class="wp-block-list">
<li><strong>IPsec</strong>がセキュリティ全体の仕組み</li>



<li><strong>ESP</strong>がデータを暗号化・保護するプロトコル</li>
</ul>



<p><span class="fz-18px">同じように、IPsecの<strong>鍵交換</strong>を担当するのが<strong>IKE (Internet Key Exchange)</strong> です！</span></p>



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



<h3 class="wp-block-heading"><span id="toc10">IKEv2とは？</span></h3>



<p><span class="fz-18px"><span class="bold-red"><strong>IKEv2 (Internet Key Exchange version 2)</strong> </span>は、IPsecで安全に通信するための<span class="red">鍵交換プロトコル</span>です。</span></p>



<p><span class="fz-18px">IPsecで暗号化通信をするとき、お互いの端末が同じ暗号鍵を持っていないといけません。でも、ネットワーク上で鍵を直接やりとりすると盗まれるリスクがあります。そこで、<strong>安全に鍵を交換する仕組み</strong>としてIKEv2が使われます。</span></p>



<p>IKEv2がやることは大きく3つ：</p>



<ol class="wp-block-list">
<li><strong>セキュリティパラメータのネゴシエーション</strong> → 使う暗号アルゴリズムや認証方式をお互いに決める</li>



<li><strong>鍵の交換</strong> → 鍵交換アルゴリズム (Diffie-Hellman など) を使って、安全に暗号鍵を共有</li>



<li><strong>SA (Security Association) の管理</strong> → IPsecセッションの暗号化ルールや鍵のライフタイムを管理</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc11">IPsecとIKEv2の関係はこう考える！</span></h3>



<ul class="wp-block-list">
<li><strong>IPsec</strong> → データを安全に送る仕組み</li>



<li><strong>ESP</strong> → データそのものを暗号化・認証するプロトコル</li>



<li><strong>IKEv2</strong> → IPsecで使う暗号鍵やルールを決めて管理するプロトコル</li>
</ul>



<p><span class="fz-18px">つまり、<strong>IKEv2が暗号鍵を交換し、ESPがその鍵を使ってデータを暗号化・保護する</strong>という流れになります！</span></p>



<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="toc12">鍵交換のフェーズで中間者攻撃される危険性もあるよね？</span></h2>



<h3 class="wp-block-heading"><span id="toc13">IKEv2 鍵交換の前のやり取りは本当に危険？</span></h3>



<p><span class="fz-18px">確かに、最初の <strong>IKE_SA_INIT</strong> メッセージは暗号化されていないので、攻撃者はパケットを盗聴したり改ざんすることが<strong>技術的には可能</strong>です。例えば、以下のようなことが考えられます：</span></p>



<ul class="wp-block-list">
<li><strong>アルゴリズムダウングレード攻撃</strong> → 攻撃者が強力な暗号アルゴリズムを弱いものに書き換える</li>



<li><strong>公開鍵のすり替え</strong> → 攻撃者が自分の Diffie-Hellman 鍵を送りつけ、通信を解読できるようにする</li>
</ul>



<p><span class="fz-18px">でも、実際にはこれらの攻撃は、<strong>IKEv2 の設計上成功しない</strong> ようになっています。その理由を詳しく解説します！</span></p>



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



<h3 class="wp-block-heading"><span id="toc14">IKEv2 が中間者攻撃を防ぐ仕組み</span></h3>



<h4 class="wp-block-heading"><span id="toc15">① Diffie-Hellman (DH) 鍵交換</span></h4>



<p><span class="fz-18px">最初の <strong>IKE_SA_INIT</strong> で行われる鍵交換は、<strong>Diffie-Hellman (DH) アルゴリズム</strong> を使います。この仕組み自体が強力な耐性を持っています。</span></p>



<ul class="wp-block-list">
<li><strong>公開鍵</strong> はやり取りしますが、そこから実際の<strong>共有鍵</strong>を計算するには、<strong>離散対数問題</strong>という非常に難しい数学問題を解かなければなりません。現在の計算能力では、これを解読するのは事実上不可能です。</li>



<li>たとえ攻撃者が通信を傍受していたとしても、<strong>共有鍵自体は絶対に復元できません</strong>。</li>
</ul>



<p><span class="fz-18px">つまり、攻撃者が公開鍵を盗んでも、<strong>共通鍵 (セッションキー) を知ることはできない</strong>んです！</span></p>



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



<h4 class="wp-block-heading"><span id="toc16">② Nonce (ノンス) とハッシュの検証</span></h4>



<p><span class="fz-18px">お互いが <strong>Nonce (一度きりのランダム値)</strong> を交換することで、<strong>ハッシュ検証</strong> を行います。これは通信の完全性を守るための仕組みです。</span></p>



<ul class="wp-block-list">
<li><strong>IKE_AUTH</strong> のとき、お互いの ID と、先ほど生成した<strong>共有鍵</strong>、そして <strong>Nonce</strong> を組み合わせたハッシュ値を計算します。</li>



<li>このハッシュは <strong>HMAC (ハッシュベースのメッセージ認証コード)</strong> を使って計算されるので、攻撃者が途中でデータを改ざんすると、<strong>ハッシュ検証に失敗して接続が即座に拒否</strong>されます。</li>
</ul>



<p><span class="fz-18px">これで、<strong>データ改ざん</strong>は検出できるので、攻撃者がパラメータを書き換えることはできません。</span></p>



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



<h4 class="wp-block-heading"><span id="toc17">③ デジタル署名 &amp; 証明書 (ID 認証)</span></h4>



<p><span class="fz-18px"><strong>IKE_AUTH</strong> フェーズでは、お互いに <strong>デジタル署名</strong> や <strong>証明書</strong> を交換します。これによって、<strong>なりすまし</strong> を防ぎます。</span></p>



<p>例えば：</p>



<ul class="wp-block-list">
<li>双方が <strong>PKI (公開鍵基盤)</strong> を使った証明書を交換する場合、相手の ID に対する署名をチェックします。</li>



<li>攻撃者が偽の公開鍵を送りつけても、<strong>正しい署名を生成できない</strong>ので、すぐに検出されます。</li>
</ul>



<p><span class="fz-18px">これで、「攻撃者が鍵をすり替える」攻撃も無力化されます！</span></p>



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



<h4 class="wp-block-heading"><span id="toc18">④ 暗号アルゴリズムのネゴシエーションの保護</span></h4>



<p><span class="fz-18px">IKEv2 では、最初にお互いの使える暗号アルゴリズムを提案し合いますが、これが攻撃者に書き換えられると危険ですよね。これについても、安全策があります。</span></p>



<ul class="wp-block-list">
<li>IKE_AUTH で、<strong>提案したアルゴリズムのリスト自体もハッシュに含めて検証</strong>します。</li>



<li>攻撃者がアルゴリズムをすり替えても、<strong>ハッシュチェックで不一致が起きて即座に失敗</strong>します。</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="toc19">まとめ：IKEv2 が中間者攻撃に強い理由</span></h3>



<p>IKEv2 は、最初の通信が暗号化されていなくても、以下の仕組みで中間者攻撃を防ぎます：</p>



<ol class="wp-block-list">
<li><strong>Diffie-Hellman 鍵交換</strong> → 盗聴されても共有鍵は解読不可能</li>



<li><strong>Nonce &amp; ハッシュ検証</strong> → データの改ざんを即座に検出</li>



<li><strong>デジタル署名 &amp; 証明書</strong> → なりすまし攻撃を防止</li>



<li><strong>アルゴリズムネゴシエーションの保護</strong> → 暗号強度の弱体化を防ぐ</li>
</ol>



<p><span class="fz-18px">これらが連携することで、攻撃者は鍵交換前にいくらパケットを盗み見たり改ざんしようとしても、最終的な認証やハッシュチェックに失敗して、<strong>IKE SA の確立自体が不可能</strong>になるんです！</span></p>



<p><span class="fz-18px">つまり、IKEv2 は最初の平文通信さえも慎重に守っていて、攻撃者が入り込もうとしても失敗する設計になっています。</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="toc20">フェーズ1 (IKE-SA) で Diffie-Hellman で鍵を共有できるなら、それだけで直接 IPsec のパラメータ交換して、そのまま通信開始すればよくない？</span></h2>



<p>ざっくり言えば「フェーズ1 で鍵交換したなら、もうそれで通信始めればいいんじゃ？」って考えは理屈としては理解できます。でも、IKEv2 がわざわざ <strong>IKE-SA</strong> と <strong>Child-SA</strong> を分けてるのにはちゃんと理由があります！</p>



<p>これをしっかり理解すると、「なぜフェーズを分けるのか」がクリアになります！一緒に見ていきましょう！</p>



<h3 class="wp-block-heading"><span id="toc21">まず前提整理：フェーズ1 とフェーズ2 の役割</span></h3>



<ul class="wp-block-list">
<li><strong>IKE-SA (フェーズ1)</strong> → <strong>IKE セッション自体を暗号化 &amp; 認証</strong>
<ul class="wp-block-list">
<li>Diffie-Hellman (DH) を使って <strong>共有秘密鍵 (SK_d, SK_ai, SK_ar)</strong> を作る</li>



<li>この鍵で <strong>IKE メッセージ自体を暗号化</strong>する</li>



<li>ここは「<strong>鍵交換するための安全なトンネルを作る</strong>」役割</li>
</ul>
</li>



<li><strong>Child-SA (フェーズ2)</strong> → <strong>実際の IPsec トンネルのパラメータ交換 &amp; 鍵生成</strong>
<ul class="wp-block-list">
<li><strong>暗号化アルゴリズム</strong> (AES, ChaCha20 など)</li>



<li><strong>認証アルゴリズム</strong> (HMAC, SHA-256 など)</li>



<li><strong>IPsec セッション用の鍵</strong> を生成</li>
</ul>
</li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc22">なぜ IKE-SA だけじゃダメなのか？</span></h2>



<h3 class="wp-block-heading"><span id="toc23">1. IKE-SA の鍵は IKE 用、データ通信には向かない</span></h3>



<p><span class="fz-18px">IKE-SA で作った鍵 (SK_d) をそのまま IPsec 通信で使ってしまうと、もし将来この鍵が漏れたときに、<strong>過去の IKE 交渉内容も IPsec データも全部解読される</strong>リスクがあります。</span></p>



<p><span class="fz-18px">→ そこで、フェーズ2 で新しい鍵を作ることで、<strong>IKE の鍵と IPsec の鍵を完全に分離</strong>します。<br>これが <span class="bold-red"><strong>Perfect Forward Secrecy (PFS)</strong> </span>の考え方です！</span></p>



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



<h3 class="wp-block-heading"><span id="toc24">2. 複数の Child-SA を作れる柔軟性</span></h3>



<p>Child-SA を分けることで、<strong>複数の IPsec セッションを独立して管理</strong>できるんです。例えば：</p>



<ul class="wp-block-list">
<li><strong>1つ目の Child-SA</strong> → <strong>本社 ↔ 支社</strong> の通常通信 (AES-256, SHA-256)</li>



<li><strong>2つ目の Child-SA</strong> → <strong>支社 ↔ データセンター</strong> の通信 (AES-GCM, SHA-512)</li>
</ul>



<p><span class="fz-18px">もし 1つの IPsec セッションが何かしらの理由で壊れたり、鍵が古くなったりしても、<strong>他のセッションには影響が出ません</strong>。これもセキュリティと耐障害性を高める重要なポイントです。</span></p>



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



<h3 class="wp-block-heading"><span id="toc25">3. 鍵の再生成・ローテーションがスムーズ</span></h3>



<p>もし IPsec の鍵を一定期間ごとに <strong>再生成</strong> するとき、フェーズ2 (Child-SA) を独立しておけば：</p>



<ul class="wp-block-list">
<li><strong>Child-SA だけを再ネゴシエーション</strong>して、新しい鍵を作成</li>



<li><span class="red"><strong>IKE-SA は維持</strong>したまま、鍵のローテーションができる</span></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="toc26">4. フェーズ1 だけだと IPsec の細かい制御が難しい</span></h3>



<p><span class="fz-18px">Child-SA では、<strong>IPsec の細かいパラメータ (プロトコル, ポート, サブネット)</strong> を決めます。<br></span>例えば：</p>



<ul class="wp-block-list">
<li><strong>10.0.0.0/24 → 192.168.1.0/24</strong> の通信だけ IPsec</li>



<li><strong>ポート 443 (HTTPS) だけ暗号化</strong>する</li>
</ul>



<p><span class="fz-18px">フェーズ1 だけで終わらせてしまうと、こうした<strong>柔軟なポリシー制御</strong>が難しくなります。Child-SA を分けることで、<strong>複数の通信ルールを個別に管理</strong>できるわけです！</span></p>



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



<h3 class="wp-block-heading"><span id="toc27">まとめ：フェーズを分ける意味</span></h3>



<p>ざっくりまとめると：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th><strong>IKE-SA (フェーズ1)</strong></th><th><strong>Child-SA (フェーズ2)</strong></th></tr></thead><tbody><tr><td><strong>鍵交換のための安全なトンネル</strong>を作る</td><td><strong>実際のデータ暗号化用のセッション</strong>を作る</td></tr><tr><td><strong>IKE メッセージの暗号化 &amp; 認証</strong></td><td><strong>IPsec データパケットの暗号化 &amp; 認証</strong></td></tr><tr><td><strong>Diffie-Hellman で基本鍵を生成</strong></td><td><strong>フェーズ1の鍵を元に、新しいセッション鍵を生成</strong></td></tr><tr><td><strong>1つの IKE-SA に複数の Child-SA をぶら下げ可能</strong></td><td><strong>複数のトンネルや通信ポリシーを独立して管理可能</strong></td></tr><tr><td><strong>鍵更新は比較的重い (フェーズ1からやり直し)</strong></td><td><strong>鍵更新は軽い (フェーズ2 だけ再ネゴシエーション)</strong></td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc28">もしフェーズ1だけで済ませると？</span></h3>



<p><span class="fz-18px">仮にフェーズ2 を省略してフェーズ1だけでやると：</span></p>



<ul class="wp-block-list">
<li><strong>鍵漏洩時のリスク爆増</strong> → 1つ漏れたら IKE も IPsec も全部解読される</li>



<li><strong>鍵更新が重すぎる</strong> → 定期的に IKE をやり直す必要あり</li>



<li><strong>ポリシー柔軟性が低下</strong> → 1つのトンネルで全部まとめるしかない</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="toc29">結論：フェーズを分けることでセキュリティと運用性を両立</span></h3>



<p>結局のところ、IKE-SA と Child-SA を分けることで：</p>



<ul class="wp-block-list">
<li><strong>PFS (完全前方秘匿性) を実現</strong>しつつ、</li>



<li><strong>複数セッションを独立管理</strong>できて、</li>



<li><strong>鍵更新も軽くて素早くできる</strong></li>
</ul>



<p>という、<strong>セキュリティ・柔軟性・パフォーマンス</strong>のバランスが取れているんです！</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="toc30">フェーズ１の鍵が漏洩したら、元も子もないんじゃない？</span></h2>



<p>「フェーズ1の鍵（IKE-SAの鍵）が漏れたら、フェーズ2（Child-SA）の内容もバレるんじゃない？」って思いますよね。これ、本当にそのとおりで、<strong>フェーズ1の鍵が漏れたら Child-SA のやり取りも解読されてしまいます。</strong></p>



<p>でも、ここにいくつか重要なポイントがあります。なぜフェーズを分けているのか、鍵漏えいリスクとどう向き合っているのか、一つずつ解説しますね！</p>



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



<h3 class="wp-block-heading"><span id="toc31">前提確認：フェーズ1とフェーズ2の関係</span></h3>



<ul class="wp-block-list">
<li><strong>フェーズ1 (IKE-SA)</strong>
<ul class="wp-block-list">
<li><strong>IKE メッセージ自体を暗号化</strong>するための鍵を作成</li>



<li><strong>Diffie-Hellman (DH) 交換</strong>で共有秘密を作成</li>



<li>認証情報を交換して相手を確認 (証明書や事前共有鍵)</li>
</ul>
</li>



<li><strong>フェーズ2 (Child-SA)</strong>
<ul class="wp-block-list">
<li><strong>IPsec 通信用の暗号鍵</strong>や暗号アルゴリズム、パラメータを交換</li>



<li>実際のデータ通信用の鍵をフェーズ1で作った鍵から派生して作成</li>
</ul>
</li>
</ul>



<p><span class="fz-18px">つまり、<strong>フェーズ2のやり取り自体がフェーズ1の鍵で暗号化</strong>されています。なので、フェーズ1の鍵が漏れると、フェーズ2の鍵やパラメータも解読可能です。</span></p>



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



<h2 class="wp-block-heading"><span id="toc32">鍵漏えい時のリスクと設計思想</span></h2>



<h3 class="wp-block-heading"><span id="toc33">1. Diffie-Hellman の鍵交換自体は超強力</span></h3>



<p><span class="fz-18px">まず、フェーズ1の鍵は <strong>Diffie-Hellman (DH)</strong> を使って交換しています。DH 自体は、<strong>中間者攻撃が防げて、過去の通信データだけでは鍵を逆算できない</strong>設計です。なので、攻撃者が盗聴していても、リアルタイムで鍵を解読するのは事実上不可能です。</span></p>



<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="toc34">2. Perfect Forward Secrecy (PFS) の意味</span></h3>



<p><span class="fz-18px">フェーズ2で新しく鍵を作るのは、<strong>仮に1つのセッション鍵が漏れても、他のセッションには影響を与えない</strong>ようにするためです。</span></p>



<ul class="wp-block-list">
<li><strong>Child-SA の鍵が漏れる</strong> → そのセッションだけ解読される</li>



<li><strong>フェーズ1の鍵が漏れる</strong> → そのフェーズで作られた Child-SA は漏れるが、次回の IKE-SA では新しい鍵が生成される</li>
</ul>



<p><span class="fz-18px">つまり、<strong>フェーズ1の鍵が漏れても、その瞬間のやり取りは危険でも、次回のセッションには影響しない</strong>わけです。</span></p>



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



<h3 class="wp-block-heading"><span id="toc35">3. フェーズ1鍵の漏えいは超クリティカルだけど短命</span></h3>



<p><span class="fz-18px">フェーズ1で作る IKE-SA の鍵は、<strong>一定時間ごとに自動で再生成</strong>します。例えば：</span></p>



<ul class="wp-block-list">
<li><strong>30分ごとに IKE-SA を再ネゴシエーション</strong>する</li>



<li>新しい DH 鍵交換で新しい鍵を作る</li>
</ul>



<p><span class="fz-18px">これで、<strong>仮にフェーズ1の鍵が漏えいしても、攻撃者が解読できるのは短時間だけ</strong>になります。次の鍵交換ではまったく新しい鍵が使われるので、漏れた鍵はすぐに無効化されます。</span></p>



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



<h3 class="wp-block-heading"><span id="toc36">4. 鍵漏えいの現実的な経路</span></h3>



<p><span class="fz-18px">実際にフェーズ1の鍵が漏れるとしたら、以下のケースが考えられます：</span></p>



<ul class="wp-block-list">
<li><strong>エンドポイントの侵害</strong> → PC やルーターにマルウェアが仕込まれて鍵が盗まれる</li>



<li><strong>脆弱性の悪用</strong> → 古い暗号アルゴリズム (例: DH Group 1) の脆弱性を突く</li>



<li><strong>物理的攻撃</strong> → デバイスを盗まれる、証明書が物理的に抜き取られる</li>
</ul>



<p><span class="fz-18px">でも、この場合はそもそも IKE-SA の鍵だけでなく、他のセッション鍵や認証情報も抜かれる可能性が高いです。だからこそ、<strong>フェーズを分けて鍵更新を短期間で行うことでリスクを局所化</strong>しているんですね。</span></p>



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



<h3 class="wp-block-heading"><span id="toc37">フェーズ1鍵漏えい時の対策</span></h3>



<ol class="wp-block-list">
<li><strong>短い SA ライフタイム設定</strong></li>
</ol>



<ul class="wp-block-list">
<li>IKE-SA の有効期間を短くする (例: 30分)</li>



<li>短時間で鍵を再生成して被害を最小化</li>
</ul>



<ol start="2" class="wp-block-list">
<li><strong>強力な DH グループの使用</strong></li>
</ol>



<ul class="wp-block-list">
<li>DH Group 14 (2048bit) や Group 19 (ECC) を使う</li>



<li>計算量を爆増させて、鍵解読を現実的に不可能にする</li>
</ul>



<ol start="3" class="wp-block-list">
<li><strong>証明書認証の併用</strong></li>
</ol>



<ul class="wp-block-list">
<li>事前共有鍵 (PSK) だけでなく、<strong>X.509 証明書</strong>で認証</li>



<li>攻撃者が鍵を盗んでも証明書がなければセッションを張れない</li>
</ul>



<ol start="4" class="wp-block-list">
<li><strong>不正アクセスの検知・ブロック</strong></li>
</ol>



<ul class="wp-block-list">
<li>IKE-SA ネゴシエーションの失敗ログを監視</li>



<li>特定 IP から何度も鍵交換失敗したら <strong>IP アドレスをブロック</strong></li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc38">結論：フェーズ1の鍵漏えいは致命的、でも設計上の防御策は万全</span></h3>



<ul class="wp-block-list">
<li><strong>フェーズ1の鍵が漏れたら、その IKE セッションの全通信は解読される</strong> → これは事実</li>



<li><strong>でも IKE-SA は定期的に鍵を再生成し、Child-SA も完全に独立</strong></li>



<li><strong>Diffie-Hellman の強力な暗号性 + PFS の組み合わせ</strong>で、1回漏れても次回以降の通信は守られる</li>



<li><strong>セッション時間の短縮 &amp; 鍵更新の頻度増加</strong>で漏えいリスクの影響範囲を極小化</li>
</ul>



<p><span class="fz-18px">つまり、フェーズ1とフェーズ2を分けることで、鍵漏えいリスクは完全には消せないけど、<strong>攻撃者のコストを爆発的に増加させ、実際の被害範囲を極小化</strong>しているんですね。</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="toc39">フェーズ1 (IKE-SA) が短期間で終わるなら、フェーズ2 (Child-SA) の鍵ローテーションって意味あるの？</span></h2>



<p>確かに一見すると、「そもそも IKE-SA を頻繁に再作成するなら、フェーズ2の鍵だけ回してもしょうがなくない？」って思えますよね。</p>



<p>でも実は、<strong>フェーズ1とフェーズ2を分けている理由は「頻度」と「計算コスト」にあります</strong>。順番にわかりやすく解説しますね！</p>



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



<h3 class="wp-block-heading"><span id="toc40">フェーズ1とフェーズ2の役割をもう一度整理</span></h3>



<ul class="wp-block-list">
<li><strong>フェーズ1 (IKE-SA)</strong>
<ul class="wp-block-list">
<li><strong>VPNゲートウェイ同士の通信路を作るための基盤</strong>を作成</li>



<li><strong>DH鍵交換</strong>＋認証 (証明書や PSK) で安全な暗号セッションを確立</li>



<li><strong>フェーズ2の鍵交換メッセージ自体を暗号化</strong></li>
</ul>
</li>



<li><strong>フェーズ2 (Child-SA)</strong>
<ul class="wp-block-list">
<li>実際に <strong>IPsec 通信に使う暗号鍵とアルゴリズム</strong>を決定</li>



<li><strong>ESP/AH</strong> で暗号化・認証するための鍵を作成</li>
</ul>
</li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc41">なぜフェーズ1が短期間でもフェーズ2の鍵ローテーションが必要なのか？</span></h2>



<h3 class="wp-block-heading"><span id="toc42">1. IKE-SA は「メタ通信路」、Child-SA は「実データ通信」</span></h3>



<p><span class="fz-18px">フェーズ1は、VPNのトンネルそのものを作るための <strong>制御チャネル</strong> です。<strong>フェーズ1の鍵が変わる＝トンネルそのものを作り直す</strong>イメージ。</span></p>



<p><span class="fz-18px">でも、<strong>データ通信の暗号鍵 (Child-SA) を細かく回すことで、通信ごとの暗号鍵漏洩リスクを抑えられる</strong>んです。</span></p>



<p><span class="fz-18px">➡️ <strong>フェーズ1は30分ごと、Child-SAは5分ごと</strong> みたいにしておけば、たとえChild-SAが漏れてもすぐに無効化されます。</span></p>



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



<h3 class="wp-block-heading"><span id="toc43">2. フェーズ1の再ネゴシエーションは重い</span></h3>



<p><span class="fz-18px">フェーズ1の IKE-SA を再作成するときには、<strong>Diffie-Hellman 鍵交換や認証処理</strong>が必要です。これには結構な計算コストがかかります。</span></p>



<p><span class="fz-18px">一方、<strong>フェーズ2の鍵ローテーション</strong>は、フェーズ1で作った共有秘密をベースに <strong>軽量な鍵派生関数 (PRF)</strong> で新しい鍵を作るので、<strong>フェーズ1の再ネゴシエーションより圧倒的に軽い</strong>んです。</span></p>



<p><span class="fz-18px">➡️ <strong>フェーズ1は30分に1回、フェーズ2の鍵は5分に1回</strong>みたいにすれば、性能を落とさずセキュリティ強度を上げられます。</span></p>



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



<h3 class="wp-block-heading"><span id="toc44">3. セッション継続性の確保</span></h3>



<p><span class="fz-18px">もし <strong>フェーズ1が切れた瞬間に VPN トンネルごと強制切断</strong>されたら、ユーザー体験が最悪ですよね？でも、フェーズ1が維持されている間は、<strong>フェーズ2の鍵だけをローテーション</strong>することで、通信を途切れさせずに安全性を保てます。</span></p>



<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="toc45">4. 攻撃者のコストを爆増させる</span></h3>



<p><span class="fz-18px">フェーズ1が30分ごと、フェーズ2が5分ごとに鍵を回すとします。攻撃者が鍵を解読しても、<strong>たった5分分の通信データしか読めない</strong>。そして、5分後には新しい鍵に切り替わります。</span></p>



<p><span class="fz-18px">➡️ 攻撃者が常に鍵を割ろうとするなら、<strong>5分以内に鍵を解読し続けなきゃいけない</strong>ので、現実的に不可能になります。</span></p>



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



<h3 class="wp-block-heading"><span id="toc46">まとめ：フェーズ1短期終了と鍵ローテーションのバランス</span></h3>



<ul class="wp-block-list">
<li><strong>フェーズ1 (IKE-SA)</strong> を短期間で終了させるのは、万が一漏えいしたときのリスク軽減</li>



<li><strong>フェーズ2 (Child-SA)</strong> の鍵ローテーションは、実データ通信の暗号鍵を頻繁に更新してセキュリティ強度を上げる</li>



<li>フェーズ1の再作成は重いので、フェーズ2の鍵だけを軽く頻繁に回してパフォーマンスとセキュリティを両立</li>



<li><strong>フェーズ1を30分、フェーズ2を5分</strong>みたいにすると、攻撃者が鍵を解読しても被害範囲を極小化</li>
</ul>



<p><span class="fz-18px">要するに、フェーズ1はトンネル作成用の「基盤」で、フェーズ2は実データ通信の「暗号鍵」なんです。だから、フェーズ1が短期間でも、フェーズ2でこまめに鍵を回すのがベストバランスなんですね！</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="toc47">透過的な通信とは？</span></h2>



<p><span class="fz-18px">「透過的に通信が可能」というのは、<strong>アプリケーションやユーザーが特別な設定や変更をしなくても、そのまま通信できる状態</strong>を指します。</span></p>



<h3 class="wp-block-heading"><span id="toc48">ネットワークにおける「透過的」の意味</span></h3>



<ul class="wp-block-list">
<li><strong>アプリケーション層から見て、VPNの存在を意識しなくてよい状態。</strong></li>



<li><strong>IPアドレスや通信経路の変更を意識せずに、通常の通信と同じようにデータを送受信できる。</strong></li>



<li><strong>ユーザーが特別な操作をしなくても、暗号化された通信が行われる。</strong></li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc49">IPsecにおける「透過的な通信」の具体例</span></h3>



<h4 class="wp-block-heading"><span id="toc50">1. トンネルモードでの透過性</span></h4>



<p><strong>（適用例: ルータ間のVPN）</strong></p>



<ul class="wp-block-list">
<li><strong>拠点A（192.168.1.0/24）と拠点B（192.168.2.0/24）が、インターネットを経由して安全に通信できる。</strong></li>



<li>ユーザーやアプリケーションは、VPNの存在を意識する必要なし。</li>



<li>ルータAとルータBが<strong>IPsecトンネルを確立し、暗号化通信を自動で行う。</strong></li>



<li>例: 社内PCが拠点Aから拠点Bのサーバーにアクセスすると、<strong>暗号化されたIPsecトンネルを通って安全に通信できる。</strong></li>
</ul>



<h4 class="wp-block-heading"><span id="toc51">2. トランスポートモードでは透過的でない場合もある</span></h4>



<p><strong>（適用例: 端末間の暗号化通信）</strong></p>



<ul class="wp-block-list">
<li>端末（PCやサーバー）でIPsecを設定しなければならない。</li>



<li><strong>アプリケーション側の設定変更が必要な場合がある</strong>（例: IPsec対応アプリ）。</li>



<li>ネットワーク機器（ルータなど）を経由する場合、<strong>経路上のデバイスがIPsecを認識できない可能性がある。</strong></li>
</ul>



<h6 class="wp-block-heading"><span id="toc52">トランスポートモードの特徴</span></h6>



<ul class="wp-block-list">
<li><span class="red">ルータを経由する通信には適さない</span>。</li>



<li>IPヘッダはそのまま残し、<strong>ペイロード（データ部分）のみを暗号化</strong>する。</li>



<li><strong>エンドツーエンドの通信（端末同士の暗号化）に適している</strong>。</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc53">結論: 「透過的なVPN」が求められる場合はトンネルモードが適切！</span></h3>



<p>🔹 <strong>理由:</strong></p>



<ul class="wp-block-list">
<li>ルータ間で暗号化を行い、<strong>エンドユーザー（PCやスマホ）はIPsecを意識しなくてよい。</strong></li>



<li><strong>既存のアプリケーションやネットワーク設定を変更する必要がない。</strong></li>



<li>送信元・宛先IPを新しいIP（VPNゲートウェイのIP）に置き換えるので、外部に元の通信が見えにくい。</li>
</ul>



<p><span class="fz-18px">💡 <strong>透過的 = 利用者やアプリケーションに負担をかけずに、安全な通信ができること！</strong></span></p>
</div></div>



<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="toc54">IKEにおけるメインモードとアグレッシブモードの違いは？</span></h2>



<p><strong>IKEにおけるメインモードとアグレッシブモードというのはIKEv1</strong>の話です。v2ではこれらのモードはなくなりました。</p>



<h4 class="wp-block-heading"><span id="toc55">🔹 IKEv1 のフェーズとメッセージ交換</span></h4>



<p>IKEv1 では、IPsecのセキュリティアソシエーション（SA）を確立するために、<strong>フェーズ1とフェーズ2の2つのフェーズ</strong>があります。</p>



<ol class="wp-block-list">
<li><strong>フェーズ1</strong>: IKE SA（鍵交換用のセキュリティアソシエーション）を確立する
<ul class="wp-block-list">
<li><strong>メインモード（6回のメッセージ交換）</strong></li>



<li><strong>アグレッシブモード（3回のメッセージ交換）</strong></li>
</ul>
</li>



<li><strong>フェーズ2</strong>: IPsec SA（実際のデータを暗号化するためのSA）を確立する
<ul class="wp-block-list">
<li><strong>通常、フェーズ2は3回のメッセージ交換で完了（Quick Mode）</strong></li>
</ul>
</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc56">🔹 メインモード（Main Mode） – 6回のメッセージ交換</span></h3>



<p>メインモードは、<strong>相手のID情報を隠しながら鍵交換を行うため、より安全な方法</strong>です。</p>



<p><strong>6回のやり取りの流れ:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ステップ</th><th>送信者</th><th>受信者</th><th>内容</th></tr></thead><tbody><tr><td>1</td><td>Initiator → Responder</td><td>Diffie-Hellman（DH）グループの提案（暗号アルゴリズムなど）</td><td></td></tr><tr><td>2</td><td>Responder → Initiator</td><td>DHグループの決定、暗号方式の選択</td><td></td></tr><tr><td>3</td><td>Initiator → Responder</td><td>DHパラメータ送信（公開鍵）</td><td></td></tr><tr><td>4</td><td>Responder → Initiator</td><td>DHパラメータ送信（公開鍵）</td><td></td></tr><tr><td>5</td><td>Initiator → Responder</td><td>認証情報（事前共有鍵または証明書）を暗号化して送信</td><td></td></tr><tr><td>6</td><td>Responder → Initiator</td><td>認証情報を暗号化して送信し、IKE SA 確立</td><td></td></tr></tbody></table></figure>



<p>👉 <strong>ポイント:</strong></p>



<ul class="wp-block-list">
<li><strong>鍵交換の前に、どの暗号アルゴリズムを使うか決定する。</strong></li>



<li><strong>ID情報は暗号化されて送られるため、盗聴されても相手が分からない。</strong></li>



<li><strong>6回のやり取りで、より安全に鍵交換ができる。</strong></li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc57">🔹 アグレッシブモード（Aggressive Mode） – 3回のメッセージ交換</span></h3>



<p>アグレッシブモードは、メインモードと比べて<strong>通信を高速化するために設計された方式</strong>ですが、<strong>セキュリティが低下する</strong>というデメリットがあります。</p>



<p><strong>3回のやり取りの流れ:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ステップ</th><th>送信者</th><th>受信者</th><th>内容</th></tr></thead><tbody><tr><td>1</td><td>Initiator → Responder</td><td>DHパラメータ + 暗号方式 + ID情報（プレーンテキスト）</td><td></td></tr><tr><td>2</td><td>Responder → Initiator</td><td>DHパラメータ + ID情報（プレーンテキスト） + 認証情報</td><td></td></tr><tr><td>3</td><td>Initiator → Responder</td><td>認証情報を送信し、IKE SA確立</td><td></td></tr></tbody></table></figure>



<p>👉 <strong>ポイント:</strong></p>



<ul class="wp-block-list">
<li>メインモードでは「鍵交換の前に暗号方式を決定する」のに対し、アグレッシブモードでは<strong>最初のメッセージでID情報と鍵交換を一緒に送る</strong>ため、<strong>3回のやり取りで完了する</strong>。</li>



<li>ただし、<strong>ID情報が暗号化されずに送られるため、盗聴されると相手の情報が漏れるリスクがある。</strong></li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc58">🔹 IKEv2（Internet Key Exchange version 2）について</span></h3>



<p>IKEv2 では、メインモードやアグレッシブモードといった概念は<strong>なくなりました</strong>。</p>



<ul class="wp-block-list">
<li><strong>IKEv2 はすべて3回のメッセージ交換で鍵交換を完了できる。</strong></li>



<li><strong>フェーズ1とフェーズ2の区別がなくなり、単純化された。</strong></li>



<li><strong>より強力なセキュリティ機能を備えている。（EAP認証やDDoS耐性強化など）</strong></li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc59">🔹 じゃあ、なんでIKEv1の話がまだ出てくるの？</span></h3>



<p><strong>理由: IKEv1 もまだ使われているから</strong></p>



<ul class="wp-block-list">
<li><strong>古い機器ではIKEv1しか対応していない場合がある。</strong></li>



<li><strong>ネットワークスペシャリスト試験では、レガシー技術も問われることが多い。</strong></li>



<li><strong>IPsecの基礎を理解するためには、IKEv1の知識も役に立つ。</strong></li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc60">結論</span></h3>



<ul class="wp-block-list">
<li><strong>「メインモード vs アグレッシブモード」＝ IKEv1 の話</strong></li>



<li><strong>「6回のやり取り」＝ メインモードの鍵交換手順の話</strong></li>



<li><strong>IKEv2 では、3回のメッセージ交換で鍵交換が完了するので、メインモードやアグレッシブモードの概念はない。</strong></li>
</ul>



<p>つまり、<strong>「6回のやり取りがあるのは、IKEv1のメインモードの話」であり、IKEv2では不要！</strong></p>
</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="【洋楽】僕と一緒に行こうよ One Direction - Why Don&#039;t We Go There" width="1256" height="707" src="https://www.youtube.com/embed/lJrbMZdCCKA?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 &#8211; Why Don&#8217;t We Go There</strong></figcaption></figure>
]]></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-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">問題：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>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-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><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-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">ケルベロスについての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-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</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>ALPN（Application-Layer Protocol Negotiation）をネスペ午後問を解きながら９秒で理解！</title>
		<link>https://ascend-beyond.com/study/6664/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 23 Feb 2025 12:51:07 +0000</pubDate>
				<category><![CDATA[Study]]></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=6664</guid>

					<description><![CDATA[目次 問題設問1設問2設問3設問1の解答：ALPNが使用されるプロトコルの組み合わせとして 最も適切なもの を以下から選択せよ。解説設問2の解答：ALPNが導入されていない場合、クライアントとサーバがアプリケーションプロ [&#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">ALPN</span>は、TCP接続後の<span class="red">TLSハンドシェイク中</span></span>（ClientHello,ServerHello）<span class="fz-18px">に行われ、クライアントとサーバが使う<span class="red">アプリケーションプロトコル</span>を<span class="red">自動選択</span>する仕組みです。これにより、<span class="red">プロトコルの不一致</span>や<span class="red">無駄な通信</span>を防ぎます。特にHTTPは<span class="red">1つのポートで複数プロトコル</span><span class="fz-18px">（例: HTTP/1.1, HTTP/2）</span>を扱うため、ALPNがあると最初から最適なプロトコルで通信でき、効率的です。逆に、アプリケーションプロトコルの中でも、SMTPやFTPなどはポートごとに役割が決まっているので、ALPNは基本不要です。</span><br></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-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><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">設問1の解答：ALPNが使用されるプロトコルの組み合わせとして 最も適切なもの を以下から選択せよ。</a><ol><li><a href="#toc6" tabindex="0">解説</a></li></ol></li><li><a href="#toc7" tabindex="0">設問2の解答：ALPNが導入されていない場合、クライアントとサーバがアプリケーションプロトコルを協調する際に起こりうる具体的な問題を 2つ 挙げよ。</a></li><li><a href="#toc8" tabindex="0">設問3の解答：(1) 選択されたプロトコル名を答えよ。(2) この選択によって得られる通信上のメリットを 2つ 挙げよ。</a></li><li><a href="#toc9" tabindex="0">まとめ</a><ol><li><a href="#toc10" tabindex="0">🌐 ALPN（Application-Layer Protocol Negotiation）とは？</a></li><li><a href="#toc11" tabindex="0">🚚 ALPNの流れ（簡単なイメージ）</a></li><li><a href="#toc12" tabindex="0">🧩 ALPNがあると何がうれしいの？</a></li><li><a href="#toc13" tabindex="0">📘 具体例：ブラウザとWebサーバ</a></li><li><a href="#toc14" tabindex="0">🎯 簡単なまとめ</a></li></ol></li></ol>
    </div>
  </div>

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



<p>企業Aでは、Webサービスの通信効率を向上させるため、HTTPS通信においてHTTP/2の利用を検討している。エンジニアBは、クライアントとサーバが適切なプロトコルを選択する仕組みについて調査を行い、ALPNがその役割を担うことを突き止めた。</p>



<p>エンジニアBは、以下のような通信の流れを確認した。</p>



<ol class="wp-block-list">
<li>クライアントはTLSハンドシェイク時に「ClientHello」メッセージを送信し、ALPN拡張フィールドに対応可能なプロトコルのリスト（例: <code>http/1.1</code>, <code>h2</code>）を含めた。</li>



<li>サーバは「ServerHello」メッセージで、対応可能なプロトコルの中から選択したプロトコルを返した。</li>



<li>その後、選択されたプロトコルに基づいてアプリケーションレイヤの通信が開始された。</li>
</ol>



<p>このとき、エンジニアBは次の点について疑問を抱いた。</p>



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



<p>ALPNが使用されるプロトコルの組み合わせとして <strong>最も適切なもの</strong> を以下から選択せよ。</p>



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



<li>SMTP over TLS</li>



<li>HTTPS over TLS</li>



<li>DNS over TLS</li>
</ol>



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



<p>ALPNが導入されていない場合、クライアントとサーバがアプリケーションプロトコルを協調する際に起こりうる具体的な問題を <strong>2つ</strong> 挙げよ。</p>



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



<p>以下のTLSハンドシェイクメッセージの内容を読み取り、どのプロトコルが選択されたか答えよ。</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="ClientHello:
    ALPN: h2, http/1.1

ServerHello:
    ALPN: h2" 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">ClientHello:</span></span>
<span class="line"><span style="color: #F8F8F2">    ALPN: h2, http/1.1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">ServerHello:</span></span>
<span class="line"><span style="color: #F8F8F2">    ALPN: h2</span></span></code></pre></div>



<p>(1) 選択されたプロトコル名を答えよ。<br>(2) この選択によって得られる通信上のメリットを <strong>2つ</strong> 挙げよ。</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/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></p>
</div></div>



<h2 class="wp-block-heading"><span id="toc5">設問1の解答：ALPNが使用されるプロトコルの組み合わせとして 最も適切なもの を以下から選択せよ。</span></h2>



<p><strong>3. HTTPS over TLS</strong></p>



<h3 class="wp-block-heading"><span id="toc6">解説</span></h3>



<p><span class="bold-red">ALPN</span>は、TLSハンドシェイク中にクライアントとサーバが<span class="red">アプリケーションレイヤのプロトコル</span>を<span class="red">協議</span>する仕組みです。これは特に、<span class="red">同じポートで複数</span>のプロトコル（例えばHTTP/1.1やHTTP/2）が動作する可能性がある場合に重要です。ALPNは主に <strong>HTTPS (HTTP over TLS)</strong> で使われ、HTTP/1.1 や HTTP/2、最近では HTTP/3 などのプロトコルをネゴシエーションします。</p>



<p>FTPやSMTPもTLSで暗号化できますが、これらのプロトコルではALPNは一般的に使われません。</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/fbf080d965fb4fc8f6c938074c51be0b-150x150.png" alt="哲学者トニーくん" class="speech-icon-image"/></figure><div class="speech-name">哲学者トニーくん</div></div><div class="speech-balloon">
<p><span class="fz-18px">要するに、HTTPは１つのポート（８０番）で複数（HTTP/1,HTTP/2など）のプロトコルを扱う。で、それをクライアントとサーバ間で決めるのは少々手間がかかる。そこで、ALPNを使えば、スムーズに使うプロトコルを決定できるというわけです。</span><br><br><span class="fz-18px">FTPやSMTPもアプリケーション層のプロトコルではありますが、通常、１つのポートでは単一のプロトコルしか動作しないので、ALPNを使う必要がありません。</span></p>
</div></div>



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



<h2 class="wp-block-heading"><span id="toc7">設問2の解答：ALPNが導入されていない場合、クライアントとサーバがアプリケーションプロトコルを協調する際に起こりうる具体的な問題を 2つ 挙げよ。</span></h2>



<p>ALPNがない場合に起こる問題は以下のようなものがあります：</p>



<ol class="wp-block-list">
<li><strong>プロトコルミスマッチによる接続失敗</strong><br>クライアントがHTTP/2を使いたいと思っても、サーバがHTTP/1.1しか対応していない場合、<span class="red">プロトコルの不一致</span>で通信が成立しないことがあります。</li>



<li><strong>余計なラウンドトリップが発生する</strong><br>ALPNがない場合、クライアントはまずHTTP/1.1で通信を開始し、サーバがアップグレードヘッダを返してHTTP/2に移行するという余計な往復通信が必要になることがあります。これにより、<span class="red">TLS接続の確立にかかる時間が増加</span>します。</li>
</ol>



<!-- 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"/>



<h2 class="wp-block-heading"><span id="toc8">設問3の解答：(1) 選択されたプロトコル名を答えよ。(2) この選択によって得られる通信上のメリットを 2つ 挙げよ。</span></h2>



<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="ClientHello:
    ALPN: h2, http/1.1

ServerHello:
    ALPN: h2" 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">ClientHello:</span></span>
<span class="line"><span style="color: #F8F8F2">    ALPN: h2, http/1.1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">ServerHello:</span></span>
<span class="line"><span style="color: #F8F8F2">    ALPN: h2</span></span></code></pre></div>



<p>(1) <strong>h2</strong>（HTTP/2）</p>



<p>(2) <strong>通信上のメリット</strong></p>



<ol class="wp-block-list">
<li><strong>多重化による高速化</strong><br>HTTP/2では1つのTCP接続内で複数の<span class="red">ストリーム</span>を並行して送信できるため、リクエスト/レスポンスの<span class="red">順序を気にせず</span>効率的にデータ転送できます。</li>



<li><strong>ヘッダ圧縮によるデータ削減</strong><br>HTTP/2では<span class="red">HPACK</span>という圧縮方式を使い、リクエストヘッダを圧縮します。これにより、特に繰り返し送信されるCookieや認証情報などが効率的に送られ、トラフィック量が削減されます。</li>
</ol>



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



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



<p><span class="bold-red">ALPN</span>は、TLSハンドシェイク中にアプリケーションプロトコルを効率的に決定する重要な仕組みです。特にHTTP/2やHTTP/3のような最新プロトコルを利用する際に、余計な通信のやり取りを削減しつつ、クライアントとサーバのプロトコルミスマッチを防ぐことができます。</p>



<h3 class="wp-block-heading"><span id="toc10">🌐 ALPN（Application-Layer Protocol Negotiation）とは？</span></h3>



<p>ALPNは、<strong>TLS通信</strong>の最初のやりとり（TLSハンドシェイク）のときに、<strong><em>クライアントとサーバがどのアプリケーションプロトコルを使うか相談する仕組み</em></strong>です。</p>



<p>例えば、WebブラウザがWebサーバと通信するとき、<strong>HTTP/1.1</strong> なのか <strong>HTTP/2</strong> なのかを事前に決める必要があります。その決め方に <strong>ALPN</strong> が使われます。</p>



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



<h3 class="wp-block-heading"><span id="toc11">🚚 ALPNの流れ（簡単なイメージ）</span></h3>



<ol class="wp-block-list">
<li><strong>クライアントの希望を伝える</strong><br>ブラウザ（クライアント）は、「HTTP/2を使いたいけど、HTTP/1.1でもOKだよ！」という候補リストをサーバに送ります。これは <strong>ClientHello</strong> というメッセージの中に含まれます。</li>
</ol>



<p>🔸 例：クライアント → サーバ<br>「私は <strong>HTTP/2</strong> と <strong>HTTP/1.1</strong> を話せます。どっち使う？」</p>



<ol start="2" class="wp-block-list">
<li><strong>サーバがプロトコルを選ぶ</strong><br>サーバは自分が対応できるプロトコルをチェックし、クライアントが提案したリストの中から選びます。そして <strong>ServerHello</strong> メッセージで選択結果を返します。</li>
</ol>



<p>🔸 例：サーバ → クライアント<br>「じゃあ <strong>HTTP/2</strong> を使おう！」</p>



<ol start="3" class="wp-block-list">
<li><strong>選んだプロトコルで通信開始</strong><br>TLSハンドシェイクが終わると、選ばれたプロトコルで本格的な通信が始まります。</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc12">🧩 ALPNがあると何がうれしいの？</span></h3>



<ul class="wp-block-list">
<li><strong>高速なプロトコル選択</strong> → プロトコルを後から変えるときの余計なやり取りがいらない</li>



<li><strong>複数プロトコルの同時対応</strong> → サーバ側でHTTP/1.1とHTTP/2を同じポートで待機できる</li>



<li><strong>セキュリティの強化</strong> → TLSの一部として動くので安全な通信が保たれる</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc13">📘 具体例：ブラウザとWebサーバ</span></h3>



<p>例えば、ブラウザがGoogleにアクセスするとき、ALPNで以下のようなやりとりが行われます。</p>



<ol class="wp-block-list">
<li>ブラウザ：「<strong>h2 (HTTP/2)</strong> と <strong>http/1.1</strong> どっちでもOK！」</li>



<li>サーバ：「じゃあ <strong>h2 (HTTP/2)</strong> にしよう！」</li>



<li>通信スタート！（HTTP/2で効率的にデータやり取り）</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc14">🎯 簡単なまとめ</span></h3>



<p>ALPNは、TLS接続の最初の段階で、<strong>どのアプリケーションプロトコルを使うか自動的に決めてくれる仕組み</strong>です。これにより、クライアントとサーバが無駄なやり取りをせず、スムーズに最適なプロトコルで通信できるようになります。</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="ゴーゴー魚釣り / 工藤祐次郎" width="1256" height="707" src="https://www.youtube.com/embed/V5z1vCaEI3Y?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">ゴーゴー魚釣り / 工藤祐次郎 covered by Fujiぼっち弾き語り</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-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">そもそも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>
	</channel>
</rss>
