平成25年秋期試験午後問題 問3

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

問3 ネットワーク

インターネットプロトコルのアドレス表記に関する記述を読んで,設問1,2に答えよ。

 インターネットプロトコル(IP)として現時点で広く使われているのは,IPバージョン4(以下,IPv4という)である。IPv4では,そのアドレスを表現するのに 32 ビットを使用している。単純に 32 ビットのアドレス空間を考えると,232個(約43億個)のアドレスが使用できるが,世界の人口が約 70 億人であるので一人ひとりに1個ずつのアドレスを割り当てられない。今日,インターネットに接続できる機器の数が爆発的に増えていることを考えると,IPv4のアドレスを全て使い切ってしまうのは時間の問題である。これは,"IPv4アドレスの枯渇問題"として知られている。
 そこで,IPバージョン6(以下,IPv6という)が開発された。IPv6では,アドレスを 128 ビットで表す。単純に 128 ビットのアドレス空間を考えると,2128個(約3.4×1038個)のアドレスが使用でき,世界中の人に割り当てても1人当たり約a個使える計算になる。
 IPv4では,32 ビットのアドレスを表現するのに 8 ビットごとに区切り,各 8 ビットの値を10進数で表し,区切りにドット(.)を使用する表記方法が用いられている。IPv6では,128 ビットを 16 ビットごとに区切り,各 16 ビット(以下,16ビットセクションという)を16進数で表し,区切りにコロン(:)を使用する。また,次の規則を使用してアドレスを表現する文字列を圧縮できる。
  • 各16ビットセクションの先行する 0 を省略する。例えば,0012 は 12 になる。ただし,16ビットセクションが 0000 のときは,0 とする。
  • 0 の16ビットセクションが連続する場合は,連続する2個のコロン(::)で表す。例えば,2001:0db8:0000:0000:0000:ff00:0042:8329 は 2001:db8::ff00:42:8329 と表す。ただし,:: は1か所にだけ使用できる。
 IPv6もIPv4と同様に,アドレスはネットワークを表す部分とホストを表す部分から成る。IPv6では,ネットワークの部分が何ビットで表されるかを示すのにプレフィックス長が用いられる。 プレフィックス長は,先頭からのビット数を10進数で表したものである。 アドレスとプレフィックス長は,スラッシュ(/)で区切る。例えば,2001:db8:abcd:12::/64 では,プレフィックス長は 64 であり,先頭から 64 ビットがネットワークアドレス部であることを表している。 IPv6を導入することによってIPv4アドレスの枯渇問題は回避できるが,インターネットにつながる世界中のシステムや機器が一斉にIPv6に変更されるということは期待できず,長い時間を掛けで移行が行われると考えられる。そこで,IPv4からIPv6への移行期間中に二つのバージョンが共存する手段として様々な技術が開発されている。そのうちの一つがトンネル方式であり,送信元と宛先の間に異なるIPバージョンが存在するとき,元のIPバージョンのパケットを異なるIPバージョンのパケットにカプセル化し,異なるIPバージョンのネットワークを通過させる方式である。トンネル方式を実現する方法は幾つかあり,6to4 と呼ばれる技術もその一つである。
 6to4 では,IPv4のグローバルアドレスが必要である。6to4 で使用するIPv6アドレスの最初の 16 ビットは,必ず 2002 である。続いてIPv4のグローバルアドレスをそのまま付けたbビットがIPv6アドレスのプレフィックスとなる。例えば,IPv4グローバルアドレスが 203.0.113.128 の場合,IPv6アドレスのプレフィックスは,c/bとなる。

設問1

説明文中の に入れる正しい答えを,解答群の中から選べ。
a に関する解答群
  • 4.9×1027
  • 4.9×1028
  • 4.9×1029
  • 1.4×10117
  • 1.4×10118
  • 1.4×10119
b に関する解答群
  • 32
  • 40
  • 48
  • 56
  • 64
  • 72
  • 80
  • 88
c に関する解答群
  • 2002::cb00:7180
  • 2002:0:0:cb00:7180::
  • 2002:203:0:113:128::
  • 2002:cb:0:71:80::
  • 2002:cb00:7180::
  • 203:0:113:128::
  • cb00:7180::
解答選択欄
  • a:
  • b:
  • c:
  • a=
  • b=
  • c=

解説

aについて〕
128ビットのアドレス空間が 2128個=3.4×1038、世界の人口が 70億人=7×109 なので、1人当たりが使用できるIPアドレス数は、

 3.4×1038÷7×109≒0.49×1029=4.9×1028(個)

a=イ:4.9×1028

bについて〕
プレフィックスは、先頭に"2002"の16ビット、その後にIPv4アドレスが付加されたものです。IPv4のアドレス長は32ビットなので、プレフィックス全体では48ビットの長さになります。

b=ウ:48

cについて〕
IPv6はアドレスのビット列を16ビットごとにコロン(:)で区切り16進数で表記します。IPv4のアドレス「203.0.113.128」は、以下のように16進表記に変換できるので、
  • 203(10)→1100 1011(2)→cb(16)
  • 0(10)→0000 0000(2)→00(16)
  • 113(10)→0111 0001(2)→71(16)
  • 128(10)→1000 0000(2)→80(16)
先頭に"2002"を足して16ビットごとにコロン(:)で区切った 2002:cb00:7180:: が適切です。

c=オ:2002:cb00:7180::

設問2

表1は,IPv6アドレスの基本形と,それを最も短く表現する圧縮形の対応を示したものである。表1中の に入れる正しい答えを,解答群の中から選べ。ここで,基本形は全16ビットセクションを4桁の16進数で表現したもの(先行する 0 を省略しない)である。
pm03_1.png
d に関する解答群
  • 2001:0db8:0000:0000:0000:0000:0000:0021
  • 2001:0db8:0000:0000:0000:0000:0000:2:01
  • 2001:0db8:0000:0000:0000:0000:0002:0001
  • 2001:0db8:0000:0000:0000:0002:0001
  • 2001:0db8:0000:0000:0002:0001
  • 2001:0db8:0000:0000:0002:0001:0000
  • 2001:0db8:0000:0000:0002:0001:0000:0000
e に関する解答群
  • 2001:0db8::cd30::
  • 2001:0db8::cd30:0:0:0
  • 2001:0db8:0:0:cd30
  • 2001:0db8:0:0:cd30::
  • 2001:db8::cd30::
  • 2001:db8::cd30:0:0:0
  • 2001:db8:0:0:cd30
  • 2001:db8:0:0:cd30::
f に関する解答群
  • ::0:1
  • ::0001
  • ::1
  • :0::1
  • 0::1
  • 0:0::1
  • 0000::1
解答選択欄
  • d:
  • e:
  • f:
  • d=
  • e=
  • f=

解説

IPv6の文字列圧縮規則は以下の2つです。
  • 各16ビットセクションの先行する 0 を省略する。例えば,0012 は 12 になる。ただし,16ビットセクションが 0000 のときは,0 とする。
  • 0 の16ビットセクションが連続する場合は,連続する2個のコロン(::)で表す。例えば,2001:0db8:0000:0000:0000:ff00:0042:8329 は 2001:db8::ff00:42:8329 と表す。ただし,:: は1か所にだけ使用できる。

dについて〕
圧縮形が「2001:db8::2:1」の、db8,2,1はそれぞれ(1)の規則に基づき先頭の 0 が省略されているので、基本形では「0db8」「0002」「0001」という表記になります。後は「::」の部分をアドレス長が128ビット(16ビットの固まりが8つ)になるように 0 のビットの連続で埋めればよいので、

 2001:0db8:0000:0000:0000:0000:0002:0001

が基本形のアドレスになります。

d=ウ

eについて〕
まず先頭に0が付いている「0db8」を「db8」に圧縮します。
次に連続した 0 を「::」に置き換える作業ですが、このアドレスでは 0 の連続が中盤部分と最後の部分で2箇所あります。「::」の省略は、アドレス中で1箇所しか使えないという制限があるので、考えられる圧縮形は次の2種類です。
  • 2001:db8::cd30:0:0:0
  • 2001:db8:0:0:cd30::
一般にIPv6を圧縮形にするときは、最も表記を短くできる方法が採用されるので、より多くの0を「::」に省略できる 2001:db8:0:0:cd30:: が圧縮形として適切です。

e=ク 2001:db8:0:0:cd30::

fについて〕
0以外なのが最後の 0001 の部分だけなので、先頭から112ビット目までの 0 を「::」に、0001 を「1」にして連結した ::1 が圧縮形になります。

f=ウ ::1

Pagetop