さくらVPSでIPv6を使う
はじめに
新サービス「さくらのVPS」(正式版)お申し込み受付開始のお知らせ
というわけで、国内ホスティング大手のさくらさんからVPS(Virtual private server)のサービスがリリースされたのでさっそく使って遊んでみました。今まで専用サーバでしか使えなかったrootが使えるので、今まで以上に遊べそうです。
提供されるサービスは以下のような感じになっています。
さくらVPS | |
料金 | 月額980円 |
試用期間 | 2週間 |
CPU | Intel(R) Xeon(R) CPU ? @ 2.40GHz |
MEM | 512MB |
HDD | 20GB |
帯域 | UP:1Gbps, Down:100Mbps |
NIC | Intel(R) PRO/1000 Network Connection |
IPv4 | グローバルアドレス1個 |
IPv6 | 無し |
OS | CentOS 5.5 x86_64 |
他のサービスとの比較は、格安VPSの比較「ServersMan@VPS」と「さくらのVPS」(2010/9/1時点) « R2.agによくまとまっている感じです。気になる速度測定の結果は、さくらのVPS 正式版 - masa23のメモによくまとまっています。
IPv6を使いたい
そこそこ高性能な占有サーバを安価に利用できるなら、IPv6も使いたいところです。IPv6対応のホスティングサービスはまだあまり多くないので、VPSを利用してIPv6サーバを作ってみました。
さくらVPSでIPv6を使うにはいくつか方法があります。表にまとめました
手段 | トンネル方式 | 長所 | 短所 | 説明 |
6to4 | v6 over v4 | 比較的すぐ使える | IPv4アドレスが変わるとIPv6アドレスが変更になる 戻りの経路についてはクライアント依存 | IPv4グローバルアドレスが利用できるので6to4が利用可能。さくらVPSからリレールータまでの距離が近い(サーバからクライアント方向) |
teredo | v6 over v4 | 比較的すぐ使える | リレールータまでの距離が遠く遅延大 | teredoルータを経由することでIPv6 over IPv4を実現する |
PacketiX公開実験 | Ether over v4 | 固定Prefixが利用可能 | 専用のサーバが必要 | グローバル・固定 IPv6 アドレス割当型トンネル接続実験サービスを利用して接続する |
というわけで、今回はグローバル・固定 IPv6 アドレス割当型トンネル接続実験サービスを利用してさくらVPSにIPv6のコネクティビティを実現してみました。
PacketiX VPN Clientのインストール
というわけで、早速サーバの仕込みです。手順としてはVPN Clientをインストールして実験サービスに接続するだけです。今回はPacketiX VPN Client3.0を利用します。最新版はSoftetherのWEBからダウンロードしてください。
# 依存モジュールをインストール yum -y install openssl-devel zlib-devel readline-devel ncurses-devel # 適当なディレクトリで # PacketiX VPN Client3.0をダウンロード wget http://uploader.softether.co.jp/vpn3/v3.00-6890-rtm-2010.03.15/VPN/Japanese/Linux/PacketiX%20VPN%20Client%203.0/64bit%20-%20Intel%20x64%20or%20AMD64/vpnclient-v3.00-6890-rtm-2010.03.15-ja-linux-x64-64bit.tar.gz # 展開 tar zxvf vpnclient-v3.00-6890-rtm-2010.03.15-ja-linux-x64-64bit.tar.gz # install.shでインストール cd vpnclient sh .install.sh -------------------------------------------------------------------- PacketiX VPN Client 3.0 (Ver 3.00, Build 6890, Japanese, Intel x64 / AMD64) for Linux Install Utility Copyright (C) 2004-2010 SoftEther Corporation. All Rights Reserved. -------------------------------------------------------------------- Do you want to read the License Agreement for this software ? 1. Yes 2. No Please choose one of above number: 1 ==規約文章につき省略== Did you read and understand the License Agreement ? (If you couldn't read above text, Please read 'ReadMeFirst_License_UTF8.txt' file with any text editor.) 1. Yes 2. No Please choose one of above number: 1 Did you agree the License Agreement ? 1. Agree 2. Do Not Agree Please choose one of above number: 1 Preparing PacketiX VPN Client 3.0... ranlib lib/libcharset.a ranlib lib/libcrypto.a ranlib lib/libedit.a ranlib lib/libiconv.a ranlib lib/libncurses.a ranlib lib/libssl.a ranlib lib/libz.a ranlib code/vpnclient.a gcc code/vpnclient.a -O2 -fsigned-char -pthread -m64 -lm -ldl -lrt -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a -o vpnclient ranlib code/vpncmd.a gcc code/vpncmd.a -O2 -fsigned-char -pthread -m64 -lm -ldl -lrt -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a -o vpncmd -------------------------------------------------------------------- The preparation was completed. Please execute './vpnclient start' to run PacketiX VPN Client 3.0 Background Service. And please execute './vpncmd' to run PacketiX VPN Command-Line Utility to configure PacketiX VPN Client 3.0. --------------------------------------------------------------------
これでPacketiX VPN Client3.0のインストールが完了です。このあとに仮想LANカードの作成をします。仮想LANカードを作るには、VPNコマンドユーティリティ(vpncmd)を利用します。
[root@www1027u vpnclient]# ./vpncmd vpncmd コマンド - PacketiX VPN コマンドライン管理ユーティリティ PacketiX VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Version 3.00 Build 6890 (Japanese) Compiled 2010/03/15 05:56:28 by yagi at pc25 Copyright (C) 2004-2010 SoftEther Corporation. All Rights Reserved. vpncmd プログラムを使って以下のことができます。 1. VPN Server または VPN Bridge の管理 2. VPN Client の管理 3. VPN Tools コマンドの使用 (証明書作成や通信速度測定) 1 - 3 を選択: 2 接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。 何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。 接続先を入力: VPN Client "localhost" に接続しました。 VPN Client>
vpncmdの操作が可能になりました。まず仮想LANカードを作ります。仮想LANカード名を「IPv6」としました。
VPN Client>NicCreate NicCreate コマンド - 新規仮想 LAN カードの作成 仮想 LAN カードの名前: IPv6 コマンドは正常に終了しました。
仮想LANカードを作成すると、OSから見えるようになります。OSからは「vpn_ipv6」というNICに見えます。
[root@www****u ~]# ifconfig vpn_ipv6 vpn_ipv6 Link encap:Ethernet HWaddr 00:AC:D3:51:B6:7F inet6 addr: fe80::2ac:d3ff:fe51:b67f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
仮想LANカードを作成したら、次に公開実験サービスに接続する設定をします。公開実験サービス用のアカウントはあらかじめHPから取得しておいてください。
VPN Client>accountcreate AccountCreate コマンド - 新しい接続設定の作成 接続設定の名前: IPv6 接続先 VPN Server のホスト名とポート番号: v6ip.tsukuba.wide.ad.jp:443 接続先仮想 HUB 名: ACVPN 接続するユーザー名: 登録したユーザ名 使用する仮想 LAN カード名: IPv6 コマンドは正常に終了しました。
アカウントに対して仮想LANカードを設定します。先ほど作成した仮想LANカードを設定してください。
最後にアカウントのパスワードを設定します。これはユーザ登録すると送られてくるパスワードです。
VPN Client>accountpasswordset AccountPasswordSet コマンド - 接続設定のユーザー認証の種類をパスワード認証に設定 接続設定の名前: IPv6 パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。 パスワード: ******** 確認入力 : ******** standard または radius の指定: standard コマンドは正常に終了しました。
これでアカウントの設定は完了です。最後に接続処理をします。
VPN Client>accountconnect AccountConnect コマンド - 接続設定を使用して VPN Server へ接続を開始 接続設定の名前: IPv6 コマンドは正常に終了しました。 VPN Client>accountlist AccountList コマンド - 接続設定一覧の取得 項目 |値 -------------------+---------------------------------------------- 接続設定名 |IPv6 状態 |接続完了 接続先 VPN サーバー|v6ip.tsukuba.wide.ad.jp:443 (直接 TCP/IP 接続) 仮想 HUB 名 |ACVPN 仮想 LAN カード名 |IPv6 コマンドは正常に終了しました。
これで接続完了です。最後に確認してみましょう。
[root@www****u ~]# ifconfig vpn_ipv6 vpn_ipv6 Link encap:Ethernet HWaddr 00:AC:D3:51:B6:7F inet6 addr: 2001:200:1c8:a:2ac:d3ff:fe51:b67f/64 Scope:Global inet6 addr: fe80::2ac:d3ff:fe51:b67f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:57 errors:0 dropped:0 overruns:0 frame:0 TX packets:7 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:4080 (3.9 KiB) TX bytes:546 (546.0 b) [root@www1027u ~]# ping6 www.kame.net PING www.kame.net(2001:200:dff:fff1:216:3eff:feb1:44d7) 56 data bytes 64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=0 ttl=58 time=20.8 ms 64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=1 ttl=58 time=21.2 ms 64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=2 ttl=58 time=21.0 ms 64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=3 ttl=58 time=21.8 ms --- www.kame.net ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 20.865/21.253/21.899/0.435 ms, pipe 2
これで完了です。疎通確認もできました。