ネットが遅いのでIPv6 IPoE + DS-Liteにした
TL;DR
BB.exciteコネクト(IPoE接続プラン)1とDS-Lite対応ルータで月額700円(税抜)でインターネットが速くなったのでフレッツ光が遅い人は試してみてください。
IPv4 PPPoEが遅い
本格的に在宅勤務が始まったが、自宅のネットが遅すぎて業務に支障をきたしていた。
インターネットが遅すぎて仕事にならない☺️
— 父⛅ (@fushiroyama) 2020年3月30日
マンションのVDSLが詰まってるのか、プロバイダが詰まってるのか、IPv4が詰まってるのかわからない pic.twitter.com/40k7ufUnhe
どうもIPv4 PPPoEが詰まっているようだ。PPPoEはネットワーク終端装置という部分で輻輳しやすいらしい。 いまはIPv6 IPoEというものが利用可能で、これはGWR(GateWay Router)を介してインターネットに出ていくいわばLANそのものであり高速だとか2。 "PPPoE IPoE" とかでググるとそれっぽいポンチ絵が出てくるので見てみてください。
IPv6 IPoEを契約する
電話したり契約書を郵送したりしなくてもIPoEを試せるプロバイダはBB.exciteとINTERLINKを見つけた。他にもあると思うので自分だけのプロバイダを見つけるんじゃ。
PPPoEのように接続認証が利用できないのでどうするのかと思ったら、フレッツ光ネクストが開通したときに郵送されてくる「お客さまID」と「アクセスキー」をプロバイダに通知することで直接接続できるようだ。的外れな例えかもしれないけど、CATVインターネット接続はWAN側インタフェースに直接IPが割り当てられるのでプロバイダにMACアドレスを通知すると思うんだけど、あんな感じのイメージで捉えた。 で、郵送でしか送られてこない書類なんてもちろん失くしてしまったので116116に電話して再度郵送してもらった。今度はちゃんとスキャンしてDropboxに保存しておいた。
無事お客さまIDとアクセスキーが届いたらプロバイダでIPoE契約をする。1時間〜半日ほどで使えるようになるようだ。待っている間も開通後も既存のPPPoE接続に一切の影響がないので気軽に申し込むことが可能。
DS-Lite (IPv4 over IPv6)でIPv4も利用する
IPoEが開通した時点でIPv6でサービス提供しているサービスはすべて利用できる。YouTubeもNetflixもIPv6で利用できるし凄く速い。 ただ、IPv4でしか利用できないサービスは一切利用できない。ここでDS-Liteという技術を利用して、IPv6パケットはそのままIPv6インターネットへ、IPv4パケットはIPv6でカプセル化されてAFTRと呼ばれる出口でNAT変換されてIPv4インターネットへ出ていくようにすることができる。つまりきちんと設定さえしてしまえば、利用側はIPv6だのIPv4だの意識することなくインターネットに接続できるわけだ。これはGeekなページのDS-Liteの仕組みが図もあってわかりやすかった。
DS-Liteを利用するには対応ルータが必要となる。プロバイダのIPoE契約時に必ず対応ルータの一覧があると思うけど、手持ちのRTX1100/RTX1200ともにDS-LiteのためのIPIPトンネル設定が可能だったので追加コストゼロだった。まだ持ってなくてYAMAHAルータの設定に抵抗がない方は、RTX1100は中古で3000円ほど、RTX1200は中古で10000円ほどで手に入ったりするのでオススメ(ホンマか?)
ということで非常に速くなりました!朝から晩まで、これまで特に使い物にならなかった夜9-12時ぐらいのピークタイムも含めて上下とも安定して70Mbps以上出ます3。
IPoE + DS-Liteで大幅に速度改善しました🚀
— 父🌔 (@fushiroyama) 2020年4月1日
IPv6対応サイトはIPv6で、IPv4しか使えない環境はDS-Liteでtransix経由でIPv4として通信を確認。やはりボトルネックはPPPoEだった。
ルータ(RTX1100)とVDSLが共に100Mbpsなのでここが頭打ちになっているが、その制限がなければもっと速度出ると思われる☺️ pic.twitter.com/EXXhneJUYZ
RTX1100/RTX1200でDS-Liteの設定
以下、RTX1100/RTX1200での設定例。いずれでも動作確認した。非常に簡単。
[RTX1200] # show config # RTX1200 Rev.10.01.78 (Wed Nov 13 16:29:42 2019) # Memory 128Mbytes, 3LAN, 1BRI # main: RTX1200 ver=b0 # Reporting Date: Apr 7 23:35:59 2020 administrator password * login user xxxx * security class 2 off off off console character ascii console prompt "[RTX1200] " ip route default gateway tunnel 1 ipv6 prefix 1 ra-prefix@lan2::/64 ip lan1 address 192.168.11.1/24 ipv6 lan1 address ra-prefix@lan2::1/64 ipv6 lan1 rtadv send 1 o_flag=on ipv6 lan1 dhcp service server ipv6 lan2 secure filter in 1010 1011 1012 2000 ipv6 lan2 secure filter out 3000 dynamic 100 101 102 103 104 105 106 ipv6 lan2 dhcp service client ir=on tunnel select 1 tunnel name DS-Lite tunnel encapsulation ipip tunnel endpoint address 2404:8e00::feed:100 tunnel enable 1 ipv6 filter 1010 pass * * icmp6 * * ipv6 filter 1011 pass * * tcp * ident ipv6 filter 1012 pass * * udp * 546 ipv6 filter 2000 reject * * * * * ipv6 filter 3000 pass * * * * * ipv6 filter dynamic 100 * * ftp ipv6 filter dynamic 101 * * domain ipv6 filter dynamic 102 * * www ipv6 filter dynamic 103 * * smtp ipv6 filter dynamic 104 * * pop3 ipv6 filter dynamic 105 * * tcp ipv6 filter dynamic 106 * * udp telnetd service off dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.11.100-192.168.11.199/24 expire 12:00 maxexpire 12:00 dns server dhcp lan2 sshd service on sshd host lan1 sshd host key generate *
ほとんどそのままフレッツ光ネクスト インターネット(IPv6 IPoE)接続 : コマンド設定、DS-Lite(transix)でインターネット接続 : コマンド設定あたりから持ってきただけ。例によって、これは情報提供のみを目的としているので自己責任でご利用ください。
「AFTRのアドレス」という部分はインターリンクのFAQが参考になるけど、NTT東日本エリアかNTT西日本エリアかによって接続先が違う。このIPv6アドレスからInternet Multifeedのtransixを経由してIPv4に出ていく。診断くんとかで確かめるとtransixのsharedなIPv4アドレスに変換されていることが確認できる。
AFTRのアドレスは2つ掲載されているが、RTX1100とDS-Liteで高速化(ひかり電話なし)というサイトでkeepaliveを使って8.8.8.8へのpingの反応をみてもう片方にフォールバックする方法が書かれていて、これはオシャレだと思った。まあ片方だけでも特段困ることはないでしょう。
拠点間VPNや自宅サーバをどうするか
で、今更気付いたけど、IPoE + DS-LiteではこれまでのようにネットボランチDNS4を利用できない。
うっかりしていたけど IPoE + DS-Lite にしたらネットボランチDNSが使えなくなって自宅サーバを公開できなくなってしまった…(YAMAHAさんは親切にもネットボランチDNSをIPv6対応してくれたのだが、僕のRTX1200は対応外)
— 父⛅ (@fushiroyama) 2020年4月7日
この為だけにPPPoE残してv4アドレスを名前解決してもらうべきかは悩ましい…
これまではPPPoE接続してWAN側にIPv4のグローバルIPを割り当てるppインタフェースをnetvolante-dnsでホスト名に紐付けることで名前解決していた。このホスト名をCNAMEレコードでエイリアスし、ルータの内側にあるホストにStatic NATでパケットを向けてやると、あたかも固定IPの自宅サーバのようなことが安価に実現できていたのだ。
ところが前述の通り、DS-LiteではtransixのNAT経由でIPv4インターネットに接続するので、サーバとしてIPv4の接続を受け入れるのが不可能になる。素晴らしいことに、ネットボランチDNS自体はすでにIPv6対応をしているが、利用できるのはRTX1210等の一部ルータのみに限られる。手持ちのRTX1100/RTX1200とも非対象機種となっている。誠に残念だ…
あいや、IPoEだけではなくてPPPoE契約も残して、IPoE + DS-LiteしつつPPPoE接続もして要するにこれまと全く同じ方法でネットボランチDNSを利用することは可能だ。ただ、自宅サーバの目的のため"だけ"にPPPoEの料金を支払いつづけるのはちょっともったいない気がする。とはいえ、自宅サーバはどうでもいいとして、実家と東京、東京と米国の拠点間VPNは紛れもなくこのネットボランチDNSを使って互いのホストを指定していたので、これが利用できなくなるのはかなりの痛手だ。
IPv6の固定IPを利用できるサービスなどもあるらしいと教えていただいたので、良い方法がないかもう少し色々考えてみたい。いいアイデアがあったら是非教えてください。