ネットワークはなぜつながるのかP114 ネットマスクの考え方について、
サブネットマスクはクラス(A,B,C・・・) 分けされたアドレスを、 さらに細かく分割するしくみ。と、書かれている本もあるし、
逆に、 ネットマスクで255.0.0.0ならクラスA が割り当てられる と書いてある本もあります。
いったいどっちが正しいのでしょうか? それともネットマスクとサブネットマスクは別モノ なのでしょうか?
匿名希望さん,こんにちわ。
>サブネットマスクはクラス(A,B,C・・・) 分けされたアドレスを、 >さらに細かく分割するしくみ。と、書かれている本もあるし、
この考え方は,以前使われていた古いもので, 今のインターネットでは使われていません。 今のインターネットはCIDR(Classless Inter-Domain Routing) という考え方を採用しています。
ただ,クラスからCIDRに変わったというのは,考え方が変わったということであって, 実装面ではCIDRはクラスと互換性がありますから, クラスに基づくアドレスが使えなくなったわけではありません。 その辺がややこしいんですけど。
ついでに,実装面での違いも説明しておきましょう。 実装面での違いは,マスク値で設定できる境界の位置の制約です。 昔は,マスク値で設定する境界は クラスによって決まるネットワーク番号の右側(下位ビット側)に 位置しなければいけない, というルールがあったのですが, CIDRになって,その制約が外れて,どこでもよいことになりました。 だから,クラスのアドレスはそのままCIDRでも使えるわけです。
>ネットマスクで255.0.0.0ならクラスA が割り当てられる >と書いてある本もあります。
これは???です。 今使われているCIDRの考え方でいくと, ネットマスクを255.0.0.0と設定することで, ネットワーク番号のビット数は8ビットになります。 上記は,ネットワーク番号が8ビットであることをクラスAが割り当てられる, という風に表現しているのでしょうけれど, CIDRにはクラスという考え方はないので, クラスAが割り当てられるという表現はおかしいです。
>それともネットマスクとサブネットマスクは別モノ
うーん,難しい質問です。
CIDRが登場する前は, クラスに基づく一つのネットワークを細分化するためにマスク値を用いました。 だから,この時点ではサブネットマスクだったわけです。 ところがCIDRによってクラスの考え方が廃止され, マスク値は一つのネットワークを細分化するもの,という考え方ではなく, マスク値によって一つのネットワークが定義されることになりました。 だから,サブネットマスクという呼び方ではおかしくなったので, ネットマスク,あるいは,アドレスマスクと呼ぶようになりました。 でも,実装面では制約が外れたというだけのことで,同じようなものです。
ということで,同じといっていいのか,違うものというべきなのか,迷いますね。
>CIDRが登場する前は, >クラスに基づく一つのネットワークを細分化するためにマスク値を用いました。 >だから,この時点ではサブネットマスクだったわけです。 >
わかりました。でも、もう1つ疑問があります。 そもそもサブネットを用いるとして、 サブネット化したところで、 所詮ゲートウェイによるネットワークの 境界はクラスに基づくネットワークアドレス部の値の違いなので、 同一ネットワークアドレス内をサブネットでいくつかに わけてもメリットは無いように思えますが・・・
>サブネット化したところで、所詮ゲートウェイによるネットワークの >境界はクラスに基づくネットワークアドレス部の値の違いなので、
上記の意味は, ルータはクラスによって決まるネットワーク番号のビット数によって, 一つのネットワークを認識するのだから, サブネットマスクによってサブネット化しても,意味がない っていうことかな?
だったら,それは間違ってます。 クラスに基づく一つのネットワークの中をサブネットに分割したら, ルータは, 元々のネットワーク番号とサブネット番号を合わせて,ネットワーク番号とみなして, ルーティングします。 つまり,ルータはサブネットが一つのネットワークだと認識するっていうことですね。
サブネットが登場するさらに前の時代には, クラスに基づくネットワークがルータが認識するネットワークでした。 ところが,たとえば,クラスAのネットワークには, 1600万台以上の機器を接続できたので, 一つのネットワークとして運用するのは大きすぎました。 クラスBも一つのネットワークとして運用するに大きすぎます。 だから,一つのネットワークの中を細分化するために, サブネットという考え方が出てきたんです。
コメント
サブネットマスクは古い考え方
匿名希望さん,こんにちわ。
>サブネットマスクはクラス(A,B,C・・・) 分けされたアドレスを、
>さらに細かく分割するしくみ。と、書かれている本もあるし、
この考え方は,以前使われていた古いもので,
今のインターネットでは使われていません。
今のインターネットはCIDR(Classless Inter-Domain Routing)
という考え方を採用しています。
ただ,クラスからCIDRに変わったというのは,考え方が変わったということであって,
実装面ではCIDRはクラスと互換性がありますから,
クラスに基づくアドレスが使えなくなったわけではありません。
その辺がややこしいんですけど。
ついでに,実装面での違いも説明しておきましょう。
実装面での違いは,マスク値で設定できる境界の位置の制約です。
昔は,マスク値で設定する境界は
クラスによって決まるネットワーク番号の右側(下位ビット側)に
位置しなければいけない,
というルールがあったのですが,
CIDRになって,その制約が外れて,どこでもよいことになりました。
だから,クラスのアドレスはそのままCIDRでも使えるわけです。
>ネットマスクで255.0.0.0ならクラスA が割り当てられる
>と書いてある本もあります。
これは???です。
今使われているCIDRの考え方でいくと,
ネットマスクを255.0.0.0と設定することで,
ネットワーク番号のビット数は8ビットになります。
上記は,ネットワーク番号が8ビットであることをクラスAが割り当てられる,
という風に表現しているのでしょうけれど,
CIDRにはクラスという考え方はないので,
クラスAが割り当てられるという表現はおかしいです。
>それともネットマスクとサブネットマスクは別モノ
うーん,難しい質問です。
CIDRが登場する前は,
クラスに基づく一つのネットワークを細分化するためにマスク値を用いました。
だから,この時点ではサブネットマスクだったわけです。
ところがCIDRによってクラスの考え方が廃止され,
マスク値は一つのネットワークを細分化するもの,という考え方ではなく,
マスク値によって一つのネットワークが定義されることになりました。
だから,サブネットマスクという呼び方ではおかしくなったので,
ネットマスク,あるいは,アドレスマスクと呼ぶようになりました。
でも,実装面では制約が外れたというだけのことで,同じようなものです。
ということで,同じといっていいのか,違うものというべきなのか,迷いますね。
Re サブネットマスクは古い考え方
>CIDRが登場する前は,
>クラスに基づく一つのネットワークを細分化するためにマスク値を用いました。
>だから,この時点ではサブネットマスクだったわけです。
>
わかりました。でも、もう1つ疑問があります。
そもそもサブネットを用いるとして、
サブネット化したところで、
所詮ゲートウェイによるネットワークの
境界はクラスに基づくネットワークアドレス部の値の違いなので、
同一ネットワークアドレス内をサブネットでいくつかに
わけてもメリットは無いように思えますが・・・
サブネット化するとネットワークは分割される
>サブネット化したところで、所詮ゲートウェイによるネットワークの
>境界はクラスに基づくネットワークアドレス部の値の違いなので、
上記の意味は,
ルータはクラスによって決まるネットワーク番号のビット数によって,
一つのネットワークを認識するのだから,
サブネットマスクによってサブネット化しても,意味がない
っていうことかな?
だったら,それは間違ってます。
クラスに基づく一つのネットワークの中をサブネットに分割したら,
ルータは,
元々のネットワーク番号とサブネット番号を合わせて,ネットワーク番号とみなして,
ルーティングします。
つまり,ルータはサブネットが一つのネットワークだと認識するっていうことですね。
サブネットが登場するさらに前の時代には,
クラスに基づくネットワークがルータが認識するネットワークでした。
ところが,たとえば,クラスAのネットワークには,
1600万台以上の機器を接続できたので,
一つのネットワークとして運用するのは大きすぎました。
クラスBも一つのネットワークとして運用するに大きすぎます。
だから,一つのネットワークの中を細分化するために,
サブネットという考え方が出てきたんです。