RouterboardでiijmioのIPv6 IPoE(ネイティブ接続) + DS-Lite(Dual Stack Lite)を体験する

スプラトゥーン2が快適に出来ない

イカ2を購入してプレイを楽しんでいますが唯一の不満は通信回線の品質でした。S+に来れた頃はまだ回線の遅延状況は悪くなかったのですが、上がった頃(ちょうど夏終わり?)に急激に夕方から夜の時間帯で遅延がひどくなってきました。

同時に回線速度もダウンロードが3Gレベルまで落ちたり。昼の昼食頃でも同じような現象に落ちてしまい、その近辺でネットを使うにもつらい状況でした。

IPv6 IPoE + DS-Lite 導入してみました

利用している回線はIPv4 PPPoE方式の接続で、多分世間で一番使われてるISPとの接続方式だと思いますが、何年も前からパンク気味だったりする状況なのでいい加減どうにかしたいと考えてまして。

ISP変更はある種のギャンブル感(その時はよくてもその先はわからない)があったり、別の通信回線の契約もダウンタイムを入れることが出来ない事情があるので諦めてました。

で、数年前から(ちょうど初代のイカをやってて遅延に悩んでた頃)フレッツ光のNGN網に直接接続する=IPv6接続をネイティブで行うIPoEという技術を知り、そのIPv6網に対してIPv4をトンネリング技術を用いて提供する技術を知ることになりました。

IPv6 IPoE とDS-Liteについての詳しい情報はイカの参考のブログや情報源に頼ります。かなり参考になるので、どうしても何とかされたい方は技術の概要含めてチェックされてみると良いです。

というわけで強い動機はイカを快適に行うことですが、根本的におそすぎる回線に嫌気が差したので頑張って解決することにしました。うまく行った所と苦労した話をメモがてら残します。

契約をする

フレッツ v6 オプションの契約

フレッツ光はIPv6の接続は提供してくれますがオプションの契約が必要です。それはこちらから行えます。

この契約をするとき、フレッツ光で契約したときに割り振られる「お客様ID」と「アクセスキー」が必要です。

このv6 オプションは申し込んで1日もかからずに利用可能となりました。

契約中に見られるネーム設定は、IPoEやDS-Lite自体には特に必要は無いのでほったらかしでも良いです。

IPoE + DS-Liteを提供してくれるISPと契約する(iijmio FiverAccess/NF)

NTT内のNGN網ではIPoEが利用できるようになりましたが、外部に出るためのプロバイダーとの契約が必要です。今回は利用しているRouterboardでの実績があるiijmioのFiberAccess/NFを利用します。

IIJmio:FiberAccess/NF概要

知らなかったのですが、iijmioでフレッツ光のIPv6オプション導入を代行してくれます。実は上の作業をしなくても良かったようです(大した手間ではないので自分でやったただけです)

iijmioのMVNOを利用していて会員サービスのmioIDを所有していたので、そのIDで契約しました。契約自体も画面の情報に従ってすすめるだけです。v6 オプションの契約を行った際に利用したお客様IDとアクセスキーが必要です。

契約が終わると数時間もしないうちに開通の連絡が届いて(iijmioからready to startメールが届きます)すぐに利用可能になります。

ルーターの設定を行う

NTTとISP(iijmio)とそれぞれ契約が出来ましたので、後は必要な情報をもとにIPv6 IPoEとDS-Liteの設定を行うことで、IPv6でのインターネットアクセスとIPv6を経由したIPv4のインターネットアクセスが出来るようになります。

一般家庭ルーター, 著名な業務用ルーターの場合

多分殆ど多くに方はこちらを参考にしていただければ問題なく利用可能になりますね。国内のルーターメーカーはほぼ対応しているっぽいです。

海外メーカーはだめな場合が多いらしいです。DS-Lite自体はRFC6333で規定されてる標準規格だったりしますが。。

transix DS-Lite 接続確認機種情報

Routerboardの場合

自分が所有しているルーターはMicrotekというメーカーのRouterboard RB2011シリーズです。RouterboardでのIPoE, DS-Liteの設定事例を幾つか見つけることが出来ます。今回はほぼそのままでの設定で問題なく利用可能でした。

IPv6 IPoEの接続

設定は以下のブログ記事と、ツイッターで頂いた情報を元に設定しました。

まーしゃるのへもへも日記 - RouterboardでIPv6 IPoE - IPv6を有効にする日

転載すると

・SystemのPackagesでIPv6を有効にする
 ※無効の場合はEnableを押したあと再起動が必要
