いわゆるIP spoofingに対する対策として,LANの外にあるプライベートアドレスからのパケット,LANの外部にあるプライベートアドレスへのパケット送信を許可しないフィルタがあります。例えば,http://www.rtpro.yamaha.co.jp/RT/FAQ/IP-Filter/ip-spoofing-filter.html とか、 http://www.dearest.net/~you/adsl/megabit.html とか、こんな感じで説明されています。


この際のネットマスクの設定の方法についての質問ですが,クラスA,クラスCのナチュラルマスクとして,10.0.0.0/8, 192.168.0.0/24という指定をすることは理解しやすいのですが,クラスBについて,ナチュラルマスクを意識した172.16.0.0/16ではなく,172.16.0.0/12という中途半端なマスク長を指定するのは何故でしょうか。クラスBにおいて,セカンドオクテットの最初の4ビットをサブネットワークとして使うことができるのでしょうか? もしそうなら何故10.0.0.0/4, 192.168.0.0/20などとは設定しないのでしょうか? 更に172.16.0.0/24, 172.16.0.0/28, 192.168.0.0/24, 192.168.0.0/28などというネットワークも有り得ると思うのでが,何故これらに対してはフィルタリングしないのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/06/30 07:34:29
  • 終了:--

回答(6件)

id:taka-hr No.1

taka-hr回答回数57ベストアンサー獲得回数42004/06/30 07:55:03

ポイント5pt

http://yougo.ascii24.com/gh/32/003216.html

ASCII24 - アスキー デジタル用語辞典 - プライベートアドレス

プライベートアドレスの一覧はURLを参照してください。

172.16.0.0/12 になっているのは、172.16.0.0 〜 172.31.255.255 までのアドレスすべてを指定するためです。

”クラスB”(という言い方は最近しないですが)のアドレスが16個予約されていることになります。もちろん、4ビットをサブネットワークに割り振ることも自由にできます。

http://www.atmarkit.co.jp/icd/root/43/5784343.html

Insider's Computer Dictionary [サブネットマスク] − @IT

他の例は、10.0.0.0/4 を指定してしまうと 上位4ビットが 0 であるもの全てがマスクされてしまうので、4.1.2.3 などの正当なグローバルアドレスも含まれてしまいます。

172.16.0.0/24 を指定したとしても 172.16.0.0 〜 172.16.0.255 までしか網羅しないので 172.16.0.0/12 にすべて含まれています。

id:minakaji

う〜ん、半分分かったような...。もう少し頭を整理します。

2004/06/30 12:29:29
id:xnissy No.2

xnissy回答回数1029ベストアンサー獲得回数2032004/06/30 08:09:17

ポイント5pt

http://www.mm-labo.com/computer/tcpip/ipaddress/privateaddress.h...

IPアドレスとプライベートアドレス

プライベートIPアドレスの範囲がそうなっているから、としか答えようがないような気が・・・

172.16.0.0/16〜172.31.0.0/16のクラスBのネットワークが16個集まったものが、プライベートIPとして予約されています。この範囲のアドレスをすべてカバーするのが172.16.0.0/12なわけです。

10.0.0.0/8というクラスAネットワーク1つがプライベートIPアドレスなので、それを超える10.0.0.0/4はグローバルIPを含むことになってしまいます。

172.16.0.0/24などの指定は、172.16.0.0/12の指定でカバーされていますので、改めて指定する必要がありません。

id:minakaji

最初の方とほぼ同じ説明内容ですね。ぼくの理解が足りていないということなんでしょう。

2004/06/30 12:30:35
id:ozonepapa No.3

ozonepapa回答回数288ベストアンサー獲得回数02004/06/30 09:06:52

ポイント50pt

URLはダミーです。

172.16.0.0/12は

172.16.0.0/16から172.31.255.255/16までの範囲をカバーしています。

以下の2進数で上位4ビットが同じなので

172.16.0.0/12は172.16.0.0/16から172.31.255.255/16までのクラスBのプライベートアドレスの範囲を指定するときに使われます。

16 00010000

17 00010001

18 00010010

19 00010011

20 00010100

21 00010101

22 00010110

............

31 00011111

id:minakaji

上位4ビットが全部同じ→/16 でなくて /12 で足りる、という説明は良く分かりました!

2004/06/30 12:33:28
id:not_connect No.4

not_connect回答回数10ベストアンサー獲得回数02004/06/30 09:44:20

ポイント5pt

http://www.nic.ad.jp/ja/translation/rfc/1918.html

