基本情報技術者試験の分野「サブネットマスク」と「IPv6」についてご紹介いたします。
サブネッティング
サブネッティングは、クラスに基づいたネットワークをより複数に分割することです。
クラスに基づいた8ビット区切りのネットワークアドレスでは、IPアドレスが無駄になることが多くなってしまいます。サブネッティングによって、1つのネットワークを分割して、IPアドレスの無駄を少なくすることができます。
ネットワーク部を拡張(ホスト部から間借り)してサブネット部を作る。
例 IPアドレスクラスBをサブネッティング
サブネッティングを行なうと使用可能なネットワーク数は増えるが、個々のネットワークに収容可能な端末(ホスト)の台数は減る。こうしてできたサブネットは、元のネットワークのネットワーク部+サブネット部で一意に識別され、「ネットワーク部+サブネット部」がサブネットのネットワークアドレスとなる。
サブネットマスク
サブネットマスクは、IPアドレスをネットワーク部とホスト部を区切るために使用するビット列のこと。
※ネットワーク部とホスト部の境界を示す目印。IPアドレスのどの部分がネットワーク部で、どの部分がホスト部かを示す情報。
ネットワーク部はビットが全て「1」を、ホスト部はビットが全て「0」となる。
次のような方法でネットワーク部とホスト部を分けることができる。
①IPアドレスとサブネットマスクは、10進数表記のためそれぞれを2進数表記にする。
②IPアドレスとサブネットマスクの2進数表記を上下で合わせる。サブネットマスクで全てが1の部分をネットワーク部、全てが0の部分をホスト部とする。
③再び2進数表記を10進数に戻し、ネットワーク部とホスト部の境界を判断することができる。
※2進数⇔10進数の変換についてはこちらを参照。 2進数⇔10進数の変換
※サブネットマスクの2進数 255(にごご)ときたら11111111(8ビット8桁)と考える。
例題
基本情報技術者試験平成30年度春期 午前問32を解いてみる。
ア200.170.70.17 イ200.170.70.20 ウ200.170.70.30 エ200.170.70.31
このことから、先頭から28ビットがネットワーク部、末尾4ビットがホスト部となる。
各選択肢末尾8ビット(8ビットずつ区切られている。)を2進数表記にする。
ア.17→0001 0001 イ.20→0001 0100 ウ.30→0001 1110 エ.31→0001 1111
エ.31→0001 1111は、オール1になってしまうためホストに割り振れないアドレス。
よって答えは、エ200.170.70.31
CIDR表記 (サイダー表記)
CIDR表記とは、IPアドレス(IPv4アドレス)の範囲を表記する方法の一つで、「192.168.1.0/24」のように「先頭アドレス/ネットワーク部のビット数」という形式。
※プレフィックス表記とも呼ぶ。
CIDR(サイダー)
CIDR(Classless Inter-Domain Routing)とは、アドレスクラスの概念を気にしないことで、IPアドレスの割り当てや経路選択などの自由度を上げる仕組みです。
例題
基本情報技術者試験平成31年度春期 午前問32を解いてみる。
IPv4は32ビットで構成されているため。「/23」により上位23ビットがネットワーク部のため32-23=9ビットがホスト部となる。ホスト部のネットワークアドレスとブロードキャストアドレスの2台分は元々指定されているため2台分を引いて計算する。
2⁹-2=510 使用できるアドレスの個数上限は510個
ネットワークアドレス(サブネットワークアドレス)の求め方
ホストのIPアドレスとサブネットマスクの2進数をAND演算することでそのホストのネットワークアドレス(サブネットワークアドレス)を求めることができる。
※AND演算は、入力された2つの値のうち、「真」かつ「真」(「1・1」)であれば「1」となるが、それ以外の「1・0」「0・1」「0・0」の場合はすべて「0」となる。
2つの値が両方「1」なら「1」それ以外なら「0」ということ。
IPv6
現在広く利用されているのはIPv4(32ビット)ですがインターネットの急速な普及から新規に割り当てられるグローバルIPアドレスが足りなくなってしまうIPv4枯渇問題が懸念されている。それで、IPアドレスを128ビットに拡張したIPv6への移行が進められている。
IPv4では32ビットを8ビットごとに区切り、それぞれを10進数で表したものを"."で連結していましたが、IPv6では128ビットを16ビットごとに区切り、それぞれを16進数で表したものを":"で連結して記述します。
※0が続くフィールドは1度だけ「::」表記で省略できる。2度使用するとどこを省略したのかわからなくなるため「::」表記を使うのは1か所だけ。
例:2001:DB8:0:0:1::1
IPsec
TCP/IPネットワークで暗号通信をおこなうための通信プロトコル。
ネットワーク層で動作する。IPパケットを暗号化する機能があり、安全にデータをやり取りするための仕組み。IPv6には標準で組み込まれている。以下の複数プロトコルで構成されている。
名前 | 説明 |
---|---|
AH | 発信元認証 改ざん検知 |
ESP | 発信元認証 改ざん検知 ペイロード部の暗号化 |
IKE | 秘密鍵の交換 |