助け合いフォーラム
RouterのFa0/1側に配置するPCが使用できるIPアドレスはどれか(全て選択)
正解
172.16.16.1
172.16.16.255
172.16.30.0
解説
「172.16.16.0/20」で使用できるホストアドレスは「172.16.16.1~172.16.31.254」です。
選択肢のうち、このホストアドレスに該当するのは「172.16.16.1」と「172.16.16.255」と「172.16.30.0」です。
【そのほかの選択肢について】
・172.16.16.0
上記はネットワークアドレスになるため使用できません。
・172.16.15.100
・192.168.1.1
上記は異なるネットワークになるため使用できません。
参考
数値の表記方法には「2進数」や「10進数」や「16進数」といった種類があります。
「0~17」をそれぞれの方法で表記すると以下のようになります。
[進数の考え方]
進数は「その数になったら次の位に繰り上がる」と考えるとわかりやすくなります。
例えば、2進数では「1」の次の数は「2」なので次の位に繰り上がり「10」となります。
10進数では「9」の次の数は「10」なので次の位(十の位)に繰り上がり「10」となります。
16進数では「F」の次の数は「10進数で数えて16」になるので次の位に繰り上がり「10」となります。
※「9」の次の数字は無いので16進数ではアルファベットの「A、B、C、D、E、F」を9に続く数字として使用します。16進数の「A」は10進数の10、16進数の「F」は10進数の15にあたります。
【10進数と2進数の変換方法】
さまざまな変換方法がありますが、ここでは簡単に以下の変換表を使います。
■2進数から10進数への変換
変換したい2進数の数値を変換表に入れて、「1」が入った部分を全て足します。(表には右詰めで入れます)
足した合計が10進数の数値になります。
例) 2進数の「10111」を10進数に変換する
答) 23
■10進数から2進数への変換
変換したい10進数の数値を変換表の大きい方から引いていき、引いた部分に「1」を入れます。
数値が0になるまで引いたときに、変換表に入っている「0」と「1」の並びが2進数の数値になります。
例) 10進数の「23」を2進数に変換する
答) 10111
【IPアドレスの構成】
IPアドレスは「ネットワーク部」と「ホスト部」で構成されます。
ネットワーク部は、所属しているネットワークグループを示す部分です。
ホスト部は、そのグループの中のどれかを示す部分です。
ネットワーク部とホスト部の境界線はクラスごとに決められています。
クラスAは第1オクテット(8ビット)までがネットワーク部なので「/8」となります。
クラスBは第2オクテット(16ビット)までがネットワーク部なので「/16」となります。
クラスCは第3オクテット(24ビット)までがネットワーク部なので「/24」となります。
クラスDとEは特殊な用途のためネットワーク部とホスト部の区別はありません。
【サブネット】(サブネットワーク)
サブネットとは、ネットワークを分割したものです。
サブネット化(ネットワークを分割)するには、IPアドレスの「ホスト部」の一部を借用して「ネットワーク部」として扱います。
これにより、1つのネットワークアドレスで複数のネットワークを作成することができます。(ネットワークアドレスを節約できる)
【サブネットマスク】
サブネットマスクとは、ネットワーク部とホスト部を区別するための数値です。
サブネットマスクの表記方法にはCIDR表記(プレフィックス表記とも呼ばれる)、2進数表記(Binary表記)、ドット付き10進数表記(Dotted-decimal notation:DDN表記)があります。
CIDR表記では、何ビットまでネットワーク部なのかを表します。
2進数表記では、ネットワーク部を「1」、ホスト部を「0」で表します。
10進数表記では、2進数の表記を8ビットごとにドットで区切って10進数に変換して表します。
下図のように、2進数表記サブネットマスクにおける「1」と「0」の境界が、IPアドレスにおけるネットワーク部とホスト部の境界となります。
【サブネットマスク表記の変換手順(10進数表記とCIDR表記の変換)】
サブネットマスク「255.255.255.252」を例に、10進数表記とCIDR表記の変換手順を示します。
[10進数表記からCIDR表記]
まず、10進数表記を2進数表記に直し、ネットワーク部のビット数を数えます。
そして、数えたネットワーク部のビット数をCIDR表記の値とします。
[CIDR表記から10進数表記]
まず、CIDR表記を2進数表記にするためにCIDR表記の値だけ左から「1」を並べ、残りを「0」で埋めます。
そして、2進数表記を10進数表記にします。
【各表記法で表したサブネットマスク】
【サブネット計算】
サブネット(ホスト部からビットを借用して作られたネットワーク)に関する以下の情報は、提示されたIPアドレスやサブネットマスクを使用して算出します。
【ネットワークアドレスとブロードキャストアドレスとホストアドレスの範囲の算出】
IPアドレスとサブネットマスクから「ネットワークアドレス」と「ブロードキャストアドレス」、「ホストアドレスの範囲」を算出できます。
以下では「192.168.1.122/27」というIPアドレスとサブネットマスクを例に説明します。
まずは、ネットワーク部とホスト部を確認するために「192.168.1.122/27」を2進数に変換します。
サブネットマスクが「1」の部分がネットワーク部になり、「0」の部分がホスト部になります。
ネットワークアドレスは、ホスト部が2進数で全て「0」になるアドレスなので「192.168.1.96」になります。
ブロードキャストアドレスはホスト部が2進数で全て「1」になるアドレスなので「192.168.1.127」になります。
ホストアドレスの範囲は、ネットワークアドレスの1つ後~ブロードキャストアドレスの1つ前までの範囲なので「192.168.1.97~126」になります。
【ホストアドレス数の算出】
サブネットマスクからホストアドレス数を算出できます。以下ではサブネットマスク「/27」を例に説明します。
まずサブネットマスク「/27」の2進数表記における「0」のビット数を確認します。サブネットマスクは32ビットなので、「32 - 27 = 5」として求められます。
次にサブネットマスクの「0」のビット数を「n」として、次の公式で計算します。
・ホストアドレス = 2のn乗-2
以上の通り、サブネットマスクが「/27」のときのホストアドレス数は「30」となります。
【サブネット数の算出】
「ホスト部から借用しているビット数」からサブネット数を算出できます。
以下では「192.168.1.122/27」というIPアドレスとサブネットマスクを例に説明します。
「192.x.x.x」はクラスC「/24」に該当します。つまり「192.168.1.x/27」は、ホスト部からネットワーク部に3ビット借用してサブネットを作成していることになります。
したがって、「192.168.1.x/27」で作成できるサブネットワークは「192.168.1.0/27」「192.168.1.32/27」「192.168.1.64/27」「192.168.1.96/27」「192.168.1.128/27」「192.168.1.160/27」「192.168.1.192/27」「192.168.1.224/27」の8つです。
またサブネット数は、ホスト部から借用しているビット数を「n」としたとき、次の公式から求められます。
・サブネット数 = 2のn乗
以上の通り、「192.168.1.122/27」のサブネット数は「8」となります。
【ホストアドレス数に合わせたサブネットマスクの算出】
ホストアドレス数に合わせた、適切なサブネットマスクは下記のように算出できます。
1.1つのサブネットに収容するホストアドレス数を確認
2.ホスト部に必要なビット数「n」を下記の式から求める
「2のn乗-2 ≧ ホストアドレス数」
3.「n」の最小値をホスト部のビット数としてサブネットマスクを表す
例:サブネット1つ当たりのホストアドレス数が300の場合
1.1つのサブネットに収容するホストアドレス数を確認
→「300」
2.ホスト部に必要なビット数「n」を下記の式から求める
「2のn乗-2 ≧ ホストアドレス数」
※このとき「-2」するのはネットワークアドレスとブロードキャストアドレスを除くためです。
→「2の9乗-2 ≧ 300」(n ≧ 9)
ホスト部が9ビット以上あれば、300のホストアドレスを収容できることがわかります。
なおホスト部が9ビットのとき、収容できるホストアドレス数は「510」です。(2の9乗-2)
3.「n」の最小値をホスト部のビット数としてサブネットマスクを表す
2進数表記の場合はネットワーク部を「1」、ホスト部を「0」として、8ビット区切りの2進数で表します。
→「11111111.11111111.11111110.00000000」(「n」の最小値は9なので「0」が右から9個並ぶ)
CIDR表記の場合はネットワーク部のビット数を「/」の後に書きます。
→「/23」
10進数表記の場合は2進数表記を変換します。
→「255.255.254.0」
RouterのFa0/1側に配置するPCが使用できるIPアドレスはどれか(全て選択)
解説の上から3行間に記載の、
・ネットワークBのネットワークアドレス「172.16.16.0/20」
・「172.16.16.0/20」で使用できるホストアドレス「172.16.16.1~172.16.31.254」
になる過程が分かりません。
よろしければ、これらの値になる式を教えて頂きたいです。
Fa0/1側のサブネットマスクが「/20」なので、
ネットワーク部は第3オクテットの左4ビットまで使用できます。
この設問で、Fa0/1のアドレスが「172.16.16.100」ですが、
第3オクテット「16」をビット表記すると、
「00010000」
そして、第3オクテットの左4ビットまでがネットワーク部なので、
「0001 / 0000」
で区切られます。
残った第3オクテットの右4ビットと第4オクテットがホスト部となるので、
第3オクテットの「0(0000)~15(1111)」をホストアドレスに含めて
使用することが出来ます。
なおこの設問の場合、ホストアドレスに使えないのが
ネットワークアドレス:172.16.16.0
(ビット表記:10101100.0001000.0001 / 0000.00000000)
ブロードキャストアドレス:172.16.31.255
(ビット表記:10101100.0001000.0001 / 1111.11111111)
ですので、「172.16.16.1~172.16.31.254」が
ホストアドレスの範囲となります。
コメント
前提として
・Fa0/1には「172.16.16.100」というIPアドレスが割り当てられている
・Fa0/1がネットワークBに属している
これを踏まえて説明しますね。
ー-------------------------
・ネットワークBのネットワークアドレス「172.16.16.0/20」になる過程
Fa0/1はネットワークBに属していますね。
Fa0/1のIPアドレスは「172.16.16.100」ですね。そして、後ろに「/20」がついていますね。
「172.16.16.100」と「/20」を組み合わせると「172.16.16.100」が属しているネットワークのアドレス(ネットワークアドレス)が分かります。
やってみます。↓
まず、172.16.16.100を2進数に直します。
10101100.00010000.00010000.01100100
次に左から20桁のところで区切ります。「/20」だからです。
10101100.00010000.0001 | 0000.01100100
区切った左側はこれです↓
10101100.00010000.0001 |
IPアドレスは2進数で32桁なければいけないので、足りない分を0で埋めます。
10101100.00010000.00010000.00000000
これを10進数に直します。↓
「172.16.16.0」
これに/20をつけた「172.16.16.0/20」が「172.16.16.100」の属するネットワークBのアドレス(ネットワークアドレス)ということになります。
「172.16.16.100/20」や「172.16.16.0/20」のように、IPアドレスに「/20」などをつけると、そのIPアドレスのどこまでがネットワークアドレスかが分かるんですね。
ー---------------------------
・「172.16.16.0/20」で使用できるホストアドレス「172.16.16.1~172.16.31.254」になる過程
「172.16.16.0/20」を2進数に直します。↓
10101100.00010000.00010000.00000000 /20
/20なので、左から20桁のところで区切ります。↓
10101100.00010000.0001 | 0000.00000000
↑の区切ったところの左側はいじらずに、右側を変えると、それがホストアドレスになります。
区切ったところの右側を「ホスト部」と呼びます。
(区切った左側を変えると、それはネットワークBではなくなってしまいます。)
例①、一番右を1に変えてみました。↓
10101100.00010000.0001 | 0000.00000001
区切りをなくすと
10101100.00010000.00010000.00000001
ですね。
これは2進数に直すと↓こうなります。
172.16.16.1
「172.16.16.1」は「172.16.16.0/20」のネットワークで使えるホストアドレスということになります。
例②、「ホスト部」の一番左を1に変えてみました。↓
10101100.00010000.0001 | 1000.00000000
区切りをなくすと
10101100.00010000.00011000.00000000
ですね。
これは2進数に直すと↓こうなります。
172.16.24.0
「172.16.24.0」は「172.16.16.0/20」のネットワークで使えるホストアドレスということになります。
例③、「ホスト部」に使うことができる一番大きい数字に変えてみました。↓
10101100.00010000.0001 | 1111.11111110
区切りをなくすと
10101100.00010000.00011111.11111110
ですね。
これは2進数に直すと↓こうなります。
172.16.31.254
「172.16.31.254」は「172.16.16.0/20」のネットワークで使えるホストアドレスということになります。
「ホスト部」が全部1になったアドレスは「ホストアドレス」とは呼ばず、「ブロードキャストアドレス」と呼びます。
「ブロードキャストアドレス」は「そのネットワーク内にあるすべてのホスト」を表す特殊なアドレスです。
「ホスト部」が全部0だと「ネットワークアドレス」ですね。「ホストアドレス」ではありません。
ー----------------------------------
上記を踏まえてまとめると、
・ネットワークBのネットワークアドレス「172.16.16.0/20」になる過程
ネットワークBにはFa0/1「172.16.16.100」が属していて、「/20」なので、
IPアドレスを2進数に直して20桁のところで区切る。
区切った左側を残して、残った右側を全部0にすると、
Fa0/1「172.16.16.100」が属するネットワークBの「ネットワークアドレス」がでる。
(「172.16.16.0/20」というように/20をつけておかないと、これがネットワークアドレスなのかホストアドレスなのかわからなくなります)
・「172.16.16.0/20」で使用できるホストアドレス「172.16.16.1~172.16.31.254」になる過程
「172.16.16.0」を2進数に直して、「/20」なので左から20桁のところで区切る。
区切った右側を「ホスト部」という。
区切った左側をいじるとネットワークBではなくなってしまうので、左側はいじれません。
「ホスト部」が全部0のパターンと全部1のパターン抜いたものがホストアドレス。
この問題なら、ホストアドレスの一番小さい値は↓
10101100.00010000.0001 | 0000.00000001 (/20なので左から20桁で区切ってます。)
ホストアドレスの一番大きい値は↓
10101100.00010000.0001 | 1111.11111110 (/20なので左から20桁で区切ってます。)
それぞれ10進数に直すと、「172.16.16.1」と「172.16.31.254」になります。
言い換えれば、ホストアドレスのとれる値の範囲は「172.16.16.1~172.16.31.254」ということになります。
不明点あれば教えてください、、、、
コメント
この投稿に対して返信しませんか?
n network_hoge
2022/06/08 15:21
訂正: ネットワークアドレス:172.16.16.0 (ビット表記:10101100.00010000.0001 / 0000.00000000) ブロードキャストアドレス:172.16.31.255 (ビット表記:10101100.00010000.0001 / 1111.11111111) ※各ビット表記で、第2オクテットの桁が不足していました。