本日、OSC2009 tokyo-fallの1日目。
私がもっとも興味を持ったセッションについて記載したいと思います。
「IPv4アドレス枯渇問題とアプリケーションへの影響」
ソフトウェア業界にいて恥ずかしい限りですが、
実は、IPv4について知ったのは、ここ数ヶ月、基本情報技術者試験の勉強をしているときでした。
ある資格取得の学校の直前講座を受講したのですが、
そこで私がまったく手をつけていなかった
IPアドレスの問題の演習で全滅だったのがきっかけ。
IPv4というのは、おなじみの「xxx.xxx.xxx.xxx」形式のアドレス。
さすがにそれは知っていたけど。
過去門で「クラスC」と出ているが、何のことやらさっぱりわからん。
IPアドレスは、クラスA~クラスEに定義されています。
私が、講座で教えてもらった内容&参考書自習の内容から簡単に記載します。
IPアドレスは、0or1 いわゆる2進数が32桁(ビット)で構成されたもの。
それを、8桁づつドットで区切ります。
32ビットを大きく2つの領域「ネットワークアドレス」「ホストアドレス」に分けます。
この「ネットワークアドレス」:「ホストアドレス」の割合により、クラスが決まります。
クラスAは、ネットワークアドレス:ホストアドレスが8:24
クラスBは16:16
クラスCは24:8
まあ詳しくは、こちら
よく見る「192.168.0.1」のようなアドレスは、32桁を8桁ずつに区切った部分を
10進数に変換したものです。
このアドレスが、足りなくなっていて、もうじき、新規に割り当てることができなくなる
という問題です。
そういえば、携帯電話の番号桁数が10桁から11桁になったようなもの?
携帯電話の普及で番号が足りなくなったための措置でした。
どんどん、ネットワークのサービスが普及するとともにIPアドレスも増えるのは
必然的です。
この問題の詳しい説明は、このサイトをご覧ください。
#本日、私が受けたセッションは、この「IPv4アドレス枯渇タスクフォース」の方が講師でした。
プロバイダなどネットワーク関連の対策は、進んでいるようですが
アプリケーション側の対応が進んでいないのが現状とのこと。
私もウェブアプリケーションのプログラマとして、避けて通れないところです。
まず、IPアドレスをソースに直接記述している場合。
特に、イントラ向けシステムの場合はおおむねそうです。
(DNSによる名前解決可能な場合は除く)
また、tableにログを登録する場合
(DBにinsert,updateするとき、カラムに更新日時とIPアドレスを登録するなど)
IPアドレスのカラムのサイズをIPv6向けにしないといけない。
バインド変数を使っている場合、セットするときに厳密に桁数を判定する場合
そこでエラーになることも。
会員制サイトなどで、アクセスもとのIPアドレスを判定していたりすると・・・・
いろいろ、修正するところが出てきそうです。
とても他人事と思えない、セッションでした。
早速、社内で話題に上げて、対応策を検討せねば。