Home > 6 月, 2008

2008.06.26

ネットワークの基本 IPアドレス

現在のコンピューター同士の通信は主にTCP/IPが使われます。
このTCP/IPの基本となる仕組みがIPアドレスです。今回はこのIPアドレスの基本のおさらいです。

色々探したのですが、RFCとwikipediaが一番良い解説をしていたので詳細はそちらを参照してください。

RFC791(ちゃんと知るにはRFCが一番!)

IPアドレス(WikiPedia)
IPアドレスには現状ではv4とv6がありますが、ここでは主流のIPv4について記述します。

IPアドレスは4つのセグメントからなり、それぞれ0~255まで値が割り当てられています。

このセグメントの値によって、ホストもネットワークも表現する事が可能です。

例:

  • ホスト  192.168.0.1 ←最後が1~254だとホスト
  • ネットワーク 192.168.0.0 ←0はネットワークアドレス

このアドレスに関しても無意味に決められているわけでなく、IANAという団体が管理しています。また、それぞれの範囲にクラスが設定されていて、クラス毎に使用できる用途や範囲が決まっています。

アドレスクラス

クラス アドレス範囲 用途
クラスA 0.0.0.0~127.255.255.255 ネットワークアドレス長は8ビット、ホストアドレス長は24ビット
クラスB 128.0.0.0~191.255.255.255 ネットワークアドレス長は16ビット、ホストアドレス長も16ビット
クラスC 192.0.0.0~223.255.255.255 ネットワークアドレス長は24ビット、ホストアドレス長は8ビット
クラスD 224.0.0.0~239.255.255.255 IPマルチキャスト専用
クラスE 240.0.0.0~255.255.255.255 特に割り当ては決まっていない

また、アドレスの範囲によって、グローバルアドレスとローカルアドレスが決まっている。

予約アドレス一覧

アドレス 種別 規約
0.0.0.0/8 Current network (only valid as source address) RFC 1700
10.0.0.0/8 プライベートアドレス RFC 1918
14.0.0.0/8 Public data network RFC 1700
39.0.0.0/8 予約 RFC 1797
127.0.0.0/8 ローカルホストアドレス RFC 1700
128.0.0.0/16 予約
169.254.0.0/16 LINKLOCALアドレス(APIPA用) RFC 3927
172.16.0.0/12 プライベートアドレス RFC 1918
191.255.0.0/16
192.0.0.0/24
192.0.2.0/24 テストネットワーク RFC 3330
192.88.99.0/24 IPv6からIPv4への変換 RFC 3068
192.168.0.0/16 プライベートアドレス RFC 1918
198.18.0.0/15 ネットワーク性能試験 RFC 2544
223.255.255.0/24 予約 RFC 3330
224.0.0.0/4 マルチキャスト(クラスD) RFC 3171
240.0.0.0/4 予約(クラスE) RFC 1700
255.255.255.255 ブロードキャスト

特殊用途のIPアドレス

下記のアドレスは特殊な用途に使われるため、機器に割り振ることはできない。

  • ホスト部の2進数表現が全て1 (例:192.168.170.255/24)
    ネットワークに対するブロードキャストアドレスとして用いられる。
  • ホスト部の2進数表現が全て0 (例:192.168.170.0/24)
    ネットワーク自体を指すアドレスとして用いられる。本来これはネットワーク構成図やサーバソフトウェアの設定などにおける表記上の約束事にすぎ ず、実際には必ずしも使えないわけではないが、動作が保証されないので避けたほうがよい。また過去においては、ブロードキャストアドレスとしてこの形式を 用いるOSも存在した。
  • 127.0.0.0/8 (よく使われるのは127.0.0.1)
    その機器自身を表すローカルループバックアドレスとして用いられる。
    ループバックとは?
    その機器の内部での再帰的な通信(あて先が無いと通信出来ないため)。なので通常のNICが1枚のPCはループバックアドレスと通常のIPアドレスの2つのアドレスを持つ

※ブロードキャストストームとは?

ルールとして、グローバルIPは同時間では世界中にひとつ、ローカルアドレスはローカル内であればいくらでも割り当てられます。

次回はこのネットワークアドレスをセグメント内でさらに分ける(マスク)に関して書きます。

参考リンク:社内LANの組み方

JavaScriptのライブラリ、使ってますか?

今日は javascript の代表格(?)、jQueryのご紹介

実演をメインにする予定なので、ネット上にはさわり部分のみになりますが…

(more…)

2008.06.25

Jukingがアドビ(adobe)コンテストの Flex賞受賞

adobe air ロゴ

エスキュービズムのスーパー研究者(?)のケンが開発を進めている「クラウドマップ」を活用したサービス「Juking」が、アドビ(adobe)社主催の AIRコンテスト で、Flex賞を受賞しました。

(more…)

2008.06.19

google app engineとは?

ちょっとホットな google app engine についての説明資料を作ってみました

具体的なコーディング方法などは wiki にアップしていきます。

(more…)

2008.06.17

Python導入記

現在、Pythonを社内に導入するプロジェクトが進行中。

もともと現役の東大生が中心になって開発を進めていた「クラウドマップ」では Python を採用していたが、B向けに展開する自社のサービスも Python で構築しようかと検討しているところ。

その大きな理由の1つが、google が採用していること。
Ruby でも問題なく実現できるんだろうけど、情報の質と量と今後を考えて今は Python の方が良さそうだ。
(但し、英語下での話)

Python や Ruby はWebサーバとしての機能を内包したフレームワークが多い。
LAMP構成になれていると「A」(apache)抜きで動くのが少し不思議な感覚になるが、サービスの管理がやりやすいのでこれはこれで便利。

近々、Pythonに関する情報をまとめている wiki を公開して、LAMP との違いなどを書いてみようと思う。

2008.06.05

ソフトウェア ロードバランサ Pound のご紹介

負荷分散について調べてみました

この下に google docs が読み込まれます↓