・IPv6のメニューが出てくるので、
 DHCPクライアントの設定をする
  InterfaceをONUにつながっているところへ
  Pool Nameに適当な名前をつける
  Prefix Lengthを60へ(※)
   ※ひかり電話の場合は/60らしい…?
  Use Peer DNSにチェック
  Add Default Routeにチェック
・DHCPクライアントを有効にして、Statusタブで
 アドレスが取れたことを確認する
 ※Status が boundになる
・IPv6の中のNDのメニューを選択
 デフォルトでエントリがあるのでコレを変更
  Advertise DNSにチェック
  Other Configurationにチェック
・IPv6のDHCP Serverの設定を入れる
  InterfaceをLAN側のポートに
  Address Pool6をDHCPクライアントのところで
  設定したものへ
  ※コレはDNSの配布にしか使わないので
   あまり神経質にならなくてもいいかも
・最後に、IPv6のAddressのところで追加をする
  From PoolをDHCPクライアントのところで
  設定したものへ
  InterfaceをLAN側のポートへ
  EUI64はお好みでチェック
  Advertiseにチェックを入れる

ひかり電話契約されている方は、利用できるIPv6のネットワーク構成が違うそうです。ONUにNGN網から割り振られるIPv6アドレスはプレフィックスが割り振られます。

IPv6のアドレス配布は、接続先から各端末に対してアドレスが振られる場合(RA, Router Advertisemen, ルーター広告)とプレフィックスと呼ばれる128bit長のIPv6アドレスのうち、上から幾つかのビット数を配布する方法とあります。

プレフィックスが割り振られた場合はそれを元にDHCPv6サーバーを用いてアドレスを生成した後に各端末に割り振ることが出来ます。

ひかり電話契約なしの場合はRAのみです。RAだけでは、ルーターのみにしかIPv6アドレスが振られることになるそうです。 その際にRAプロキシという、ルーターで受けたRAをLAN側にも流す技術に対応していないと、LAN側ではIPv6のアドレスを再割り振り出来ず各端末はIPv6通信ができなくなります。 (回避策としてはNATを構築したり、IPv6ネイティブではないIPv6 PPPoE接続の利用があります。)

Routerboardだとひかり電話契約なしでの成功例が無いので、現状だとひかり電話ありで行うのが理想的のようです。(IPv6 IPoE自体の話で、DS-Liteは行けるかもしれません)

参考:

これを調べてて思ったのですが、ひかり電話の契約有り無しでだいぶ事情が違うんですね。性能や設備の違いがあるのかちょっと気になりますね。

IPoEの設定が終わって、各端末にアドレスが振られたら test-IPv6.jp や IPv6-test.com などにアクセスして見ます。端末に振られているアドレスが表示されたらIPv6のネイティブ通信が出来るようになっています。

ping6traceroute6, dig [IPv6_domain] AAAA と言ったIPv6のネットワークに関するコマンドでチェックしてみても良いです。

この段階でIPv6に対応しているスピードテスト, 動画配信(Youtube, Netflixなど)にアクセスすると快適になってるはずです。速度的には感動的でした。

本当にIPv6でアクセスしているか、Youtubeへの動画アクセスはChrome Dev Toolsで見た様子です。Remote AddressがIPv6のアドレスになってますね。DS-LiteをしていてもIPv6での通信となっていました。

DS-Lite(Dual Stak Lite)の設定

IPv6での通信が出来るようになったので本丸のDS-Liteです。こちらも成功事例を元に作業し、全く同じ手段で成功しています。

RouterBoardでDS-Liteの設定をしてみた | geek log.

IPIPv6 Tunnelの設定の際にあるLocalAddressの指定は、IPoE設定時のIPv6>Addresses内で設定したLAN側アドレスを利用します。(Twitterで騒いだらgeek logの中の方にメンション頂きました。ありがとうございます!)

こちらも test-IPv6.jp や IPv6-test.com などでリモートホストを確認できます。ISPがTransixや Internet Multifeedなどと書かれていればDS-LiteでIPv4通信が出来ています。

起こったトラブル

DHCPv6のアドレス割当が行われない

Routerboard側でDHCPv6-PDのアドレス割り振りが行われないことがあったのですが、こちらはRouterboardのファームウェアを最新版にしたことにより解決しました。

currentブランチは6.40.4で動作確認してます。bug fixブランチは6.39.3ですが早々にバージョンに上げてしまったので未検証です。

(後から考えたのですが、もしかしたらこの問題は次のSPI絡みのパケット破棄で起こる可能性もありそうです。検証できないのが残念ですが。。)

ONUのパケットフィルタとSPI(ステートフルパケットインスペクション)で起こりそうな事例

