« パイプとリダイレクトを間違えて | ライセンスなどのおさらい »

2009.04.17

IPアドレスの基礎知識

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをnewsingに追加

WEBサービスを運営していると、必然的にサーバの設定をする機会が増えていきます。アプリの設定とか、運用とかの知識は増えていくのですが、すごく基礎的な部分が置き去りになっていることもしばしば…

 

ということで、今回はネットワークを考える上で避けて通ることはできない、「IPアドレス」について書いてみます。

 

IPアドレスとは?

一般的には「ネットワーク上の住所」といった表現をされることが多いです。現在、IPアドレスとして使用されているのはIPv4とIPv6という2つのプロトコルがあり、前者は32ビット、後者は128ビットのアドレス空間を持っています。

多く利用されているのはIPv4の方ですが、32ビット=約43億 のアドレス空間しか表現できないため、インターネットの普及とともに、IPアドレスの枯渇が問題となっています。

それを解消するためにIPv6が登場したわけですが、現状では普及しているとはいい難い状況ですので、今回はIPv4のみについて書いていきます。

 

IPアドレスの表現方法

IPアドレスは0~255までの数字4組を「.」で区切って表現します。

例えば、Yahoo! JAPAN であれば、203.216.227.176 となっています。

他にも表現の仕方があり、

数字3つの場合:203.216.58288

数字2つの場合:203.14214064

数字1つの場合:3419988912

といった表し方も可能です。(ブラウザやOSによっては使えない場合があります)

 

サブネットマスク

ローカルIPなどを設定しているときに、サブネットマスクという「255.255.255.0」のような、IPアドレスらしきものを目にすることがありますが、これは、ネットワークアドレスと、ホストアドレスの境目を示すための数値で、IPアドレスとは別物です。

ネットワークアドレス:上位のアドレス管理者から割り当てられているアドレスで、自由な設定はできない

ホストアドレス:自らが管理するホストに対して、自由に割り当てることができる

と考えてもらっていいでしょう。

2進数表記をした際に、ネットワークアドレス部分を1、ホストアドレス部分を0として表現するので、前方24ビットがネットワークアドレス、後方8ビットがホストアドレスの場合、

11111111 11111111 11111111 0000000 = 255.255.255.0

となるわけです。

 

CIDR

サーバなどでアクセス制限をする際に、

192.168.1.0/24

といった形で、IPアドレスの後ろに、「/数字」という表現をすることがあると思います。

これがCIDR(サイダー)というアドレスの表現方法で、複数のIPアドレスを範囲指定することができます。

IPアドレスを2進数表記した際の、「数字ビット目より後ろ」を範囲として指定します。

例えば、192.168.10.0/24の場合、2進数表記をすると

11000000 10101000 00001010 00000000 となるので、25ビット目からの部分

11000000 10101000 00001010 ******** を範囲指定することになります。わかりやすく書くと、

192.168.10.0~192.168.10.255 ということですね。

192.168.10.0/25 だと 192.168.10.0~192.168.10.127

192.168.10.0/26 だと 192.168.10.0~192.168.10.63

ということになります。

 

 

他にもいろいろと知っておくと良いことは山のようにあるのですが…

あまり意識せずに使っている基礎的なものほど、内容は深いですね。

Trackback URL

Comment & Trackback

No comments.

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>