令和元年秋期試験午後問題 問4

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】

問4 ネットワーク

NATに関する次の記述を読んで,設問1,2に答えよ。

 IPv4のIPアドレスのうち,全世界で重複しないように管理されているグローバルIPアドレスはインターネットへの接続に利用でき,プライベートIPアドレスは社内LANなどの閉じたネットワークだけで利用できる。
 プライベートIPアドレスだけが割り当てられている機器(以下,LAN内機器という)とインターネットに接続されている外部の機器(以下,インターネット機器という)とは直接通信することはできないが,例えば,NAT(Network Address Translation)を使うことによって通信することができるようになる。
 本問で扱うNATは,NAPT(Network Address Port Translation)とも呼ばれる,ルータが搭載している機能であり,通過するパケットのIPアドレス及びポート番号を書き換えることによって,LAN内機器とインターネット機器との通信を可能にする。表1に,LAN内機器とインターネット機器との通信の際にルータを通過するパケットの,IPアドレス及びポート番号の書換えの概要を示す。ここで,送信パケットとはLAN内機器がインターネット機器に向けて送信するパケットのことをいい,受信パケットとはルータがインターネット機器から受信するパケットのことをいう。
pm04_1.png
 NATには,静的NATと動的NATがある。
 静的NATでは,ルータのグローバルIPアドレス及びルータのポート番号の組みとLAN内機器のIPアドレス及びLAN内機器のポート番号の組みとの対応をあらかじめ定義しておき,その定義に基づいて,送信パケットと受信パケットの書換え対象のIPアドレス及びポート番号を書き換える。
 動的NATでは,送信パケットと受信パケットの書換え対象のIPアドレス及びポート番号を,次のように書き換える。
  • 送信パケットの送信元IPアドレス及び送信元ポート番号の書換え
    1. 送信パケットの送信元IPアドレス及び送信元ポート番号の,書換え前の組み(LAN内機器のIPアドレス及びLAN内機器のポート番号の組み)と書換え後の組み(ルータのグローバルIPアドレス及びルータのポート番号の組み)とを,関連付けて一定期間記憶する。
    2. 送信パケットの送信元IPアドレス及び送信元ポート番号の組みを,書換え前の組みとして記憶している間は,関連付けられている書換え後の組みに書き換える。
    3. 送信パケットの送信元IPアドレス及び送信元ポート番号の組みを,書換え前の組みとして記憶していないときは,ルータに割り当てられている幾つかのグローバルIPアドレスのうちの一つと,そのIPアドレスで使用されていないポート番号のうちの一つとの組みに書き換える。
  • 受信パケットの宛先IPアドレス及び宛先ポート番号の書換え
    1. 受信パケットの宛先IPアドレスと宛先ポート番号の組みが,上記(1)①の書換え後の組みとして記憶されている間は,関連付けられている書換え前の組みに書き換える。

設問1

次の(1)~(3)のケースのうち,静的NATよりも動的NATの方が適しているものを,解答群の中から選べ。
  • インターネット機器からアクセス可能なサーバを,LAN内機器として設置する。
  • LAN内機器から,インターネット機器にアクセスする。
  • インターネットを介する異なるLANのLAN内機器同士が,あらかじめ決まった固定のポートを使い,相互に通信する。
解答群
  • (1)だけ
  • (1)と(2)
  • (1)と(3)
  • (2)だけ
  • (2)と(3)
  • (3)だけ
解答選択欄
  •  
  •  

解説

本文中にも丁寧に説明されているように、NAT(Network Address Translation)は、プライベートIPアドレスとグローバルIPアドレスを1対1で相互変換する技術です。NATの考え方にポート番号を組み合わせることで、1つのグローバルIPアドレスで複数の端末を同時にインターネットに接続できるようにする技術がNAPTです。
pm04_5.png
設問では本文中から静的NAT、動的NATの特徴を把握した上で、場面に応じた使い分けが問われています。

静的NATでは、あらかじめLAN内機器に決まったプライベートIPアドレスとポート番号を割り振るので、そのLAN内機器が使用するポートは毎回固定されます。外部から内部の機器にアクセスする際には、その機器が使用するポート番号を指定すれば、NATが定義に基づいて自動的に対象の機器のアドレスに変換してくれます。したがって、インターネット側からLAN内の機器にアクセスしたいときに有効な方式です。

一方、動的NATではLAN内機器が使用するポート番号が毎回異なるので、インターネット側からLAN内機器にはアクセスしようがありません。適当なポート番号を指定してもルータは変換テーブルにないパケットを破棄するからです。不便な反面、LAN内機器を外部から秘匿できるセキュリティ効果があるため、インターネットに接続するLAN内機器を外部からのアクセスから守る際には有効です。また、動的NATではLAN内機器を増設した場合でも変換テーブルを定義しなおす必要がないというメリットがあります。
  • 静的NATが適しています。動的NATではポート番号が毎回異なるので、インターネット側からLAN内機器にアクセスすることは困難です。
  • 正しい。LAN内機器を秘匿できる点、及びLAN内機器が増えても定義の手間が掛からない点から動的NATが適しています。
  • 静的NATが適しています。ポート番号が毎回異なる動的NATでは、インターネットを介してLAN内機器同士が通信することは困難です。
∴エ:(2)だけ

設問2

