EBUG 第 4 回 会合「無線で行こう! LAN ら LAN」

Last update: 8th, Jan, 2003

 EBUG 第 4 回 会合「無線で行こう! LAN ら LAN」で行なった、XCAST6 のネットワークの概要について述べます。

物理的構成

 以下にネットワークの物理的構成を示します。

 新潟市内に設置された Niigata site には、ISP-A から 8 個の IPv4 アドレスが固定で割り当てられています。また、同 ISP からは IPv6 over IPv4 tunnel による接続サービスが提供されており、/48 の IPv6 アドレスが割り当てられています。

 イベント会場である湯沢町に設置された Yuzawa site には、ISP-B から複数の IPv4 アドレスが固定で割り当てられています。

Niigata site のルータと Yuzawa site に設置した NetBSD 機との間で、IPv6 over IPv4 tunnel を設定し、会場の NetBSD 機からの IPv6 による接続性を確保しました。

 各サイトから上流への接続は、共に、下り 1.5Mbps/ 上り 512Kbps の ADSL で、最も理想的な状態でも 512Kbps 以上の帯域を得ることはできません。

論理的構成

 以下に IPv6 ネットワークについての論理的構成を示します。

 Niigata site では、ISP-A から割り当てられた /48 の IPv6 アドレスのうち、/64 を使用しています。そこで、Yuzawa site 用に別の /64 ネットワークを割り当てました。従って、Yuzawa site は、Niigata site に集約されたアドレスの一部として IPv6 ネットワークに接続することになります。

ルータの設定

 Niigata site のルータには、YAMAHA 製 RTA54i を使用しました。以下に、今回の接続に使用した IPv6 関連の設定を示します。

 WAN 側インターフェイスへの IPv6 アドレスの設定

ipv6 lan1 address xxx:xxx:xxx::201/64

 ISP-A 向けの IPv6 over IPv4 トンネルの設定

tunnel select 1
tunnel endpoint address nnn.nnn.nnn.nnn aaa.aaa.aaa.aaa
tunnel enable 1

 Yuzawa site 向けの IPv6 over IPv4 トンネルの設定

tunnel select 2
tunnel endpoint address nnn.nnn.nnn.nnn yyy.yyy.yyy.yyy
tunnel enable 2

 経路設定

ipv6 route default gateway tunnel 1
ipv6 route xxx:xxx:xxx:1::/64 gateway tunnel 2

 ルータ広告 (RA) の設定

ipv6 prefix 1 xxx:xxx:xxx::/64 l_flag=on a_flag=on
ipv6 lan1 rtadv send 1

 各アドレスは次の各項を示します。

xxx:xxx:xxx::
ISP-A から割り当てられた IPv6 ネットワーク
nnn.nnn.nnn.nnn
Niigata site に割り当てられた IPv4 アドレス
aaa.aaa.aaa.aaa
ISP-A の IPv6 over IPv4 トンネルの対向 IPv4 アドレス
yyy.yyy.yyy.yyy
Yuzawa site の XCAST6 client に割り当てられた IPv4 アドレス

NetBSD の設定

 ここでは、XCAST6 0.1.1 on NetBSD 1.6 の設定について述べます。

 $work ディレクトリを $HOME/NetBSD と仮定していますが、 環境に応じて適宜置き換えてください。

インストール

 配布物とパッチを取得します。

% cd $work/
% ncftpget ftp://ftp.iij.ad.jp/pub/NetBSD/NetBSD-release-1-6/tar_files/src/sys.tar.gz
% foreach i (lib sbin usr.sbin)
foreach? wget http://umn.dl.sourceforge.net/sourceforge/xcast6/xcast6-0.1.1-${i}.tar.gz
foreach? end
% ncftpget ftp://ftp.iij.ad.jp/pub/NetBSD/misc/hamajima/xcast6/xcast6-0.1.1-netbsd-sys-1.6.diff.gz

 kernel を再構築し、インストールします。 なお、/usr/bin/patch (GNU patch ver 2.0) ではなく、 GNU patch ver 2.5 以降を使うことを推奨します (pkgsrc/devel/patch を使うと便利)

% gzip -dc sys.tar.gz | tar xvf -
% cd src/
% gzip -dc ../xcast6-0.1.1-netbsd-sys-1.6.diff.gz | gpatch -p1
% cd sys/arch/i386/conf/
% cp GENERIC EBUG
% vi EBUG
[...]
% diff -u GENERIC EBUG
--- GENERIC     Sat Aug  3 17:29:18 2002
+++ EBUG        Wed Oct  2 01:43:20 2002
@@ -1077,3 +1077,6 @@
 pseudo-device  wsmux                   # mouse & keyboard multiplexor
 pseudo-device  wsfont

