ネットワークの基礎(5)IPアドレス

 職業柄もはや日常に浸透している気がしてしまうが、実際にはDNSの恩恵であまり意識されていないIPアドレス
 インターネット上のノードを一意に特定するためのアドレス体系で、現行のIPv4では32ビットの2進数表現を8ビットごと4つに区切り、10進数表記で表現するのが普通。
 インターネットに限らずLANなどでもその領域内で限定的に設定されたりする事も多い。まあ、IPを利用したネットワークに置いては不可欠な住所情報なわけです。

ネットワークアドレスとホストアドレス

 IPアドレスはホストアドレスとネットワークアドレスの2部に分割できる。
 ネットワークアドレスはそのノードがどのネットワークに属すかを示し、ホストアドレスはそのネットワーク内でそのノードを特定するために使う。
 前半部分がネットワークアドレスで、ホストアドレスとの境目はサブネットマスクにより決められる。
 IPアドレスという数字の羅列を見ただけではこの二つを分ける意味はわからないかもしれないが、内部的には重要になってくるのでまあこれも別項でいずれ(略

サブネットマスク

 IPアドレス同様に32ビットで表現される列。1で表現される部分がネットワークアドレスを示す。頭から何ビット目(何桁目)までが1かを見ることで対応するIPアドレスのネットワークアドレスが何ビット目までなのかわかる。
 普通は10進数表記したときに各区間が255か0で現せるように8つずつ1を固めて配置する(=1は上8桁、16桁、24桁のどれか)が、クラスレスサブネットマスクと呼ばれるこれ以外の区切りも存在する。

ネットワークアドレス

 ネットワークごとに配布される部分。異なるネットワークで重複する事は無く、また同一ネットワークに属するノードは同じネットワークアドレスを有する。
 ルーターが宛先を決める際、まずこのネットワークアドレスを見てどのネットワークに送るか(あるいは他のネットワークに送らないか)を決める。これがないとうちわの通信を外に送ったり、関係ない宛先にも無差別にパケットを送る羽目になり、効率面からも安全面からもよろしくない。

ホストアドレス

 同一ネットワーク内にあるホストを区別するための部分。同一ネットワーク内での重複は許されない。ちなみにWindowsの場合、重複するとおこられる。ちゃんと監視しているらしい。

IPアドレスクラス

 IPアドレスを管理するズサンな体制の権化・・・とかいうと怒られそうだがそんな感じの仕組み。
 早い話がわかりやすいようにネットワーク部を最初の8ビット(クラスA) 16ビット(クラスB) 24ビット(クラスC)の3段階に分ける仕組み。これをやると10進表記で1区分目、2区分目、3区分目までがきれいにネットワークアドレスになるため見やすい。
 だがクラスCでさえ255個のホストアドレスを有するためとても無駄。マシン数4個のSOHOでさえクラスCのアドレスを使うのでは足りなくもなるというもの(なお、実際にはもっと色々節約する方法があるのでこの例えは半分嘘だが、一面においては事実)

プライベートIPアドレス

 冒頭で述べたが、IPネットワーク内に置いては必ずIPアドレスが利用される。これは直接インターネットにつながっていないノードに関しても同様であり、その場合にはインターネットとは独立した体系でIPアドレスが割り振られる。このために、形式は同じで、閉じたネットワーク内でのみ有効なアドレスが定義されている。それがいわゆるプライベートアドレスで、LAN内ではDHCPにより動的に割り振られたり、管理者から静的に割り振られたりする。
 各ネットワークで独立して使用することが前提なので、異なるネットワークないなら重複があっても問題ない。
 例)ある3つの組織のLANにおけるプライベートアドレス (x部はノードごと異なる)
    J企業   10.xxx.xxx.xxx
    M研究室 172. 16.xxx.xxx
    U家   192.168. 1.xxx

MACアドレス

 IPアドレスとは別に存在する、ハードウェアごとのユニークな番号。
 上位桁がメーカーごとの番号。下位桁がメーカー内での製造番号となっているため、世界中で重複せずに割り振られている。
 IPアドレスと違い設定や状況による変動が無いためこれも利用される。
 物理アドレスとも呼ばれ、同一ネットワーク内の隣接ノードなどはこれを使って識別されたりもする。