RTX1210 と BB-WEST で、IPv6 を使ってみる

# 長い前置き
## 最初はADSLでした
### 初めてインターネットにつなぐ
家に常時接続のインターネット接続環境を構築したのは、ADSLが最初だったと思います。
賃貸契約のマンションが、かなり古い建物だったので、電話線以外の回線を新しく引くのは、家主の許諾を得たりするのが面倒だったので、電話線で運用できるADSLを引きました。
今となってはどこの会社のADSLを引いたのか忘れてしまいましたが、使っていた機器は「[MN128-SOHO Slotin](https://pc.watch.impress.co.jp/docs/article/20010215/nttme.htm)」。
この機器は、PCカードスロットに「MN128 SS-LAN CARD 11」等の無線LANカードを挿せば無線LANアクセスポイントにもなったし、対応したEthernet PCカードを挿せばADSLルーターとしても使えるという、拡張性の高いモノでした。
その後、eMobile がサービスインする際に、eAccess のADSLを同時に申し込むと、ADSL料金分を永遠に値引き！という「無期限セット割キャンペーン」をやっていたので、シャープのEM・ONEでの回線契約時にADSLも申込。
ADSLモデムとして「MegaBit Gear TE4571E」が送られてきました。
私はこの時ADSLモデムとADSLルーターの違いを正しく理解しておらず
**『ルーターとして引き続き「MN128-SOHO Slotin」を使わなくてはならない』**
と思い込んでいました。つまり、2段NAPT状態にしたのです。
「MegaBit Gear TE4571E」が実質ルーターと知ったのは、後述の引っ越しの時・・・
### 引っ越し、そしてADSLとのお別れ
さて、私はかなり古い賃貸マンションに住んでおり、入居時に「近々建替えするけど、その際には退去に同意してね:hearts:」という書面に署名しました。
そして建替えで引っ越しに。
その際も、eAccessのADSLを移転させました。新しいマンションは、VDSLの光回線に対応していましたし、構内LAN形式の回線にも対応していましたが、無料で使えるADSLで特に速度的な不満が無かったのです。
そして、MN128-SOHO Slotin を使用した2段NAPT状態を解消。
ただ、引っ越しの際にはすでにeMobileはソフトバンク(ワイモバイル)に買収された状態、そして引っ越しから数年たったころ、ついに
「ADSLサービスの終了」の案内が・・・、終了までまだ3年以上ありましたが、ケータイ回線も含めてソフトバンクと縁を切るため、モバイル回線、固定回線合わせて変更。
## 「auひかり」を申し込んでみる
最初に選んだのは「auひかり」、何故選んだかはいまだに不明。
しかし、HGW を介さないと接続できない、つまり自前のルーターが使えない。
正しくは、私が使用していた VDSL用HGW である「BL902HW」は、VDSLモデム部分とルーター部分が分離されており、非常に短いLANケーブルで背面で接続して運用しており、VDSLモデムはHGWのモノを使用しなければならないですが、ルーター部分は別のモノに差し替えられそう。
しかし、ココにも制限があります。なんと、MACアドレス固定。
(当時)手持ちの RTX1200 でMACアドレスを変更しようにも、[ip interface arp static](http://www.rtpro.yamaha.co.jp/RT/manual/rt-common/ip/ip_interface_arp_static.html) コマンドではDHCPを使用したIPアドレス自動割り当てにどう対応するんだ？状態。
HGW － RTX1200 の間に、アライドテレシスの CentreCOM AR260S をかまして、MACアドレス変更とNAT(ポート番号変更なしの1対1IPアドレス変換)をさせてみたりと色々やってみました。
極めつけはCisco のSOHO向けルーター「C841M-4X-JSEC/K9」を購入して色々やってみたのですが、これがまた大変。
C841M-4X-JSEC/K9 はブラウザからGUIで設定できるのですが、コマンドで設定した内容がGUIで変更すると、影響を受けないはずの内容が変わってしまったりとか、とにかくGUIは使い物にならず「[どこがSOHO向けだよ](https://internet.watch.impress.co.jp/docs/column/shimizu/723163.html)」状態。
**「苦労の割に、効果が見込めない」**
と思い、1年も経たずに解約。
## BB-WEST申込
さて、私が住んでいるマンションには、BB-WESTという構内LAN接続形式のインターネット接続サービスがあります(これだけで私がどんな賃貸物件に住んでいるか、モロバレですね)。
auを解約してこれに乗り換えたのですが、外部からVPN接続する関係で、グローバルIPは必要、そのため PPPoE での接続をしたのですが・・・
とにかく**遅い！**、PPPoEを切ってローカルアドレスにするとそこまで遅くは無いけど、これが世にいう「**[PPPoEによる速度低下？](https://biz.nuro.jp/column/004/)**」
しかし、BB-WESTは(長期契約者なら)約2千円と超低価格。
ちょうどその時、eMobileを解約してIIJのSIMを使っていたので、IIJ が提供している IP4 over IP6 である **DS-Lite** ってどうなんだろう？ と思い、回線申込。
## BB-WEST と IIJ の2回線体制
さて、2回線の割り振りですが
+ BB-WEST の PPPoE は、出先からのVPN接続用
+ IIJ の IPoE は IPv6 通信用
+ IIJ の DS-Lite は IPv4 通信用

という感じで運用していました。
DS-Lite の通信速度はおおむね良好、BB-WEST の PPPoE もVPN接続で使う分には問題ありませんでした。
ちなみにルーターは RTX1200 から RTX1210 に進化。
## BB-WEST、GbEに対応
あるとき、RTX1210 を見ていたら、リンク速度を示すLEDが橙色から緑色に変わっていました。
リンク速度が GbE に上がっていたのです。
IIJ は VDSL なので、100M しかありえません。変わっていたのは、BB-WEST の方。
しかし、速度が上がった感じがしません。
PPPoE では速度が上がらないのかと思い、DHCP接続で接続ると・・・**速度が段違いに速い！**
しかし、外からの VPN 接続はどうするか・・・、そういえば IIJ は IPoE & DS-Lite & PPPoE のトリプル接続が出来ます。
(まぁ、DS-Lite は IPoE 上で成り立つから両立は当然ですが)
結局、下記の様に運用を改めました。
+ IIJ の PPPoE は、出先からのVPN接続用
+ IIJ の IPoE は、IPv6 通信用
+ BB-WEST の DHCP 接続は、IPv4 通信用
+ IIJ の DS-Lite は、IPv4 通信用(予備)

この時はまだ、IPv4 のトラフィックの方が多かったので、これでちょうど良い負荷分散にもなっていたのです。
## IPv6 通信、増える
先日、RTX1210 のダッシュボードを眺めてみたら、ある事に気が付きます。
**「IPv6 通信の方が多い・・・」**
以前は Google 関連(Youtube含む)が IPv6 トラフィックの大半で、後は殆ど IPv4 という感じでしたが、いつの間にか IPv6 が増えていたようです。
特に動画系で IPv6 化が進んでいるような感じ。
こうなってくると、高速な BB-WEST の回線を IPv4 に振っているのはもったいないです。
BB-WEST が IPv6 に対応したのは、ポストに入っていたチラシで知っていました。
しかし、RTX1210 にどう設定していいか分からずに放置していました。
今回これを使ってみようと思ったのです。

まずは、BB-WEST の回線にPCを直接つないで、IPv6 通信ができるか確認。
あ、Yahoo! はまだIPv6対応してないのね・・・

というわけで、下記のような接続に変更しようとした。
+ IIJ の PPPoE は、出先からのVPN接続用
+ IIJ の IPoE は、IPv6 通信用(DSLite のためだけに存在)
+ IIJ の DS-Lite は、IPv4 通信用
+ BB-WEST の IPoE 接続は、IPv6 通信用
+ BB-WEST の DHCP 接続は、IPv4 通信用(予備)

![目標.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2555080/a0d3d09c-8a12-7b47-8567-65790b52bd08.png)

# RTX1210 で BB-WEST に IPv6 接続する設定
前置きが長いっての。
## まずは現状の IIJ の IPoE 接続の確認
IPv4 での通信で DSLite を使う以上、そのトンネルの外壁である IPoE の IPv6 通信は必要です。
その設定の確認をします。
前提として、構成は以下の通りです。
+ LAN1 は家の中のローカルネットワーク
+ LAN2 は BB-WEST
+ LAN3 は IIJひかり
```:IIJ (LAN3) に接続するための RTX1210 の IPv6 設定
ipv6 prefix 1 ra-prefix@lan3::/64
ipv6 lan1 address ra-prefix@lan3::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan3 secure filter in 102000 102001 102002
ipv6 lan3 secure filter out 102099 dynamic 102080 102081 102082 102083 102084 102085 102098 102099
ipv6 lan3 dhcp service client ir=on
```
1. 1行目は、LAN3から受け取ったRAメッセージに対して、プレフィックスが64のRAプロキシとして動作する定義
1. 2行目は、LAN1側に割り当てるIPアドレスの設定、LAN3で得たRAメッセージを元に生成
1. 3行目は、LAN1側に通知するRAメッセージの設定
1. 4行目は、LAN1側に対して、RTX1210 がDHCPサーバとして振る舞う設定
1. 5行目は、LAN3 の IN 側フィルタ設定
1. 6行目は、LAN3 の OUT 側フィルタ設定
1. 7行目は、LAN3 インターフェースが DHCP クライアントとして動作する事を指定

これを、まずはLAN3のRA(ルータ公告)をLAN1側に流れない様にするため、下記のようにします。
```:IIJ (LAN3) に接続するための RTX1210 の IPv6 設定(LAN1側にRAを流さない)
ipv6 prefix 2 ra-prefix@lan3::/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan3 secure filter in 102000 102001 102002
ipv6 lan3 secure filter out 102099 dynamic 102080 102081 102082 102083 102084 102085 102098 102099
ipv6 lan3 dhcp service client ir=on
```
1行目の番号を変更するのと、2行目を消すだけ、簡単です。
続いて、BB-WESTでIPv6を通す設定を追加。
```:BB-WEST (LAN2) に接続するための RTX1210 の IPv6 設定
ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan2 secure filter in 102000 102001 102002
ipv6 lan2 secure filter out 102099 dynamic 102080 102081 102082 102083 102084 102085 102098 102099
ipv6 lan2 dhcp service client ir=on
```
IIJの設定にある`ipv6 lan1 dhcp service server`は、IIJひかりとBB-WESTと同じ内容なので不要ですが、新規にBB-WESTの設定を行う場合には、入れて下さい。
`ipv6 lan1 rtadv send 1 o_flag=on`の`send`の後ろの番号は、`ipv6 prefix 1 ra-prefix@lan2::/64`の`prefix`の後ろの番号と同じにしてくださいね。
**下記のように設定したら、どうなるんだろう・・・**
```:こんな風な矛盾した設定は、どうなる？
ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 prefix 2 ra-prefix@lan3::/64
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 rtadv send 2 o_flag=on
```
恐らくですが、割り振られるIPアドレスは、LAN2 の RA に従ったものになり、それ以外の DNS だの Domain name だの SNTP server だのが、LAN3 の RA に従ったものになるんじゃないかなぁ・・・

ちなみに、この設定は IPv6 の設定なので、実際には変更に伴った IPv4 のデフォルトゲートウェイの変更等も必要ですが・・・
## この設定には、実は重大な欠陥がある
この様に設定すると、実は先に挙げた
+ IIJ の PPPoE は、出先からのVPN接続用
+ IIJ の IPoE は、IPv6 通信用(DSLite のためだけに存在)
+ IIJ の DS-Lite は、IPv4 通信用
+ BB-WEST の IPoE 接続は、IPv6 通信用
+ BB-WEST の DHCP 接続は、IPv4 通信用(予備)

にはなりません。
実際には
+ IIJ の PPPoE は、出先からのVPN接続用
+ IIJ の IPoE が、宙ぶらりん
+ BB-WEST の IPoE 接続が、IPv6 通信用
+ BB-WEST の DS-Lite が、IPv4 通信用 (えっ！？)
+ BB-WEST の DHCP 接続が、IPv4 通信用 (予備)

という風になります。
![結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2555080/4d60be63-27ef-dce3-fe5a-5bbbb8d73169.png)
IIJひかりが、VPN用PPPoEのためだけに存在・・・もったいない気もします。
IIJひかりは、例え DS-Lite を使っても VDSL の 100Base-T に縛られる為、ギガビットイーサの BB-WEST 側で DS-Lite を張った方が速くなるのです。
しかし、**BB-WEST の DHCP 接続**があれば、**BB-WEST の DS-Lite**は不要な様に思われますが・・・
何故か**BB-WEST の DS-Lite**の方が**BB-WEST の DHCP 接続**よりも、高速なんです。
トンネリング処理分だけ、速度が落ちるような気がするんですが、恐らく構内ルータのNAPT変換がオーバーヘッドになっていると思われます。
凄いぞ、RTX1210！
## DS-Lite は、どうやって契約者との接続を判断しているんだろう？
BB-WEST から DS-Lite 接続できてしまう事で、「transix 側はどうやって利用者を特定しているんだろう？」という疑問がわきました。
RA で渡される DNS は両者とも同じだし、BB-WEST を運営しているのは NTTメディアサプライなので、くくりとしては同じフレッツ網なので、問題ないって事かな？
こちらとしては、IIJひかりの契約に DS-Lite のオプションを付けているので、細かい事を気にしなければ、問題なさそうなのですが・・・