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

<channel>
	<title>#ハイパーバイザー</title>
	<atom:link href="https://ascend-beyond.com/tag/%E3%83%8F%E3%82%A4%E3%83%91%E3%83%BC%E3%83%90%E3%82%A4%E3%82%B6%E3%83%BC/feed/" rel="self" type="application/rss+xml" />
	<link>https://ascend-beyond.com</link>
	<description></description>
	<lastBuildDate>Sat, 10 Oct 2026 04:51:03 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</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>令和5年（2022年）ネスペ午後Ⅱ　問Ⅱ　解答解説</title>
		<link>https://ascend-beyond.com/study/8423/</link>
		
		<dc:creator><![CDATA[管理人]]></dc:creator>
		<pubDate>Sat, 10 Oct 2026 04:51:02 +0000</pubDate>
				<category><![CDATA[Study]]></category>
		<category><![CDATA[ネスペ]]></category>
		<category><![CDATA[#コンテナ]]></category>
		<category><![CDATA[#ハイパーバイザー]]></category>
		<guid isPermaLink="false">https://ascend-beyond.com/?p=8423</guid>

					<description><![CDATA[目次 設問１（１）ア：ハイパーバイザー　イ：VRID　ウ：255（３）バックアップがVRRPアドバタイズメントを決められた時間内に受信しなくなる設問２（１）外部ではコンテナサーバに付与したIPアドレスが利用されることはな [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">設問１</a><ol><li><a href="#toc2" tabindex="0">（１）ア：ハイパーバイザー　イ：VRID　ウ：255</a></li><li><a href="#toc3" tabindex="0">（３）バックアップがVRRPアドバタイズメントを決められた時間内に受信しなくなる</a></li></ol></li><li><a href="#toc4" tabindex="0">設問２</a><ol><li><a href="#toc5" tabindex="0">（１）外部ではコンテナサーバに付与したIPアドレスが利用されることはないから</a></li><li><a href="#toc6" tabindex="0">（２）ホストヘッダーフィールド</a></li><li><a href="#toc7" tabindex="0">（４）宛先IP:172.16.0.16　宛先ポート：80</a></li></ol></li><li><a href="#toc8" tabindex="0">設問３</a><ol><li><a href="#toc9" tabindex="0">（１）①NAPT機能　②ポートフォワード機能</a></li><li><a href="#toc10" tabindex="0">（２）複数のIPアドレスを設定し、IPアドレスごとに専用APを識別する仕組み</a><ol><li><a href="#toc11" tabindex="0">Q.なんで「ポート番号が同じ」だと困るの？</a></li><li><a href="#toc12" tabindex="0">2. どうやって解決するの？（今回の解答）</a></li></ol></li></ol></li><li><a href="#toc13" tabindex="0">設問５</a><ol><li><a href="#toc14" tabindex="0">（１）APのFQDNとIPアドレスをPCのhostsファイルに記載する</a></li><li><a href="#toc15" tabindex="0">（２）APサーバに対するPCからのアクセスがなくなっていることを確認する</a></li><li><a href="#toc16" tabindex="0">p.13 PCのホスト名を管理する意味は？</a></li><li><a href="#toc17" tabindex="0">Q.動的なIPアドレスをどうやってDNSで管理しているのか？</a></li><li><a href="#toc18" tabindex="0">p.14 Q.プロキシはどうやって戻りパケットをクライアントに割り振っているの？</a></li><li><a href="#toc19" tabindex="0">p.14 Q.独自のプロトコルを利用ってどうゆうこと？</a></li><li><a href="#toc20" tabindex="0">p.15 Q.仮想サーバでVRRPv3を動作させるってなに？</a></li><li><a href="#toc21" tabindex="0">p.15 コンテナ仮想化技術の概要（イラスト/ハイパーバイザーの違い等..）</a></li><li><a href="#toc22" tabindex="0">p.16 Q.コンテナ仮想化の時に共用リバースプロキシを置く理由は？</a></li><li><a href="#toc23" tabindex="0">Q.コンテナ仮想化で共用リバースプロキシを使わないとどうなる？</a></li><li><a href="#toc24" tabindex="0">Q.なんでコンテナサーバには仮想スイッチと仮想ブリッジがあるの？</a></li><li><a href="#toc25" tabindex="0">Q.仮想スイッチと仮想ブリッジの違いは？</a></li><li><a href="#toc26" tabindex="0">Q.仮想ルータのポートフォワードは何をしているの？</a></li><li><a href="#toc27" tabindex="0">p.19 Q.専用APになった途端、懸念事項が増える理由は？</a></li><li><a href="#toc28" tabindex="0">Q.コンテナ仮想化技術が適さないとはどういうこと？</a></li><li><a href="#toc29" tabindex="0">Q.ハイパーバイザー型とコンテナの使い分けの基準は？</a></li></ol></li></ol>
    </div>
  </div>

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



<h3 class="wp-block-heading"><span id="toc2">（１）ア：ハイパーバイザー　イ：VRID　ウ：255</span></h3>



<p class="wp-block-paragraph"><strong>ア：ハイパーバイザー</strong><br>　物理的なハードウェア（CPU、メモリ、ハードディスクなど）の上に、複数の「仮想マシン」を同時に動かすための専用ソフトウェア（管理者・司令塔）のこと。これがないと、1台の物理サーバーの上で「WindowsとLinuxを同時に動かす」といったことができない。</p>



<p class="wp-block-paragraph"><strong>イ：VRID</strong><br>　VRIDとはVRRPの識別子のこと。1~255の値をとる。<br>２<sup>8</sup>-1個の1~255の値をとることができる。（2<sup>8</sup>は256だが、０は使われないため1~255となる）</p>



<p class="wp-block-paragraph"><strong>ウ：255</strong><br> 上述したようにVRIDは２<sup>8</sup>-1個(０は除く）なので255となる</p>



<h3 class="wp-block-heading"><span id="toc3">（３）バックアップがVRRPアドバタイズメントを決められた時間内に受信しなくなる</span></h3>



<p class="wp-block-paragraph">マスターは定期的に<span class="bold-blue">VRRPアドバタイズメント</span>をマルチキャスト（<span class="bold-blue">224.0.0.18</span>）で送信する。それを時間内に受け取らないと、障害と判断してバックアップはマスターの仮想IP/MACを引き継ぐ。</p>



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



<h3 class="wp-block-heading"><span id="toc5">（１）外部ではコンテナサーバに付与したIPアドレスが利用されることはないから</span></h3>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="665" height="537" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-29.jpg" alt="" class="wp-image-8442" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-29.jpg 665w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-29-300x242.png 300w" sizes="(max-width: 665px) 100vw, 665px" /></figure>



<p class="wp-block-paragraph">この問題では、コンテナサーバ内の仮想ブリッジセグメントがほかのコンテナの仮想ブリッジセグメントと同じIPアドレスを使ってもよい理由が問われている。<br>A.仮想ブリッジ間で同じIPをつかってもよい理由は👇である。<br><strong>外部から見えないから：</strong> <br>　コンテナ内のプライベートIPはあくまでサーバー内の閉じた空間だけで使われるものであり、外部のネットワーク（サーバーセグメント）でそのIPがそのままルーティングされたり利用されたりすることはないため。<br><strong>仮想ルータが隠蔽してくれるから：</strong> <br>　外部との通信はすべてコンテナサーバー内の「仮想ルータ」がNAPT（ポートフォワード）で中継・変換するため、外から見れば各コンテナサーバーの代表IP（およびポート）しか見えていない。そのため、異なるコンテナサーバーの間で内部のプライベートIPが重複していても、お互いに干渉せず共存できる。<br>つまり、「<span class="blue">外部からコンテナサーバ内に付与したIPアドレスが利用されることはないから</span>」という回答になる。</p>



<h3 class="wp-block-heading"><span id="toc6">（２）ホストヘッダーフィールド</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="868" height="101" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-30.png" alt="" class="wp-image-8443" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-30.png 868w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-30-300x35.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-30-765x89.png 765w" sizes="(max-width: 868px) 100vw, 868px" /></figure>



<p class="wp-block-paragraph">現在の構成ではすべての宛先IPアドレスが共用リバースプロキシ宛てになり、そこで終端する。では、その後はどうやってコンテナに届けるの？<br>A.<span class="bold-blue">ホストヘッダーフィールド</span>を見る。HTTPのホストヘッダーフィールドには<span class="blue">FQDN</span>（ホスト名とドメインを合わせた修飾子）が格納されているため、そのFQDNへパケットを振り分ければIPに依存しない振り分けが可能になる。<br><strong>共用リバースプロキシでの終端と識別：</strong> <br>　外部からの通信の宛先IPアドレスがすべて同じプロキシ（例: <code>192.168.0.98</code>）であっても、プロキシがパケットの中身（HTTPのHostヘッダー）を読み取ることで、「これはAP0宛てだな」「こっちはAP1宛てだな」と正確に識別できる。<br><strong>適切な振り分け：</strong> <br>　識別した結果をもとに、あらかじめ決められたルール（表4など）に従って、裏側にある適切なコンテナサーバーやポートへリクエストを振り分けることが可能になる。</p>



<h3 class="wp-block-heading"><span id="toc7">（４）宛先IP:172.16.0.16　宛先ポート：80</span></h3>



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



<p class="wp-block-paragraph">この問題は図と照らし合わせながら進めていくと答えが見えてくる。</p>



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



<p class="wp-block-paragraph">仮想ルータのプロセスを見ると(iii)が該当している。それを見ると、宛先IPが172.16.0.16、宛先ポートが80番であることが分かる。</p>



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



<h3 class="wp-block-heading"><span id="toc9">（１）①NAPT機能　②ポートフォワード機能</span></h3>



<p class="wp-block-paragraph">独自プロトコルの場合、L3・L4の書き換えがアプリケーションに影響を及ぼすパターンもある。そのため、途中でIPやポートを書き換えるNAPT機能やポートフォワード機能を挟んでも、アプリの通信が壊れずにちゃんと動くかをAPごとにテスト・確認しなければならない</p>



<h3 class="wp-block-heading"><span id="toc10">（２）複数のIPアドレスを設定し、IPアドレスごとに専用APを識別する仕組み</span></h3>



<p class="wp-block-paragraph">この問題では、専用APが同一のポート番号で運用されている場合に、どうやって振り分ければいいの？ということが聞かれている。では、１つずつ進んでいこう！</p>



<h4 class="wp-block-heading"><span id="toc11">Q.なんで「ポート番号が同じ」だと困るの？</span></h4>



<ul class="wp-block-list">
<li>通常のWebAP（HTTP）であれば、たとえ同じIP・同じポート（80番など）であっても、HTTPリクエストの中身にある「<span class="bold-blue">Hostヘッダーフィールド（FQDN）</span>」をプロキシが読み取って、「こっちはAP0、あっちはAP1」とスマートに振り分けることができる。</li>



<li>しかし、専用APは独自のプロトコルを使っているため、HTTPのHostヘッダーのような便利な目印が使えない（またはプロキシが中身を解釈できない）場合がある。</li>



<li>その結果、「どちらの専用APも同じポート（例えば <code>TCP 5000番</code> など）で待ち受けています」となったとき、「ポート番号が一緒だから、ルータやロードバランサーがどちらに振り分ければいいか判断できない！」という問題が起きる。</li>
</ul>



<h4 class="wp-block-heading"><span id="toc12">2. どうやって解決するの？（今回の解答）</span></h4>



<p class="wp-block-paragraph">ポート番号が被ってしまって区別できないのであれば、「入り口のIPアドレスを専用APごとに別々にする」というアプローチを取る。</p>



<ul class="wp-block-list">
<li><strong>仕組みのイメージ：</strong>
<ul class="wp-block-list">
<li>専用AP（その1）用のアドレス：<code>192.168.0.101</code> （ポートは共通の <code>5000</code> 番）</li>



<li>専用AP（その2）用のアドレス：<code>192.168.0.102</code> （ポートは共通の <code>5000</code> 番）</li>
</ul>
</li>



<li>こうしておけば、たとえ宛先のポート番号がどちらも「5000番」で同じだったとしても、「宛先のIPアドレス」が <code>101</code> なら専用AP（その1）、<code>102</code> なら専用AP（その2）と、ルータやロードバランサーがIPアドレスを基準にして完璧に識別・振り分け（ロードバランス）できるようになる。</li>
</ul>



<p class="wp-block-paragraph">ここまででおそらくこう思うだろう。。ん？当たり前じゃん！問題に出すようなことか？問題にだすんだからもっと画期的な頭を使った回答だと思ったら超当たり前のことじゃん。。。<br>恐らく拍子抜けしたことでしょう。でも、ネットワークスペシャリストの問題ではたまにこういう拍子抜けする問題も出てくるので、答えが浮かばなかったら超無理やりでも強引だと思うような答えを書くと意外とそれが正解だったりする。</p>



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



<h3 class="wp-block-heading"><span id="toc14">（１）APのFQDNとIPアドレスをPCのhostsファイルに記載する</span></h3>



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



<figure class="wp-block-image size-full"><img decoding="async" width="850" height="365" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-37.png" alt="" class="wp-image-8450" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-37.png 850w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-37-300x129.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-37-766x329.png 766w" sizes="(max-width: 850px) 100vw, 850px" /></figure>



<p class="wp-block-paragraph">これは、テスト用PCからコンテナ内のAPへのテストするフェーズをあらわしている。<br>注目したいのは、項番５のDNS切り替えよりも前の段階でテストをしているということ。つまり、今までと同じ手順でアクセスしようとしてもDNSが切り替わっていないので、一生、コンテナ内のAPにたどり着くことができない。。。ではどうするのか？<br>A.「<span class="bold-blue">APのFQDNとIPアドレスをPCのhostsファイルに記載する</span>」。DNSは切り替えられていない場合でも、「もう、ローカルで強制的にアクセスできるようにしちゃおうよ！」というのが<span class="bold-blue">hostsファイル</span>である。<br>基本的なDNS問い合わせの流れは<br>１．hostsファイル<br>２．スタブリゾルバのキャッシュ<br>３．フルサービスリゾルバのキャッシュ<br>４．権威DNS<br>となっている。ここのhostsファイルをスタティックに設定することでDNSサーバに反映されていないFQDNにもアクセスが可能になる。</p>



<h3 class="wp-block-heading"><span id="toc15">（２）APサーバに対するPCからのアクセスがなくなっていることを確認する</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="810" height="364" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-38.png" alt="" class="wp-image-8451" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-38.png 810w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-38-300x135.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-38-768x345.png 768w" sizes="(max-width: 810px) 100vw, 810px" /></figure>



<p class="wp-block-paragraph">APサーバと通信中であるにもかかわらず、停止するとユーザエクスペリエンス（UX）が悪くなる。なぜなら途中で通信が切れたり、セッションが中断されて再度ログインしなくてはならなかったりとUX面でのデメリットが起きる。<br>なので、「<span class="bold-blue">APサーバに対するPCからのアクセスがなくなっていることを確認する</span>」ことが大切。</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="toc16">p.13 PCのホスト名を管理する意味は？</span></h3>



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



<p class="wp-block-paragraph">社内ネットワークでは、システム管理者や監視サーバーが社用PCに対して<span class="blue">リモートデスクトップ接続</span>をしたり、ソフトウェアの配布・遠隔サポート（メンテナンス）を行ったり、セキュリティインシデント発生時に特定のPCを特定・隔離したりする必要がある。その際、「IPアドレス」だけでなく「ホスト名」でPCを識別・名前解決できると非常に都合が良いため、コンテンツDNSサーバで管理されている。</p>



<h3 class="wp-block-heading"><span id="toc17">Q.動的なIPアドレスをどうやってDNSで管理しているのか？</span></h3>



<p class="wp-block-paragraph">PCなどはDHCPを使って動的にIPアドレスが割り当てられていることが多い。では、その動的なIPアドレスをDNSに反映するにはどうしたらいいの？<br>A.<span class="bold-blue">DDNS</span>（Dynamic DNS）という仕組みを使っている。<br>PCがネットワークに接続して<span class="bold-blue">DHCPサーバー</span>からIPアドレスを取得した際、そのDHCPサーバー（あるいはPC自身）が自動的にDNSサーバーへ連絡し、「今のこのPCのIPアドレスは〇〇です」とDNSレコードをリアルタイムに登録・更新できる。<br>これにより、IPアドレスが動的に変わっても、DNSを見れば常に最新のIPアドレスが引けるようになっている。</p>



<h3 class="wp-block-heading"><span id="toc18">p.14 Q.プロキシはどうやって戻りパケットをクライアントに割り振っているの？</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/10/image-23.png" alt="" class="wp-image-8427" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-23.png 812w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-23-300x30.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-23-762x77.png 762w" sizes="(max-width: 812px) 100vw, 812px" /></figure>



<p class="wp-block-paragraph">結論から言うと、プロキシはセッション管理によって通信の対応を管理している。<br>簡単な挙動はこんな感じ👇<br>１．社内PC Aがプロキシにアクセスするとき、プロキシ側で「PC A専用の受信用ポート（あるいは<span class="blue">セッション</span>）」が割り当てられる。<br>２．プロキシがインターネット側へリクエストを出す際、プロキシ自身のIPアドレスと「特定の送信元ポート番号」を使って外へ通信する。<br>３．インターネット上のサーバーから応答が帰ってくるとき、そのパケットの「宛先ポート番号」には、プロキシが外へ出すときに使ったそのポート番号が入ってくる。<br>４．プロキシは「このポート番号宛てに来た応答だから、最初にPC Aから受けた通信の返答だな」と判断し、PC Aへそのまま返す。</p>



<h3 class="wp-block-heading"><span id="toc19">p.14 Q.独自のプロトコルを利用ってどうゆうこと？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="843" height="124" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-25.png" alt="" class="wp-image-8430" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-25.png 843w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-25-300x44.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-25-761x112.png 761w" sizes="(max-width: 843px) 100vw, 843px" /></figure>



<p class="wp-block-paragraph">独自のプロトコルとは、文字通りHTTPなどの一般化されたプロトコルではないということ。つまり、既存のプロキシを使うと、解釈できない可能性があることをここで暗に示している。</p>



<h3 class="wp-block-heading"><span id="toc20">p.15 Q.仮想サーバでVRRPv3を動作させるってなに？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="889" height="85" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-26.png" alt="" class="wp-image-8431" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-26.png 889w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-26-300x29.png 300w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-26-763x73.png 763w" sizes="(max-width: 889px) 100vw, 889px" /></figure>



<p class="wp-block-paragraph">VRRPってルータ（ファーストホップ）を冗長化するものじゃなかったっけ？ なんでサーバーで動かしてるの？<br>A.結論から言うと、「ルータではなく、サーバーのIPアドレス（仮想IP）を2台で共有し、障害時に自動で切り替えるための“仕組み”としてVRRPをそのまま流用している」から。</p>



<h3 class="wp-block-heading"><span id="toc21">p.15 コンテナ仮想化技術の概要（イラスト/ハイパーバイザーの違い等..）</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th></th><th>VM</th><th>コンテナ</th></tr></thead><tbody><tr><td>仮想化対象</td><td>ハードウェア/マシン環境</td><td>OS上のプロセス環境</td></tr><tr><td>ゲストOS</td><td><strong>必要</strong></td><td><strong>基本不要</strong></td></tr><tr><td>カーネル</td><td>VMごとに持つ</td><td><strong>ホストと共有</strong></td></tr><tr><td>起動</td><td>比較的遅い</td><td><strong>速い</strong></td></tr><tr><td>リソース</td><td>比較的大きい</td><td><strong>軽量</strong></td></tr><tr><td>異なるOSカーネル</td><td><strong>可能</strong></td><td>基本不可</td></tr><tr><td>主な用途</td><td>OS単位の分離</td><td>アプリ単位の分離<br></td></tr></tbody></table></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://ascend-beyond.com/wp-content/uploads/2026/10/physical-component-2-1024x559.jpg" alt="" class="wp-image-8439"/></figure>



<h3 class="wp-block-heading"><span id="toc22">p.16 Q.コンテナ仮想化の時に共用リバースプロキシを置く理由は？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="693" height="535" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-27.jpg" alt="" class="wp-image-8434" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-27.jpg 693w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-27-300x232.png 300w" sizes="(max-width: 693px) 100vw, 693px" /></figure>



<p class="wp-block-paragraph">ハイパーバイザー型の時は<span class="blue">共用リバースプロキシ</span>を導入していない。でも、コンテナ仮想化になったら急に、何の説明もなく共用リバースプロキシが追加されている。なぜ？<br>A.<span class="bold-blue">仮想マシン</span>はそれぞれが独立した「本物のPC」に近い状態なので、NICや仮想SWをとおして、1台ずつに直接IPアドレスを割り当てて外から直接アクセスさせやすい構造になっている。<br>一方、<span class="bold-blue">コンテナサーバー</span>の中にある個々の「WebAPコンテナ」は、基本的に<span class="blue">内部用のプライベートなIPアドレス</span>で動いている。そのため、インターネットや外部のPCから、直接中のコンテナのIPアドレスを指定して通信することができない。だからこそ、外からの窓口となる「共有リバースプロキシ」を外側にドンと構え、外部からのアクセスを一旦すべてそこで受け止めて、中のコンテナたちへ適切に中継・振り分け（ロードバランス）をする必要がある。</p>



<h3 class="wp-block-heading"><span id="toc23">Q.コンテナ仮想化で共用リバースプロキシを使わないとどうなる？</span></h3>



<p class="wp-block-paragraph"><strong><span class="fz-20px">1. IPアドレスがすぐ枯渇する ＆ ルーティングが破綻する</span></strong></p>



<ul class="wp-block-list">
<li>仮想マシンは数台〜数十台程度しか作らないことが多い。コンテナは「軽くて大量に作れる」のが最大の武器。</li>



<li>もしコンテナ1つひとつに、サーバーセグメントのまともなIPアドレスを直接割り当てていたら、アプリをスケール（増産）させるたびに大量のIPアドレスを消費し、ネットワークのIP枯渇を招く。また、ルータが管理する経路情報（ルーティングテーブル）の数も爆発してしまう。</li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-20px">2. コンテナの最大の強みである「動的な増減（スケーリング）」ができなくなる</span></strong></p>



<ul class="wp-block-list">
<li>システムにアクセスが殺到したとき、コンテナ環境では「じゃあ今すぐAP0のコンテナを2個から5個に増やそう！」ということが瞬時に行われる。</li>



<li>もしコンテナに直接IPが固定されていたら、増やすたびにDNSの書き換えやクライアント側の設定変更が必要になり、自動でのスケールアウトが非常に難しくなる。</li>



<li><strong>共有リバースプロキシがあれば：</strong> 裏側でコンテナが何個増えようが減ろうが、クライアントは常にプロキシ（のIP）だけを見ていればいいので、窓口を一本化できる。<br>→VRRPやれば窓口一本化できるじゃん？<br><span class="fz-16px">A.VRRPアドバタイズメントパケットが大量に発生して帯域を圧迫する。本来VRRPとは数台程度で運用するものだが、コンテナは数百台動作させることがざらにあるためVRRPは不向き。</span></li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-20px">3. ポート番号の競合（かぶり）を防ぐ</span></strong></p>



<ul class="wp-block-list">
<li>コンテナの中では、それぞれのアプリケーションが「80番ポート」や「8080番ポート」など、決まったポートを使って動きたがる。</li>



<li>もしプライベートIPとNAPT（ポートフォワード）の仕組みを使わず、直接外のネットワークにさらそうとすると、同じポートを使うコンテナ同士がバッティングして起動できなくなる。</li>



<li>内部はプライベートIP（例: <code>172.16.0.16</code> 等）で閉じ込め、コンテナサーバーの仮想ルータ（NAPT）でポート番号をうまく変換（例: 8000番、8001番に変換）してあげるからこそ、同じポートを使うコンテナを安全に同居させることがでる。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc24">Q.なんでコンテナサーバには仮想スイッチと仮想ブリッジがあるの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="654" height="528" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-28.jpg" alt="" class="wp-image-8436" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-28.jpg 654w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-28-300x242.png 300w" sizes="(max-width: 654px) 100vw, 654px" /></figure>



<p class="wp-block-paragraph">Q.ハイパーバイザー型の時はホストサーバ内には仮想スイッチしかなかった。しかし、コンテナサーバの場合、仮想ルートと仮想ブリッジが内部にある。これらの違いはなぜ起きるの？<br>A.コンテナサーバーの中身が、外部から切り離された「<span class="bold-blue">完全に独立したプライベートなネットワーク空間（L3空間）</span>」になっているから。ハイパーバイザー型の際は、DNSに直接、仮想サーバのIPを指定できた。しかし、コンテナの場合はコンテナ内の閉じた空間でIP振り分けが行われている。そのため、外と内の異なるネットワークをつなぐために、仮想ルータが必要になる。</p>



<h3 class="wp-block-heading"><span id="toc25">Q.仮想スイッチと仮想ブリッジの違いは？</span></h3>



<p class="wp-block-paragraph">ハイパーバイザー型の時は仮想スイッチが使われ、コンテナ仮想化の時は仮想ブリッジが使われている。これらの違いは何なのか？<br>A.基本的な動作は両者ともL2スイッチの挙動をする<br><span class="bold-blue">仮想スイッチ</span>（Virtual Switch）：<br>　主に<span class="blue">ハイパーバイザー型の仮想マシン環境</span>（VMwareやHyper-Vなど）でよく使われる名称。「物理的なL2スイッチをソフトウェアでそのまま再現している」というニュアンスが強いため、スイッチと呼ばれる<br><span class="bold-blue">仮想ブリッジ</span>（Virtual Bridge）：<br>　主に<span class="blue">Linuxのカーネル</span>機能や<span class="blue">コンテナ環境</span>（Dockerなど）でよく使われる名称。Linuxの伝統的なネットワーク機能である「ブリッジング（複数のインターフェースを橋渡しする機能）」をそのまま利用しているため、古くから「ブリッジ」と呼ばれている。</p>



<h3 class="wp-block-heading"><span id="toc26">Q.仮想ルータのポートフォワードは何をしているの？</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="738" height="483" src="https://ascend-beyond.com/wp-content/uploads/2026/10/image-33.jpg" alt="" class="wp-image-8446" srcset="https://ascend-beyond.com/wp-content/uploads/2026/10/image-33.jpg 738w, https://ascend-beyond.com/wp-content/uploads/2026/10/image-33-300x196.png 300w" sizes="(max-width: 738px) 100vw, 738px" /></figure>



<p class="wp-block-paragraph">仮想ルータがポートフォワードでWebAPコンテナに振り分けた後、それの応答が仮想ルータに届いたら共用リバースプロキシに渡すよね？これさ、複数のパケットが共用リバースプロキシから届いたら、WebAPコンテナからの応答が、共用リバースプロキシのどのセッションだっけ？ってごちゃごちゃにならないの？<br>A.結論から言うと、共有リバースプロキシが、コンテナサーバーへリクエストを送る際に「<span class="blue">送信元ポート</span>（エフェメラルポート）」を毎回ランダムに（バラバラに）変えて送信しているため、絶対に混ざったりぐちゃぐちゃになったりしない。</p>



<h3 class="wp-block-heading"><span id="toc27">p.19 Q.専用APになった途端、懸念事項が増える理由は？</span></h3>



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



<p class="wp-block-paragraph">Q.専用APを使うとなった途端、懸念点が出てきたりとか対処すべきことがでてきた。。。なんで？なんで専用APになった途端にそんな環境がガラッと変化したみたいなニュアンスを出すの？具体的にどういうこと？<br>A.HTTP通信（WebAP）から「独自のプロトコル（専用AP）」に変わると途端に考慮事項が増える理由は、一言で言うと「世の中の便利なネットワーク機器やプロキシが、その独自ルールを理解してくれないから」である。具体的に何が面倒になるのか、大きく2つの理由に分けて解説する。</p>



<p class="wp-block-paragraph"><strong>1. ロードバランサー（振り分け）の限界（O課長の指摘）</strong></p>



<ul class="wp-block-list">
<li><strong>HTTPの場合：</strong><br>HTTPは標準化されているため、リバースプロキシ（NginxやHAProxyなど）がパケットの中身（HostヘッダーやURL）を<span class="blue">簡単に読み取り</span>、「このリクエストはAP0へ、こっちはAP1へ」とスマートに<span class="blue">振り分けられる</span>。</li>



<li><strong>独自プロトコルの場合：</strong> <br>独自の通信規約（バイナリ形式など）を使っている場合、一般的なHTTPプロキシはその<span class="blue">中身を理解できない</span>。 さらに、もし複数の専用APが「同じポート番号」を使って待ち受けている場合、従来のL4（TCP/IP）の仕組みや単なるIP/ポートの転送だけでは、「どの専用AP宛ての通信なのか」を外側から識別して綺麗にロードバランスするのが非常に難しくなる。そのため、その独自プロトコルを解釈できる専用の負荷分散製品が必要になる。</li>
</ul>



<p class="wp-block-paragraph"><strong>2. 仮想ルーター（NAPT）との相性問題（Rさんの懸念）</strong></p>



<ul class="wp-block-list">
<li><strong>HTTPの場合：</strong><br>HTTPは、途中でIPアドレスやポート番号がNAPT（ポートフォワード）で<span class="blue">書き換え</span>られても、アプリケーション層（ブラウザとサーバー）の動作には基本的に<span class="blue">影響しない</span>。</li>



<li><strong>独自プロトコルの場合：</strong> <br>アプリケーションの仕様によっては、パケットの中身（データ本体）のなかに「自分自身のIPアドレスやポート番号」を書き込んで通信相手に伝えているような古い・特殊な設計のプロトコルが存在する。 もしそんな通信を途中の仮想ルーターでNAPT変換してしまうと、パケットのヘッダー情報と、中身のデータに書かれているIP/ポートが矛盾を起こし、通信が途中でプツッと切れてしまうという現象が起きる。そのため、「仮想ルーターのNAT機能を挟んでも本当に動くのか？」という実機テストや検証が必要になる。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc28">Q.コンテナ仮想化技術が適さないとはどういうこと？</span></h3>



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



<p class="wp-block-paragraph">結論から言うと、<strong>「コンテナだから専用APが絶対に動かない」わけではあり</strong>ない<strong>。</strong>最大の分かれ目は、「ネットワークの仕組み（IPやポートの変換・共有）をどれだけ強制されるか」という点にある。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px">1. なぜ「コンテナ」だと専用APの運用が難しくなるのか？（ハードル）</span></strong><br>前にお話しした通り、コンテナ環境というのはひとつのOS（カーネル）やホストを複数で共有するエコシステム。そのため、以下の制約が強くかかる。</p>



<ul class="wp-block-list">
<li><strong>ホストのIPと仮想ルータ（NAPT/ポートフォワード）の壁：</strong><br> コンテナ環境では、外部からの通信は「<span class="blue">コンテナサーバーの物理IP ＋ ポートフォワード（DNAT）」がほぼ必須。</span>必ず経由して内部のコンテナへ届けられる。 すでに見た通り、アプリの内部（プログラム）が自分のIPやポート番号に依存している特殊な独自プロトコル（専用AP）の場合、このルータによる勝手なアドレス・ポート変換（NAPT）のせいで、アプリの動作やセッションが壊れてしまうリスクが高い。</li>



<li><strong>ポートの競合問題：</strong> <br>複数の専用APが「同じポート番号」を使って待ち受けている場合、コンテナ側で綺麗にさばくためには、先ほど問題にあがった「入り口のIPアドレスを分ける仕組み（複数のIP設定）」や、それを識別できる高度な専用ロードバランサーをわざわざ用意・構築しなければならない。</li>
</ul>



<p class="wp-block-paragraph">つまり、「コンテナ化しようとすると、ネットワークの変換（NAPT）や特殊なIP割り当てのせいで、アプリ側に大改修が必要になったり、インフラの設計がめちゃくちゃ面倒になる」ため、「コンテナ化のメリット（軽量・迅速な起動・リソース効率）よりも、手間やリスクが勝ってしまう＝適さない」となる。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px">2. なぜ「サーバー仮想化（VM）」なら専用APをそのまま動かせるのか？</span></strong><br>一方で、従来のサーバー仮想化技術（VM：仮想マシン環境）はどうだろう？</p>



<ul class="wp-block-list">
<li><strong>VMは「1台の独立したコンピュータ」として振る舞える：</strong> <br>VM（仮想サーバー）は、コンテナと違って自分専用の仮想OS（ゲストOS）を丸ごと持っている。</li>



<li><strong>物理サーバーと同じ感覚でネットワークを直結できる：</strong> <br>VMのネットワーク（仮想NIC）は、ホストの複雑なNAPTやポートフォワードを無理に経由させなくても、L2スイッチングのレベルで「独自のIPアドレス」や「専用のポート」をそのまま外部にダイレクトに露出させることができる。</li>



<li><strong>アプリの改修が不要：</strong><br> これまでの「物理サーバー上で動いていた専用APの環境」を、そのままそっくりVMの中に移植すればよいため、IPやポートが勝手に書き換えられるストレスや、コンテナ特有のネットワーク制約を受けずに済む。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc29">Q.ハイパーバイザー型とコンテナの使い分けの基準は？</span></h3>



<p class="wp-block-paragraph">ハイパーバイザー型には台数がすくないため直接、外部とつながるIPを振り分けられる。一方、コンテナは台数が多いので内部セグメント用のIPが割り当てられる。その結果、コンテナはNAPTとポートフォワードを要求する。<br>ここで一つの疑問。。では、ハイパーバイザー型とコンテナはどういう状況だったらどっちを使った方がいいとかっていう基準とかは合ったりするの？そこらへんがよくわからない。</p>



<p class="wp-block-paragraph"><strong><span class="fz-20px">１. サーバー仮想化（VM）を選ぶべきケース（向いているシステム）</span></strong><br>コンテナでは都合が悪く、VM（ハイパーバイザー）を選ぶべきなのは次のようなケース。</p>



<ul class="wp-block-list">
<li><strong>レガシーアプリケーションや独自の専用AP：</strong> <br>今回の試験問題に出てきたような、独自のプロトコルを使っていたり、アプリ内部が「<span class="blue">自分のIPアドレスやポート番号」にガッツリ依存</span>しているもの。コンテナ特有のNAPTやポート変換を挟むと壊れてしまうため、VMで独立したOS環境を与えてあげる必要がある。</li>



<li><strong>異なるOS環境を混在させたい場合：</strong> <br>例えば、Linuxのコンテナサーバー上で、どうしてもWindows Server専用のアプリケーションを動かしたい場合など（コンテナはホストのOSカーネルを共有するため、<span class="blue">異なるOS</span>の混在ができない）。</li>



<li><strong>強固なセキュリティ・完全な隔離が必要な場合：</strong> <br>コンテナはカーネルを共有しているため、理論上は仮想マシン（VM）のハイパーバイザーによる完全なハードウェアレベルの隔離よりも<span class="blue">セキュリティの境界</span>が弱くなる。厳格なマルチテナント分離が必要な場合はVMが選ばれる。</li>
</ul>



<p class="wp-block-paragraph"><strong><span class="fz-20px">２. コンテナを選ぶべきケース（向いているシステム）</span></strong><br>コンテナが選ばれるのは、単に「軽いから」ではなく、システムの性質がクラウドネイティブに向いている場合。</p>



<ul class="wp-block-list">
<li><strong>マイクロサービス構造のWebアプリ：</strong> <br>機能を細かく分割し、<span class="blue">アクセス増減に合わせて</span>コンテナを何十・何百個と自動で高速にスケールアウト（増減）させたい場合。</li>



<li><strong>標準的なプロトコル（HTTP/HTTPS等）を使うサービス：</strong> <br>プロキシやリバースプロキシ、ロードバランサーが標準で中身を解釈して綺麗に振り分けられる仕組みの上で動くもの。</li>



<li><strong>短時間でデプロイ・起動を繰り返したい場合：</strong> <br>数秒で起動・停止ができるため、CI/CD（継続的インテグレーション・デリバリー）や開発環境の統一に非常に強い。</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