次の記述中の に入れる正しい答えを,解答群の中から選べ。ここで,a1~a3に入れる答えは,aに関する解答群の中から組合せとして正しいものを選ぶものとする。

 IPv6とIPv4とは互換性がないので,IPv6のネットワーク内の機器(以下,IPv6機器という)とIPv4のネットワーク内の機器(以下,IPv4機器という)とは直接通信することができない。IPv6機器からIPv4機器にアクセスする方法の一つに,NATの機能を拡張したNAT64と,DNSの機能を拡張したDNS64との組合せによる方法がある。この方法によるIPv6機器からIPv4機器へのアクセスの流れを次に示す。
  • IPv6機器は,アクセス先の機器のIPアドレスを,DNS64から入手する。DNS64はa1のネットワークに置かれるDNSであり,ホスト名に対応するIPアドレスの問合せに対し,対応するa2アドレスがあればそれを返し,対応するa2アドレスがなく,a3アドレスがあればそれをa2アドレスに変換して返す。ここで,IPv4アドレスのIPv6アドレス表現は,当該IPv4アドレスを示す4バイトの前に,あらかじめ決められた12バイトのプレフィクスを付加したものである。
  • IPv6機器は,入手したIPアドレスに宛ててIPv6のパケットを送信する。
  • (2)のパケットがIPv4機器向けならば,当該パケットとその返信パケットは,NAT64の機能をもつルータ(以下,NAT64ルータという)が受信する。
  • NAT64ルータは,IPv6機器からIPv4機器に向けて送信されたIPv6のパケットをIPv4のパケットに,その返信パケットであるIPv4のパケットをIPv6のパケットに,それぞれ変換し,転送する。このとき,IPアドレス及びポート番号は,動的NATによる書換えの考え方を用いて変換する。NAT64ルータによるIPアドレスとポート番号の変換例を,図1に示す。
pm04_2.png
a に関する解答群
pm04_3.png
b,c,d に関する解答群
  • 192.168.0.0
  • 192.168.0.1
  • 192.168.0.2
  • 64:ff9b::
  • 64:ff9b::c0a8:1
  • 64:ff9b::c0a8:2
  • fc00::
  • fc00::1
解答選択欄
  • a:
  • b:
  • c:
  • d:
  • a=
  • b=
  • c=
  • d=

解説

まず、基本的な事項としてIPv4アドレスとIPv6アドレスは長さやヘッダーフォーマットが異なるなど互換性がありません。現在一般的にIPv6対応する場合にとられるIPv4とIPv6のデュアルスタック構成の端末からは、IPv4アドレスとIPv6アドレスのどちらにも通信を行うことができます。しかし、今後IPv4アドレスの枯渇によりIPv6アドレスしか持たない機器が増えてくることに伴い、IPv6アドレスしか持たない機器(IPv6機器)とIPv4アドレスしか持たない機器(IPv4機器)が混在する環境が増えていくことが予想されます。

DNS64/NAT64技術は、IPv6機器がIPv4機器にアクセスする際にアドレス変換を行う仕組みです。"64"はIPv6の"6"とIPv4の"4"を表しています。

aについて〕
DNS64は、DNSキャッシュサーバとして動作し、IPv6機器からの名前解決要求(DNSクエリ)を受け取り、その名前解決を外部のDNSサーバに依頼します(有効なキャッシュが存在すればそれを使います)。そして、外部のDNSサーバから返ってきたIPアドレスがIPv6ならば、IPv6機器にそれをそのまま返し、IPv4ならば、12バイト(96ビット)のプレフィクスを付加して返します。この際、IPアドレスの対応関係をNATの変換テーブルに記録しておきます。これにより、IPv6機器は通信しようとする相手がIPv6機器であるかIPv4機器であるかにかかわらず、常にIPv6アドレスを宛先にして通信できます。
pm04_6.png
DNS64/NAT64は、IPv6機器からIPv4機器にアクセスする方法であり、NATがそうであるように送信側ネットワーク(IPv6側)に配置され、IPv6機器からの通信と外部のIPv4機器からの通信に含まれるIPアドレスを相互変換します。よって a1 はIPv6です。

a2 と a3 はDNS64のアドレス変換動作に関する部分です。「a2アドレスがあればそれを返し」と説明されているので a2 はIPv6です。

また、「a2がなく、a3アドレスがあればそれをa2アドレスに変換して」と説明されているので a3 にはIPv4が入ります。

以上より、a1=IPv6、a2=IPv6、a3=IPv4 となる「エ」の組合せが正解です。

a=エ

b, c, dの解説に入る前に簡単にNAT64の仕組みについて補足しておきます。

NAT64は、IPv6機器が送信したIPv4機器向けのパケットを受信すると、IPv6アドレスをIPv4アドレスに変換するとともに、IPヘッダーを付け替えてIPv6形式のパケットをIPv4形式のパケットに変換してIPv4機器に送信します。そして、IPv4機器からの応答があった場合には、そのIPv4パケットを受信し、IPヘッダーの付け替えを行ってIPv6パケットにしてから内部のIPv6機器に返します。
pm04_7.png
bについて〕
IPv6機器から受信したIPv6パケットをIPv4パケットに変換する部分です。
NAT64は、変換したIPv4パケットをIPv4機器に転送しているので、宛先IPアドレスはIPv4機器のIPアドレスである192.168.0.2になります。

b=ウ:192.168.0.2

cについて〕
NAT64は、IPv6機器とIPv4機器の通信を仲立ちするので、IPv4機器からの応答を自身で受信しなくてはなりません。IPv4機器はIPv6アドレスを認識できませんから、IPv4パケットの送信元IPアドレスには自身のIPv4アドレスである192.168.0.1を設定することになります。

c=イ:192.168.0.1

dについて〕
IPv4機器からの応答をIPv6パケットに変換する部分です。
IPv6機器は宛先IPアドレスを64:FF9b::c0a8:2にして送信しているので、応答パケットの送信元IPアドレスも同じ64:FF9b::c0a8:2になっている必要があります。したがって、NAT64は送信元IPアドレスを64:FF9b::c0a8:2に書き換えます。

d=カ:64:FF9b::c0a8:2
pm04_8.png

Pagetop