SixXS+Ciscoで始めるIPv6接続

はじめに

HE.net で始めるIPv6接続 って記事を書いてみたんですけどね。SixXS も気になるなあ、といいつつ保留って書いてたんですが、気になってどんなモノかぐるぐる調べて回るくらいだったら、とっととやってみたらいいじゃないかと。で、やってみたのでどんなモノなのかというのを書いておきます。

最初に書いておきますが、今回は routed /64 もらってトンネル張ったところまでです。まだ routed /48 subnet はもらえていません。その辺の仕掛けについては後述します。 /48 block がもらえたらまた別途書くと思います。[2012-10-14追記] ちょっと勘違いというか読み落としというか、最初にトンネル作ってもらえた時点で、トンネル接続用の routed /64 に加えてもう一つ routed /64 がもらえているので、あまり数とかサイズにこだわらなければこれでも十分遊べますね。

環境

論理構成については前回の記事と同じですが、トンネル接続用の機材が違います。

    Flet's/interlink
          |
   [YAMAHA NVR500]
          |
      ----+---- 192.168.100.0/24
          |
     [Cisco 1812J]

1812J は IOS15.1(4)M です。NVR で固定 IPv4 Global を static NAT させてます。

Hot to use the SixXS Tunnel Broaker Service

アカウント作成

まず SixXS にユーザアカウントを作ります。Sign up for new users *1 をクリックすると NIC Handle を持っている人用の画面が出るのですが、個人ユースでそんなアカウントないので。"direct signup" をクリックしてアカウント作成ページ SixXS - IPv6 Deployment & Tunnel Broker :: Signup for a -SIXXS handle に入ります。

名前とか住所とか電話番号とかメールアドレスとかを入れます。右側にサンプルがあるのでそれに従います。住所は、サンプルの通り、City/Country で行を変えて 3 行入れる必要があるようです。

あと、このページの注意事項にも書いてありますが、ここで登録したページは SixXS whois に登録されるので、必ず正しい情報を入れること・入力が正しくないと見なされたリクエストをはじくぞ ("Be sure to provide valid information as invalid requests are rejected") …と注意されています。そのへんは注意書きをちゃんと読みましょう。後述していきますが、アカウント作成リクエスト → メールアドレスの確認 → アカウント情報のチェック(人手らしい) → アカウント作成 + アカウント情報送付 という流れになります。

入力して "Submit Signup" するとメール送るから verify してくれって言われます。

ユーザ名は SixXS Handle Name です。この名前で whois 引くことができます(リンクが張られてる)。入力したメールに verify url の書かれたメールが届くので、指定された URL にアクセスしてメールアドレスが正しいことを通知します。

Verify URLクリックするとこういう画面が出ます。書いてあるとおり、メールアドレスのチェックができると、アカウント作成リクエストを手動で処理するからしばらく待てって言われます。同時に、Verify できたよってメール通知も来ますが、やっぱりメールの中にもチェックするから待っててくれっていうのが書いてあります。

Subject: [SixXS] User Verify

If they also find that all the information is sincere, you will be
sent the details of your account and how to proceed. You will then receive
another mail with details regarding your account and a short user reference
on how the SixXS web interface works.

処理されてアカウントができるとメールが届きます。(翌日くらいにアカウントできたよメールが来ました。)

Subject: [SixXS] User Approved

You have successfully completed the user registration at SixXS.
Your account has been verified and SixXS have approved the
information you have supplied. You can now log in to the website
with the following credentials:

 Username   : ***********
 Password   : ***********
 URL        : http://www.sixxs.net/home/

ログインしたら Tunnel 作るための申請を出します。

トンネルリクエス

ログインすると最初はこういう画面に。

注意しておくのは "You currently have 25 ISK." です。これはあとで説明します。

まずは、トンネルを張らないとどうにもならないので、左のメニューから "Request Tunnel" をクリックします。

注意書きがあるとおり、SixXS ではトンネル接続元-トンネル接続先(PoP)の間のレイテンシが 100msec 以下であることと言う条件があります。

PoP は世界各地にあります。また、PoP は各地の ISP が提供しており、そのプロバイダが所有している IPv6 prefix から接続用アドレスの割り当てが行われるようになっています。

動的アドレスによる接続もできるのですが、その場合は専用クライアントが必要なのかもしれません(ちゃんと調べていません)。今回は、固定 IPv4 でトンネルを張るので、"Static IPv4 Endpoint" を選択して自分のアドレスを入力します。

次のステップでは、以下のようにトンネル接続先(PoP)候補が表示されます。今回は北米とベトナムの PoP が候補としてあげられました。1つ選んで、下に選択理由を入力して次にいきます。

なお選択理由は近かったので ―― ping6 して RTT 測定したところ、ベトナムの方が短かったので、ベトナムにしました。ちなみに RTT ave.156ms ってところでした。

