念願のYAMAHA RTX1300を購入したので、VPN・DDNS・ヘアピンNAT等の設定をやっていく。


買った理由

個人宅にはオーバースペックなRTX1300を買った理由は以下。

  • Buffaloのルータが頻繁にハングアップすることに対する不満がたまっていた
  • metalLBでBGPモードを使いたかったので、BGP対応ルータが欲しかった
  • NASは外部に公開せず、VPN経由でアクセスしたかった
  • ゆくゆくは10GbE回線契約予定だから(引越し後)
  • ネットワークのお勉強のため
  • 単にロマン

お値段は2023年5月13日現在12万ちょい。去年発売でだいぶ価格はこなれてきたとはいえ、ちょっと良い無線LANルータが10台買えるお値段。

設定

早速設定していく。 因みにルータの初期IPは192.168.100.1

プロバイダー接続の設定は省略する。

ssh設定

RTX1300はWebのGUI上でもコマンドを流し込めるが、対応していないコマンドもあるのでsshを有効化しておく。

管理→アクセス管理→各種サーバの設定→SSH/SFTPを使用したアクセスから設定可能。

文字化け対応

上記設定後ssh接続すると、出力が文字化けした。原因はデフォルトの文字コードがsjisのため。

GUIの管理画面上からconsole character ja.utf8というコマンドを流し込むことで解決。

ポートフォワーディング

各種サービスを公開するためポートフォワーディング設定をする。

詳細設定→NAT→NATディスクリプターの一覧→静的IPマスカレードの設定から可能

ネットボランチDNS

概要

YAMAHAのルータを買うとネットボランチDNSという無料のDDNSサービスが使えるようになる。

今までは無料のDNSサービスであるmydnsを利用して、cronでグローバルIPを通知していたが、 ネットボランチDNSならなんとダウンタイムが無いということなので、こちらに移行する。

作成方法はかんたん設定→ネットボランチDNSからホスト名を指定するだけ。文字通りかんたんに作成できた。

デフォルトでは{指定したホスト名}.xxx.netvolante.jpというドメインが渡される。このまま使ってもいいが、少し長いので取得した独自ドメインを利用するための設定をする。

お名前.com側の設定

DNSレコードのCNAMEに今回取得したネットボランチDNSのドメインを指定する。

これでwww.4nm1tsu.com4nm1tsu.aa0.netvolante.jp、つまり自宅のグローバルIPに解決するようになる。

理想は4nm1tsu.comにアクセスしたらネットボランチDNSのドメインに転送してくれることだが、ドメイン転送には追加料金がかかるらしいのでこれで。

トラブル

上記設定から確認画面に進む際に変なサービスを契約してしまい1200円くらい払う羽目になった。

というのも、後で確認してみたら、DNSレコード設定後の確認ボタンを押したあとに出てくるダイアログに、「ドメインプロテクションに加入する」旨のテキストが表示されていたのだ。

普通の感覚であればDNSレコードの設定中に課金を伴う設定が出てくるとは思うはずもないであろうが、自分も例にもれず、何度確認させるんだとイライラしながらクリックしたら、勢い余って課金してしまった。

DNSレコード変える度にこれが出てくるのは甚だ疑問だし、前々から残念なUIにストレスが溜まっていたので(冗談抜きでこのUIを使っていると頭が痛くなる)、お名前ドットコムのドメイン契約期間は半年ほど残っていたが、Google Domainsに移管することにした。

ドメイン移管

ドメイン移管は移管元のAuthCodeというものを控えて、移管先でドメイン取得時にそのAuthCodeを入力するだけのかんたんな作業だった。トランスファー申請の承認後、30分くらいで移管完了の旨のメールがgoogleから届くのでトータルで1時間弱で移管が終わったことになる。

Google Domainsはドメイン転送も無料で行えるので、トータルで見たら実はこちらのほうが安かったり。

以下のように、契約しているドメインからネットボランチDNSサービスのドメインへ転送する設定を行った。

WAN側から4nm1tsu.com,www.4nm1tsu.comへアクセスしたとき、4nm1tsu.aa0.netvolante.jpにhttpsアクセスすることを確認して設定は完了。

ヘアピンNAT

地味に欲しかった機能がこれ。

詳細設定→NAT→NATディスクリプターの一覧から上記設定を「利用する」に変えて適用すると、 外部アドレスを内部アドレスに解決してくれる。

試しに自宅ネットワーク内から4nm1tsu.comにアクセスすると、きちんとこのサイトが表示された。

PC等であれば/etc/hostsにIPアドレスを記述したり、スマホ等でも対応したい場合内部DNSサーバを建てる必要があったりと面倒なので、すごく助かる機能。

VPN

L2TP/IPSecを用いたリモートアクセスが出来るように設定していく。

VPN→リモートアクセスから、上記のように認証鍵と各種アルゴリズム・ユーザを設定。

その後、ESP,IKE,L2TPで利用するポートに関する以下の設定を適用する。(LAN1アドレスと識別番号は環境に合わせて)

nat descriptor masquerade static 20000 9 192.168.1.2 esp
nat descriptor masquerade static 20000 10 192.168.1.2 udp 500
nat descriptor masquerade static 20000 11 192.168.1.2 udp 4500

ip filter 400108 pass * 192.168.1.2 esp
ip filter 400109 pass * 192.168.1.2 udp * 500
ip filter 400110 pass * 192.168.1.2 udp * 4500
ip filter 400111 pass * 192.168.1.2 udp * 1701

スマホからVPN接続し、NAS等のサービスが利用できることを一通り確認して完了。

IDS&メール通知有効化(2023/07/30 追記)

RTX1300をはじめとしたYAMAHAのルータにはIDS(不正アクセス検知)機能1が搭載されているので、あるものは使っていこう精神でこの機能をONにすることにした。

ひとまずインターネット側のインターフェースの不正アクセス検知機能とメール通知をONにし、様子を見てみることに。(副作用があると困るので、この時点でパケットの破棄はOFF)

すると、数分でICMP too largeの通知が何件か飛んできた。IPを見るに、宅内NWに接続しているiPhoneの通信のようで、ネットで調べてみるとiOS15から出ているApple製品固有のバグのようだった。。

iOS 15 にしてから "ICMP … - Apple コミュニティ

discussionsjapan.apple.com favicon image discussionsjapan.apple.com

流石に通知が煩いので、ICMPに関する検知機能だけOFFにして、引き続き様子を見ることにした。

おわりに

ひととおり今までと同等にサービスを公開しつつ、快適にインターネットを使える環境を用意できた。 特にヘアピンNATとVPNが使えるようになったのは、かなーり便利。

BGP設定等まだまだやりたいことは沢山あるので、それらは追々やっていきたい。