※:ここに書く内容は事実かどうかあまり検証していません。なのでもし間違っていたらコメントをいただけると嬉しいです。

ONU側でIPv6のパケットフィルタリングとSPIが適応されています。パケットフィルタリングはNTTのNGN網以外の外部からの接続を弾いてくれます。(なので、IPv6-test.comでpingがfilterされたりします)こちらは有効のままで問題ないと思われますが、自分は問題が起きたときに切り分けとして、上記でかいたようにRouterboardのFirewallを設定しました。

SPIは不正なパケットを検知した時点で、一定の時間の間はパケット破棄してくれるようですが、このSPIの挙動がよくわかっていません。(どういうルールで不正パケットと判断しているかわからないです)

ICMPv6はネットワークの疎通以外にも、ARP的なMACアドレス解決機能や、近くのIPv6を喋る端末を探す機能(Neighbor Discovery)にも使われる重要なプロトコルですが、これも多量に受けようとすると不正なパケットとみなしてパケットを破棄しているようです(NGN網以外のアドレスには敏感っぽい?)そのため、本来はほしい通信路の確保がこの判定で一時的にできなくなってるのではと考えています。

IPv6 - ICMPv6とは

DNSの名前解決も同じ挙動を起こしていて、IPv6でv6のアドレスでpingを打つと通るのにドメイン名では通らない自体が結構起きました。(その為、DS-Liteの設定時に接続先をgw.transix.jpにすると通信できなくて、IPv6は通るのに??と困ってました)

そのため、正しく設定できているはずなのに通信ができなくなるときは、SPIを無効にする、不正パケット判定の解除時間を減らすなどで解決できるはずです。その分リスクもあるので必要な通信が確保できればSPI有効のままでの利用でも良いと思います。

DS-Liteの接続が不安定

DS-Liteで通信確立をしている状況でしばらく利用していると、パケットロスを起こすことがたまにありました。こちらはIPIPv6 Tunnelの設定項目にあるkeepaliveを指定することで、今のところロスが起こる状況はなくなりました。こちらはTwitterでアドバイス頂きました。

keepaliveの時間設定は、Routerboard側のデフォルトで出てくる10秒に10回の指定です。これのおかげで別の問題が起こるか様子を見ていますが今のところは問題無さそうです。

(追記:2017-10-21) 稼働させてからルーターの再起動を行った所DS-Liteのトンネリングが確立しなくなり、keepariveの設定を除去した所確立するようになりました。ルーターはRB750Gr3に交換した後なので、機器によって事情が違うかもしれません。しばらく様子を見て問題がありそうならまた追記します。

DS-Lite:性能テスト

速度低下が始まる夕方に測定してみました。その結果ですが、

RB2011 IPv4 PPPoE

RB2011 IPv6 IPoE + DS-Lite

DS-Liteのときのほうが速度低下してしまってますね。。(ここで改善した様子をバーンと出す予定だったのですが)何故かと言うと後述します。。

しかしPing値は改善していました。この辺はIPv4 PPPoEの終端設備に行っていない効果が見えていますね。

雑感

IPv6よくわかってなかった人がIPv6 IPoEのネイティブ接続とDS-LiteでIPv4通信も出来るようになりました。

今回は利用しているルーターの話でやや遠回りしていましたが、対応している家庭用のルーターなら簡単に設定可能なはずです。IPv4 PPPoEでの接続で回線の遅さにお困りの方はチャレンジしてみても良いと思いますし、ほとんど難しいことはないのでおすすめです。

IPv6では速度的には非常に快適になりました。深夜帯にダウンロードが後も早いとYoutubeやAmazonやnetflixなどの配信も快適でした。

ただ、DS-Liteは見たところ向上と言うより低下しています。これはRB2011の性能的に、DS-Liteのようなトンネリングで性能が落ちてるのではと助言をいただきまして

現在利用しているRB2011は2013年ごろに発売された製品で、世代的には古くなっています。その為処理の重めなトンネリングで性能の頭打ちが見えてしまったようです。

ということでRB-UG.jpの中の方に直接おすすめいただいた hEXという新しめのルーターを購入しました!この記事を書いている段階で快適に利用しています。次回はこのルーターのレビューをやってみようと思います。

マスタリングTCP/IP IPv6編 第2版
4274069192

ASIN : 4274069192
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

Splatoon 2 (スプラトゥーン2)
B072J2J26T

ASIN : B072J2J26T
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

スポンサードリンク

About Me

Pythonとガジェットとモノづくりが好きな人の日々の備忘録。

スポンサードリンク