令和4年午後2問1設問4

fukuikeさん  
(No.1)
直接問題にはなっていないのですが「NATテーブルのエントリ作成」についてイメージがわいていません。
IPAの正答から読み解くと、図3の説明(6)の動作は
・SSL-VPN装置は、利用者ID情報を検索キーとして仮想PCのIPアドレスの情報を取得し、それを用いてNATテーブルのエントリを作成する

ということになると思います。それに関連して質問させてください。

NATの変換前のIPアドレスは「VIP」という理解であっていますか。
VIPは1つだけだと思っていますがあっていますでしょうか?(DNATは1対多?)
NATテーブルのエントリの項目には利用者IDも含まれるのでしょうか?
2025.02.26 08:03
Nullpoさん 
(No.2)
NATテーブルはIPアドレスの対応表です。
こんなイメージです。

[変換前(inner)] [変換後(outer)]
192.168.0.5 a.b.c.d
192.168.0.6 a.b.c.e
192.168.0.7 a.b.c.f

「NATエントリ」の作成とは上のテーブルに追加することです。
192.168.0.8 a.b.c.g

NATはただのIPアドレステーブルなので認証情報などは含まれません。

この問題では、
仮想PCがそれぞれ利用者に1つ割り当てられていることから、
仮想PCのIPアドレスがソース側になります。
LBやVRRPなどで使われるVIPとは概念が異なります。

>利用者ID情報を検索キーとして仮想PCのIPアドレス
SSL-VPN装置は上位層で認証を行いますが、そこで得られた利用者IDを用いて
仮想PCのIPアドレスと利用者IDを対応づけます。
2025.02.27 08:08
fukuikeさん  
(No.3)
Nullpo様

コメントありがとうございます。またNATテーブルのイメージについてご提示いただきありがとうございました。

まだまだ理解ができていないため、更問になってしまいますがご了承くださいませ(Nullpo様以外からのコメントも歓迎です)
ーーー
仮想PCがそれぞれ利用者に1つ割り当てられていることから、
仮想PCのIPアドレスがソース側になります
ーーー
この認識がそもそも異なっていました。

本文中に「SSL-VPN装置のNATテーブルは、SSL-VPNクライアントからの通信を適切な仮想PCに振り向けるためのテーブル」と記載されています。図2の注記2の記載も併せて仮想PCのアドレスはデスティネーション側(変換後)と理解したのですが、間違いでしょうか?

また3つの質問に対してNullpo様のご認識としては以下の通りと理解すれば良いでしょうか?
NATの変換前のIPアドレスは「VIP」という理解であっていますか。
 →間違っている?
VIPは1つだけだと思っていますがあっていますでしょうか?(DNATは1対多?)
 →間違っている?
NATテーブルのエントリの項目には利用者IDも含まれるのでしょうか?
 →含まれない
2025.02.27 10:51
犬。さん 
(No.4)
>fukuikeさん
こんにちは。

今回のNATは、ご認識されているように、DNAT(宛先NAT)です。

SSL-VPNクライアントには「IPアドレスプールから割り当てられたIPアドレス」が割り当てられており、ここが送信元になります。
そして、宛先はSSL-VPN装置のVIPですね。

さらに、NATテーブルのエントリに従い、宛先を個々人に割り当てられた仮想PCのIPアドレスに変換することで、VDI上の仮想PCに接続する流れかと思います。

整理すると、以下のような感じでしょうか。

>NATの変換前のIPアドレスは「VIP」という理解であっていますか。
宛先NATの変換前のIPアドレスは、「VIP」で間違いありません。

>VIPは1つだけだと思っていますがあっていますでしょうか?(DNATは1対多?)
SSL-VPN装置上のVIPなので、1つで合っています。
DNATそのものが1体多というより、今回の要件は1対多でなければならないということですね。

>NATテーブルのエントリの項目には利用者IDも含まれるのでしょうか?
ネットワーク層、トランスポート層の情報しかありませんので、利用者IDは含むことができません。

如何でしょうか?
2025.02.27 13:37
Nullpoさん 
(No.5)
>仮想PCのアドレスはデスティネーション側(変換後)
→ご認識のとおりです。

