スゴ技

平成25年度 秋 基本情報技術者試験 【問3】(その2)

Blog:IT・情報処理BLOG |

おはようございます、ブログの3男、佐藤です。最近の朝おやつは、先週の学園祭でゲットした宮古島産の黒砂糖です。塊になっているのをひとつ頬張ると、少しするとほろっと溶けて、いろんな味が広がります。いいですね黒砂糖。
そんな南国の甘みを堪能しつつ、この間の午後問題問3の続きを見ていきましょう。今回は問3の設問2です。

IPv6アドレスは、素のものをそのままつかうととっても長い(各桁4桁の16進数で、コロンつなげで8箇所ある)ため、省略表記が可能な形になっています。
そのため、2つの省略方法が問題文中で表現されています。

  1. 16ビット(4桁16進数)において、上位となっているゼロ(0)は省略できます、普通の10進数と同じで、0x0032なら0x32という形です。さすがに0x0000は0x0という形で最低一桁のゼロは残りますけどね。これを以下ではルール1としておきます。
  2. 「0」になってしまったブロックが連続した場合は、連続部分を”::”と省略できるというものです。2001:0db8:0000:0000:4321というかたちなら、2001:0db8::4321となります。ただしこの省略は1箇所しか使えません、これは実際に書いてみるとわかります。”2001:0db8::4321::abcd”なんてものがあったらどうなるか… 各”::”がいくつ分になるのかが固定化できないのです。”2001:0db8::4321:0:0:abcd”であれば”::”は2ブロック(0000:0000であり0:0と省略)であることがはっきりします。連続するブロックの多い方を省略記法にすればいいでしょう。こちらは以下でルール2としておきます。

このルールをおさえて問題にあたると、ちょっとした(とはいえない簡単レベルですが)操作で設問2はおわりになります。

まず空欄d、圧縮した形式が「2001:db8::2:1」ということは、ルール1の逆展開で「2001:0db8::0002:0001」となります。
そしてルール2により::部分が必要回数0000で展開されます。
前後4ブロックには値があるため、4ブロック(128ビットなので全部で8ブロック)を0000で埋めてあげればいいということになります。
結果「2001:0db8:0000:0000:0000:0000:0002:0001」となり、が導かれます。

空欄eも同様に攻めてみましょう。
まずルール1を使って、「2001:db8:0:0:cd30:0:0:0」になります。
連続する0が2箇所ありますね、途中に挟まれている部分(0:0)と末尾(0:0:0)にあります、この場合ルール2で補足しているように、末尾側を圧縮したほうが短くなりますので、「2001:db8:0:0:cd30::」となります(答えはです、エはひっかけ)。
なお、「2001:db8::cd30:0:0:0」もアドレスとしては有効ですが、設問2にさらっと書かれているように「それを最も短く表現する圧縮形」ということで答えを作らないといけないため、カも正解になりません。これはひどいと言いたくなります。

ラスト、空欄fも同様です。書くのが面倒になるので先にルール2を適用させます。
するといきなり超圧縮、「::0001」になってしまいました。
そしてルール1を適用すると「::1」です。おおぅ、超圧縮ここに極まりです。
実はこのアドレス、IPv6におけるループバックアドレス(自分自身を指し示すアドレス)です。ということで正解はとなるのでした。

さてさておまけ、IPv6のアドレスには、プライベートアドレスとグローバルアドレスの区別が実際のところありません1。近い立ち位置としてのリンクローカルアドレス(fe80::/10)はありますが、IPv4にだって存在します(169.254.0.0/16)から、完全にプライベートアドレスの代わりとはいえません。
実際のところプライベートアドレスという区分けはなく、家の中などであったとしても今のようなプライベートアドレスを適当に使ってNATで内外を切り分けるようなことが不要になっています2。NATがファイアウォールの代わりに使われている状況から脱却する(IPv6専用ブロードバンドルーターであれば、NATではなく真にファイアウォールを使えということ)。なお、古い文献だとサイトローカルというプライベートに近いアドレスの話が見られますが、現状では廃止されてULA(→参考文献)が提案されています、こちらをプライベートとして使う分にはおそらく問題にならないでしょう。

おまけその2、この問題の中では、2001:db8::/32というネットワークをサンプルに使っています。このアドレスは、文書記述用アドレスと呼ばれるカテゴリのもので、実際のネットワークには使用しないということになっています(参考文献その1その2)。すべてグローバルアドレス(唯一の例外と言ってもいいのが::1)の世界のため、うっかり適当なアドレスを文書に書いてしまうと、どこかの誰かが使っている可能性が出てしまうんですね、恐ろしや。

ということで、今回は設問2でした、次回は設問3です。どうなることやら。それではまた来週お会いしましょう。


  1. このエントリでは、ユニキャストのみを対象とし、説明しています、マルチキャストであれば、閉鎖空間内でつかうアドレス空間(ff00::/8)がありますからね。
  2. 設問1で把握されていると思いますが、単純計算で現状の地球上の人に平等に割り当てたとしてもとんでもない空間を与えても大丈夫なわけです。今(IPv4)みたいに単一アドレスをもらうのではなく、IPv6ではある程度のブロックでもらうことになるのです。

2013年(平成25年度)秋期の解説

Date:

神戸電子の
IT・情報処理学科
についてもっと知りたい!

Webアプリケーション等のシステム管理、設計、開発が行える総合的なITエンジニアを育成する学科です。

学科紹介を見る (神戸電子サイト)

学科紹介イメージ
Info神戸電子からのお知らせ

Tagタグ

Teamライターチーム紹介

神戸電子オフィシャルSNS

オープンキャンパスなどの
誰でも参加OKの楽しいイベント
やブログの最新記事などお届けします!

ページの上へ移動