enひかりクロス with Xpassに申し込み、ルーター大特価キャンペーンでRTX1300を購入しました。
RTX1300は、10GbEかつSFP+を搭載した業務用ルータです。
発熱が気になる10GBASE-Tではなく、SFP+で光ファイバーケーブルやダイレクトアタッチケーブルを使用することで、発熱を抑えることができ、一般家庭に置くのことに適していると言える製品です。(知識が必要ですが…)
今回は、我が家のRTX1300の設定、消費電力、速度測定の結果を紹介したいと思います。
設計方針
まず、我が家での使用を考慮をし、以下の設計方針としました。
- LAN1 を自宅LANとする(信用する機器群)
- LAN2 をインターネット側とする(ONU側)
- LAN4 をIOT LANとする(主に信用しない機器群)
- ポートの割り当ては以下とする
LAN1: 1 2 3 4 5 6 10
LAN2: 9
LAN4: 7 8 - Tunnel1をIPv4 over IPv6とする(Xpass 固定IP設定)
- 自宅LANからIOT LANへは、自由にアクセスできる
- IOT LANからは、自宅LANからの戻り通信、DHCP、DNS、ICMPと自宅サーバへのSMB、インターネットへは許可するが、それ以外のプライベートIP向け通信は拒否する
- IPv6はLAN1でのみ配布する。
- IPv6のインターネット向け通信には、ダイナミックフィルターを使用する
- NAPT、ダイナミックフィルターのタイマーは以下とする。
TCP: 3600秒
UDP: HTTPS 120秒、NTP 30秒、DNS 10秒、その他 300秒
ICMP: 30秒 - LAN内のDNSサーバー、NTPサーバーをRTXにする
- インターネットからのHTTPS、IPsecの通信は、自宅サーバにポートフォワーディングする
- UDP10000~65000をDSCP48でマーキングする
TCPは、スマートフォンのプッシュ通知を受信するためタイマーを長くしています。プッシュ通知の根拠は、以下に記載しています。
Android、iPhoneのプッシュ通知を受信できるネットワークをネットワークエンジニア目線で考えてみました。
マーキングする理由は以下に記載しています。
RTX810の機能を使用し、無線LANのQoSをしてみました。ZoomなどのWeb会議でも効果があるかもしれません。
HVTR-BCTX3の通信内容とQoSマーキングの必要性について記載しました。
ただし、今回はTOSフィールドのマーキングはしません。理由は以下です。
https://www.seil.jp/blog/release_454.htmlフレッツV6オプションいわゆる構内網折り返し通信ってやつでscpが通らない問題 - Qiita
産業で説明 フレッツV6オプションを使い、拠点間IPv6接続を試してみた。 ssh でログインは出来るけれど scp や rsync を行おうとすると、ハングアップします。 そのときに、いろいろ試してみた記録です。 症状 ssh V6ホスト名 ...
設定
ここから、設定内容を種別ごとに記載します。USBシリアル変換やコンソールケーブルは準備していて、初回ログイン時のパスワード設定を済ませ、administrator モードに入っている状態からスタートです。
フレキシブルポート
lan番号とポートを設定します。設定保存と再起動が必要。
lan flexible-port lan1=1-6,10 lan2=9 lan4=7-8 save restart
IPv4
環境に合わせて、セグメントを設定します。
ip lan1 address 192.168.0.254/24 ip lan4 address 192.168.128.254/24
lan4からの通信をフィルターします。インターネットから戻り通信でダイナミックフィルターが動かない様に送信元をlan1のセグメントにします。(TCPはsynで引っ掛けても良いかも)
ip filter 11 pass * * udp * dhcps,dhcpc ip filter 12 pass * 192.168.128.254 udp * domain ip filter 13 pass * 192.168.128.254 icmp ip filter 14 pass * 192.168.0.250 tcp * 445 ip filter 18 reject-nolog * 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 ip filter 19 pass * * ip filter dynamic 28 192.168.0.0/24 * tcp ip filter dynamic 29 192.168.0.0/24 * udp
ip lan4 secure filter in 11 12 13 14 18 19 ip lan4 secure filter out 19 dynamic 28 29
DHCPサーバ
LAN内の機器向けのDHCPサーバの設定です。
自宅LANとIOT LANそれぞれ設定します。
MACアドレスによって、IPを固定したい場合は、dhcp scope bindでそれぞれを指定しますが、これはスコープの範囲に入っていなければなりません。
割り当てたくない範囲は、複数スペース区切りで指定できるので、例を記載しておきます。(我が家では大量に書いている)
dhcp service server dhcp server rfc2131 compliant on dhcp scope 1 192.168.0.1-192.168.0.249/24 except 192.168.0.1-192.168.0.7 192.168.0.9 192.168.0.18-192.168.0.19 dhcp scope bind 1 192.168.0.10 ethernet xx:xx:xx:xx:xx:xx dhcp scope 128 192.168.128.101-192.168.128.249/24
IPv6
インターネット回線は、enひかりクロス with Xpassなので、DHCP-PD方式です。(というかフレッツ光クロスはDHCP-PDがほとんどだと思うが)
忘れがちな、lan linkup send-wait-timeですが、これが無いと接続時にIPv6が降ってこなかったりします。
ipv6 route default gateway dhcp lan2 ipv6 prefix 1 dhcp-prefix@lan2::/64 ipv6 source address selection rule lifetime ipv6 lan1 address dhcp-prefix@lan2::1/64 ipv6 lan1 rtadv send 1 o_flag=on ipv6 lan1 dhcp service server lan linkup send-wait-time lan2 5 ngn type lan2 ntt
このままでは、NAPTをしているIPv4と違い、IPv6ではインターネット側から直接アクセスできてしまうため、静的・動的フィルターを設定します。タイマーはそれぞれ設計方針の通りです
ipv6 filter 230 pass * * icmp6 * * ipv6 filter 231 pass * * 4 ipv6 filter 238 pass * * udp * 546 ipv6 filter 239 reject * * ipv6 filter 299 pass * * * * * ipv6 filter 30000 pass * * udp * https ipv6 filter dynamic 291 * * tcp syslog=off timeout=3600 ipv6 filter dynamic 292 * * filter 30000 syslog=off timeout=120 ipv6 filter dynamic 293 * * domain syslog=off timeout=10 ipv6 filter dynamic 294 * * ntp syslog=off timeout=30 ipv6 filter dynamic 298 * * udp syslog=off timeout=300 ipv6 filter dynamic 299 * * ping6 syslog=off timeout=30 ipv6 lan2 secure filter in 230 231 238 239 ipv6 lan2 secure filter out 299 dynamic 291 292 293 294 298 299
IPv4 IPoE (IPv4 over IPv6)
固定IPなので、単純なIPv4 over IPv6の設定になります。
トンネルを張る先のIPv6アドレスは、メールでもらうPDFに記載があります。
ip route default gateway tunnel 1 tunnel select 1 tunnel encapsulation ipip tunnel endpoint address (対向のIPv6アドレス) ip tunnel nat descriptor 1000 ip tunnel tcp mss limit auto tunnel enable 1
Xpassの固定IPは、DDNSでIPv6アドレスを通知する必要があります。
RTXではLUAスクリプトでそれを実現しているため、コンフィグに入れることになります。
スクリプトは公式の物を使っています。
また、変数にはPDFの内容を入れます。
ipv6 lan1 prefix change log on schedule at 2 startup * lua emfs:/xpass_pd.lua embedded file xpass_pd.lua <<EOF --[[ (略) DDNS_SV = "" FQDN = "" DDNS_ID = "" DDNS_PASS = "" BASIC_ID = "" BASIC_PASS = "" (略) EOF
DNSリカーシブサーバ、静的DNSレコード
LAN内の機器のDNS問い合わせ先をRTXにするため、RTXをDNSリカーシブサーバーとして設定します。
RTXが問い合わせるDNSサーバは、IPv6 IPoEにします。
dns host lan1 lan4 dns service recursive dns service fallback on dns server dhcp lan2 dns server select 500000 dhcp lan2 any . dns private address spoof on
LAN内にサーバなどがあり、サーバの名前解決をしたい場合は、ip hostを設定します。
ただこれがなくても、内部からグローバルIP向けの通信もRTXがnat descripteorに従って、フォワーディングしてくれるようです。
ip host server.example.com 192.168.0.250 ip host server 192.168.0.250
NAPT設定/サーバ公開
IPv4をNAPTする設定です。IPv4は固定オプションを付けたので、ここに記載する必要があります。
nat descriptor type 1000 masquerade nat descriptor timer 1000 protocol=tcp 3600 nat descriptor timer 1000 protocol=udp port=https 120 nat descriptor timer 1000 protocol=udp port=ntp 30 nat descriptor timer 1000 protocol=udp 300 nat descriptor timer 1000 protocol=icmp 30 nat descriptor address outer 1000 (固定IPv4アドレス) nat descriptor masquerade incoming 1000 discard
DNSは設定に関わらず10秒になります。
サーバを公開する場合はこの設定を入れます。
nat descriptor masquerade static 1000 1 192.168.0.250 tcp https nat descriptor masquerade static 1000 2 192.168.0.250 udp 4500 nat descriptor masquerade static 1000 3 192.168.0.250 udp 500 nat descriptor masquerade static 1000 4 192.168.0.250 esp
QoSマーキング
音声などで使用するUDPのポート番号10000~65535を無線区間で優先させるため、DSCP 48(IP Precedence 6)でマーキングします。
ip filter 10001 pass 192.168.0.0/24 * udp 10000-65535 ip filter 10002 pass * 192.168.0.0/24 udp 10000-65535 ipv6 filter 30001 pass * * udp 10000-65535 ip dscp supersede 20001 cs6 10001 ip dscp supersede 20002 cs6 10002 ipv6 dscp supersede 40001 cs6 30001
NTP
RTXの同期先をNICTにします。本当は、IPv6で振られるNTPサーバを使いたい所ですが、それを動的に設指定できないので、固定にしました。
schedule at 1 */* 00:01 * ntpdate ntp.nict.jp
RTXでLAN内にIPv4のNTPサーバを提供する場合は、以下を設定します。
sntpd service on sntpd host lan1 lan4
セキュリティ関連
インターネット側からのICMPやTCP resetの応答をしないようにします。
ip stealth tunnel1 ipv6 stealth lan2
省電力関連
各ポートを省電力に設定します。また、IOT用のAPが繋がるポート8は100Mで十分なので、速度を落とします。
lan port type 1 energy-saving=on lan port type 2 energy-saving=on lan port type 3 energy-saving=on lan port type 8 100-fdx energy-saving=on lan port type 9 energy-saving=on lan port type 10 energy-saving=on
その他設定
管理系や運用しやすい設定を入れます。
security class 1 off on on timezone +09:00 console character ja.utf8 console columns 200 console lines 24 console prompt RTX1300 ip icmp echo-reply send-only-linkup on telnetd service on telnetd host lan1 sshd service on sshd host lan1 sshd host key generate
消費電力
以上の設定で、以下のポート使用状況で、最初は消費電力は、11.1Wでした。ファンスピードが上がっても消費電力は変わりませんでした。ただ何日か経って、何かの拍子で13Wまで上がりました。
測定は、Switchbot プラグミニを使用しています。
使用ポート状況
- 100BASE-TX 1ポート
- 1000BASE-T 2ポート
- 10GBASE-T 1ポート
- 10GBASE-R 1ポート
速度測定
fast.comで速度測定をしました。
最も良かった結果を載せておきます。
RTX1300は、IPv4 over IPv6を含む、IP in IPトンネルの性能が良く無いので、IPv4の結果も載せておきます。
|
ダウンロード | アップロード |
---|---|---|
デスクトップPC(IPv6) | 8.0 Gbps |
1.2 Mbps |
デスクトップPC(IPv4) | 3.3 Gbps |
1.2 Gbps |
MacBook Pro M3 Pro 5GbE USBアダプタ(IPv6) |
4.7 Gbps |
3.6 Gbps |
MacBook Pro M3 Pro 5GbE USBアダプタ(IPv4) |
2.7 Gbps |
2.4 Gbps |
iPhone 16 Pro Wi-Fi6E(IPv6) |
2.2 Gbps |
1.4 Gbps |
やはり、インターネット上の情報通り、IPv4のダウンロードが3Gbps程で頭打ちになりました。CPUスケジューリングの設定を変えると改善するそうですが、パケットの入れ替わりの発生を避けたいこと、速度で特に困らないのでこのままとします。
設定を変える場合は以下のコマンドですが、なぜか私の環境では変更してもIPv4の速度に変化は見られませんでした。(測定時間帯が悪かったか?)
system packet-scheduling load-balance
また、デスクトップPCの上りは、Windowsのドライバの問題なのか不明ですが、アップロードが遅くなっています。(LAN内でのiPerfの測定ではもっと出ていました)
トラブル
RTX1300とIntel x520 + DACの相性
デスクトップとサーバに搭載しているIntel x520-DA1 (82599EN)とダイレクトアタッチケーブルを、RTX1300と直接続すると、リンクアップダウンを繰り返します。
Port10: Link failed. SERDES will be reset.
Windows、Linuxともに同様の問題が発生し、他のスイッチ経由では問題ないため、Intel NICとの相性と思われます。
IPv4が中々繋がらない
設定後すぐにIPv4でインターネットに繋がりません。
しばらく放置で繋がるようになりました。
DDNSが反映される時間か?
最後に
キャンペーン価格により、税込12万円強で手に入れたRTX1300ですが、概ね満足な性能でした。性能よりは、省電力を優先していますのでこれで十分と考えています。他の業務用ルータでも試してみたいところではありますが。
DACについては相性が出やすいので、可能であれば10GBASE-SR/LRで接続した方が安心です。我が家では、小さい子と猫が何をするか分からないので、中々手を出すことができませんけど。
今回、10GのL3スイッチも購入したので、そちらの記事も書こうと思います。