LoginSignup
2
0

More than 1 year has passed since last update.

【ネットワーク】アドレス範囲をワイルドカードマスクで表現

Last updated at Posted at 2022-10-07

はじめに

CCNA(ネットワーク試験)対策をしている際に、
ワイルドカードマスクに悩まされたので書きたいと思う。
※ 私が知っている範囲で書きます。間違っている場合は、修正かけてください。

ワイルドカードマスクとは?

① PATやACLなどで、IPアドレスの範囲を指定する際に使用するもの。
② IPアドレスの何ビット目を確認対象にするか指定するもの。
③ 0は、指定したIPアドレスのビットをチェックする。
④ 1は、指定したIPアドレスのビットをチェックしない。
⑤ サブネットマスクとは、違う。
  --> IPアドレスを、ネットワーク部分とホスト部分に識別するための数値

IPアドレス範囲をワイルドカードマスクで表現

(ip=IPアドレス / wc=ワイルドカード)

[題-1] 172.16.1.0/16 ~ 172.16.1.63/16のIPアドレス範囲

 ① IPアドレスを2進数表記に変える
  「10101100 00010000 00000001 00|000000」 <-- 「172.16.1.0」
  「10101100 00010000 00000001 00|111111」 <-- 「172.16.1.63」
 --> 第4オクテットの上位2ビット目まで同じ値
 --> 第4オクテットの上位2ビットまでをチェックし、それ以降はチェックしなければ範囲指定可能

 ② 使用するワイルドカードマスクを2進数で表現
  「00000000 00000000 00000000 00|111111」 <-- 「0.0.0.63」
  ※ 0:チェックする / 1:チェックしない

 ③ 結果
  172.16.1.0(ip) 0.0.0.63(wc)

  --備考--
  引き算でも導ける: 172.16.1.0 ー 172.16.1.63 =0.0.0.63


[題-2] 172.16.80.0/16 ~ 172.16.83.255/16のIPアドレス範囲

 ① IPアドレスを2進数表記に変える
  「10101100 00010000 010100|00 00000000」 <-- 「172.16.80.0」
  「10101100 00010000 010100|11 11111111」 <-- 「172.16.83.255」
 --> 第3オクテットの上位6ビット目まで同じ値
 --> 第3オクテットの上位6ビットまでをチェックし、それ以降はチェックしなければ範囲指定可能

 ② 使用するワイルドカードマスクを2進数で表現
  「00000000 00000000 000000|11 11111111」 <-- 「0.0.3.255」
  ※ 0:チェックする / 1:チェックしない

 ③ 結果
  172.16.80.0(ip) 0.0.3.255(wc)

  --備考--
  引き算でも導ける: 172.16.80.0 ー 172.16.83.255 =0.0.3.255
  ※ -255のマイナスは外す


[題-3] 192.168.192.0/24 ~ 192.168.223.0/24のネットワーク範囲

 ① IPアドレスを2進数表記に変える
  「11000000 10101000 110|00000 00000000」 <-- 「192.168.192.0」
  「11000000 10101000 110|11111 00000000」 <-- 「192.168.223.0」
 --> 第3オクテットの上位3ビット目まで同じ値
 --> 第3オクテットの上位3ビットまでをチェックし、それ以降はチェックしなければ範囲指定可能

 ② 使用するワイルドカードマスクを2進数で表現
  「00000000 00000000 000|11111 11111111」 <-- 「0.0.31.255」
  ※ 0:チェックする / 1:チェックしない

 ③ 結果
  192.168.192.0(ip) 0.0.31.255(wc)

  --備考--
  192.168.192.0/24 のネットワーク範囲:192.168.192.0 ~ 192.168.192.255
  ネットワーク間 のネットワーク範囲:192.168.193.0 ~ 192.168.222.255
  192.168.223.0/24 のネットワーク範囲:192.168.223.0 ~ 192.168.223.255


[注-1] 192.168.1.4/24 ~ 192.168.1.63/24のIPアドレス範囲

 ① IPアドレスを2進数表記に変える
  「11000000 10101000 00000001 00|000100」 <-- 「192.168.1.4」
  「11000000 10101000 00000001 00|111111」 <-- 「192.168.1.63」
 --> 第4オクテットの上位2ビット目まで同じ値
 --> これをワイルドカードマスクで表現してみると・・・。

 ② 使用するワイルドカードマスクを2進数で表現
  「00000000 00000000 00000000 00111111」 <-- 「0.0.0.63」
  ※ 0:チェックする / 1:チェックしない

 ③ 結果
  192.168.1.4(ip) 0.0.0.63(wc)

 一見行けそうだが、NGである。2進数にして考えてみる。
  「11000000 10101000 00000001 00|000100」 <-- 「192.168.1.4 (ip)」
  「00000000 00000000 00000000 00|111111」 <-- 「0.0.0.63 (wc)」

 ワイルドカードマスクは、0ビット部分のみをチェックする為、IPアドレス範囲は下記となる。
 「IPアドレス範囲:192.168.1.0 ~ 192.168.1.63」

 範囲内に「192.168.1.0 / 192.168.1.2 / 192.168.1.3」が入ってしまっている。

 こういう場合は、もう一つIPアドレス範囲を作成する。
  「11000000 10101000 00000001 000000|00」 <-- 「192.168.1.0 (ip)」
  「00000000 00000000 00000000 000000|11」 <-- 「0.0.0.3 (wc)」
  --> 192.168.1.0(ip) 0.0.0.3(wc)
  --> IPアドレス範囲:192.168.1.0 ~ 192.168.1.3

 ACLで例えると、192.168.1.4 ~ 192.168.1.63の範囲のみを許可したいとする。
 そういった場合、下記のように設定する。

 1.172.16.1.0 - 172.16.1.3 をdenyとして設定する行(WC 0.0.0.3)
   --> access-list 1 deny 192.168.1.0 0.0.0.63
 2.172.16.1.0 - 172.16.1.63 をpermitとして設定する行(WC 0.0.0.63)
   --> access-list 1 permit 192.168.1.0 0.0.0.63

 このようにすることで、192.168.1.4 ~ 192.168.1.63 ピンポイントで範囲指定ができる。


[注-2] 192.168.0.0/24 ~ 192.168.0.14/24のアドレス範囲

 ① IPアドレスを2進数表記に変える
  「11000000 10101000 00000000 0000|0000」 <-- 「192.168.0.0」
  「11000000 10101000 00000000 0000|1110」 <-- 「192.168.0.14」
 --> 第4オクテットの上位4ビット目まで同じ値
 --> これをワイルドカードマスクで表現してみると・・・。

 ② 使用するワイルドカードマスクを2進数で表現
  「00000000 00000000 00000000 00001110」 <-- 「0.0.0.14」
  ※ 0:チェックする / 1:チェックしない

 ③ 結果
  192.168.0.0(ip) 0.0.0.14(wc)
  IPアドレス範囲:192.168.0.0 ~ 192.168.0.14 の偶数のみになってしまう。
   --> 192.168.0.0 / 192.168.0.2 / 192.168.0.4 / 192.168.0.4 / 192.168.0.6
     192.168.0.8 / 192.168.0.10 / 192.168.0.12 / 1192.168.0.4

  2進数にして考えてみる。
  「11000000 10101000 00000000 0000|000|0」 <-- 「192.168.0.0 (ip)」
  「00000000 00000000 00000000 0000|111|0」 <-- 「0.0.0.14 (wc)」
  ※ 0:チェックする / 1:チェックしない

  よって192.168.0.0 - 192.168.0.14はできない。
  ワイルドカードマスクにすると0.0.0.14 としたいところだが、
  これをやると0から14までの偶数のIPアドレス範囲に理論上なるので、運用が大変になる。

まとめ

① 基本的にワイルドカードマスクで範囲を表す場合は、下記が条件

 1. 範囲の始まりがプレフィックスのネットワークアドレスであること
   --> /25 なら x.x.x.0 か x.x.x.128

  もしくは、末尾ビットが全て0ビットであること
   -->  10.32.0.0 【 00001010 001|00000 00000000 00000000 】
   --> 172.16.32.0 【 10101100 00010000 001|00000 00000000 】
   --> 192.168.4.0 【 11000000 10101000 000001|00 00000000 】
   --> 192.168.4.8 【 11000000 10101000 00000100 00001|000 】
  などなど ※ 末尾の0ビットの範囲内でしか範囲指定できない。それ以外だとおかしくなる。

 2. 範囲の終わりが (2の累乗)-1 であること
   --> 10.63.255.255 【 00001010 001|11111 11111111 11111111 】
   --> 172.16.63.255 【 10101100 00010000 001|11111 11111111 】
   --> 192.168.7.255 【 11000000 10101000 000001|11 11111111 】
   --> 192.168. 4. 15 【 11000000 10101000 00000100 00001|111 】
  などなど ※ 末尾はすべて1ビットになる。

② アドレス範囲をピンポイントで指定する場合、アドレス範囲を複数作成するときがある。

--- 備考 ---
下記の計算ツールもあるので、試してみるのもありです。
【計算ツール】IPアドレス・サブネットマスク・ワイルドカードマスク

参照リンク

ACL - ワイルドカードマスクとは
ワイルドカードマスクとは - IT用語辞典 e-Words
IPアドレスとは?クラス範囲やサブネットマスク計算などの専門用語の意味を解説
サブネットマスク・ワイルドカードマスクの対応表と説明
【計算ツール】IPアドレス・サブネットマスク・ワイルドカードマスク
PATの設定(外部インターフェースのアドレスを使用)
アクセスコントロールリストとは

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0