IPアドレスを学び直す

今日の勉強会でIP層をやったのですが。院の先輩方に問題を出してもらったところ。自分も含めて全滅とかヤバスwwwwww
問題とは、ある特定のIPアドレスから、ネットワークアドレス、ブロードキャストアドレス、などなど。

見事にわからねえ俺wwwwwwwww・・・・と草をはやしてみたものの、全然笑えません。ネットワークの研究室にいるのに何忘れてるの俺。
ということで、\(^o^)/な自分でしたので、ちゃんとやり方を記録しておきましょう。忘れたらやり直す。やり直してまた思い出す。TTLなんて関係なくループしまくって記憶してやる!

そもそもIPは何をするの?

  • 2009/03/13 23:26:30

説明が足らなさそうだったので追加。

エンドツーエンドの通信を実現するためのもの。IPそのホストとホストを結ぶためにあるもので、IPアドレスは、そのホストとホストのアドレスである。
とはいえ、実際は小さなネットワークをたくさん経由しているのが現状のネットワークであり、そのため、中継器とされているルーターが必要。様々なネットワーク、ルーター、ホストがあるので、それらを個々のネットワークのルーターが表としてまとめて、さらにネットワークと近くのネットワークのルーターとのつながりも表にまとめてある。それを経路表といい。それを元にネットワークの選択をするのを経路選択という。


ちなみに、その下にあるMACアドレスとは、似ているようで違うというか。
MACは機器間を対象でその先は何があるかわからずですが、IPはあるホストとそこからルーターの経路表により、つながりがある程度見せるためのもので。
だとするとMACは入らない子になるかと思ってしまうけど。元々MACアドレスが使われるEthernetが属する(OSIの)第二層の部分は、機器間の通信を目的として(その上の層については何も関知するものではなかった)、ネットワークはその機器間が複数になり大きくなったときの管理で使うという目的であったと思いますが。実際に必要なのかと言われると、答えが見つからないような。


まぁ(長々と語るほど知識に自信がないので(汗 )その辺の最新の話に詳しい方、僕に教えてください!

IPアドレスはどういう形式?

192.168.11.50 という感じ。
具体的にいうと、二進数の8桁単位でドットで区切って4つ並べる。上の例は二進数を10進数にしているだけ。
ということで、二進数が8桁 -> 2^8=256ですが、0からのカウントなので、0から255が一区切りの最大値。
8桁が4つ並んでいるので、2^(8*4)=2^32=4294967296個のアドレスが確保出来ます。が全世界の人口より全然ないので、最近はIPv6がいいんじゃねーの?とちやほやされています(128bit長で、2^128個)


とはいえ、現状はIPv4が主流なので、どう使われているのかを見てみる。

IPアドレスってクラス表記があったっけ?

すでにその枠は使われなくなっているらしいです。サブネット以降の技術がメインです。ちなみにクラスEというものがあったことを知りませんでした。

じゃあサブネットって何?

ネットワークアドレスとホストアドレスとわけるためにある。
サブネットとは、言葉の通り、いくつかのネットに区切るためのものである。
その際に、ネットワークアドレスの割り振りがあり、さらにそのしたにそのネットワーク内で自由に使えるアドレスがある。
ネットワークアドレスは、インターネットを使うために割り振られるアドレスやイントラネットも同じく。(グローバルIPとかプライベートIPも)
ホストアドレスとは、ネットワーク内で自由に通信するときに使うアドレス。

サブネットマスクってどんなもの?

255.255.255.0 とかです。IPと同じ表記
このアドレスの意味は、頭の3区切りである24ビットがネットワーク部で、最後の8ビットがホスト部ということ。つまりこれを通しているネットワークは、ホストが0〜255の間で使えるように見える。
さて、例として、あるネットワークの空間で

IPアドレスは192.168.11.10
サブネットは255.255.255.0

があるとします。
この場合、サブネットがあることでネットワークのホストは

192.168.11.0 〜 192.168.11.255

がしかし、IPの仕様として

  • そのネットワークを表すネットワークアドレスがその空間の頭に一つ(192.168.11.0)
  • そのネットワーク内で、すべてのホストにパケットを送る仕組みのブロードキャスト用にその空間の後ろの一つ(192.168.11.255)

のアドレスを使われる。つまり、256個から2個引いて、

192.168.11.1 〜 192.168.11.254

の254個のホストアドレスが、ホストに割り当てることが出来ます。

CIDRというものもきいてるけど。

ホームユースがメインな僕は聞いたことがない・・・
CIDRとは、サブネットマスクをさらに簡略したものでもある。(本質は違うらしい)
あるネットワークの

IPアドレスが 192.168.11.10
サブネットでは、255.255.255.0

したものが、CIDR表記になると、

192.168.11.10/24

と表せる。
255.255.255.0は、二進数に直すと

11111111.11111111.11111111.00000000

左から1の数が24個あるのがわかりますが。それを数で表したのがCIDR表記になる。
サブネットの例を表したが、必ずしも一がたくさん並んでいる状態というわけではなくて、255.0.255.0というサブネットの場合は

192.168.11.10/255.0.255.0

という表記もCIDR表記というらしい。使いどころはよくわからない。

ということで

アウトプット終わり。
ちなみに、出された問題とはこういうもの。

192.168.30.50/27
というCIDR表記のIPアドレスがある。
この場合に対して、以下の内容を答えよ

  1. ネットワークアドレス
  2. ブロードキャストアドレス
  3. このIPアドレスがあるネットワークの次のネットワークの最初のホストアドレス
  • 回答例

192.168.30.50/27
サブネットは、頭から27bitがそうなので、255.255.255.244
(11111111.11111111.11111111.11100000)
で、右から0が5つあります。その0がすべて1になるまでがホスト内となります(00000〜11111)
よってホストは、32個。うちネットワークアドレスとブロードキャストアドレスが二つ使われます
最初のネットワーク空間を表します。
ネットワークアドレスは192.168.30.0、00000が該当で
ブロードキャストアドレスは192.168.30.31、11111が該当で
その間の1〜30までがホストアドレスとなります


言い忘れましたが、ホスト部でもいくつかのグループに分けられます。
192.168.30.31が 11000000.10101000.00011110.00011111
次の192.168.30.32が 11000000.10101000.00011110.00100000 となります。
が桁が一つあがりました。
このときの、32 である 00100000 から 64である 00111111 が次のグループになります。
桁があがるごとに、グループが分かれることになっています。


今回は、192.168.30.50なので、192.168.30.32 〜 192.168.30.64の間が対象となります。(自分はここを間違える)
よって、


192.168.30.32:ネットワークアドレス [これが質問1の答え]
192.168.30.33
    |  :30個のホストアドレス
192.168.30.63
192.168.30.64:ブロードキャストアドレス [これが質問2の答え]


最後に質問3ですが、次のグループはこのようになり、

192.168.30.65:ネットワークアドレス
192.168.30.66:[これが質問3の答え]
    |
192.168.30.96
192.168.30.97:ブロードキャストアドレス


以上により、質問の答えは

  1. 192.168.30.32
  2. 192.168.30.64
  3. 192.168.30.66

これからは、プレゼンの下書きもあげておくことに。

何せ勉強したことですしね。

記憶した内容を多く利用しています。間違った箇所もあるかと思うので、沖津付きの方がいましたら、訂正のコメント等を送ってもらえると助かります。