5.7. IrDA ネットワークの隣人たち

5.7.1. Laptop-プリンタ-PDA

Sourceforge の Drag-n-drop 関連 のところを見てください。PDA に (IrOBEX を使って)、およびプリンタに (IrLPT を使って) ドラッグアンドドロップでファイルを送れるようになります。

5.7.2. ブリッジング/ルーティング

James さんによると「ルーティングを兼ねたブリッジングを行うずっといい方法があります。 これは完全にユーザ空間で動作し、カーネルパッチは必要としません。

これは2つの部分からなっています (一方だけで良いかもしれませんが、両方とも必要かもしれません)。 最初の部分は irdaipcfg という名で、次のことをします。

  1. 最初の部分は、irdaipcfg ifeth ifirlan としてデーモンで実行します。これは ifirlan の ARP パケットを監視し、デーモンを実行中のマシンによって出されたものではない arp パケットをチェックします。 この arp パケットは実行中のマシンと irlan の反対端の IP アドレス (これは irlan コードで、gratuitous arp 要求の結果から作成されます) を含みます。 このプログラムはそれを使って、ifirlan を用いたこの ip アドレスへのホストルートを作成し、ifeth にそのアドレスに対する proxy arp を行うよう付け加え、ifeth に向けて gratuitous arp を送ります。 これはクライアントの IP アドレスを /var/run/host.ifirlan に書き込みますので、 上記すべてをスクリプトから簡単に無効にすることができます [1]

  2. 二番目の部分は gratarp ifirlan として実行します。時々 gratuitous arp がパイプ処理中で行方不明になるようですので、gratarp はデーモン化して、起きていることすべてを吐き出し続けます。

私は以下のようにして使っています (使い方はお好きなように)。

私のホストマシン (ローカルネットに繋がっているマシン) では、irlanx は アドレス 10.192.0.1 でネットマスク 255.255.255.255、 またブロードキャストアドレスを 10.192.0.1 として、irattach により /etc/irda/network 中から ifup スクリプトで立ち上げています。 /etc/irda/network では次に irdaipcfg eth0 irlanx と実行してルーティングを行います。

/etc/irda/network から

"start")
    echo 1 >/proc/sys/net/ipv4/conf/all/forwarding
    ./ifup ifcfg-${device}
    /sbin/irdaipcfg ${localnet} ${device}
    ;;
"stop")
    host=`cat /var/run/host.${device}`
    if [ .$host != . ]; then
      /sbin/arp -d ${host} dev ${localnet}
      /sbin/route delete ${host} dev ${device}
    fi
    ./ifdown ifcfg-${device}
    /sbin/ifconfig ${device} down
    ;;

クライアント側では、irlan を通常のサブネットアドレス 10.32.32.51 とし、但し通常のネットマスクとは異なる 255.255.255.255 で設定しています。 10.192.0.1 dev irlan をホストにし、デフォールトゲートウェイを 10.192.0.1 dev irlan にした静的ルーティングを使っています。 /etc/irda/network から gratarp を実行しており、家の中を歩き回っても telnet や ssh のセッションは切れません。これらは ftp://bullard.esc.cam.ac.uk/pub/irda に置いてあります」

5.7.3. IPv6

私の知る限り、IPv6 には近傍探索メカニズムが規定されていますが、Linux/IrDA を IPv6 で使うことに関する情報は持っていません。この話題に関する議論は Subject "patch-2.2.7-ac1-irda4" のスレッドでありましたので、 メーリングリストアーカイブを当たってみてください。

5.7.4. DHCP

dhcpcd を IrLAN で使えるとの報告を受けています。最新の DHCP ソフトウェアを使うようにしてください。

Notes

[1]

訳注: gratuitous arp/proxy arp (rfc2002) は定訳がないようですので、そのままにしました。原文の typo は修正。