~$ ping -c4 vnhan01.sixxs.net
PING vnhan01.sixxs.net (119.17.194.232) 56(84) bytes of data.
64 bytes from vnhan01.sixxs.net (119.17.194.232): icmp_req=1 ttl=43 time=165 ms
64 bytes from vnhan01.sixxs.net (119.17.194.232): icmp_req=2 ttl=44 time=149 ms
64 bytes from vnhan01.sixxs.net (119.17.194.232): icmp_req=3 ttl=44 time=148 ms
64 bytes from vnhan01.sixxs.net (119.17.194.232): icmp_req=4 ttl=43 time=161 ms

--- vnhan01.sixxs.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 148.451/156.321/165.852/7.384 ms
~$

で、必要な情報入力して "Place request for new Tunnel" をクリック。

で、こうなります。同時にリクエスト受け付けましたメールも来ます (Subject: [SixXS] Tunnel Request, static towards XX.XX.XX.XX)

リクエストが処理されるまでまたちょっと待ちます(数時間とか)。ここで気をつけなければいけないのが、トンネルの状態や接続品質を確認するために ICMP を使っているということです。トンネルの endpoint として入力したアドレスでは、相手(PoP)からの ICMP に応答するようになっていなければいけません。応答しないとリクエストは破棄されます。

で、トンネル作成リクエストが受け入れられるとまたメールで通知が来ます (Subject: [SixXS] Tunnel Approval TXXXXXX)。トンネル自体は IP Protocol 41 なので、コンフィグそのものは HE.net でトンネル張るのと同じです。SixXS - IPv6 Deployment & Tunnel Broker :: Frequently Asked Questions (FAQ) にサンプルコンフィグとか載っているのでそれを参考に。

で、送られてきたメールにトンネル情報と一緒にまた注意事項が書いてあります。

Please configure this tunnel and make sure you can ping6 the SixXS endpoint
within reasonable time (eg, 2 days). We are monitoring this tunnel and will record any downtime on your side.

ICMP でトンネルのダウンタイム計測とかをやっているようで、ちゃんと ICMP に応答できるようにしておく必要があります。"ISK" については注意…という話と関連して、SixXS では接続をちゃんと維持するということが重要です。(後述)

トンネルを作ってからログインするとこんな感じで、自分が持ってるトンネルの情報とかが確認できます。トンネルIDとかをクリックすると、今のステータスなどを表示することができます。[2012-10-14追記] "Subnets" 見ると分かりますが、トンネル接続用の /64 block ("Tunnel Endpoint")に加えて、もう一つ routed /64 block ("Subnet Prefix")が割り当てられています。それほど端末数とか気にしないのであれば、/64 subnet prefix でもそれなりに遊べるでしょう。

トンネル情報の表示。

Subnet 設定の表示。

クレジット制度

SixXS ですが、ほかのサービスとちょっと変わっていて、各種オペレーションに対して "Credit" が消費されるようになっています。

アカウントを作るとクレジットとして 25 ISK (IP SixXS Kredit) わたされます。トンネルリクエストを出すと -10 ISK, リクエストが受け付けられてトンネルが用意されると -5 ISK... 操作に対して必要なコストが決められていて、手持ちのクレジットが足りないと操作できないようになっています。

で、トンネルが1日切れる(ping応答がなくなる)と -5 ISK, 1週間切れると -50 ISK (+自動停止) だそうで。クレジット自体はトンネルの uptime に応じて追加がある…らしいよ。あとは、バグ報告をするとか、何かしらの貢献をすると Extra Credit を加算するよ、ってなってる。詳しくは上の FAQ 読みましょう。

…なので、まずはトンネルをちゃんと維持することが必要なわけです。最初に 25 ISK もらって、トンネルリクエスト出してOKってだけで -15 されて手持ち 10 ISK になる。この時点でもう追加のサブネットリクエストとか出せないんだよね…。

あと、自分の手持ちのクレジットとか、これまでの操作履歴とかは "View Log" で表示されます。

ICMP Keepalive

SixXS でトンネルを張ると、対向(PoP) から定期的に ICMP が送られてきます。こっちも定期的に送っておこうかと、Cisco ルータで定期的に ping 打ってやるようにしておきました。Embedded Event Manager を使います。

1時間おきに ping 打つようにしておく。

event manager applet SixXS-ICMP-KEEPALIVE
 event timer cron cron-entry "47 * * * *"
 action 10 cli command "ping ipv6 2401:E800:***:***::1"

EEM の設定確認は "show event manager policy registered" とか。動作確認は "debug ipv6 icmp" しておけばよいですね。本当は icmp コケたらログとか出すようにと思ったんだけど、まだ調べ切れていません…。

*1:SixXS は https 対応していますが、証明書が CAcert.org で署名されたものになっています。CAcert の Root 証明書はデフォルトでは入っていないのでブラウザ上では警告が出ます。注意。