この設問のNATテーブルは次のようになっているものと考えられます。

個人PCのIPアドレス(SSL-VPNトンネルのアドレス) 仮想PCのIPアドレス

DNATでSSL-VPN装置宛の宛先IPアドレス(図中ではVIP)を、DNATを使い利用者IDに紐付く仮想PCのIPアドレスに置き換えて中継します。


NATの変換前のIPアドレスは「VIP」という理解であっていますか。
 →間違っている?
個人PCから送信する宛先IPアドレスは図中の「VIP」です。
SSL-VPN装置が上記のNATテーブルに従って仮想PCの宛先アドレスに変換します。

VIPは1つだけだと思っていますがあっていますでしょうか?(DNATは1対多?)
 →間違っている?
図2の場合は1つだけです。利用者はまずVIP宛に送信し、SSL-VPN装置が利用者ごとにアドレス変換して中継します。

NATテーブルのエントリの項目には利用者IDも含まれるのでしょうか?
 →含まれない
ご認識のとおりです。ユーザテーブルに含まれます。
2025.02.27 13:38
fukuikeさん  
(No.6)
犬。さま、Nullpoさま

ありがとうございます。
VIPが一つで仮想PCのIPが複数の場合、あるパケットがSSL-VPN装置のVIP宛に届いた時、変換すべき宛先IPアドレスはどのようにして一意に決まるのでしょうか。
ユニークなものとしては利用者IDが考えられるなと思ったのですが、NATテーブルにその情報がもていないのであれば、何になるのでしょうか。
2025.02.27 16:49
Nullpoさん 
(No.7)
>変換すべき宛先IPアドレスはどのようにして一意に決まるのでしょうか。

表1のSSL-VPN装置の説明に処理が書かれています。
SSL-VPN装置は認証を行うため、どの利用者IDが使われたかを知っています。
利用者IDをキーとして、ユーザテーブルから仮想PCのIPアドレスを抜き出します。

利用者ID→(ユーザテーブル)→仮想PCのIPアドレス
2025.02.27 18:47
fukuikeさん  
(No.8)
Nullpoさん

ありがとうございます。
ーーー
SSL-VPN装置は認証を行うため、どの利用者IDが使われたかを知っています。
利用者IDをキーとして、ユーザテーブルから仮想PCのIPアドレスを抜き出します。
ーーー
それは私も理解できているのだと思います。抜き出した仮想IPアドレスをもちいて、NATテーブルのエントリが作成されることも理解できました。変換前のVIPは単一であり利用者IDは含まれないことも理解しました。

仮想PC起動に作成されるユーザテーブルの情報のイメージ
[利用者ID]-[仮想PCのIPアドレス]
dさんID - a.b.c.d
eさんID - a.b.c.e
fさんID - a.b.c.f
gさんID - a.b.c.g

NATテーブルのエントリ追加イメージ
[変換前(inner)] [変換後(outer)]
192.168.0.2 a.b.c.d
192.168.0.2 a.b.c.e 
192.168.0.2 a.b.c.f
(ここに新たにgさんIDで検索して得られたIPアドレスをエントリ追加)
192.168.0.2 a.b.c.g

これは図3の動作の概要で言う(6)の処理内容であり、動作概要(10)の処理ではないのかなと考えています。この理解はあっていますでしょうか?
動作概要(10)の場面でいかにして適切な仮想PCのIPアドレスが選択されDNAT処理ができるのか、こちらが理解できておらず、解説いただければありがたいです。

私がイメージしている動作概要(10)で使われるNATテーブルは以下のようなもので、多分ここに誤解があるのかなと。。。
[変換前(inner)] [変換後(outer)]
192.168.0.2 a.b.c.d
192.168.0.2 a.b.c.e 
192.168.0.2 a.b.c.f
192.168.0.2 a.b.c.g
2025.03.01 06:09
Nullpoさん 
(No.9)
>私がイメージしている動作概要(10)で使われるNATテーブルは以下のようなもので、多分ここに誤解があるのかなと。。。

>[変換前(inner)] [変換後(outer)]
>192.168.0.2 a.b.c.d
>192.168.0.2 a.b.c.e 
>192.168.0.2 a.b.c.f
>192.168.0.2 a.b.c.g
NATテーブルは、変換前に同じ値は存在しません。このような設定の場合は、同一変換前IPアドレスが複数含まれるため、変換できずエラーとなるか、1行目のみの静的NATとしてa.b.c.dの変換動作になるかのどちらかでしょう。

変換前のIPアドレスは個人PCにインストールされたSSL-VPNクライアントのIPアドレスで、IPアドレスプールから払い出されます。(172.16.3.1-172.16.3.254)
VPNトンネルが確立されているため、個人PCのグローバルIPアドレスは不問です。

a.b.c.x (xは任意)を仮想PCのIPアドレスとすると、想定されるNATテーブルは次のようになると推察されます。

==[NATテーブル]===
172.16.3.1 a.b.c.d
172.16.3.2 a.b.c.e
172.16.3.3 a.b.c.f
・・・

図3(6)から、ユーザテーブルには利用者IDとIPアドレスプールから払い出されたIPアドレスの対応が含まれています。

===[ユーザテーブル]===
user01 172.16.3.1 その他設定情報・・・
user02 172.16.3.2   〃
user03 172.16.3.3   〃
・・・

NATテーブルとユーザテーブルを突合すれば、利用者IDと仮想PCのIPアドレスの組み合わせが決定します。
user01 - a.b.c.d
user02 - a.b.c.e
user03 - a.b.c.f
2025.03.01 08:08
fukuikeさん  
(No.10)
Nullpoさん
何度も更問してしまい、申し訳ございません。
都度ご回答いただき感謝しております。

ーーー
変換前のIPアドレスは個人PCにインストールされたSSL-VPNクライアントのIPアドレスで、IPアドレスプールから払い出されます。(172.16.3.1-172.16.3.254)


==[NATテーブル]===
172.16.3.1 a.b.c.d
172.16.3.2 a.b.c.e
172.16.3.3 a.b.c.f
・・・
ーーー


172.16.3.1 は変換前のIPアドレスでしょうか、送信元のIPアドレスではないでしょうか。a.b.c.dは宛先IP(変換後)と言うことかと思います。

動作概要(6)のNATエントリが作成される場面で、利用者IDと送信元IPアドレスが紐づいているので、上記のようなテーブル(変換前IPアドレスは省略)が作成されており、動作概要(10)の場面ではこのテーブルの送信元IPアドレスに従ってDNAT処理されると一旦理解しましたが、この理解であっていますでしょうか。
2025.03.01 10:42
Nullpoさん 
(No.11)
>172.16.3.1 は変換前のIPアドレスでしょうか、送信元のIPアドレスではないでしょうか。a.b.c.dは宛先IP(変換後)と言うことかと思います。
変換前か後かと言われたら変換前です。
個人PCにインストールされたSSL-VPNクライアントが保持する送信元IPアドレス(VPNトンネルのIPアドレス)になります。

個人PC(172.16.3.x)から仮想PC(a.b.c.d)へのパケットの流れは以下のようになります。

送信元 172.16.3.x 宛先 VIP
SSL-VPN装置のVIPへ受信後、NATにより仮想PCのIPアドレスに変換、
元のパケットの宛先がa.b.c.dに変更されて中継される
送信元 172.16.3.x 宛先 a.b.c.d

戻りは
送信元a.b.c.d 宛先 172.16.3.x
SSL-VPN装置が送信元IPアドレスをVIPに変換して中継
送信元 VIP 宛先 172.16.3.x
これでクライアントと仮想PC間の通信が成立します。

>動作概要(6)のNATエントリが作成される場面で、利用者IDと送信元IPアドレスが紐づいているので、上記のようなテーブル(変換前IPアドレスは省略)が作成されており、動作概要(10)の場面ではこのテーブルの送信元IPアドレスに従ってDNAT処理されると一旦理解しましたが、この理解であっていますでしょうか。

ご認識のとおりです。
2025.03.01 12:19
fukuikeさん  
(No.12)
Nullpo様
何度も丁寧なご回答ありがとうございました。
2025.03.02 06:11

返信投稿用フォーム

スパム防止のためにスレッド作成日から40日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop