2020年版RTXサンプルコンフィグ（RTX830導入＋いろいろ整理）

**※2021/4/28追記
コンフィグを何箇所か修正しました。変更内容の説明は文末に追記しています。**

# 1. この記事の前提
* 前回の記事（[YAMAHA RTシリーズルーターをIPv6ネイティブ環境に接続して、v6用DNSをLAN内サーバーに設定させた話](https://qiita.com/1nagawa/items/dd86b33d31c68c58dad0)）の続きになります。なので、この記事のコンフィグは**ルーターとは別にLAN内DNSがあって端末がそちらを参照してるのが前提**です。

* そういうの立ててない人がこのコンフィグコピペすると名前解決できなくてインターネットに出られなくなるのでお気をつけ下さい**（普通にRTXをDNSにする記載も追加しました）**。

# 2. 前回の記事の反応
記事を見てくれた知人の本職ネットワークエンジニアと会話しつつツッコミをもらいました。

**「DHCPv6でv6DNSのアドレス広報しないように頑張ってたけど、そもそもv6DNSを広報して欲しくないなら、RTXのDHCPv6切ったら止まるんじゃ？」**
**「あ」**

そうですねひかり電話なしのRA環境だから、v6アドレスとネクストホップはRAが知らせてくれます。v6DNSの情報いらないならRTXのDHCPv6を止めればいい……！

と言うわけで、
`no ipv6 lan1 dhcp service server`
して、合わせてDNS周りの設定を色々整理しました。

# 3. RTX830いらっしゃい
ご多分に漏れずコロナ騒動の影響で在宅勤務となり、その関係で弊宅（集合住宅）の回線状況を調べてみたら**いつの間にかハイスピード隼対応**に。

は？　URさんそういう事は工事したら教えてよ……いやそういうの言わないのがURか……。
で、気づいた翌日にNTT……ではなく光コラボ業者（弊宅の場合はNTTドコモ）に電話して回線状況確認から流れるように工事申し込みへ。コロナ騒動でコールセンター込んでる最中に電話かけるのは気が引けましたが、オンライン申し込みがない以上仕方がない……。

そして部屋のONUが100Mから1Gになる以上、 ~~WANポート100Mの~~ **RTX810がボトルネックになるのは明らかなので流れるようにRTX830を購入**していたのでした。わたしお大尽……。


と言うわけで、前置きが長くなりましたが、このコンフィグはRTX830用となります。他機種では通らないコマンドが入っている場合もありますが、流用する人は頑張って読み替えて下さい。

# 4. コンフィグ
```
#
# IP configuration
#

ip routing process fast
ip route default gateway pp 1 filter 1001 gateway tunnel 1
ip filter source-route on
ip filter directed-broadcast on

#
# IPv6 configuration
#

ipv6 routing process fast
ipv6 prefix 1 ra-prefix@lan2::/64


#
# LAN configuration
#

ip lan1 address 192.168.0.1/24
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan2 mtu 1500
ipv6 lan2 secure filter in 4001 4002 4998
ipv6 lan2 secure filter out 4999 dynamic 5001 5002 5003 5004 5005 5006 5998 5999
ipv6 lan2 dhcp service client ir=on
ipv6 lan1 dhcp service server
ngn type lan2 ntt

# RTXにDNSをやらせる場合は下記行を追加
ipv6 lan1 dhcp service server
```

* ip filterのルール番号がRTXデフォルトの6桁とは違いますが、移行のついでに昔から使い回しのルールを総チェックして整理したため、自分で分かりやすい番号に付け替えています。付け替えてもRTX830のGUIからちゃんと操作できますが、**GUIから新規ルールを追加するとデフォルトの6桁ルール番号で付番される**ので注意して下さい。

* 回線のMTUは昔から諸説ありますが、フレッツ網の場合なら**「WANインターフェース：1500」「PPPoEインターフェース：1454」「DS-Liteトンネルインターフェース：1460」**で間違いないでしょう（諸説というか、ネット上の間違ったまま訂正されていない情報もGoogleで拾えちゃうせいですね）。

* 最初に書いたようにLAN側のDHCPv6サーバーをわざと止めています。普通にルーターにDNSやらせる場合は `ipv6 lan1 dhcp service server` で作動させるのが無難でしょう。

```
#
# PP configuration
#

pp disable all

### PP 1 ###

pp select 1
 description pp hogehoge
 pp keepalive interval 30 retry-interval=30 count=12
 pppoe use lan2
 pppoe auto disconnect off
 pp auth accept pap chap
 pp auth myname hogehoge@fugafuga ******
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ccp type none
 ip pp mtu 1454
 ip pp secure filter in 2001 2003 2004 2007 2008 2010 2011 2012 2013 2014 2101 2102 2103 2104 2105 2998
 ip pp secure filter out 2002 2003 2004 2005 2006 2999 dynamic 3001 3002 3003 3004 3005 3006 3998 3999
 ip pp nat descriptor 1000
 ip pp tcp mss limit 1414
 pp enable 1

#
# TUNNEL configuration
#

no tunnel enable all

### TUNNEL 1 ###

tunnel select 1
 tunnel encapsulation ipip
 tunnel endpoint name gw.transix.jp fqdn
 ip tunnel mtu 1460
 ip tunnel secure filter in 2001 2003 2004 2007 2008 2010 2011 2012 2013 2014 2101 2102 2103 2998
 ip tunnel secure filter out 2002 2003 2004 2005 2006 2999 dynamic 3001 3002 3003 3004 3005 3006 3998 3999
 ip tunnel tcp mss limit auto
 tunnel enable 1

#
# IP filter configuration
#

ip filter 1001 pass 192.168.0.xxx,192.168.0.yyy * * * *
ip filter 2001 reject 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,192.168.0.0/24 * * * *
ip filter 2002 reject * 192.168.0.0/24 * * *
ip filter 2003 reject * * tcp,udp * 135,netbios_ns-netbios_ssn,445
ip filter 2004 reject * * tcp,udp 135,netbios_ns-netbios_ssn,445 *
ip filter 2005 restrict * * tcpfin * www,21,nntp
ip filter 2006 restrict * * tcprst * www,21,nntp
ip filter 2007 pass * 192.168.0.0/24 icmp * *
ip filter 2008 pass * 192.168.0.0/24 established * *
ip filter 2010 pass * 192.168.0.0/24 tcp ftpdata *
ip filter 2011 pass * 192.168.0.0/24 tcp,udp * domain
ip filter 2012 pass * 192.168.0.0/24 udp domain *
ip filter 2013 pass * 192.168.0.0/24 udp * ntp
ip filter 2014 pass * 192.168.0.0/24 udp ntp *
ip filter 2101 pass * 192.168.0.xxx tcp * http,https
ip filter 2102 pass * 192.168.0.yyy tcp * 1194,5555
ip filter 2103 pass * 192.168.0.yyy udp * 500,4500
ip filter 2998 reject * * * * *
ip filter 2999 pass * * * * *

#
# IP dynamic filter configuration
#

ip filter dynamic 3001 * * ftp
ip filter dynamic 3002 * * domain
ip filter dynamic 3003 * * www
ip filter dynamic 3004 * * smtp
ip filter dynamic 3005 * * pop3
ip filter dynamic 3006 * * submission
ip filter dynamic 3998 * * tcp
ip filter dynamic 3999 * * udp

#
# NAT Descriptor configuration
#

nat descriptor type 1000 masquerade
nat descriptor masquerade static 1000 1 192.168.0.xxx tcp https
nat descriptor masquerade static 1000 2 192.168.0.xxx tcp http
nat descriptor masquerade static 1000 3 192.168.0.yyy tcp 1194
nat descriptor masquerade static 1000 4 192.168.0.yyy tcp 5555
nat descriptor masquerade static 1000 5 192.168.0.yyy udp 500
nat descriptor masquerade static 1000 6 192.168.0.yyy udp 4500

#
# IPv6 filter configuration
#

ipv6 filter 4001 pass * * icmp6 * *
ipv6 filter 4002 pass * * udp * 546
ipv6 filter 4998 reject * * * * *
ipv6 filter 4999 pass * * * * *

#
# IPv6 dynamic filter configuration
#

ipv6 filter dynamic 5001 * * ftp
ipv6 filter dynamic 5002 * * domain
ipv6 filter dynamic 5003 * * www
ipv6 filter dynamic 5004 * * smtp
ipv6 filter dynamic 5005 * * pop3
ipv6 filter dynamic 5006 * * submission
ipv6 filter dynamic 5998 * * tcp
ipv6 filter dynamic 5999 * * udp
```

* 長いですが、ip filterルール番号を振り直している以外に変わったことはしてないです。

* と言いつつ、[毛流麦花さんの記事「ルーターconfigの最適化」](https://www.marbacka.net/blog/router_config_optimization/)を参考にしてルールのシンプル化を図っています。

* RTXがデフォルトで設定するident許可フィルタは削除してます。このご時世でもう使うことないでしょう……というか、RTX830をGUIウィザードでイチからセットアップしてもidentルール入るんですかね？（さすがにそこまでは試してない）

```
#
# DHCP configuration
#

dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.0.3-192.168.0.100/24 expire 24:00
dhcp scope option 1 router=192.168.0.1 dns=192.168.0.2 domain=local.example.net

#
# DNS configuration
#

dns host lan1
dns service recursive
dns service fallback on
dns server dhcp lan2
dns private address spoof on

#
# Schedule configuration
#

schedule at 1 */* 01:54 * ntpdate ntp.nict.jp
```

* DNSは自前で立てたPowerDNS RecursorサーバーのIP `192.168.0.2` をDHCPv4で各端末に払い出しています。もちろん固定IPの端末にも手動で設定。

* RTXのリカーシブDNSサーバーは作動させています。ここを止めてしまうとRTX自身が名前解決できなくなってNTPでの時刻合わせに差し支えてしまうためです。

* ちなみにRTX830のリカーシブDNSサーバーは今年1月のファームウェアアップデート（Rev.15.02.14）でEDNS0に対応しましたが、実際には512バイト超のDNS応答を返してくれないそうです（5chのYAMAHA RT板情報）。まぁその辺まで気にするのもオタクですが！

# 5. ベンチマーク

![コメント 2020-05-08 021328_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84482/c43794fc-0c0e-2d25-699c-ac12b002c310.png)

フレッツ西ハイスピード隼＋IIJmio＋DS-Lite接続でこんな感じです。時間帯によって300～500Mbpsって感じですが、快適快適。

![コメント 2020-05-06 202634_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84482/f622b30f-c975-654d-36fa-08c3b7faf97c.png)

瞬間風速でこのぐらい出たこともありました（CentOS8のイメージ落とした時だったかな？）。

それでは本記事はこの辺で。

# 6. 追記（公開後のコンフィグ修正）

* DS-Liteトンネルの端点指定を``tunnel endpoint name``を使用して``gw.transix.jp``に変更しました。最初トンネルがリンクアップせず悩んだのですが、下記コマンドを追記してNGN網に正しく接続させないとダメみたいです。

　``ipv6 lan2 dhcp service client ir=on``
　``ngn type lan2 ntt``

　またRTX自体のDNSもNGN網に向けないといけないようで``dns server``の指定を変更しました。

* 以下のコマンドを削除しました。微妙にパフォーマンスへの影響があったようです。
``ip lan1 proxyarp on``
``ipv6 lan2 rip send off``
``ipv6 lan2 rip receive off``

* ip filterでin側に誤って2005、2006のrestrictフィルタが入っていたのを削除、2003のrejectフィルタが入っていたのを削除しました。

* DNSサーバーの接続元制限``dns host lan1``を追加しました。

* PPPoE接続に``ip pp tcp mss limit 1414``を追加しました。