プライベート網のアドレス割当(RFC 1918)

RFC1918で、プライベートアドレスの範囲が

規定されています。その中で、クラスB用に、172.16.0.0-172.31.255.255 が用意されていますが、これをまとめて書くと、172.16.0.0/12 となるわけです。

id:minakaji

それが何故 /12 という指定で足りるか、というところが理解できていませんでした。

2004/06/30 12:34:06
id:samejima No.5

samejima回答回数92ベストアンサー獲得回数82004/06/30 11:12:04

ポイント5pt

http://www.hatena.ne.jp/1088548469

いわゆるIP spoofingに対する対策として,LANの外にあるプライベートアドレスからのパケット,LANの外部にあるプライベートアドレスへのパケット送信を許可しないフィルタ.. - 人力検索はてな

URLはダミーです。

>192.168.0.0/24という指定をすることは理解しやすい

192.168.0.0/16ですね。

>もしそうなら何故10.0.0.0/4

10.0.0.0/4はパプリックアドレスも含まれるので設定しません。

>192.168.0.0/20などとは設定しないのでしょうか?

192.168.0.0/20は、192.168.0.0/16に含まれているので、設定の必要はありません。

>172.16.0.0/24, 172.16.0.0/28

172.16.0.0/12に含まれています。

>192.168.0.0/24, 192.168.0.0/28

192.168.0.0/16に含まれています。

>172.16.0.0/12という中途半端なマスク長を指定するのは何故でしょうか。

機器がCIDRに対応していれば、クラスに拘る必要が無いのですが

クラスは理解しているようなので、あえてクラスを使って説明します。

172.16.0.0/12とは

172.16.0.0/16, 172.17.0.0/16, ..., 172.31.0.0/16の集合体です。

id:minakaji

すみません、今までの他の方の説明を見たので分かりましたが、最初にそう言われると分からなかったと思います。

2004/06/30 12:35:32
id:ezslalom No.6

ezslalom回答回数12ベストアンサー獲得回数02004/06/30 11:45:03

ポイント20pt

10.0.0.0 - 10.255.255.255

172.16.0.0 - 172.31.255.255

192.168.0.0 - 192.168.255.255

この範囲のアドレスがプライベートアドレスであると定義されています

192.168. は24ビットではなく16ビットマスクです

16進数1バイトが4桁として捕らえるよりも、2進数1ビットが32桁と捕らえてください

1行目は先頭から8ビットが 00001010 であれば続きはどのような値でもプライベートとみなす

2行目は先頭から12ビットが 101011000001 であれば続きはどのような値でもプライベートとみなす

3行目は先頭から16ビットが 1100000010101000 であれば続きはどのような値でもプライベートとみなす

と、言う意味です

便宜上8桁づつ束ねると2行目の 0001 の残り4桁がどのような値をとってもよいので

16進数にすると10〜1Fまでの値をとることになります

10進数にすると16〜31です

Windows を使用しているのでしたら電卓を表示してモードを関数電卓に変えるとわかりやすいと思います

これらのアドレスはグローバルネットワークでは使用してはいけません

つまりグローバルネットワークからこの範囲のIPアドレスを送信元として

パケットが送られてくることはありえませんし

送られてきた場合はそれは「怪しい」ということになります

また、会社や自宅のプライベートアドレスから、アドレスをそのままに

送信することも許されませんので

これらをフィルタを通すことによってそもそもなかったことにしてしまうのが

IP spoofing Filter です

グローバルネットワーク上でこれらのアドレスがやり取りされることを阻止すればいいだけなので

フィルターマスクはそれぞれ上位8・10・12ビットが該当した際

パケットを破棄してしまえばよいということになります

ちなみにプライベートネットワーク内で、会社の部署や自宅の家族がそれぞれ

複数台のPCを接続して運用している場合は

グローバル・ルータA・プライベート・ルータB:各部署それぞれのプライベート

となり、ルータBでは台数に応じて24ビットや28ビットなどのマスクで

フィルタリングをしたほうがいいかもしれませんが

グローバルを扱うルータAには預かり知らぬことなので、

標準以外のフィルタリングルールを意識する必要はありません

グローバルネットワークから送られてくる「正常な」パケットは

送信元、送信先ともに3行のアドレス範囲以外の数字になることが保証されていますので

正常なパケットを通すか破棄するかは、今回の話とは少し変わってきます

id:minakaji

詳細なご説明ありがとうございました。頭が整理できました。

2004/06/30 12:38:27

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません