図 8 共有 ーサービス第ファイアウォールインターネット このコンごニータにしそートコグインするには、シェルのコマンドプニンプトで・ 5 Xgrid プリンタ芸有 リモート AppieEvent AOple R を mo : を O 00 FTP リービス バーソナル W ~ b 有 Windows 共有 バーソナルファイル共有 入サービス 設定を変更するサービスを選呎します。 のコンビニータにアクセスできないようにするに はかのコンどニータのユーザが 5 新を使って、こ 停止 リモートログイン機能は動作中です は、・停上・をクしックします。 連載ー林檎の暮らし 01 図 9 UDP のバケットを通さない言 これらのファイアウォールの詳細設定を使って、コンビュータのセキュリティ をより細かく調整できます。 @UDP トラフィックをプロック おいのコンビュータ上のリソースに UDP 通がアクセスできないようにしよす。 ファイアウォールのログを記録 プニックした嚼元、プニックした宛先、ノこックした試行な ど、ファイ / ウォールの処理況に関する物報を提供しよす。 こステルスモードを使用 不正なトラフィックに対して、コンビュータの有在の確認を含めて、答しないよ うにしよす。 ログを開く .. 「いⅲ no れ 0 、 ”と人おしてくださいを 図 10 ファイアウォールとルール設疋 (sudo ipfw —c list の実行結果 ) ・ファイアウォールを停止した状態 65535 a110 ip from any to any ・ファイアウォールを動作させた場合 ・ UDP トラフィックをプロック " にチェックを入れた場合 02000 02010 02020 02030 02040 02050 02060 65535 a110W ip from any tO any deny ip from 127 . 0 . 0 . 0 / 8 t0 any in Via 10 * 02000 a110W ip from any to any via 10 * deny ip from 127 . 0.0 . 0 / 8 t0 any in deny ip from any t0 127.0.0.0 / 8 in deny ip from 224.0.0.0 / 3 t0 any in deny tcp from any t0 224.0.0.0 / 3 in a110W tcp from any t0 any out a110W tcp from any t0 any established 12190 deny 10g tcp from any to any 02020 02010 deny ip from any t0 127 . 0 . 0.0 / 8 in deny ip from 224.0.0.0 / 3 t0 any in deny tcp from any t0 224.0.0.0 / 3 in a110W tcp from any tO any out a110W tcp from any tO any established 12190 deny 10g tcp from any to any a110W ip from any tO any とたどり、、、リモートログイン " にチェックマークを入れま す ( 図 8 ) 。ファイアウォールが開始されていれば、同時に たいへん重要なので、かならすチェックしましよう。 ソフトウェア・アップテート は、それぞれ図 10 のようなルール定になっています。 、、 UDP トラフィックをプロック " にチェックを入れた場合 ルを停止した状態、ファイアウォールを動かしている場合、 ものなので、 ipfw コマンドが使えます。ファイアウォー このファイアウォールは FreeBSD の ipfw をもとにした ラフィックをプロック " をチェックします ( 図 9 ) 。なお、 ないようにしたい場合は、、詳細 " をクリックし、、、 UDP ト すべて通す設定になっています。 UDP のバケットを通さ ファイアウォールは、初期言定では UDP のバケットを されます。 SSH アクセスのためのポート (22/TCP) への通信が許可 UNIX MAGAZINE 2005 . 12 02030 02040 02050 02060 20321 20340 35000 65535 30520 a110W udp 30510 a110W udp 20370 a110W udp 20360 a110 udp 20350 a110W udp a110W udp 20322 a110W udp a110 udp 20320 a110W udp 20310 a110 udp from from from from from from from from from from any t0 any dst—port 53 in any t0 any dst—port 68 in any 67 to me in any 5353 to me in any t0 any dst—port 137 in any tO any dst—port 427 in any t0 any dst—port 631 in any tO any dst¯port 5353 in me tO any out keep—state any tO any in frag deny 10g udp from any t0 any in a110W ip from any t0 any もあるので、 ISP や自組織のネットワークなどにある、で の Stratum 0 より、近くの Stratum 3 " という言い伝え 米国の NTP サーバーを利用してもよいのですが、、、遠く イアントとしての設定も可能です。 AppIe が運用している ホストの日付と時刻を設定します ( 図 12 ) 。 NTP クラ 日付と時刻 バージョンは 10.4.3 です。 するのがお勧めです。なお、執筆時の Mac OS x の最新 アップデートの確認は、図 11 のように毎日おこなう設疋に する重要な更新もあるので、こまめにチェックしましよう。 的にダウンロードすることができます。セキュリティに関 リケーションの更新 / 修正部分を AppIe のサイトから自動 画面が表示されます。これを使って、 OS や基本的なアプ システム環境言定でアイコンをクリックすると、図 11 の きるだけ近い NTP サーバーを参照しましよう。 131
連載 / Linux のツールたち Number 0f blocks consumed by mkreiserfs formatting process : 8240 Count of blocks on the device : 921728 Format 3 . 6 with standard j ournal Guessing about desired format .. Kernel 2.6 . 11.4—20a—defau1t is running ・ mkreiserfs 3.6.18 ( 2003 買買W. namesys . com) Rescue : ~ # mkreiserfs /dev/sda2 518156 kB Setting up swapspace version 1 , size Rescue : ~ # mkswap /dev/sdal 図 10 スワップ令或およびパーティションのネ用ヒ ATTENTION : YOU SHOULD REBOOT AFTER FDISK ! UUID : 9561f93a ー da2e ー 4643 ー 8348 ー 8f335bd038b1 inode generation number : 0 JournaI Max transaction length 1024 Journa1 Size 8193 blocks (first block 18 ) Hash function used tO sort names : " r5 " B10cksize : 4096 '/dev/sda2' ! . .40 %. .. 60 % . Rescue: / # grub—install /dev/sda Rescue : /mnt # chroot /mnt 図 11 ブート・マネージャーのインストール Rescue:- # ロ ReiserFS is successfully created on /dev/sda2. Syncing ・・ 0k lnitializing Journa1 .. 20 % . Continue (y/n) : y ALL DATA WILL BE LOST ON lnstallation finished. NO error reported. .100 % This is the contents 0f the device map /boot/grub/device . map. Check if this is correct or not . If any Of the lines is lncorrect, fix it and re—run the script grub—install' (fdO) /dev/fd0 /dev/sda (hdO) Rescue:/ # ロ リストア先のパーティションをマウントしたディレクト リに移動し、 tar コマンドを以下のように実行してバッ cd /mnt クアップ・データをリストアします。 時とは異なってしまい、アプリケーションなどが正常に ストアされたファイルのパーミッションがノヾックアップ プションは、かならす指定しましよう。さもないと、リ ファイルのノヾー ミッション情報を保持するための一 p オ tar —x —p —f /media/cdrom/root—sda2. tar 動かなくなるおそれがあります。 5. バックアッフ畤に除外したディレクトリの作成 バックアッフ塒に除外したディレクトリのうち、 /{cdrom,fl 叩 py} 、 proc と sys を作成します。 ()d /mnt) mkdir —p media/{cdrom,floppy} proc sys media 6. プート・マネージャー ( GRUB ) のインストール ( 図 11 ) chroot コマンドを使ってルート・ディレクトリを /mnt 174 に移動し、 grub-install コマンドを実行してプート・マ ネージャーを HDD にインストールします。 7. /etc/fstab の修正 ( 必要であれは ) バックアップしたシステムとリストアするシステムのデ イスク構成が異なる場合は、リストア先のシステムに 合わせて /etc/fstab を修正する必要があります。たと えば今回の場合、リストアしたシステムでは 2 番目の HDD は使わないので、 /etc/fstab を修正して 2 番目 の HDD に対応する行を削除します。これを忘れると、 リストアしたシステムの起動時に、、 HDD がみつからな い " などというエラーになってしまいます。 ☆ これでシステムのリカバリーはおしまいです。システム が、とくに問題なく動いているようです。 を再起動してリストアした HDD からプートしてみました はこがき・はやお ) UNIX MAGAZINE 2005. 12
図 15 gld-mac-info 構〕当本 typedef struct gld—mac—info { gldm—private ; c addr ー t (*gldm-reset) ( ) ; i nt (*gldm-start) ( ) ; int (*gldm-stop) ( ) ; int (*gldm—set—mac—addr) ( ) ; int (*gldm-send) ( ) ; int (*gldm-set-promiscuous) ( ) ; int (*gldm—get-stats) ( ) ; int (*gldm-ioctl) ( ) ; i nt (*gldm—set—multicast) ( ) ; i nt (*gldm-intr) ( ) ; uint_t } gld—mac—info—t ; ができさえすればいい " というのなら、通常デバイスノード gldm-stop はそれぞれデバイスの起動と停止、 gldm-send を作成するドライバのほうが適している (socket や DLPI はバケット送信、 gldm-ioctl は ioctl の処理用のエント のオーバーヘッドが回避できる ) かもしれない。 リポイントである。これらのエントリポイントの引数には また、すべてに共通しているのは、、、言囚み (read)" や gld-mac-info 構造体が含まれるので、同じ種類のデバイ 、、書込み (write)" など、デバイスに対する動作があらかじ スカ夏数あっても、操イ付寸象のデバイスカ定できる。 め定義されており、ドライバはその動作を実行する関数へ 受信したバケットは、メッセージ・プロックにオ内して のポインタを指すということだ。これらは、、上位層→ドラ から gld-recv (9F) で gld モジュールに渡す。 イバ " 方向の切り口であり、 、、ドライパ・エントリポイン 細部は異なっていても、なんとなく L ⅲ ux に似ていると ト " と呼ばれる。 思うかもしれないが、それは gld モジュールがあるおかげ ドライバの仕事を助ける、、ドライバ→上位層 " 方向の切 である。 gld がなければ (STREAMS と DLPI サポート り口もあり、ドライバとカーネルを一体化させる。次回 を自分で組み込むとしたら ) 、見え方はまったく異なり、格 は、カーネルとドライバの協力関係を築く、、カーネルサー 段に難しくなる。 ビス " について解説する。 ( さじま・たかひろ ) 今回のまとめ [ 赭文献 ] ドライバは、デバイスの制御だけではなく、ユーザーやカ [ 1 ] Alessandro Rubini 、 Jonathan Corbet 著、山崎康宏、山 ーネルがデノヾイスを活用できるようにしなければならない 崎邦子、長原宏治、長原陽了訳 TLinux デバイスドライバ第 2 という役割を担っている。そこで、そのためのインターフ 片応、オライリー・ジャパン、 2002 年 [ 2 ] 佐島隆博著 fSoIaris デバイスドライバ』、オライリー ジ、ヤノヾ ェイスがあらかじめ決められている。ドライバは、使用す ン、 2003 年 るインターフェイスに合わせて送受信データを加工する必 [ 3 ] ルロ t 9 Device 〃 7 、加 e , Solaris 10 Software Devel- 要がある。この記事では、このインターフェイスを、、 I / O oper C011ection, Sun Microsystems, 2005 (http:// 抽象化モデル " と呼び、デバイスノードを用いた I/O とネ dOCS. sun. corn ットワーク I/O の一部を抜粋して解説した。 [ 4 ] STREAMS PT ・・四 ramm 9 Guide, Solaris 10 Soft- ware Developer C011ection, Sun Microsystems, 2005 ドライバを作成する際に重要なのは、対応する I/O 抽 (http://docs.sun.com/ 象化モデルを正しく選択することである。それには、デバ [ 5 ] Solaris 10 Reference Manual C011ection Sections, sec- イスがどのように使われるのかを十分にロ刳未しなければな tion 9E (DDI and DKI Driver Entry P0ints), 9F らない。 Ethernet インターフェイスひとつをとっても、 (DDI and DKI Kernel Functions), 9S (DDI and DKI Properties and Data Structures), Sun Microsystems, TCP/IP 通信を前提とするのなら、ここで小したモデル 2005 (http://docs.sun.com/ に合わせればよいだろう。だが、 ンヾケット・キャプチャ H ャ上〒上〒上〒上〒上〒上上 H 一↓ CQ CQ CQ 92 UNIX MAGAZINE 2005 . 12
ネットワークと セキュリティ 白畑真 ネットワーク、の " セキュリティ ( 3 ) ソースルーティンク・チェックツーノい s 「 scan 今回は、古典的な問題だと思われがちなソースルーティ ングをとりあげます。 ソースルーティングは、バケットの通過する糸各を明示 的に指定する IP (lnternet Protocol) のオプションです。 通常の IP ルーティングでは、ルータがもっている経路表 の内容にもとづいて IP バケットを転送します。これに対 し、ソースルーティングのオプションが付加された IP パ ケットは、ルータの糸各表の代わりにオプション・フィー ルドの内容を参照し、そこに指定された経路を通って転送 されます。 現在、ソースルーティングは、一部のネットワークでル ーティングのトラブル・シューティングのために使われる ことがありますが、一殳的には利用されていません。また、 ソースルーティングには IP アドレス詐称などのアタック に悪用される危険性があります。この問題は 15 年ほと前 から指摘されており [ 1 ] 、一部の OS ではデフォルト設定 でソースルーティングを無効化しています。 一方、最新版の OS や機器でもソースルーティングカ陏 効なものがあり、セキュリティ上のリスクとなっているケ ースがみられます。そこで、今回はソースルーティングの 仕組みとそのリスクを説明し、ソースルーティングを確認 するためのツールである lsrscan のインストールと使い方、 50 (LSRR : Loose Source and Record Route) ソースルーティングには、ルーズ・ソースルーティング 明します。 まず、 IPv4 のソースルーティングの仕組みについて説 ソースルーティングの仕組み そして対策について解説します。 とストリ クト・ソースルーティング (SSRR : Strict Source and Record Route) の 2 種類があります。 ルーズ・ソースルーティンク ルーズ・ソースルーティングでは、 LSRR オプションで 指定されたルータの川印茅に従って IP バケットを転送し ます。 LSRR オプションで指定された順序の次のルー タに直接到達できない場合には、指定されたルータ以外 のルータを経由します。 LSRR オプションで指定され ていないルータがバケットを転送する際には、オプショ ンの内容にかかわらず、経路表にもとづいて IP バケッ トを輯医します。 ストリクト・ソースルーティング ストリクト・ソースルーティングでは、 SSRR オプシ ョンで指定したルータの順序に従ってバケットを転送し ます。ただし、ルーズ・ソースルーティングとは異な り、オプションで指定された以外のルータを経由しませ ん。指定されたルータがバケットを転送できない場合、 ICMP Destination Unreachable (Type=3) 工ラー の Source Route Failed (Code=5) コードを送信元 に返します。 図 1 に IP バケットのフォーマットと、そのなかに含ま れる IP オプション・フィールドを示します。ソースルー ト・オプションが指定された IP バケットのオプション・ フィールドの内容は次のとおりです。 ・オプションタイプ・コード オプションの種別を表すコードを指定します、ルーズ・ ソースルーティング ( LSRR ) は 131 、ストリクト・ソ ースルーティング ( SSRR ) は 137 となります。 ・オプション長 UNIX MAGAZINE 2005. 12
リスト 3 ロポット倶のネットワークの準備 ( 工ラータ里は省略 ) struct sockaddr_in saSvr; socket (AF-INET, SOCK-DGRAM, 0 ) ; socCtr1 memset((char *)&saSvr, 0 , sizeof(saSvr)); saSvr . sin—family = AF—INET ; saSvr. sin—addr. s—addr = tO Ⅱ 1 (INADDR—ANY) ; saSvr . sin—port = htons (portCtr1) ; if (bind(socCtr1, (struct sockaddr *)&saSvr, 工ラー処理 図 4 ジョイスティック・データ窈列 sizeof (saSvr) ) く 0 ) { JOY 31277 30686 29942 30207 ー 1 ー 1 FFFFFFFFFFFFFFFF するために、 recvfrom コールを使ってデータを受け取る。 ロポット側は、送信元ホスト (Windows (C) を識別 プをまわるだけだ ( リスト 3 ) 。 して UDP でデータを受信し、それを処理するというルー 処理が終ったあと、 UDP 受信用のソケットを準備する。そ わけでもないのでプログラムは単純だ。ロポットの初期化 使用するのは UDP であり、複数の相手と同時に接続する 側がそれに接続するというかたちである。とはいっても、 今回のプログラムは、ロボット側が待ち受けており、 PC かすだけである。 ら送られたジョイスティック・データに従ってサーボを動 使うといった処理が必要になるだろう ) 、当面は、 PC 側か なり複雑になるが ( プロセスを fork させるとか、 select を やビデオカメラ映像を送信するとなると、実行の流れはか 近い将来、 PC 側からの制御で動作しながら、センサー プログラムの動作 力に表示している。 各種の動作情報やデバッグ情報を標準出力や標準ェラー出 ので、標準入力から操作する機能はもっていない。しかし、 このプログラムは、 UDP でコマンドを受け取るだけな ところは、ユーザーが毎回手作業で起動している。 ーモンとして動作させることになるだろう。しかしいまの の起動時に自動的に起動し、以後はバックグラウンドでデ に標準で付属している制御プログラムと同様に、システム ザーによる操作はおこなわれない。したがって、ロボット このプログラムは、普通に動作しているときには、ユー るだけである。 だが、現状ではテスト的にいくつかの応答情報を送ってい 影した画像を Windows 側に伝送する処理もおこなう予定 164 そして受信した 1 行のテキストを、コマンドライン処理の ようにトークンに分割する。現状では、複数行をまとめて 読み込むことはまだ考えていないので、処理が滞ってバッ フアにデータが溜まった場合には、一部のデータは失われ てしまうだろう。 受信データは、頁のトークンがコマンドであり、改行文 字までの以後のトークンは適当なパラメータと解釈される。 たとえばジョイスティック・データの受信の場合、図 4 の ような行を受信する。 コマンドを示す JOY というキーワードに続けて、ジョ イスティックの 4 軸の値 ( 0 ~ 65 , 535 ) 、 2 つのハットスイ ッチの角度、 16 個のボタン情報 ( 1 つの文字列にまとめて ある ) がある。これを解釈して、プログラム中の適当な変 数に保存する。 受信ルーチンは、先頭のキーワードごとに対応する関数 に分岐するという単純な構造である。現時点では、ジョイ スティックのデータ伝送以外に、ロボットの起動と停止 ( サ ーボの起動と停止 ) 、プログラムの終了のコマンドを用意し てある。ただし、これらも UDP で送っているので、うま く伝送されない可能性がある。 脚の乍 これまでにも何度か述べたように、手で操作するジョイ スティックのようなコントローラでは、 2 足歩行口ポットの 下半身のすべての関節を直接制御することはできない。コ ントローラ側で制御可能な軸数に対して、ロボットの関節 が多すぎるのである。そのため、コントローラ側のある操 作に対して、ロボット側の複数の関節が連携して動作する ような、マクロ的な制御体系を用いる必要がある。 UNIX MAGAZINE 2005 . 12
い」い工い工い工い工いい工い第ユユ 3 」ヨ工い工い」 4 」第新ユ工いい NetNewsu り スのいくつかについて、、、ショートカットの貼付け " の項目 が消えた状態になっていてショートカットを作成できない、 という報告記事力甘高されました。 すれ違いの原因は これらの記事のやりとりをみていると、アドバイス記事 今月は、ユーザー・インターフェイスに関するちょっと を投稿した人と元記事の投稿者とのあいだで、記事の内容 した話題を紹介します。 がすれ違っているのを感じます。これはおそらく、知識や ・ショートカットを作るには 経験の差、元記事の孑窘高者の思い込み、もしくは Windows を使い始めたばかりの人の、、 Windows の見え方 " から生 、、質問上書き " というタイ 巧 . os. ms-windows. xp に じているのでしよう。 トルの記事が投稿されました。これは、調子の悪いプログ 元記事の才窘高者がやろうとしたのは、スタートメニュー ラムがあるので、 PC のデータを消さずに Windows XP を上書きインストールしたいのですが可能でしようか、と のサプメニューにある、、工クスプローラ " を右クリックし、 いう質問記事です。 そのままデスクトップにドラッグしてマウスポタンを離し て、そこに表示されるメニュー項目から、、ショートカット これに対して、インストールについてのアドバイス記事 をここに作成 " を選ぶことでしよう ( 通常のフォルダやフ がいくつカ寸殳稿されましたが、その後さらに元記事の投稿 ァイルではこれができます ) 。しかし、スタートメニューの 者から、ェクスプローラをデスクトップにアイコンとして 項目を右ボタンドラッグした場合は、たしかに、、ショート 表示させたいのに、スタートメニュー→プログラム→アク カットをここに作成 " が表示されません (Windows 2000 セサリ→ェクスプローラからリンク ( ショートカット ) を でも同様です ) 。 作成しようとしてもできない、という記事が孑高されまし たにれが、、調子の悪いプログラムがある " ことの具体的な じつは、スタートメニューの項目の実体は、さきほど紹介 説明のようです ) 。 したアドバイスにもあったように、、 C:*Documents and Sett ⅲ gs " フォルダの下にあり、たとえばそこにある、、工 ショートカットの作り方 クスプローラ " 自身がすでにショートカットになっている 問題点が説明されたことで、、、デスクトップにェクスプ ので、それをそのままデスクトップにコピーすれは凋題な ローラのショートカットを作成する " ためのさまざまな方 くショートカットカ乍成できます。しかし、 Windows に 法をアドバイスする記事が投稿されました。おもな方法 羊しくない人は、スタートメニューやタスクバー、デスク は、デスクトップにショートカットを新規作成し、そのリ トップなど目に見えるものが、、実物 / 実体 ~ と考え、スター ンク先として、、 C:*WINDOWS*Explorer. exe /n,/e, トメニューの中身の実体がほかの場所にあり、さらにそれ C : ¥ " などを指定すれば C ドライプが表示される、、℃ : ¥ すらもじつは、、実物 / 実体 " ではなくショートカットである Documents and Settings* [ ユーザー名 ] ¥スタートメ などとは思わないのでしよう。そのため、ト述のようなア ニュー¥プログラム¥アクセサリ " にある工クスプローラ ドバイスをされても、意味が分からずに、、ショートカット のショートカットをデスクトップに作成すればよいのでは の貼付けの項目が消えている " と返答してしまったのでは ないか、フォルダを探さなくても、スタートメニューのサプ ないでしようか。 メニューにある工クスプローラを ( ショートカットの作成 などではなく ) コピーしてデスクトップに貼り付ければよ ユーザー・インターフェイスは難しい いと思う、一番簡単なのはスタートメニューのサプメニュ Windows の開発者としては、スタートメニューの項目 ーにある工クスプローラを右クリックし、、、送る " →、、デス ( の実体 ) はすでにショートカットになっているため、そ クトップ ( ショートカットを作成 ) " を選ぶことである、と のショートカットをさらに作ることはできないようにした いったものでした。 いのではないかと思います。もしもスタートメニュー内 それに対して元記事の投稿者からは、これらのアドバイ のェクスプローラなどのショートカットを作成したい場合 工 - い第しいをい工いい工いユ工いユ工い工いユ工いユ」」工新い丁い、 . い」工い工 - しい J いユ工い工い工 8j; い J い」い」」ユ工いヨ」ユ〕工い工いゞい」工いい工「 ;v; い みるく 一三ロ 142 UN 工 X MAGAZINE 2005 . 12
連載 / Pe 日活用のヒント この lmage : : Magick ; なお、画像ファイルのものではない拡張子が指定された 何もしない。 ら自動的におこなうので、 simple-image-saver 自体は ファイル形式の選択は lmage: :Magick がファイル名か 93 行目 $image—>Write($fiIename-to-write) ; するためにこのようにしている。 リスト 1 simple-image-saver 今回は simple-image-saver について説明した。 ☆ 場合は PNG 形式での保存となる。 プログラムを皆さんの日々の作業に役立てていただければ さいわいである。また、 Perl はサーバー上でのプログラム だけでなく、日々のちょっとした作業の効率化を図るため にも使えることを実感してもらえればと思う。 ( いまづひでよモルガン・スタンレー証券 ) 1 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # ! wperl —w # $ld: save—cb—image . plw,v 1 . 4 2004 / 10 / 03 12 : 32 : 47 himazu Exp $ # See . /LICENSE for terms of distribution. # (c) 2004 , 2005 Morgan Stan1ey Dean Witter and Co. use use use use sub strict ; IO: :Fi1e; Tk ; Win32 : : OLE; Encode utf8; Win32: : C1ipboard; constant MY—NAME = > " SimpIe Save lmage" sub abort { my $sh = Win32: : OLE->new("WScript . She11") ; $sh—>Popup()- [ 0 ] , 2 , MY-NAME, 64 ) ; exit 0 ; sub fix8 { my $bitmap = shift ; substr($bitmap, 2 , 4 ) pack("L" , unpack("L" , substr($bitmap, 2 , substr($bitmap, 10 , 4 ) = pack("L" , 0X436 ) ; $bitmap " \ X00 " x 1024 ; sub fiX1632 { my $bitmap = shift ; substr($bitmap, 2 , 4 ) pack("L", unpack("L" substr($bitmap, 10 , 4 ) $bitmap " \ X00 " x 12 ; 4 ) ) + 1024 ) ; 4 ) ) + 12 ) ; substr($bitmap, 2 , pack("L" 54 + 12 ) ; fix—n—put { my ($bitmap, $image) 158 UNIX MAGAZINE 2005. 12
ムを、 opt-out ( 削除イ頁方式 ) で実現すると宣言して物議 をかもしている [ 9 ] 。コピーを許可する TV 番組も、いずれ 英国あたりから登場するだろう。生活に必要な基本情報は コピーが許され、近隣のキャッシュから無料で入手できる ようになり、特別に制作された映画や株価のリアルタイム 情報などは有料サービスを利用する、といったようになる。 コピーを許すビジネスモデルの鍵は、情報技術の進歩に ある。ユーザーの利用状況カ甘巴握できず、細かな課金の仕 組みもなければ、情報のコピーを禁じるほかにない。しか し、精密な検索とロギングが可能になれば、コピーを許す モデルへと加速していくであろう。 遅くて不確実な通信のこれから 可視光通信以外にも、遅くて不確実な通信に関する技 術革新は目覚ましいものがある。たとえば、可視光通信 より実用化は遅れるだろうが、超音波を用いて数百メート ル以上の遠距離に正確に音声を伝える技術も出てきている [ 10 ] 。これを使えば、可視光の届きにくい霧の多い場所で も通信が可能になるかもしれない。また、水中を伝わりや すい超音波を利用し、 10km の距離を 1 ,200bps で通信す ることも可能になった [ 11 ] 。 さらに、人工衛星も安価に打ち上げられるようになって いる。東京大学の CubeSat プロジェクトでは、数千万円 で人工衛星を打ち上げる計画を立てている [ 12 ] 。自治体に よる通信衛星の打上げが、成層圏プラットホームの実用化 よりも早いかもしれない。衛星からのデータなら、多くの 自治体で受信できる。 情報を取得するためにさまざまな手段を組み合わせ、大 容量のキャッシュに蓄積して利用する。センサーを駆使す れば、天気のいい日や風の強い日には信号が強くなるため、 一気に大容量のファイルをダウンロードするといった技術 も発達するだろう。 ZigBee という通信ミドルウェアは、遅 くて不確実なネットワーク向けの機能強化を 2005 年末に 予定している [ 13 ] 。 遅くて不確実な通信のためのソフトウェアおよびハード ウェアの進歩と整備は、今後も着々と進むだろう。そうい った ( 遅くて不確実な ) 通信インフラを使いやすくする各 種サービスやアプリケーションもすぐに登場し、そこには 膨大なビジネスチャンスが生じるだろう。電子メールによ る通信や、以前使われていた UUCP のようなデータ共有方 154 式、あるいはアマチュア無線の復活さえあるかもしれない。 ☆ 以上のように、さまざまな分野でポトムアップ型の通信 インフラを構築する要素カい始めている。これらをうま く組み合わせて自由なネットワークを作るという試みは、 5 年以内は無理としても、 10 ~ 20 年以内であれば、かなり 現実味があるように思う。自由なネットワークが利用可能 になったとき、私たちの社会は現在よりもすこし民主的で、 地域に根差し、あたたかいものになっているかもしれない。 ( なかじま・けんごコミュニティエンジン ) [ 参考 URL] [ 1 ] V. Kopytoff and R. Kim, Google 0 ガ et 、 s SF ル角 , San Francisco Chronicle, Oct. 1 , 2005 (http://www. sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/10/01/ MNGG9F16KGI. DTL) [ 2 ] VLCC (http://www ・ vlcc ・ net/) [ 3 ] 市村正也「太陽電池というモノ」 (http://araiweb.elcom. nitech. ac ・ jp/-ichimura/solar/) [ 4 ] 酉島製作所 : 風レンズマイクロ風車 (http://www.torishima ・ CO ・ jp/sei-new-micro-wind. html) [ 5 ] C. Archer and M. Jacobson, E ? 畑ん観乞 0 れ可 G あ / 怖の Pow ・ , ⅲ Journal of Geophysical Research, VOL110 , D12110 , Jun. 2005 (http://www.stanford. edu/group/efmh/winds/global-winds.html) [ 6 ] 「プレスリリース : 風力発電所言気のための風車配置麪爰システ ム (LAWEPS-PIanner) の開発」、関西電力、 2005 年 9 月 14 日 (http://www.kepco.co ・ jp/pressre/2005/0914- 2j ・ html) [ 7 ] WIKIPEDIA (http://www.wikipedia.org/) [ 8 ] mF247 (http://mf247.jp/) [ 9 ] S. Kuchinskas, Google Extends B00 ん Sc 佖れⅲれ 9 0 era 0 れ , internetnews.com/ Aug. 31 , 2005 (http:// www.internetnews.com/xSP/article.PhP/3531221) [ 10 ] J. Gartner, P れ ' が一 S ん 0 尻 Sound スイ佖ん es ? 肥 s , Wired News, Feb. 21 , 2002 (http://www.wired.com /neWS/teChn010gY/0,1282,50483,00. html) [ 11 ] 金沢敏彦「イ題カ型広帯域地震観測と海底観測の準リアルタイム 化海半球ネットワークニュースレター、 No. 2 、 1998 年 6 月 (http://eri-ndc.eri.u-tokyo.ac ・ jp/jp/ohp/letter98 /kanazawa. html) [ 12 ] 東京大学 CubeSat プロジェクト (http://www.space.t.u- tokyo. ac. jp/cubesat/) [ 13 ] ZigBee Alliance (http://www.zigbee.org/) [ 14 ] Ringo's Weblog ( 著者の Blog ページ ) (http: 〃 www.ce- lab. net/ringo/) UNIX MAGAZINE 2005. 12
連載 / ネットワークとセキュリティ 図 2 ルーズ・ソースルーティング窈列 図 1 IP バケットのフォーマットとソースルート・オプション ・旧バケットのフォーマット 0 4 8 1 2 To S プロトコル 1 6 フラグ 20 24 28 オプション長 断片化オフセット 31 ノヾージョンヘッダ長 ヘッダ・チェックサム 送信元旧アドレス 宛先旧アドレス 旧オプション ・ LSRR(Loose Source and Record Route) オプションタイプ・コードオプション長 ポインタ / ヾディング 経路データ ( 経由させるルータの旧アドレス # 1 ) 経路データ ( 経由させるルータの旧アドレス # 2 ) 経路データ ( 経由させるルータの旧アドレス # 3 ) 宛先旧アドレス 192.0.2.1 送信元旧アドレス 192.168.0.1 192.0.2.1 ルータ A ルート・オプション ) 経路データ ( ソース 宛先旧アドレス 送信元旧アドレス 192.168.0.1 172.16.0.1 192.0.2.1 トレコードルート 10.0.0.1 ソース丿レート ーポインタ 、こノ、多、 172.16.0.1 ルータ B 送信元旧アドレス 宛先旧アドレス 経路テータ ( ソース ルート・オプション ) 192.168.0.1 10.0 ℃ . 1 192.0.2.1 ←ポインタ レコードルート 172.16.0.1 送信元ホスト 192.168.0.1 経路テータ ( ソース 172.16.0.1 ルート・オプション ) 10.0.0.1 ーポインタ ソースルート オプションタイプ・コード、オプション長、ポインタ、糸各 データを含むオプションの領域のサイズを指定します。 ・ポインタ ポインタは、経路データのなかで次の転送先となる IP アドレスの位置を示します。 糸登各データ 経由するルータの IP アドレスとその川印のリストを指 定します。 図 2 に、送信元 IP アドレスが 192.168.0.1 、宛先 IP アドレスが 10.0.0.1 で、途中にルータ A ( 192.0.2.1 ) と ルータ B ( 172.16.0.1 ) を経由するルーズ・ソースルーテ イングの例を示します。 ます、ソースルートをおこなう送信元ホストは、宛先 IP UNIX MAGAZINE 2005. 12 10.0.0.1 宛先ホスト ート・オプションを参照し、宛先 IP アドレスを本当の宛 ルータ B でも同様の処理がおこなわれます。ソースル 用します。 を進めることで、ソースルートをレコードルートとして利 4 バイト ( IP アドレス 1 つ相当 ) ぶん進めます。ポインタ である、、 192.0.2.1 " に書き換えます。最後に、ポインタを 換えます。さらに、糸各データの 1 番目を自身のアドレス 宛先 IP アドレスを次のルータである、、 172.16.0.1 " に書き 次に、ルータ A はソースルート・オプションを参照し、 ます。 設定します。これにより、バケットがルータ A に送信され 、、 172.16.0.1 " 、 2 番目に本当の宛先である、、 10.0.0.1 " を アドレスを、、 192.0.2.1 " と言定し、糸響各データの 1 番目に 51
旧 v6 モビリティ ( 1 8 ) v6 の実装 39 ある目的を達成するための方法が 1 つしかないというこ とは稀です。いくっかの方法を検討し、そのなかで最良の 方法を選ぶのが正しい進め方でしよう。 IPv6 移動通信を 実現する方法も、 MobiIe IPv6 カーの技術ではありませ ん。この連載は今回で終了しますが、 MobiIe IPv6 の解 説を締め括るにあたり、その関連技術を紹介しておきます。 1 つ目は MOBIKE (IKEv2 Mobility and Multi- homing protocol)l です。その名のとおり、 IKEv2 を拡 張して移動通信機能を追加する試みです。現在の IKE の おもな利用方法は VPN の構築です。皆さんのなかにも、 ノート PC を VPN クライアントとして、社内や学内ネッ トワークへ公衆無線 LAN などからアクセスしている方が 多いかと思います。現在の仕組みでは、ノート PC カ形動 し、接続しているネットワークカ畯わると、 VPN 接続も 切断されてしまいます。 MOBIKE では、ノート PCå噺 たに接続したネットワークで取得したアドレスを IKEv2 のメッセージを使ってやりとりすることで、前の位置で確 立していた VPN 接続を現在位置へ移動することができま す。ノート PC を移動ノード、セキュリティ・ゲートウェ イをホーム・エージェントと考えれば、理論的には MobiIe IPv6 の双方向トンネル通信と同じ仕組みといえます。 2 つ目は HIP (Host ldentity ProtocoI)2 です。各 HIP ノードは、 IP アドレスに依存しない一意の識別子 (HIT : Host ldentity Tag) をもちます。実際のバケッ トは IP アドレスを用いて送受信されますが、ノードの IP アドレスと HIT は関連づけられており、トランスポート 層での通信はすべて HIT を利用します。アドレスカ畯わ っても HIT の値は変化しないため、アプリケーションは 1 draft-ietf-mobike-pr0tocol-05. txt 2 draft-ietf-hip-base-04. txt UNIX MAGAZINE 2005 . 12 移動を意識することなく通信を継続できます。 HIT をホー ムアドレス、 IP アドレスを気付アドレスと考えれば、これ も仕組みとしては MobiIe IPv6 の糸各最適イ甬信によく 似ています。 最後に SCTP (Stream Control Transmission pro- tocol ) 3 を挙げます。 SCTP はトランスポート・プロトコ ルの一種です。移動通信を実現するために設計されたわけ ではありませんが、 1 つのトランスポート通信に対して同 時に複数のアドレスを利用できるので、通信を維持したま ま、次々とアドレスを変更していくことができます。 どの技術にも利点と欠点があり、すべての面でほかより 優れているプロトコルがあるわけではありません。現在、 私たちはまだ、 IP における移動通信の的確な応用場面を みつけきれずにいます。移動通信に採用すべき技術は、そ の利用方法に依存するはずです。今後、移動通信の利用が 進むにつれ、適切な技術の選択がおこなわれるのではない でしようか。 今回参照するファイル 今回は、移動ノードのプレフィックス処理に関係する以 下のファイルを参照します。 ・ kame/sys/netinet6/mip6-icmp6. c ( 改訂番号 1.93 ) モバイル・プレフィックス要求の送信 移動ノードは、自分のホーム・ネットワークのプレフィ ックスを mip6-prefix 構造体として保持しています。プ 3 R. Stewart, et al., Strearn Control Transmission Proto- C01 , RFC2960 , October 2000 93