+# XCAST6
+options            XCAST6
+pseudo-device      xcst    1

% config EBUG
% cd ../compile/EBUG/
% make depend && make all && sudo make install

 XCAST6 の userland を作成し、インストールします。

% cd $work/
% foreach i (in6.h xcast6.h)
foreach? sudo cp -p ./src/sys/netinet6/$i /usr/include/netinet6/
foreach? end
% cd $work/
% gzip -dc xcast6-0.1.1-lib.tar.gz
% cd xcast6-lib/libxcast/
% make
% sudo make install
% sudo cp -p libxcast.h /usr/include/
% cd $work/
% gzip -dc xcast6-0.1.1-sbin.tar.gz | tar xvf -
% cd xcast6-sbin/sysctl/
% make
cc -O2   -Werror  -DINET6 -DIPSEC   -c sysctl.c
sysctl.c:59: vm/vm_param.h: No such file or directory
*** Error code 1

Stop.
make: stopped in /home/kura/NetBSD/xcast6-sbin/sysctl

% cp sysctl.c sysctl.c.orig; vi sysctl.c
[...]
% diff -u sysctl.c{.orig,}
--- sysctl.c.orig       Wed Oct  2 02:15:50 2002
+++ sysctl.c    Wed Oct  2 02:16:54 2002
@@ -56,7 +56,7 @@
 #include <sys/mount.h>
 #include <sys/mbuf.h>
 #include <sys/resource.h>
-#include <vm/vm_param.h>
+#include <uvm/uvm_param.h>
 #include <machine/cpu.h>
 
 #include <ufs/ufs/dinode.h>

% make && sudo make install

sysctl は上書きせずに別途インストールした方がいいかも知れません。

% cd $work/
% gzip -dc xcast6-0.1.1-usr.sbin.tar.gz | tar xvf -
% cd xcast6-usr.sbin/
% make && sudo make install

 上記でインストールしたもの以外に必要となる XCAST6 対応ツールに vic (Video Conferencing Tool)、 rat (Robust-Audio Tool)、 xcgroup (グループ管理ユーティリティ) があります。

配布物として取得していませんが、 XCAST6 の README に書いてある通りに作業すれば build できます (自分で build するには少なくとも tcl, tk, ruby が必要です)

ftp://ftp.NetBSD.ORG/pub/NetBSD/misc/hamajima/xcast6/ およびそのミラーサイトから取得できる、 濱嶋@NBUGさんの配布されているバイナリを利用すると便利です。

設定

 前提事項:

 IPv6/IPv4 トンネルを作成します。

% sudo ifconfig tun0 create
% sudo ifconfig gif0 create
% sudo ifconfig gif0 tunnel [IPv4 SRC addr] [IPv6 DST addr]
% sudo ifconfig gif0 inet6 [IPv6 SRC addr] [IPv6 DST addr]
% sudo route add -inet6 :: default -ifp gif0

reachability があるか ping6 や traceroute6 で確認してください。 以上でよければ、/etc/ifconfig.gif0 に

create
inet6 [IPv6 SRC addr] [IPv6 DST addr] prefixlen 128
tunnel [IPv4 SRC addr] [IPv6 DST addr]
!/sbin/route add -inet6 :: default -ifp gif0

と書いて、 OS 起動時にトンネルが自動的に作成されるようにしておくと便利です (FreeBSD では /etc/start_if.gif0 かもしれません)

 次に XCAST6 の設定を行います。 XCAST6 の README には

xcstif=xcst0
xcast6rt=ff05::10

ifconfig $xcstif up

linklocal=`ifconfig $xcstif | grep inet6 | grep 'inet6 fe80' | head -1 |
     awk '{print $2}'`

route add -host -inet6 $xcast6rt $linklocal

というスクリプトを /usr/local/etc/xcast6-setup.sh に書いて /etc/rc.local から実行するようにとあります。 すでに multi-user mode で OS が起動しているのなら、 ifconfig xcst0 して一番上の inet6 なアドレスを route add してください。 上記の設定がちゃんとされているか確認するために ping6x、traceroute6x をお近くの XCAST6 ready なホストに向けて試してみてください.

 では、XCAST6 対応アプリケーションを起動します。

お近くに xcgroup server を用意してくださる方がいらっしゃる場合、

% sudo xcgroup -b http://ホスト/どこか/xcgroupsrv.cgi -g グループ名

として xcgroup server の情報をもらいます。

あとは

% vic -n xcast6 -t 128 ::1/11000
% rat -t 128 ::1/11111

でいいはずです。

その他

参考

 配布:

 文書:


Back to EBUG Home
Copyright(C) 2001-2003 Echigo BSD Users Group.
<inquiry@ebug.jp>