Yamaha RTX 1220 でIPv6インターネット(フレッツ光 RA方式(ひかり電話契約なし))を設定したときのメモ

やっぱりIPv6でインターネットしたいよねということで、設定したのでメモ。
lan2をWAN, lan1/32をLANに使用しています。

基本的に下記記事に従って設定しています。

https://network.yamaha.com/setting/router_firewall/flets/flets_other_service/ipv6_ipoe#command
http://www.rtpro.yamaha.co.jp/RT/docs/ipoe/index.html#setting5

## フレッツ光 RA方式(ひかり電話契約なし)についてのメモ（読み飛ばしていいやつ）

### RA方式でのアドレスの振られ方のざっくりとした理解
光電話なしの契約の場合は、いわゆるRA方式という方式でNTT東のルーターからIPv6アドレス(正確にはプレフィックスを)もらいます。(でもらったプレフィックスをもとに機器側でアドレスを自動設定)

このときのIPv4の感覚でいると違和感が出るのが下記の点かなと思います。
* PCにグローバルipv6アドレス(正確にはグローバルユニキャストアドレス)が割り振られる
    * ipv4だとプライベートIPアドレスを振ってルーターでNATするのが一般的だと思います
* クライアントPCがNTTのルーターからアドレス(正確にはアドレスプレフィックス(ipv4で言うネットワーク部))をもらう
    * ipv4だとルーターのDHCPサーバーからアドレスを払い出してもらうのが一般的だと思います

そうなんすよ・・・直接PCがNTTのルーターからグローバルIPアドレスもらってそれでインターネットと通信します・・・
なので、フレッツ網だとONU配下にL2スイッチをおいてそこのIPv6が有効になっているクライアントをを挿せば、ipv6のアドレスが自動設定され通信できるようになります。(プロバイダも契約してればインターネットに抜けられる)
※正確にはアドレスプレフィックス(ipv4で言うネットワーク部)をもらって、ホスト部をクライアント側で作って(桁数が十分に大きいのできちんとやればダブらない値が作れます)２つ合わせて作ったアドレスを使います。

例えば下記のCiscoの設定例だと、ipv6の通信だけLAN側とWAN側をブリッジさせてL2で素通しするようにしてる。ブリッジに`access-list 200 permit 0x86DD 0x0000`のACLを設定してipv6だけpermitする設定はいっててそれでええんかみたいな感じに・・・
※0x86DDがipv6のether typeとやらでEthernetフレーム上で上位のプロトコルがなにか識別するための値らしいです(https://ja.wikipedia.org/wiki/EtherType)

https://www.cisco.com/c/ja_jp/support/docs/ip/ip-version-6/ipv6-passthru.html

### NDプロキシ・RAプロキシ
上記内容を読んで、それってセキュリティどうなの？となる方が多いと思います。
なので、おそらく世に出回ってる多くのルーターはNDプロキシとかRAプロキシとか言う機能が搭載されており、これを使ってL3でLAN側とWAN側を分割した上で(と言うよりLAN側とWAN側でIPアドレス設定に関するパケットをのみを通過させ、かつ頑張って２つのセグメントの間でルーターっぽく振る舞う・・・みたいな感じ？)ルーティング時に適切にパケットフィルタリングを実施するようになっているかと思います。

ヤマハもルーターもこの機能が搭載されており(ヤマハではRAプロキシというようです)、今回はこの機能とフィルタを合わせてセキュリティをネットワークとして担保します。

参考

https://www.youtube.com/watch?v=2lgmpHxd1fE

## 設定
### LAN側インターフェースの設定
```
ipv6 lan1/32 address ra-prefix@lan2::1/64
ipv6 lan1/32 rtadv send 1 o_flag=on
ipv6 lan1/32 dhcp service server
```

### WAN側インターフェースの設定

```
ipv6 prefix 1 ra-prefix@lan2::/64 //RAプロキシをlan2インターフェースで動作させる設定 http://www.rtpro.yamaha.co.jp/RT/manual/nvr500/ipv6/ipv6_prefix.html
ipv6 lan2 dhcp service client ir=on //(確認中) ipv6のDNSサーバーの情報をdhcpで取得する？
ngn type lan2 ntt (ngn(フレッツ網のこと)の情報がshow系のコマンドとかで見れるようになるらしいです)
``` 

参考: 
http://www.noblehero.jp/2022/04/20/%E3%83%A4%E3%83%9E%E3%83%8F%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E3%80%8Cngn-type-lan2-ntt%E3%80%8D%E3%81%A3%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%AF%E3%81%A9%E3%81%86%E3%81%84%E3%81%86%E6%84%8F/

### フィルター設定
lan2インターフェースにipv6のフィルタを設定します。
```
ipv6 lan2 secure filter in 1010 1011 1012 2000
ipv6 lan2 secure filter out 3000 dynamic 100 101 102 103 104 105 106
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
```

### DNSサーバー設定

```
dns host lan1/32 // lan1でdnsサーバーを動作させる
dns server dhcp lan2 // http://www.rtpro.yamaha.co.jp/RT/manual/rt-common/dns/dns_server_dhcp.html すでにdns serverコマンドが設定されていても、既存のコマンドは削除されず追加されるようです
```