enひかりで光ネクスト+v6プラスを RTX830 で試す
背景
ここ数年、自宅のプロバイダーは IIJmio ひかり + IPoE を利用していたのですが、IIJmio ひかりの IPoE は transix を使った DS-Lite 方式なのでtransix側で NAT され、その NAT のポート数の 1024 という制限で、 twitter を見るだけでも画像が読み込まれないみたいなことがありました。
[IPv4 over IPv6接続を利用する際の注意事項]
・IPv4通信は1回線あたり1024ポートまでの制限があります。
・IPv4の通信はNATを利用して行われ、お客様機器側ではIPv4プライベートアドレスを使用します。NATを利用した環境では、一部のソフトウェアやサービスが正常に利用できない可能性があります。
ということでせっかく IPoE があるにもかかわらず、IPv4 は PPPoE で逃がしていました。
そろそろ何とかしたいということで他のプロバイダーを探したり実際試したりしていたところ、ひとまず enひかり に落ち着いたので、経緯と設定を残しておきます。
契約まで
enひかりは、いわゆる光コラボレーション事業者の一つで、NTT 光回線を借りてプロバイダー事業を行っています。特徴は、IPoE の VNE として transix だけではなく、v6プラスや Xpass も選択できるということです。あとは安いというのも大きなポイントです。
ちなみにいろいろと調べていて、光コラボレーション事業者でも IPoE しか提供していない事業者がいることに気づきました。恐らくビジネスモデルとして設備投資せずにサービス提供できるために、プロバイダー業がしやすくなってるんでしょう。
光コラボ事業者 は、光回線を提供するフレッツ(NTT東西)と、transix(インターネットマルチフィード) や v6プラス(JPNE)、Xpass(アルテリア)等の VNE 事業者の仲介をすることで、自社で設備を持たずにユーザーと契約ができます。
このあたりは、Geekなページさんの記事が詳しいです。
※ 画像は 上記ページのYouTubeから引用
さて、話しを戻してenひかりの契約なのですが、enひかりのサイトから申し込みができます。サイトから申し込むと電話がかかってきて、契約手続きを進めることになります。
私の場合は、いろいろあって IIJmio ひかりから一旦光コラボを解消して NTT 直契約にしていたので、転用の扱いになりました。NTT 直契約でも他のコラボ事業者からの乗り換えのいずれでも転用承諾番号が必要になります。
私の場合サービスの開始に10日程かかりました。開始日前にまでに開通案内が届くのですが、情報としては品目以外のフレッツのCAF番号とアクセスキーが書かれているだけのシンプルなものでした。特に契約者向けのページなどが用意されているわけではなく、オプションの追加や品目変更は電話で申し込みます。それ故に価格も安いのかもしれません。
enひかりは、IPoE だけでなく PPPoE も提供しています。サイト上に情報が無く電話で聞くと教えてくれるのですが、あえてそのような動線にしてるんでしょうかね。
個人的な利用方法として VPN や自宅サーバーへの外部からのアクセスもさせたかったので、動的でも PPPoE でグローバルな IPv4 アドレス をもらえるのは助かりました。別のプロバイダーと契約するのも手ですが、一つの契約で済むのはありがたいです。
ちなみに、IPoE を使っていても、固定の IPv4 アドレスは使えます。ただ、DDNS のように IPv6 のアドレスが変わったらそれを通知する仕組みを用意する必要があります。
RTX だと公式で Lua スクリプトが用意されています。
以下の記事も参考になります。
設定
DS-Lite のときは RTX810 を使っていたのですが、v6プラスに変更するにあたって MAP-E を使うことになるので、それに対応した RTX830 を入手しました。
設定は以下のヤマハのサイトの通りです(以下ページの設定例1)。
RTX830 では WebUI からウィザード形式で設定できますが、LAN分割していると WebUI からは出来ないのでconfigを流し込みます。
ポイント
MAP-E トンネルの設定
トンネルの設定はシンプルです。encapsulation に map-e、map-e type に v6plus を選択します。
transix(DS-Lite) と違うところは、NAT を RTX 側で行う必要があるので、NAT テーブルを作成してトンネルに割り当てる必要があります。
設定
RTX830# show config tunnel 1
tunnel select 1
description tunnel MAP-E
tunnel encapsulation map-e
tunnel map-e type v6plus
ip tunnel mtu 1460
ip tunnel secure filter in 200030 500000
ip tunnel secure filter out 11 dynamic 200080 200081 200082 200083 200084 200085 200098 200099
ip tunnel nat descriptor 2000
tunnel enable 1
~~snip~~
nat descriptor type 2000 masquerade
nat descriptor address outer 2000 map-e
RA方式での接続
ひかり電話の契約が無いenひかり(ONU直繋ぎ)の場合は、RA方式で接続します。いろいろと調べていると DHCPv6-PD方式で接続できるという情報もありましたが、サポートに確認したところ RA方式ということでした。
電話窓口の方はそれほど詳しくないようでしたが、バックエンドの方で技術的なフォローがあるような雰囲気でした。
こちらが設定です。LAN分割機能を使っているのでそれぞれの VLAN にアドレスを割り当ててます。
※v6周りの設定が怪しいのでちゃんと勉強しないと。。。
設定
ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 vlan1 address ra-prefix@lan2::2/65
ipv6 vlan1 prefix change log on
ipv6 vlan1 rtadv send 1 o_flag=on
ipv6 vlan1 dhcp service server
ipv6 vlan2 address ra-prefix@lan2::1/65
ipv6 vlan2 prefix change log on
ipv6 vlan2 rtadv send 1 o_flag=on
ipv6 vlan2 dhcp service server
ipv6 lan2 mtu 1500
ipv6 lan2 secure filter in 101030 101031 101032 101098
ipv6 lan2 secure filter out 101099 dynamic 101080 101081 101082 101083 101084 101085 101098 101099
ipv6 lan2 dhcp service client ir=on
ngn type lan2 ntt
ipv6 filter 101030 pass * * icmp6 * *
ipv6 filter 101031 pass * * tcp * ident
ipv6 filter 101032 pass * * udp * 546
ipv6 filter 101098 reject * * * * *
ipv6 filter 101099 pass * * * * *
ipv6 filter dynamic 101080 * * ftp
ipv6 filter dynamic 101081 * * domain
ipv6 filter dynamic 101082 * * www
ipv6 filter dynamic 101083 * * smtp
ipv6 filter dynamic 101084 * * pop3
ipv6 filter dynamic 101085 * * submission
ipv6 filter dynamic 101098 * * tcp
ipv6 filter dynamic 101099 * * udp
接続にかかる時間
v6プラスの場合、configを入れてもtunnelが実際に接続されるまで時間がかかります。show status tunnel
するとこんな感じです。
RTX830# show status tunnel 1
TUNNEL[1]:
Description: MAP-E
Interface type: MAP-E
Current status is Offline, never connected.
15分程度待つと接続されます。ルーターを再起動した後も時間がかかります。慌てずに気長に待ちましょう。
なかなかつながらないなぁとあれやこれや設定を入れていると何が問題か分からなくなります。(2日ほどはまってました。。)
まとめ
enひかりは、IPoE はもちろん PPPoE も使えて、さらに v6プラスや Xpass などの VNE も選べ、その上安いので、自宅サーバーを運用するには良いプロバイダーだと思います。
今度は Xpass を試してみようと思います。
Discussion