MacOS X(Snow Leopard)でFeel6へ接続する

私はMacBookProのユーザなのですが、移動先でインターネット接続する必要も頻繁にあり、通信デバイスは必須です。現在はSoftBankのC01HW(E-MobileのD25HWの同型機ですね)を使用しています。

上記の様な環境でIPv6の通信(お金が無いのでFeel6を利用)を行おうとしたのですが、一筋縄では行きませんでした。

Feel6への接続には本来BitBasket6というソフトウェアで行うのが正道なのですが、MacOS X用の同ソフトウェアはバージョンが古い為か正常に動作しません。

さてどうするか、ということでNetBSDでもお世話になっているdtcpclientを利用することを試みました。

コンパイル/インストールは例によってpkgsrc頼みという事で、特に問題は無し。

ドキュメントとWebページを斜め読みしながら、適当に:)セットアップ。

/usr/pkg/etc/dtcpclient.auth:

dtcp.feel6.jp:username:password

/usr/pkg/etc/dtcpclient_script.conf:

# Set gif interface name to be used for tunnel.
# FreeBSD: If tunif is not set, gif will be created dynamically.
# MacOSX: If tunif is not set, interface will be determined
# automatically.  When you set it explicitly, make sure having
# specified gif interface beforehand.
# Other: default is gif0
tunif='gif0'
#
# Set to static route. (default: default)
#static_routes='default'
#
# Set IPv6 address if you wish to add it to gif interface. (default: '')
tunif_addrs='2001:3e0:70e:1::1'
#
# Set to "YES" if you don't want to destroy cloned interface.
# (default: NO)
# FreeBSD: If tunif is not defined, this will be treated as "NO".
# MacOSX: This is ignored.
#cloned_interface_keep="NO"
#
# Set definition of prefix delegation if you want to do prefix
# delegation with network type tunnel.
# The format is `interface/slaid/hostid/prefixlen'.
# The default of `slaid' is `0'.
# When `hostid' is ommitted, EUI-64 address is assumed.
# The default of `prefixlen' is `64'.
# If `@' is specified as interface, it is substituted with the tunnel
# interface.
#prefix_delegation='sis0/1'
#
# If you want to execute more commands at up/down, you can set
# `up_command' and `down_command'.

ここまでできたら、おもむろにdtcpclientを起動します。

% sudo dtcpclient -t network -n -u username -d dtcp.feel6.jp
logging in to dtcp.feel6.jp port 20200
>>> +OK 0ea3b13e5f26291f389d33b9xxxxxxxx FBDC TunnelBroker (version 0.2) Ready. <1484223>:4096
<<< tunnel timerockets02 DFE218CF29EAE8E7CB1Cyyyyyyyyyyyy network >>> +OK 114.48.81.61 43.244.255.36 2001:03e0:070e::/48
add net default: gateway ::1
sleep(60)
<<< ping
>>> +OK pong
sleep(60)
…

大丈夫かな?

% ifconfig gif0
gif0: flags=8051 mtu 1280
	tunnel inet 192.168.1.100 --> 43.244.255.36
	inet6 fe80::5ab0:35ff:fefe:bf60%gif0 prefixlen 64 scopeid 0x2
	inet6 2001:3e0:70e:1::1 prefixlen 64

…一応大丈夫みたい。では疎通確認:

% traceroute6 -I www.iij.ad.jp
traceroute6 to www.iij.ad.jp (2001:240:bb42:b000::1:80) from 2001:3e0:70e:1::1, 64 hops max, 16 byte packets
 1  2001:3e0::30:230:b6ff:fedf:541b  1199.803 ms  239.941 ms *
 2  feel6-gate.feel6.jp  589.596 ms  359.596 ms  518.600 ms
 3  2001:3e0::c:204:4eff:fea0:7854  87.743 ms  107.973 ms  69.985 ms
 4  freebit-gate.tunnel1.otemachi4.v6.dti.ad.jp  69.778 ms  79.211 ms  81.299 ms
 5  2001:2e8:20:11::11  108.154 ms  271.541 ms  339.894 ms
 6  2001:7fa:7:1::2497:1  772.668 ms *  428.589 ms
 7  tky001bf01.iij.net  409.778 ms  407.788 ms  409.929 ms
 8  tky008bb01.iij.net  409.294 ms  407.840 ms  409.368 ms
 9  2001:240:bb02:b::29  409.384 ms  267.036 ms  656.536 ms
10  2001:240:bb42:b000::1:80  409.665 ms  310.176 ms  409.281 ms

うん、IIJにつながる。

% ping6 www.tkn.funabashi.chiba.jp
PING6(56=40+8+8 bytes) 2001:3e0:70e:1::1 --> 2001:3e0:a01::1
16 bytes from 2001:3e0:a01::1, icmp_seq=0 hlim=61 time=84.100 ms
16 bytes from 2001:3e0:a01::1, icmp_seq=1 hlim=61 time=94.122 ms
16 bytes from 2001:3e0:a01::1, icmp_seq=2 hlim=61 time=93.587 ms
16 bytes from 2001:3e0:a01::1, icmp_seq=3 hlim=61 time=104.282 ms
^C
--- www.tkn.funabashi.chiba.jp ping6 statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 84.100/94.023/104.282/7.140 ms

自宅もO.K.

ということで、ひとまず当初の目的は達成しました。configファイルの中身やdtcpclientのkickの仕方など、もう少し練り込みたいところですが、とりあえずはここまで。


(2011/04/04追記)

こんなshell scriptを作りました。


#!/bin/sh
export PATH=/usr/local/bin:/usr/pkg/sbin:/usr/pkg/bin:/usr/bin:/bin:/usr/sbin:/sbin

dtcpclient -t network -D -n -u username dtcp.feel6.jp

-Dオプションを追加したのがポイント。これをdtcpc.shの名前で保存して、

% sudo dtcpc.sh

で起動します。これで目的を達することができました。

カテゴリー: Feel6, IPv6, MacOS X パーマリンク